@cabin-id/nextjs 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/dist/cjs/api/{getUserInfo.js → endpoints/AbstractApi.js} +14 -18
  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 +2 -2
  12. package/dist/cjs/component.client.js.map +1 -1
  13. package/dist/cjs/component.server.js +5 -2
  14. package/dist/cjs/component.server.js.map +1 -1
  15. package/dist/cjs/components/SignInButton.js +15 -6
  16. package/dist/cjs/components/SignInButton.js.map +1 -1
  17. package/dist/cjs/constants.js +20 -19
  18. package/dist/cjs/constants.js.map +1 -1
  19. package/dist/cjs/hooks/createContextAndHook.js +62 -0
  20. package/dist/cjs/hooks/createContextAndHook.js.map +1 -0
  21. package/dist/cjs/hooks/useSafeLayoutEffect.js +40 -0
  22. package/dist/cjs/hooks/useSafeLayoutEffect.js.map +1 -0
  23. package/dist/cjs/hooks/useUser.js +9 -16
  24. package/dist/cjs/hooks/useUser.js.map +1 -1
  25. package/dist/cjs/index.js +2 -2
  26. package/dist/cjs/index.js.map +1 -1
  27. package/dist/cjs/provider/context.js +62 -0
  28. package/dist/cjs/provider/context.js.map +1 -0
  29. package/dist/cjs/provider/core.provider.js +49 -0
  30. package/dist/cjs/provider/core.provider.js.map +1 -0
  31. package/dist/cjs/{client/provider.js → provider/main.provider.js} +9 -20
  32. package/dist/cjs/provider/main.provider.js.map +1 -0
  33. package/dist/cjs/server/auth.js +31 -7
  34. package/dist/cjs/server/auth.js.map +1 -1
  35. package/dist/cjs/{client/request.js → server/client.js} +12 -20
  36. package/dist/cjs/server/client.js.map +1 -0
  37. package/dist/cjs/server/createGetAuth.js +45 -0
  38. package/dist/cjs/server/createGetAuth.js.map +1 -0
  39. package/dist/cjs/server/createRedirect.js +36 -35
  40. package/dist/cjs/server/createRedirect.js.map +1 -1
  41. package/dist/cjs/server/errors.js +110 -0
  42. package/dist/cjs/server/errors.js.map +1 -0
  43. package/dist/cjs/server/getCurrentUser.js +3 -10
  44. package/dist/cjs/server/getCurrentUser.js.map +1 -1
  45. package/dist/cjs/server/index.js +32 -0
  46. package/dist/cjs/server/index.js.map +1 -0
  47. package/dist/cjs/server/middleware.js +122 -102
  48. package/dist/cjs/server/middleware.js.map +1 -1
  49. package/dist/cjs/server/protect.js +69 -0
  50. package/dist/cjs/server/protect.js.map +1 -0
  51. package/dist/cjs/server/routeMatcher.js +1 -0
  52. package/dist/cjs/server/routeMatcher.js.map +1 -1
  53. package/dist/cjs/server/serverRedirectWithAuth.js +2 -2
  54. package/dist/cjs/server/serverRedirectWithAuth.js.map +1 -1
  55. package/dist/cjs/server/type.js.map +1 -1
  56. package/dist/cjs/server/utils.js +58 -0
  57. package/dist/cjs/server/utils.js.map +1 -1
  58. package/dist/cjs/styles/global.css +30 -2
  59. package/dist/cjs/styles/global.css.map +1 -1
  60. package/dist/cjs/tokens/authObjects.js +45 -0
  61. package/dist/cjs/tokens/authObjects.js.map +1 -0
  62. package/dist/cjs/tokens/authStatus.js +86 -0
  63. package/dist/cjs/tokens/authStatus.js.map +1 -0
  64. package/dist/cjs/tokens/authenticateContext.js +69 -0
  65. package/dist/cjs/tokens/authenticateContext.js.map +1 -0
  66. package/dist/cjs/tokens/cabinIdRequest.js +79 -0
  67. package/dist/cjs/tokens/cabinIdRequest.js.map +1 -0
  68. package/dist/cjs/tokens/cabinIdUrl.js +36 -0
  69. package/dist/cjs/tokens/cabinIdUrl.js.map +1 -0
  70. package/dist/cjs/tokens/request.js +58 -0
  71. package/dist/cjs/tokens/request.js.map +1 -0
  72. package/dist/cjs/types.js.map +1 -1
  73. package/dist/cjs/utils/createCabinIdClient.js +38 -0
  74. package/dist/cjs/utils/createCabinIdClient.js.map +1 -0
  75. package/dist/cjs/utils/http.js +31 -0
  76. package/dist/cjs/utils/http.js.map +1 -0
  77. package/dist/cjs/utils/initial.js +51 -0
  78. package/dist/cjs/utils/initial.js.map +1 -0
  79. package/dist/cjs/utils.js +10 -0
  80. package/dist/cjs/utils.js.map +1 -1
  81. package/dist/esm/api/endpoints/AbstractApi.js +14 -0
  82. package/dist/esm/api/endpoints/AbstractApi.js.map +1 -0
  83. package/dist/esm/api/endpoints/UserApi.js +16 -0
  84. package/dist/esm/api/endpoints/UserApi.js.map +1 -0
  85. package/dist/esm/api/endpoints/index.js +7 -0
  86. package/dist/esm/api/endpoints/index.js.map +1 -0
  87. package/dist/esm/api/factory.js +35 -0
  88. package/dist/esm/api/factory.js.map +1 -0
  89. package/dist/esm/api/request.js +63 -0
  90. package/dist/esm/api/request.js.map +1 -0
  91. package/dist/esm/component.client.js +1 -1
  92. package/dist/esm/component.client.js.map +1 -1
  93. package/dist/esm/component.server.js +3 -1
  94. package/dist/esm/component.server.js.map +1 -1
  95. package/dist/esm/components/SignInButton.js +17 -8
  96. package/dist/esm/components/SignInButton.js.map +1 -1
  97. package/dist/esm/constants.js +16 -15
  98. package/dist/esm/constants.js.map +1 -1
  99. package/dist/esm/hooks/createContextAndHook.js +27 -0
  100. package/dist/esm/hooks/createContextAndHook.js.map +1 -0
  101. package/dist/esm/hooks/useSafeLayoutEffect.js +6 -0
  102. package/dist/esm/hooks/useSafeLayoutEffect.js.map +1 -0
  103. package/dist/esm/hooks/useUser.js +12 -6
  104. package/dist/esm/hooks/useUser.js.map +1 -1
  105. package/dist/esm/index.js +1 -1
  106. package/dist/esm/index.js.map +1 -1
  107. package/dist/esm/provider/context.js +24 -0
  108. package/dist/esm/provider/context.js.map +1 -0
  109. package/dist/esm/provider/core.provider.js +15 -0
  110. package/dist/esm/provider/core.provider.js.map +1 -0
  111. package/dist/esm/provider/main.provider.js +11 -0
  112. package/dist/esm/provider/main.provider.js.map +1 -0
  113. package/dist/esm/server/auth.js +32 -8
  114. package/dist/esm/server/auth.js.map +1 -1
  115. package/dist/esm/server/client.js +11 -0
  116. package/dist/esm/server/client.js.map +1 -0
  117. package/dist/esm/server/createGetAuth.js +23 -0
  118. package/dist/esm/server/createGetAuth.js.map +1 -0
  119. package/dist/esm/server/createRedirect.js +36 -35
  120. package/dist/esm/server/createRedirect.js.map +1 -1
  121. package/dist/esm/server/errors.js +78 -0
  122. package/dist/esm/server/errors.js.map +1 -0
  123. package/dist/esm/server/getCurrentUser.js +3 -10
  124. package/dist/esm/server/getCurrentUser.js.map +1 -1
  125. package/dist/esm/server/index.js +7 -0
  126. package/dist/esm/server/index.js.map +1 -0
  127. package/dist/esm/server/middleware.js +125 -106
  128. package/dist/esm/server/middleware.js.map +1 -1
  129. package/dist/esm/server/protect.js +45 -0
  130. package/dist/esm/server/protect.js.map +1 -0
  131. package/dist/esm/server/routeMatcher.js +1 -0
  132. package/dist/esm/server/routeMatcher.js.map +1 -1
  133. package/dist/esm/server/serverRedirectWithAuth.js +2 -2
  134. package/dist/esm/server/serverRedirectWithAuth.js.map +1 -1
  135. package/dist/esm/server/utils.js +54 -1
  136. package/dist/esm/server/utils.js.map +1 -1
  137. package/dist/esm/styles/global.css +30 -2
  138. package/dist/esm/styles/global.css.map +1 -1
  139. package/dist/esm/tokens/authObjects.js +20 -0
  140. package/dist/esm/tokens/authObjects.js.map +1 -0
  141. package/dist/esm/tokens/authStatus.js +59 -0
  142. package/dist/esm/tokens/authStatus.js.map +1 -0
  143. package/dist/esm/tokens/authenticateContext.js +45 -0
  144. package/dist/esm/tokens/authenticateContext.js.map +1 -0
  145. package/dist/esm/tokens/cabinIdRequest.js +55 -0
  146. package/dist/esm/tokens/cabinIdRequest.js.map +1 -0
  147. package/dist/esm/tokens/cabinIdUrl.js +12 -0
  148. package/dist/esm/tokens/cabinIdUrl.js.map +1 -0
  149. package/dist/esm/tokens/request.js +34 -0
  150. package/dist/esm/tokens/request.js.map +1 -0
  151. package/dist/esm/utils/createCabinIdClient.js +17 -0
  152. package/dist/esm/utils/createCabinIdClient.js.map +1 -0
  153. package/dist/esm/utils/http.js +7 -0
  154. package/dist/esm/utils/http.js.map +1 -0
  155. package/dist/esm/utils/initial.js +26 -0
  156. package/dist/esm/utils/initial.js.map +1 -0
  157. package/dist/esm/utils.js +9 -0
  158. package/dist/esm/utils.js.map +1 -1
  159. package/dist/types/api/endpoints/AbstractApi.d.ts +7 -0
  160. package/dist/types/api/endpoints/AbstractApi.d.ts.map +1 -0
  161. package/dist/types/api/endpoints/UserApi.d.ts +6 -0
  162. package/dist/types/api/endpoints/UserApi.d.ts.map +1 -0
  163. package/dist/types/api/endpoints/index.d.ts +3 -0
  164. package/dist/types/api/endpoints/index.d.ts.map +1 -0
  165. package/dist/types/api/factory.d.ts +35 -0
  166. package/dist/types/api/factory.d.ts.map +1 -0
  167. package/dist/types/api/request.d.ts +33 -0
  168. package/dist/types/api/request.d.ts.map +1 -0
  169. package/dist/types/component.client.d.ts +1 -1
  170. package/dist/types/component.client.d.ts.map +1 -1
  171. package/dist/types/component.server.d.ts +1 -0
  172. package/dist/types/component.server.d.ts.map +1 -1
  173. package/dist/types/components/SignInButton.d.ts.map +1 -1
  174. package/dist/types/constants.d.ts +11 -10
  175. package/dist/types/constants.d.ts.map +1 -1
  176. package/dist/types/hooks/createContextAndHook.d.ts +18 -0
  177. package/dist/types/hooks/createContextAndHook.d.ts.map +1 -0
  178. package/dist/types/hooks/useSafeLayoutEffect.d.ts +3 -0
  179. package/dist/types/hooks/useSafeLayoutEffect.d.ts.map +1 -0
  180. package/dist/types/hooks/useUser.d.ts +16 -1
  181. package/dist/types/hooks/useUser.d.ts.map +1 -1
  182. package/dist/types/index.d.ts +1 -1
  183. package/dist/types/index.d.ts.map +1 -1
  184. package/dist/types/provider/context.d.ts +15 -0
  185. package/dist/types/provider/context.d.ts.map +1 -0
  186. package/dist/types/provider/core.provider.d.ts +6 -0
  187. package/dist/types/provider/core.provider.d.ts.map +1 -0
  188. package/dist/types/provider/main.provider.d.ts +5 -0
  189. package/dist/types/provider/main.provider.d.ts.map +1 -0
  190. package/dist/types/server/auth.d.ts +10 -3
  191. package/dist/types/server/auth.d.ts.map +1 -1
  192. package/dist/types/server/client.d.ts +3 -0
  193. package/dist/types/server/client.d.ts.map +1 -0
  194. package/dist/types/server/createGetAuth.d.ts +5 -0
  195. package/dist/types/server/createGetAuth.d.ts.map +1 -0
  196. package/dist/types/server/createRedirect.d.ts.map +1 -1
  197. package/dist/types/server/errors.d.ts +10 -0
  198. package/dist/types/server/errors.d.ts.map +1 -0
  199. package/dist/types/server/getCurrentUser.d.ts.map +1 -1
  200. package/dist/types/server/index.d.ts +3 -0
  201. package/dist/types/server/index.d.ts.map +1 -0
  202. package/dist/types/server/middleware.d.ts +22 -77
  203. package/dist/types/server/middleware.d.ts.map +1 -1
  204. package/dist/types/server/protect.d.ts +34 -0
  205. package/dist/types/server/protect.d.ts.map +1 -0
  206. package/dist/types/server/routeMatcher.d.ts +4 -4
  207. package/dist/types/server/serverRedirectWithAuth.d.ts +2 -1
  208. package/dist/types/server/serverRedirectWithAuth.d.ts.map +1 -1
  209. package/dist/types/server/type.d.ts +10 -1
  210. package/dist/types/server/type.d.ts.map +1 -1
  211. package/dist/types/server/utils.d.ts +10 -3
  212. package/dist/types/server/utils.d.ts.map +1 -1
  213. package/dist/types/tokens/authObjects.d.ts +37 -0
  214. package/dist/types/tokens/authObjects.d.ts.map +1 -0
  215. package/dist/types/tokens/authStatus.d.ts +51 -0
  216. package/dist/types/tokens/authStatus.d.ts.map +1 -0
  217. package/dist/types/tokens/authenticateContext.d.ts +40 -0
  218. package/dist/types/tokens/authenticateContext.d.ts.map +1 -0
  219. package/dist/types/tokens/cabinIdRequest.d.ts +24 -0
  220. package/dist/types/tokens/cabinIdRequest.d.ts.map +1 -0
  221. package/dist/types/tokens/cabinIdUrl.d.ts +18 -0
  222. package/dist/types/tokens/cabinIdUrl.d.ts.map +1 -0
  223. package/dist/types/tokens/request.d.ts +4 -0
  224. package/dist/types/tokens/request.d.ts.map +1 -0
  225. package/dist/types/types.d.ts +1 -3
  226. package/dist/types/types.d.ts.map +1 -1
  227. package/dist/types/utils/createCabinIdClient.d.ts +5 -0
  228. package/dist/types/utils/createCabinIdClient.d.ts.map +1 -0
  229. package/dist/types/utils/http.d.ts +4 -0
  230. package/dist/types/utils/http.d.ts.map +1 -0
  231. package/dist/types/utils/initial.d.ts +8 -0
  232. package/dist/types/utils/initial.d.ts.map +1 -0
  233. package/dist/types/utils.d.ts +1 -0
  234. package/dist/types/utils.d.ts.map +1 -1
  235. package/package.json +6 -2
  236. package/server/package.json +5 -0
  237. package/dist/cjs/api/getUserInfo.js.map +0 -1
  238. package/dist/cjs/client/provider.js.map +0 -1
  239. package/dist/cjs/client/request.js.map +0 -1
  240. package/dist/esm/api/getUserInfo.js +0 -18
  241. package/dist/esm/api/getUserInfo.js.map +0 -1
  242. package/dist/esm/client/provider.js +0 -21
  243. package/dist/esm/client/provider.js.map +0 -1
  244. package/dist/esm/client/request.js +0 -19
  245. package/dist/esm/client/request.js.map +0 -1
  246. package/dist/types/api/getUserInfo.d.ts +0 -2
  247. package/dist/types/api/getUserInfo.d.ts.map +0 -1
  248. package/dist/types/client/provider.d.ts +0 -7
  249. package/dist/types/client/provider.d.ts.map +0 -1
  250. package/dist/types/client/request.d.ts +0 -3
  251. package/dist/types/client/request.d.ts.map +0 -1
@@ -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":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types.ts"],"sourcesContent":["import type { NextRequest } from 'next/server';\n\nexport 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 user: User | 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\nexport type IgnoredRoutesParam =\n | Array<RegExp | string>\n | RegExp\n | string\n | ((req: NextRequest) => boolean);\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
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,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,51 @@
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
+ injectSSRStateIntoObject: () => injectSSRStateIntoObject
24
+ });
25
+ module.exports = __toCommonJS(initial_exports);
26
+ var import_headers = require("next/headers");
27
+ var import_constants = require("../constants");
28
+ var import_http = require("./http");
29
+ const initialState = async () => {
30
+ var _a;
31
+ const cookiesStore = (0, import_headers.cookies)();
32
+ const userId = ((_a = cookiesStore.get(import_constants.constants.Cookies.User)) == null ? void 0 : _a.value) || null;
33
+ let user = null;
34
+ if (userId) {
35
+ user = await import_http.client.users.getUser(userId);
36
+ }
37
+ return {
38
+ userId,
39
+ user
40
+ };
41
+ };
42
+ const injectSSRStateIntoObject = (obj, authObject) => {
43
+ const __clerk_ssr_state = process.env.NODE_ENV !== "production" ? JSON.parse(JSON.stringify({ ...authObject })) : { ...authObject };
44
+ return { ...obj, __clerk_ssr_state };
45
+ };
46
+ // Annotate the CommonJS export names for ESM import in node:
47
+ 0 && (module.exports = {
48
+ initialState,
49
+ injectSSRStateIntoObject
50
+ });
51
+ //# 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\nexport const injectSSRStateIntoObject = <O, T>(obj: O, authObject: T) => {\n // Serializing the state on dev env is a temp workaround for the following issue:\n // https://github.com/vercel/next.js/discussions/11209|Next.js\n const __clerk_ssr_state = (\n process.env.NODE_ENV !== 'production'\n ? JSON.parse(JSON.stringify({ ...authObject }))\n : { ...authObject }\n ) as T;\n return { ...obj, __clerk_ssr_state };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;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;AAEO,MAAM,2BAA2B,CAAO,KAAQ,eAAkB;AAGvE,QAAM,oBACJ,QAAQ,IAAI,aAAa,eACrB,KAAK,MAAM,KAAK,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC,IAC5C,EAAE,GAAG,WAAW;AAEtB,SAAO,EAAE,GAAG,KAAK,kBAAkB;AACrC;","names":[]}
package/dist/cjs/utils.js CHANGED
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var utils_exports = {};
20
20
  __export(utils_exports, {
21
+ mergePreDefinedOptions: () => mergePreDefinedOptions,
21
22
  paths: () => paths
22
23
  });
23
24
  module.exports = __toCommonJS(utils_exports);
@@ -35,8 +36,17 @@ ${e.message}`
35
36
  }
36
37
  }
37
38
  };
39
+ function mergePreDefinedOptions(preDefinedOptions, options) {
40
+ return Object.keys(preDefinedOptions).reduce(
41
+ (obj, key) => {
42
+ return { ...obj, [key]: options[key] || obj[key] };
43
+ },
44
+ { ...preDefinedOptions }
45
+ );
46
+ }
38
47
  // Annotate the CommonJS export names for ESM import in node:
39
48
  0 && (module.exports = {
49
+ mergePreDefinedOptions,
40
50
  paths
41
51
  });
42
52
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { pathToRegexp } from \"path-to-regexp\";\n\nexport const paths = {\n toRegexp: (path: string) => {\n try {\n return pathToRegexp(path);\n } catch (e: any) {\n throw new Error(\n `Invalid path: ${path}.\\nConsult the documentation of path-to-regexp here: https://github.com/pillarjs/path-to-regexp\\n${e.message}`,\n );\n }\n },\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAA6B;AAEtB,MAAM,QAAQ;AAAA,EACnB,UAAU,CAAC,SAAiB;AAC1B,QAAI;AACF,iBAAO,oCAAa,IAAI;AAAA,IAC1B,SAAS,GAAQ;AACf,YAAM,IAAI;AAAA,QACR,iBAAiB,IAAI;AAAA;AAAA,EAAoG,EAAE,OAAO;AAAA,MACpI;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { pathToRegexp } from 'path-to-regexp';\n\nexport const paths = {\n toRegexp: (path: string) => {\n try {\n return pathToRegexp(path);\n } catch (e: any) {\n throw new Error(\n `Invalid path: ${path}.\\nConsult the documentation of path-to-regexp here: https://github.com/pillarjs/path-to-regexp\\n${e.message}`\n );\n }\n },\n};\n\nexport function mergePreDefinedOptions<T extends Record<string, any>>(\n preDefinedOptions: T,\n options: Partial<T>\n): T {\n return Object.keys(preDefinedOptions).reduce(\n (obj: T, key: string) => {\n return { ...obj, [key]: options[key] || obj[key] };\n },\n { ...preDefinedOptions }\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAA6B;AAEtB,MAAM,QAAQ;AAAA,EACnB,UAAU,CAAC,SAAiB;AAC1B,QAAI;AACF,iBAAO,oCAAa,IAAI;AAAA,IAC1B,SAAS,GAAQ;AACf,YAAM,IAAI;AAAA,QACR,iBAAiB,IAAI;AAAA;AAAA,EAAoG,EAAE,OAAO;AAAA,MACpI;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,uBACd,mBACA,SACG;AACH,SAAO,OAAO,KAAK,iBAAiB,EAAE;AAAA,IACpC,CAAC,KAAQ,QAAgB;AACvB,aAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,QAAQ,GAAG,KAAK,IAAI,GAAG,EAAE;AAAA,IACnD;AAAA,IACA,EAAE,GAAG,kBAAkB;AAAA,EACzB;AACF;","names":[]}
@@ -0,0 +1,14 @@
1
+ class AbstractAPI {
2
+ constructor(request) {
3
+ this.request = request;
4
+ }
5
+ requireId(id) {
6
+ if (!id) {
7
+ throw new Error("A valid resource ID is required.");
8
+ }
9
+ }
10
+ }
11
+ export {
12
+ AbstractAPI
13
+ };
14
+ //# sourceMappingURL=AbstractApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/api/endpoints/AbstractApi.ts"],"sourcesContent":["import type { RequestFunction } from '../request';\n\nexport abstract class AbstractAPI {\n constructor(protected request: RequestFunction) {}\n\n protected requireId(id: string) {\n if (!id) {\n throw new Error('A valid resource ID is required.');\n }\n }\n}\n"],"mappings":"AAEO,MAAe,YAAY;AAAA,EAChC,YAAsB,SAA0B;AAA1B;AAAA,EAA2B;AAAA,EAEvC,UAAU,IAAY;AAC9B,QAAI,CAAC,IAAI;AACP,YAAM,IAAI,MAAM,kCAAkC;AAAA,IACpD;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,16 @@
1
+ import { joinPaths } from "../../utils/path";
2
+ import { AbstractAPI } from "./AbstractApi";
3
+ const basePath = "/user";
4
+ class UserAPI extends AbstractAPI {
5
+ async getUser(userId) {
6
+ this.requireId(userId);
7
+ return this.request({
8
+ method: "GET",
9
+ path: joinPaths(basePath, userId)
10
+ });
11
+ }
12
+ }
13
+ export {
14
+ UserAPI
15
+ };
16
+ //# sourceMappingURL=UserApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/api/endpoints/UserApi.ts"],"sourcesContent":["import { joinPaths } from '../../utils/path';\nimport { AbstractAPI } from './AbstractApi';\nimport { User } from '../../types';\n\nconst basePath = '/user';\n\nexport class UserAPI extends AbstractAPI {\n public async getUser(userId: string) {\n this.requireId(userId);\n return this.request<User>({\n method: 'GET',\n path: joinPaths(basePath, userId),\n });\n }\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAG5B,MAAM,WAAW;AAEV,MAAM,gBAAgB,YAAY;AAAA,EACvC,MAAa,QAAQ,QAAgB;AACnC,SAAK,UAAU,MAAM;AACrB,WAAO,KAAK,QAAc;AAAA,MACxB,QAAQ;AAAA,MACR,MAAM,UAAU,UAAU,MAAM;AAAA,IAClC,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,7 @@
1
+ import { AbstractAPI } from "./AbstractApi";
2
+ import { UserAPI } from "./UserApi";
3
+ export {
4
+ AbstractAPI,
5
+ UserAPI
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/api/endpoints/index.ts"],"sourcesContent":["export { AbstractAPI } from './AbstractApi';\nexport { UserAPI } from './UserApi';\n"],"mappings":"AAAA,SAAS,mBAAmB;AAC5B,SAAS,eAAe;","names":[]}
@@ -0,0 +1,35 @@
1
+ import { mergePreDefinedOptions } from "../utils";
2
+ import { UserAPI } from "./endpoints";
3
+ import { buildRequest } from "./request";
4
+ import { authenticateRequest as authenticateRequestOriginal } from "../tokens/request";
5
+ const defaultOptions = {
6
+ secretKey: "",
7
+ publishableKey: ""
8
+ };
9
+ function createBackendApiClient(options) {
10
+ const request = buildRequest(options);
11
+ return {
12
+ users: new UserAPI(request)
13
+ };
14
+ }
15
+ function createAuthenticateRequest(params) {
16
+ const buildTimeOptions = mergePreDefinedOptions(
17
+ defaultOptions,
18
+ params.options
19
+ );
20
+ const authenticateRequest = (request, options = {}) => {
21
+ const runTimeOptions = mergePreDefinedOptions(buildTimeOptions, options);
22
+ return authenticateRequestOriginal(request, {
23
+ ...options,
24
+ ...runTimeOptions
25
+ });
26
+ };
27
+ return {
28
+ authenticateRequest
29
+ };
30
+ }
31
+ export {
32
+ createAuthenticateRequest,
33
+ createBackendApiClient
34
+ };
35
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/api/factory.ts"],"sourcesContent":["import { mergePreDefinedOptions } from '../utils';\nimport { UserAPI } from './endpoints';\nimport { buildRequest } from './request';\nimport { authenticateRequest as authenticateRequestOriginal } from '../tokens/request';\n\nexport type CreateBackendApiOptions = Parameters<typeof buildRequest>[0];\n\nexport type ApiClient = ReturnType<typeof createBackendApiClient>;\n\nexport type AuthenticateRequestOptions = {\n secretKey?: string;\n publishableKey?: string;\n domain?: string;\n isSatellite?: boolean;\n proxyUrl?: string;\n signInUrl?: string;\n signUpUrl?: string;\n afterSignInUrl?: string;\n afterSignUpUrl?: string;\n};\n\ntype BuildTimeOptions = {\n secretKey?: string;\n publishableKey?: string;\n signInUrl?: string;\n signUpUrl?: string;\n afterSignInUrl?: string;\n afterSignUpUrl?: string;\n};\n\nconst defaultOptions = {\n secretKey: '',\n publishableKey: '',\n} satisfies BuildTimeOptions;\n\nexport type CreateAuthenticateRequestOptions = {\n options: BuildTimeOptions;\n apiClient: ApiClient;\n};\n\nexport function createBackendApiClient(options: CreateBackendApiOptions) {\n const request = buildRequest(options);\n\n return {\n users: new UserAPI(request),\n };\n}\n\nexport function createAuthenticateRequest(\n params: CreateAuthenticateRequestOptions\n) {\n const buildTimeOptions = mergePreDefinedOptions(\n defaultOptions,\n params.options\n );\n\n const authenticateRequest = (\n request: Request,\n options: BuildTimeOptions = {}\n ) => {\n const runTimeOptions = mergePreDefinedOptions(buildTimeOptions, options);\n return authenticateRequestOriginal(request, {\n ...options,\n ...runTimeOptions,\n });\n };\n\n return {\n authenticateRequest,\n };\n}\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC,SAAS,eAAe;AACxB,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB,mCAAmC;AA2BnE,MAAM,iBAAiB;AAAA,EACrB,WAAW;AAAA,EACX,gBAAgB;AAClB;AAOO,SAAS,uBAAuB,SAAkC;AACvE,QAAM,UAAU,aAAa,OAAO;AAEpC,SAAO;AAAA,IACL,OAAO,IAAI,QAAQ,OAAO;AAAA,EAC5B;AACF;AAEO,SAAS,0BACd,QACA;AACA,QAAM,mBAAmB;AAAA,IACvB;AAAA,IACA,OAAO;AAAA,EACT;AAEA,QAAM,sBAAsB,CAC1B,SACA,UAA4B,CAAC,MAC1B;AACH,UAAM,iBAAiB,uBAAuB,kBAAkB,OAAO;AACvE,WAAO,4BAA4B,SAAS;AAAA,MAC1C,GAAG;AAAA,MACH,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,63 @@
1
+ import { joinPaths } from "../utils/path";
2
+ import { API_URL, API_VERSION, constants } from "../constants";
3
+ import { assertValidSecretKey } from "../utils/assertValidSecretKey";
4
+ import snakecaseKeys from "snakecase-keys";
5
+ function buildRequest(options) {
6
+ const requestFn = async (requestOptions) => {
7
+ var _a;
8
+ const { secretKey, apiUrl = API_URL, apiVersion = API_VERSION } = options;
9
+ const { path, method, queryParams, headerParams, bodyParams, formData } = requestOptions;
10
+ assertValidSecretKey(secretKey);
11
+ const url = joinPaths(apiUrl, apiVersion, path);
12
+ const finalUrl = new URL(url);
13
+ if (queryParams) {
14
+ const snakecasedQueryParams = snakecaseKeys({ ...queryParams });
15
+ for (const [key, val] of Object.entries(snakecasedQueryParams)) {
16
+ if (val) {
17
+ [val].flat().forEach((v) => finalUrl.searchParams.append(key, v));
18
+ }
19
+ }
20
+ }
21
+ const headers = {
22
+ Authorization: `Bearer ${secretKey}`,
23
+ ...headerParams
24
+ };
25
+ let res;
26
+ try {
27
+ if (formData) {
28
+ res = await fetch(finalUrl.href, {
29
+ method,
30
+ headers,
31
+ body: formData
32
+ });
33
+ } else {
34
+ headers["Content-Type"] = "application/json";
35
+ const hasBody = method !== "GET" && bodyParams && Object.keys(bodyParams).length > 0;
36
+ const body = hasBody ? { body: JSON.stringify(snakecaseKeys(bodyParams, { deep: false })) } : null;
37
+ res = await fetch(finalUrl.href, {
38
+ method,
39
+ headers,
40
+ ...body
41
+ });
42
+ }
43
+ const isJSONResponse = (res == null ? void 0 : res.headers) && ((_a = res.headers) == null ? void 0 : _a.get(constants.Headers.ContentType)) === constants.ContentTypes.Json;
44
+ const responseBody = isJSONResponse ? await res.json() : JSON.parse(await res.text());
45
+ if (!res.ok) {
46
+ return null;
47
+ }
48
+ return {
49
+ ...responseBody
50
+ };
51
+ } catch (err) {
52
+ if (err instanceof Error) {
53
+ return null;
54
+ }
55
+ return null;
56
+ }
57
+ };
58
+ return requestFn;
59
+ }
60
+ export {
61
+ buildRequest
62
+ };
63
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/api/request.ts"],"sourcesContent":["import { joinPaths } from '../utils/path';\nimport { API_URL, API_VERSION, constants } from '../constants';\nimport { assertValidSecretKey } from '../utils/assertValidSecretKey';\nimport snakecaseKeys from 'snakecase-keys';\n\ntype BuildRequestOptions = {\n /* Secret Key */\n secretKey?: string;\n /* Backend API URL */\n apiUrl?: string;\n /* Backend API version */\n apiVersion?: string;\n};\n\nexport type CabinIdBackendApiRequestOptions = {\n method: 'GET' | 'POST' | 'PATCH' | 'DELETE' | 'PUT';\n queryParams?: Record<string, unknown>;\n headerParams?: Record<string, string>;\n bodyParams?: Record<string, unknown>;\n formData?: FormData;\n} & (\n | {\n url: string;\n path?: string;\n }\n | {\n url?: string;\n path: string;\n }\n);\n\nexport type CabinIdBackendApiResponse<T> =\n | {\n data: T;\n errors: null;\n totalCount?: number;\n }\n | {\n data: null;\n errors: any;\n totalCount?: never;\n status?: number;\n statusText?: string;\n };\n\nexport type RequestFunction = ReturnType<typeof buildRequest>;\n\nexport function buildRequest(options: BuildRequestOptions) {\n const requestFn = async <T>(\n requestOptions: CabinIdBackendApiRequestOptions\n ): Promise<T | null> => {\n const { secretKey, apiUrl = API_URL, apiVersion = API_VERSION } = options;\n const { path, method, queryParams, headerParams, bodyParams, formData } =\n requestOptions;\n\n assertValidSecretKey(secretKey);\n\n const url = joinPaths(apiUrl, apiVersion, path);\n\n // Build final URL with search parameters\n const finalUrl = new URL(url);\n\n if (queryParams) {\n // Snakecase query parameters\n const snakecasedQueryParams = snakecaseKeys({ ...queryParams });\n\n // Support array values for queryParams such as { foo: [42, 43] }\n for (const [key, val] of Object.entries(snakecasedQueryParams)) {\n if (val) {\n [val]\n .flat()\n .forEach((v) => finalUrl.searchParams.append(key, v as string));\n }\n }\n }\n\n // Build headers\n const headers: Record<string, string> = {\n Authorization: `Bearer ${secretKey}`,\n ...headerParams,\n };\n\n let res: Response | undefined;\n try {\n if (formData) {\n res = await fetch(finalUrl.href, {\n method,\n headers,\n body: formData,\n });\n } else {\n // Enforce application/json for all non form-data requests\n headers['Content-Type'] = 'application/json';\n // Build body\n const hasBody =\n method !== 'GET' && bodyParams && Object.keys(bodyParams).length > 0;\n const body = hasBody\n ? { body: JSON.stringify(snakecaseKeys(bodyParams, { deep: false })) }\n : null;\n\n res = await fetch(finalUrl.href, {\n method,\n headers,\n ...body,\n });\n }\n\n // TODO: Parse JSON or Text response based on a response header\n const isJSONResponse =\n res?.headers &&\n res.headers?.get(constants.Headers.ContentType) ===\n constants.ContentTypes.Json;\n const responseBody = isJSONResponse\n ? await res.json()\n : JSON.parse(await res.text());\n\n if (!res.ok) {\n return null;\n }\n return {\n ...responseBody,\n };\n } catch (err) {\n if (err instanceof Error) {\n return null;\n }\n\n return null;\n }\n };\n\n return requestFn;\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAC1B,SAAS,SAAS,aAAa,iBAAiB;AAChD,SAAS,4BAA4B;AACrC,OAAO,mBAAmB;AA4CnB,SAAS,aAAa,SAA8B;AACzD,QAAM,YAAY,OAChB,mBACsB;AAlD1B;AAmDI,UAAM,EAAE,WAAW,SAAS,SAAS,aAAa,YAAY,IAAI;AAClE,UAAM,EAAE,MAAM,QAAQ,aAAa,cAAc,YAAY,SAAS,IACpE;AAEF,yBAAqB,SAAS;AAE9B,UAAM,MAAM,UAAU,QAAQ,YAAY,IAAI;AAG9C,UAAM,WAAW,IAAI,IAAI,GAAG;AAE5B,QAAI,aAAa;AAEf,YAAM,wBAAwB,cAAc,EAAE,GAAG,YAAY,CAAC;AAG9D,iBAAW,CAAC,KAAK,GAAG,KAAK,OAAO,QAAQ,qBAAqB,GAAG;AAC9D,YAAI,KAAK;AACP,WAAC,GAAG,EACD,KAAK,EACL,QAAQ,CAAC,MAAM,SAAS,aAAa,OAAO,KAAK,CAAW,CAAC;AAAA,QAClE;AAAA,MACF;AAAA,IACF;AAGA,UAAM,UAAkC;AAAA,MACtC,eAAe,UAAU,SAAS;AAAA,MAClC,GAAG;AAAA,IACL;AAEA,QAAI;AACJ,QAAI;AACF,UAAI,UAAU;AACZ,cAAM,MAAM,MAAM,SAAS,MAAM;AAAA,UAC/B;AAAA,UACA;AAAA,UACA,MAAM;AAAA,QACR,CAAC;AAAA,MACH,OAAO;AAEL,gBAAQ,cAAc,IAAI;AAE1B,cAAM,UACJ,WAAW,SAAS,cAAc,OAAO,KAAK,UAAU,EAAE,SAAS;AACrE,cAAM,OAAO,UACT,EAAE,MAAM,KAAK,UAAU,cAAc,YAAY,EAAE,MAAM,MAAM,CAAC,CAAC,EAAE,IACnE;AAEJ,cAAM,MAAM,MAAM,SAAS,MAAM;AAAA,UAC/B;AAAA,UACA;AAAA,UACA,GAAG;AAAA,QACL,CAAC;AAAA,MACH;AAGA,YAAM,kBACJ,2BAAK,cACL,SAAI,YAAJ,mBAAa,IAAI,UAAU,QAAQ,kBACjC,UAAU,aAAa;AAC3B,YAAM,eAAe,iBACjB,MAAM,IAAI,KAAK,IACf,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC;AAE/B,UAAI,CAAC,IAAI,IAAI;AACX,eAAO;AAAA,MACT;AACA,aAAO;AAAA,QACL,GAAG;AAAA,MACL;AAAA,IACF,SAAS,KAAK;AACZ,UAAI,eAAe,OAAO;AACxB,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -1,4 +1,4 @@
1
- import { CabinIDProvider } from "./client/provider";
1
+ import { CabinIDProvider } from "./provider/main.provider";
2
2
  import { useUser } from "./hooks";
3
3
  export {
4
4
  CabinIDProvider,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/component.client.ts"],"sourcesContent":["export { CabinIDProvider } from './client/provider';\nexport { useUser } from './hooks';\n"],"mappings":"AAAA,SAAS,uBAAuB;AAChC,SAAS,eAAe;","names":[]}
1
+ {"version":3,"sources":["../../src/component.client.ts"],"sourcesContent":["export { CabinIDProvider } from './provider/main.provider';\nexport { useUser } from './hooks';\n"],"mappings":"AAAA,SAAS,uBAAuB;AAChC,SAAS,eAAe;","names":[]}
@@ -1,5 +1,7 @@
1
1
  import { auth } from "./server/auth";
2
+ import { createRouteMatcher } from "./server/routeMatcher";
2
3
  export {
3
- auth
4
+ auth,
5
+ createRouteMatcher
4
6
  };
5
7
  //# sourceMappingURL=component.server.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/component.server.ts"],"sourcesContent":["export { auth } from './server/auth';\n"],"mappings":"AAAA,SAAS,YAAY;","names":[]}
1
+ {"version":3,"sources":["../../src/component.server.ts"],"sourcesContent":["export { auth } from './server/auth';\nexport { createRouteMatcher } from './server/routeMatcher';\n"],"mappings":"AAAA,SAAS,YAAY;AACrB,SAAS,0BAA0B;","names":[]}
@@ -1,13 +1,22 @@
1
- import React from "react";
1
+ "use client";
2
+ import React, { useEffect, useState } from "react";
2
3
  import { CabinLogo } from "../icons/logo";
3
- import { CUSTOM_AFTER_SIGN_IN_URL, frontendApi } from "../constants";
4
+ import { AFTER_SIGN_IN_URL, frontendApi } from "../constants";
4
5
  const SignInButton = () => {
5
- const signInUrl = React.useMemo(() => {
6
- const params = new URLSearchParams({
7
- redirect_url: CUSTOM_AFTER_SIGN_IN_URL || "/"
8
- });
9
- return frontendApi ? `http://${frontendApi}/sign-in?${params.toString()}` : "#";
10
- }, [frontendApi, CUSTOM_AFTER_SIGN_IN_URL]);
6
+ const [signInUrl, setSignInUrl] = useState("#");
7
+ useEffect(() => {
8
+ if (typeof window !== "undefined") {
9
+ const origin = typeof window === "undefined" ? null : window.origin;
10
+ if (!origin) {
11
+ return;
12
+ }
13
+ const params = new URLSearchParams({
14
+ redirect_url: `${origin}${AFTER_SIGN_IN_URL}` || "/"
15
+ });
16
+ const signInUrlTemp = frontendApi ? `https://${frontendApi}/sign-in?${params.toString()}` : "#";
17
+ setSignInUrl(signInUrlTemp);
18
+ }
19
+ }, []);
11
20
  return /* @__PURE__ */ React.createElement(
12
21
  "a",
13
22
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SignInButton.tsx"],"sourcesContent":["import React from 'react';\nimport { CabinLogo } from '../icons/logo';\nimport { CUSTOM_AFTER_SIGN_IN_URL, frontendApi } from '../constants';\n\nexport const SignInButton = () => {\n const signInUrl = React.useMemo(() => {\n const params = new URLSearchParams({\n redirect_url: CUSTOM_AFTER_SIGN_IN_URL || '/',\n });\n return frontendApi\n ? `http://${frontendApi}/sign-in?${params.toString()}`\n : '#';\n }, [frontendApi, CUSTOM_AFTER_SIGN_IN_URL]);\n\n return (\n <a\n href={signInUrl}\n className=\"max-w-48 pl-2 py-2 pr-4 bg-blue-600 rounded-full flex flex-row space-x-2 items-center hover:opacity-90 active:bg-blue-700\"\n >\n <CabinLogo />\n <span className=\"text-white text-sm\">Continue to CabinID</span>\n </a>\n );\n};\n"],"mappings":"AAAA,OAAO,WAAW;AAClB,SAAS,iBAAiB;AAC1B,SAAS,0BAA0B,mBAAmB;AAE/C,MAAM,eAAe,MAAM;AAChC,QAAM,YAAY,MAAM,QAAQ,MAAM;AACpC,UAAM,SAAS,IAAI,gBAAgB;AAAA,MACjC,cAAc,4BAA4B;AAAA,IAC5C,CAAC;AACD,WAAO,cACH,UAAU,WAAW,YAAY,OAAO,SAAS,CAAC,KAClD;AAAA,EACN,GAAG,CAAC,aAAa,wBAAwB,CAAC;AAE1C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,WAAU;AAAA;AAAA,IAEV,oCAAC,eAAU;AAAA,IACX,oCAAC,UAAK,WAAU,wBAAqB,qBAAmB;AAAA,EAC1D;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/SignInButton.tsx"],"sourcesContent":["'use client';\n\nimport React, { useEffect, useState } from 'react';\nimport { CabinLogo } from '../icons/logo';\nimport { AFTER_SIGN_IN_URL, frontendApi } from '../constants';\n\nexport const SignInButton = () => {\n const [signInUrl, setSignInUrl] = useState('#');\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n const origin = typeof window === 'undefined' ? null : window.origin;\n if (!origin) {\n return;\n }\n const params = new URLSearchParams({\n redirect_url: `${origin}${AFTER_SIGN_IN_URL}` || '/',\n });\n const signInUrlTemp = frontendApi\n ? `https://${frontendApi}/sign-in?${params.toString()}`\n : '#';\n setSignInUrl(signInUrlTemp);\n }\n }, []);\n\n return (\n <a\n href={signInUrl}\n className=\"max-w-48 pl-2 py-2 pr-4 bg-blue-600 rounded-full flex flex-row space-x-2 items-center hover:opacity-90 active:bg-blue-700\"\n >\n <CabinLogo />\n <span className=\"text-white text-sm\">Continue to CabinID</span>\n </a>\n );\n};\n"],"mappings":";AAEA,OAAO,SAAS,WAAW,gBAAgB;AAC3C,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB,mBAAmB;AAExC,MAAM,eAAe,MAAM;AAChC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,GAAG;AAE9C,YAAU,MAAM;AACd,QAAI,OAAO,WAAW,aAAa;AACjC,YAAM,SAAS,OAAO,WAAW,cAAc,OAAO,OAAO;AAC7D,UAAI,CAAC,QAAQ;AACX;AAAA,MACF;AACA,YAAM,SAAS,IAAI,gBAAgB;AAAA,QACjC,cAAc,GAAG,MAAM,GAAG,iBAAiB,MAAM;AAAA,MACnD,CAAC;AACD,YAAM,gBAAgB,cAClB,WAAW,WAAW,YAAY,OAAO,SAAS,CAAC,KACnD;AACJ,mBAAa,aAAa;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,WAAU;AAAA;AAAA,IAEV,oCAAC,eAAU;AAAA,IACX,oCAAC,UAAK,WAAU,wBAAqB,qBAAmB;AAAA,EAC1D;AAEJ;","names":[]}
@@ -4,19 +4,19 @@ const API_URL = "https://api.cabinid.dev/";
4
4
  const API_VERSION = "v1";
5
5
  const PUBLISHABLE_KEY = process.env.NEXT_PUBLIC_CABIN_ID_PUBLISH_KEY || "";
6
6
  const SECRET_KEY = process.env.CABIN_ID_SECRET_KEY || "";
7
- const CUSTOM_SIGN_IN_URL = process.env.NEXT_PUBLIC_CABIN_ID_SIGN_IN_URL || "";
8
- const CUSTOM_SIGN_Up_URL = process.env.NEXT_PUBLIC_CABIN_ID_SIGN_UP_URL || "";
9
- const CUSTOM_AFTER_SIGN_IN_URL = process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_IN_URL || "";
10
- const CUSTOM_AFTER_SIGN_UP_URL = process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_UP_URL || "";
7
+ const SIGN_IN_URL = process.env.NEXT_PUBLIC_CABIN_ID_SIGN_IN_URL || "";
8
+ const SIGN_UP_URL = process.env.NEXT_PUBLIC_CABIN_ID_SIGN_UP_URL || "";
9
+ const AFTER_SIGN_IN_URL = process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_IN_URL || "";
10
+ const AFTER_SIGN_UP_URL = process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_UP_URL || "";
11
11
  const baseApiUrl = joinPaths(API_URL, API_VERSION);
12
12
  const frontendApi = parsePublishableKey(PUBLISHABLE_KEY);
13
13
  const Attributes = {
14
- AuthToken: "__clerkAuthToken",
15
- AuthSignature: "__clerkAuthSignature",
16
- AuthStatus: "__clerkAuthStatus",
17
- AuthReason: "__clerkAuthReason",
18
- AuthMessage: "__clerkAuthMessage",
19
- ClerkUrl: "__clerkUrl"
14
+ AuthToken: "__cabinIdAuthToken",
15
+ AuthSignature: "__cabinIdAuthSignature",
16
+ AuthStatus: "__cabinIdAuthStatus",
17
+ AuthReason: "__cabinIdAuthReason",
18
+ AuthMessage: "__cabinIdAuthMessage",
19
+ CabinIdUrl: "__cabinIdUrl"
20
20
  };
21
21
  const Cookies = {
22
22
  Session: "__session",
@@ -25,7 +25,8 @@ const Cookies = {
25
25
  };
26
26
  const QueryParams = {
27
27
  UserId: "user_id",
28
- Token: "token"
28
+ Token: "token",
29
+ CabinIdRedirectUrl: "__cabin_id_redirect_url"
29
30
  };
30
31
  const Headers = {
31
32
  AuthToken: "x-cabin-id-auth-token",
@@ -72,14 +73,14 @@ const constants = {
72
73
  NextHeaders
73
74
  };
74
75
  export {
76
+ AFTER_SIGN_IN_URL,
77
+ AFTER_SIGN_UP_URL,
75
78
  API_URL,
76
79
  API_VERSION,
77
- CUSTOM_AFTER_SIGN_IN_URL,
78
- CUSTOM_AFTER_SIGN_UP_URL,
79
- CUSTOM_SIGN_IN_URL,
80
- CUSTOM_SIGN_Up_URL,
81
80
  PUBLISHABLE_KEY,
82
81
  SECRET_KEY,
82
+ SIGN_IN_URL,
83
+ SIGN_UP_URL,
83
84
  baseApiUrl,
84
85
  constants,
85
86
  frontendApi
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants.ts"],"sourcesContent":["import { parsePublishableKey } from './utils/key';\nimport { joinPaths } from './utils/path';\n\nexport const API_URL = 'https://api.cabinid.dev/';\n// export const API_URL = 'http://localhost:3001/';\nexport const API_VERSION = 'v1';\nexport const PUBLISHABLE_KEY =\n process.env.NEXT_PUBLIC_CABIN_ID_PUBLISH_KEY! || '';\nexport const SECRET_KEY = process.env.CABIN_ID_SECRET_KEY! || '';\nexport const CUSTOM_SIGN_IN_URL =\n process.env.NEXT_PUBLIC_CABIN_ID_SIGN_IN_URL! || '';\nexport const CUSTOM_SIGN_Up_URL =\n process.env.NEXT_PUBLIC_CABIN_ID_SIGN_UP_URL! || '';\nexport const CUSTOM_AFTER_SIGN_IN_URL =\n process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_IN_URL || '';\nexport const CUSTOM_AFTER_SIGN_UP_URL =\n process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_UP_URL || '';\n\nexport const baseApiUrl = joinPaths(API_URL, API_VERSION);\nexport const frontendApi = parsePublishableKey(PUBLISHABLE_KEY);\n\nconst Attributes = {\n AuthToken: '__clerkAuthToken',\n AuthSignature: '__clerkAuthSignature',\n AuthStatus: '__clerkAuthStatus',\n AuthReason: '__clerkAuthReason',\n AuthMessage: '__clerkAuthMessage',\n ClerkUrl: '__clerkUrl',\n} as const;\n\nconst Cookies = {\n Session: '__session',\n Client: '__client',\n User: '__user',\n} as const;\n\nconst QueryParams = {\n UserId: 'user_id',\n Token: 'token',\n} as const;\n\nconst Headers = {\n AuthToken: 'x-cabin-id-auth-token',\n AuthSignature: 'x-cabin-id-auth-signature',\n AuthStatus: 'x-cabin-id-auth-status',\n AuthReason: 'x-cabin-id-auth-reason',\n AuthMessage: 'x-cabin-id-auth-message',\n CabinIdUrl: 'x-cabin-id-cabin-id-url',\n EnableDebug: 'x-cabin-id-debug',\n CabinIdRedirectTo: 'x-cabin-id-redirect-to',\n CloudFrontForwardedProto: 'cloudfront-forwarded-proto',\n Authorization: 'authorization',\n ForwardedPort: 'x-forwarded-port',\n ForwardedProto: 'x-forwarded-proto',\n ForwardedHost: 'x-forwarded-host',\n Accept: 'accept',\n Referrer: 'referer',\n UserAgent: 'user-agent',\n Origin: 'origin',\n Host: 'host',\n ContentType: 'content-type',\n SecFetchDest: 'sec-fetch-dest',\n Location: 'location',\n} as const;\n\nconst ContentTypes = {\n Json: 'application/json',\n} as const;\n\nconst NextHeaders = {\n NextRewrite: 'x-middleware-rewrite',\n NextResume: 'x-middleware-next',\n NextRedirect: 'Location',\n // Used by next to identify internal navigation for app router\n NextUrl: 'next-url',\n NextAction: 'next-action',\n // Used by next to identify internal navigation for pages router\n NextjsData: 'x-nextjs-data',\n} as const;\n\n/**\n * @internal\n */\nexport const constants = {\n Attributes,\n Cookies,\n Headers,\n ContentTypes,\n QueryParams,\n NextHeaders,\n} as const;\n\nexport type Constants = typeof constants;\n"],"mappings":"AAAA,SAAS,2BAA2B;AACpC,SAAS,iBAAiB;AAEnB,MAAM,UAAU;AAEhB,MAAM,cAAc;AACpB,MAAM,kBACX,QAAQ,IAAI,oCAAqC;AAC5C,MAAM,aAAa,QAAQ,IAAI,uBAAwB;AACvD,MAAM,qBACX,QAAQ,IAAI,oCAAqC;AAC5C,MAAM,qBACX,QAAQ,IAAI,oCAAqC;AAC5C,MAAM,2BACX,QAAQ,IAAI,0CAA0C;AACjD,MAAM,2BACX,QAAQ,IAAI,0CAA0C;AAEjD,MAAM,aAAa,UAAU,SAAS,WAAW;AACjD,MAAM,cAAc,oBAAoB,eAAe;AAE9D,MAAM,aAAa;AAAA,EACjB,WAAW;AAAA,EACX,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,UAAU;AACZ;AAEA,MAAM,UAAU;AAAA,EACd,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AACR;AAEA,MAAM,cAAc;AAAA,EAClB,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,MAAM,UAAU;AAAA,EACd,WAAW;AAAA,EACX,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,0BAA0B;AAAA,EAC1B,eAAe;AAAA,EACf,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AAAA,EACb,cAAc;AAAA,EACd,UAAU;AACZ;AAEA,MAAM,eAAe;AAAA,EACnB,MAAM;AACR;AAEA,MAAM,cAAc;AAAA,EAClB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA;AAAA,EAEd,SAAS;AAAA,EACT,YAAY;AAAA;AAAA,EAEZ,YAAY;AACd;AAKO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/constants.ts"],"sourcesContent":["import { parsePublishableKey } from './utils/key';\nimport { joinPaths } from './utils/path';\n\nexport const API_URL = 'https://api.cabinid.dev/';\n// export const API_URL = 'http://localhost:3001/';\nexport const API_VERSION = 'v1';\nexport const PUBLISHABLE_KEY =\n process.env.NEXT_PUBLIC_CABIN_ID_PUBLISH_KEY! || '';\nexport const SECRET_KEY = process.env.CABIN_ID_SECRET_KEY! || '';\nexport const SIGN_IN_URL =\n process.env.NEXT_PUBLIC_CABIN_ID_SIGN_IN_URL! || '';\nexport const SIGN_UP_URL =\n process.env.NEXT_PUBLIC_CABIN_ID_SIGN_UP_URL! || '';\nexport const AFTER_SIGN_IN_URL =\n process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_IN_URL || '';\nexport const AFTER_SIGN_UP_URL =\n process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_UP_URL || '';\n\nexport const baseApiUrl = joinPaths(API_URL, API_VERSION);\nexport const frontendApi = parsePublishableKey(PUBLISHABLE_KEY);\n\nconst Attributes = {\n AuthToken: '__cabinIdAuthToken',\n AuthSignature: '__cabinIdAuthSignature',\n AuthStatus: '__cabinIdAuthStatus',\n AuthReason: '__cabinIdAuthReason',\n AuthMessage: '__cabinIdAuthMessage',\n CabinIdUrl: '__cabinIdUrl',\n} as const;\n\nconst Cookies = {\n Session: '__session',\n Client: '__client',\n User: '__user',\n} as const;\n\nconst QueryParams = {\n UserId: 'user_id',\n Token: 'token',\n CabinIdRedirectUrl: '__cabin_id_redirect_url',\n} as const;\n\nconst Headers = {\n AuthToken: 'x-cabin-id-auth-token',\n AuthSignature: 'x-cabin-id-auth-signature',\n AuthStatus: 'x-cabin-id-auth-status',\n AuthReason: 'x-cabin-id-auth-reason',\n AuthMessage: 'x-cabin-id-auth-message',\n CabinIdUrl: 'x-cabin-id-cabin-id-url',\n EnableDebug: 'x-cabin-id-debug',\n CabinIdRedirectTo: 'x-cabin-id-redirect-to',\n CloudFrontForwardedProto: 'cloudfront-forwarded-proto',\n Authorization: 'authorization',\n ForwardedPort: 'x-forwarded-port',\n ForwardedProto: 'x-forwarded-proto',\n ForwardedHost: 'x-forwarded-host',\n Accept: 'accept',\n Referrer: 'referer',\n UserAgent: 'user-agent',\n Origin: 'origin',\n Host: 'host',\n ContentType: 'content-type',\n SecFetchDest: 'sec-fetch-dest',\n Location: 'location',\n} as const;\n\nconst ContentTypes = {\n Json: 'application/json',\n} as const;\n\nconst NextHeaders = {\n NextRewrite: 'x-middleware-rewrite',\n NextResume: 'x-middleware-next',\n NextRedirect: 'Location',\n // Used by next to identify internal navigation for app router\n NextUrl: 'next-url',\n NextAction: 'next-action',\n // Used by next to identify internal navigation for pages router\n NextjsData: 'x-nextjs-data',\n} as const;\n\n/**\n * @internal\n */\nexport const constants = {\n Attributes,\n Cookies,\n Headers,\n ContentTypes,\n QueryParams,\n NextHeaders,\n} as const;\n\nexport type Constants = typeof constants;\n"],"mappings":"AAAA,SAAS,2BAA2B;AACpC,SAAS,iBAAiB;AAEnB,MAAM,UAAU;AAEhB,MAAM,cAAc;AACpB,MAAM,kBACX,QAAQ,IAAI,oCAAqC;AAC5C,MAAM,aAAa,QAAQ,IAAI,uBAAwB;AACvD,MAAM,cACX,QAAQ,IAAI,oCAAqC;AAC5C,MAAM,cACX,QAAQ,IAAI,oCAAqC;AAC5C,MAAM,oBACX,QAAQ,IAAI,0CAA0C;AACjD,MAAM,oBACX,QAAQ,IAAI,0CAA0C;AAEjD,MAAM,aAAa,UAAU,SAAS,WAAW;AACjD,MAAM,cAAc,oBAAoB,eAAe;AAE9D,MAAM,aAAa;AAAA,EACjB,WAAW;AAAA,EACX,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AACd;AAEA,MAAM,UAAU;AAAA,EACd,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AACR;AAEA,MAAM,cAAc;AAAA,EAClB,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,oBAAoB;AACtB;AAEA,MAAM,UAAU;AAAA,EACd,WAAW;AAAA,EACX,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,0BAA0B;AAAA,EAC1B,eAAe;AAAA,EACf,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AAAA,EACb,cAAc;AAAA,EACd,UAAU;AACZ;AAEA,MAAM,eAAe;AAAA,EACnB,MAAM;AACR;AAEA,MAAM,cAAc;AAAA,EAClB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA;AAAA,EAEd,SAAS;AAAA,EACT,YAAY;AAAA;AAAA,EAEZ,YAAY;AACd;AAKO,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}