@cabin-id/nextjs 0.1.7 → 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 -21
  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 -22
  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
@@ -16,27 +16,23 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var getUserInfo_exports = {};
20
- __export(getUserInfo_exports, {
21
- getUserInfo: () => getUserInfo
19
+ var AbstractApi_exports = {};
20
+ __export(AbstractApi_exports, {
21
+ AbstractAPI: () => AbstractAPI
22
22
  });
23
- module.exports = __toCommonJS(getUserInfo_exports);
24
- var import_constants = require("src/constants");
25
- const getUserInfo = async (accessToken) => {
26
- const res = await fetch(`${import_constants.baseApiUrl}/user/me`, {
27
- method: "GET",
28
- headers: {
29
- "Content-Type": "application/json",
30
- Authorization: `Bearer ${accessToken}`
23
+ module.exports = __toCommonJS(AbstractApi_exports);
24
+ class AbstractAPI {
25
+ constructor(request) {
26
+ this.request = request;
27
+ }
28
+ requireId(id) {
29
+ if (!id) {
30
+ throw new Error("A valid resource ID is required.");
31
31
  }
32
- });
33
- if (!res.ok) {
34
- return null;
35
32
  }
36
- return await res.json();
37
- };
33
+ }
38
34
  // Annotate the CommonJS export names for ESM import in node:
39
35
  0 && (module.exports = {
40
- getUserInfo
36
+ AbstractAPI
41
37
  });
42
- //# sourceMappingURL=getUserInfo.js.map
38
+ //# 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":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;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,40 @@
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 UserApi_exports = {};
20
+ __export(UserApi_exports, {
21
+ UserAPI: () => UserAPI
22
+ });
23
+ module.exports = __toCommonJS(UserApi_exports);
24
+ var import_path = require("../../utils/path");
25
+ var import_AbstractApi = require("./AbstractApi");
26
+ const basePath = "/user";
27
+ class UserAPI extends import_AbstractApi.AbstractAPI {
28
+ async getUser(userId) {
29
+ this.requireId(userId);
30
+ return this.request({
31
+ method: "GET",
32
+ path: (0, import_path.joinPaths)(basePath, userId)
33
+ });
34
+ }
35
+ }
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ UserAPI
39
+ });
40
+ //# 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;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA0B;AAC1B,yBAA4B;AAG5B,MAAM,WAAW;AAEV,MAAM,gBAAgB,+BAAY;AAAA,EACvC,MAAa,QAAQ,QAAgB;AACnC,SAAK,UAAU,MAAM;AACrB,WAAO,KAAK,QAAc;AAAA,MACxB,QAAQ;AAAA,MACR,UAAM,uBAAU,UAAU,MAAM;AAAA,IAClC,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,32 @@
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 endpoints_exports = {};
20
+ __export(endpoints_exports, {
21
+ AbstractAPI: () => import_AbstractApi.AbstractAPI,
22
+ UserAPI: () => import_UserApi.UserAPI
23
+ });
24
+ module.exports = __toCommonJS(endpoints_exports);
25
+ var import_AbstractApi = require("./AbstractApi");
26
+ var import_UserApi = require("./UserApi");
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ AbstractAPI,
30
+ UserAPI
31
+ });
32
+ //# 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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA4B;AAC5B,qBAAwB;","names":[]}
@@ -0,0 +1,60 @@
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 factory_exports = {};
20
+ __export(factory_exports, {
21
+ createAuthenticateRequest: () => createAuthenticateRequest,
22
+ createBackendApiClient: () => createBackendApiClient
23
+ });
24
+ module.exports = __toCommonJS(factory_exports);
25
+ var import_utils = require("../utils");
26
+ var import_endpoints = require("./endpoints");
27
+ var import_request = require("./request");
28
+ var import_request2 = require("../tokens/request");
29
+ const defaultOptions = {
30
+ secretKey: "",
31
+ publishableKey: ""
32
+ };
33
+ function createBackendApiClient(options) {
34
+ const request = (0, import_request.buildRequest)(options);
35
+ return {
36
+ users: new import_endpoints.UserAPI(request)
37
+ };
38
+ }
39
+ function createAuthenticateRequest(params) {
40
+ const buildTimeOptions = (0, import_utils.mergePreDefinedOptions)(
41
+ defaultOptions,
42
+ params.options
43
+ );
44
+ const authenticateRequest = (request, options = {}) => {
45
+ const runTimeOptions = (0, import_utils.mergePreDefinedOptions)(buildTimeOptions, options);
46
+ return (0, import_request2.authenticateRequest)(request, {
47
+ ...options,
48
+ ...runTimeOptions
49
+ });
50
+ };
51
+ return {
52
+ authenticateRequest
53
+ };
54
+ }
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ createAuthenticateRequest,
58
+ createBackendApiClient
59
+ });
60
+ //# 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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuC;AACvC,uBAAwB;AACxB,qBAA6B;AAC7B,IAAAA,kBAAmE;AA2BnE,MAAM,iBAAiB;AAAA,EACrB,WAAW;AAAA,EACX,gBAAgB;AAClB;AAOO,SAAS,uBAAuB,SAAkC;AACvE,QAAM,cAAU,6BAAa,OAAO;AAEpC,SAAO;AAAA,IACL,OAAO,IAAI,yBAAQ,OAAO;AAAA,EAC5B;AACF;AAEO,SAAS,0BACd,QACA;AACA,QAAM,uBAAmB;AAAA,IACvB;AAAA,IACA,OAAO;AAAA,EACT;AAEA,QAAM,sBAAsB,CAC1B,SACA,UAA4B,CAAC,MAC1B;AACH,UAAM,qBAAiB,qCAAuB,kBAAkB,OAAO;AACvE,eAAO,gBAAAC,qBAA4B,SAAS;AAAA,MAC1C,GAAG;AAAA,MACH,GAAG;AAAA,IACL,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL;AAAA,EACF;AACF;","names":["import_request","authenticateRequestOriginal"]}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var request_exports = {};
30
+ __export(request_exports, {
31
+ buildRequest: () => buildRequest
32
+ });
33
+ module.exports = __toCommonJS(request_exports);
34
+ var import_path = require("../utils/path");
35
+ var import_constants = require("../constants");
36
+ var import_assertValidSecretKey = require("../utils/assertValidSecretKey");
37
+ var import_snakecase_keys = __toESM(require("snakecase-keys"));
38
+ function buildRequest(options) {
39
+ const requestFn = async (requestOptions) => {
40
+ var _a;
41
+ const { secretKey, apiUrl = import_constants.API_URL, apiVersion = import_constants.API_VERSION } = options;
42
+ const { path, method, queryParams, headerParams, bodyParams, formData } = requestOptions;
43
+ (0, import_assertValidSecretKey.assertValidSecretKey)(secretKey);
44
+ const url = (0, import_path.joinPaths)(apiUrl, apiVersion, path);
45
+ const finalUrl = new URL(url);
46
+ if (queryParams) {
47
+ const snakecasedQueryParams = (0, import_snakecase_keys.default)({ ...queryParams });
48
+ for (const [key, val] of Object.entries(snakecasedQueryParams)) {
49
+ if (val) {
50
+ [val].flat().forEach((v) => finalUrl.searchParams.append(key, v));
51
+ }
52
+ }
53
+ }
54
+ const headers = {
55
+ Authorization: `Bearer ${secretKey}`,
56
+ ...headerParams
57
+ };
58
+ let res;
59
+ try {
60
+ if (formData) {
61
+ res = await fetch(finalUrl.href, {
62
+ method,
63
+ headers,
64
+ body: formData
65
+ });
66
+ } else {
67
+ headers["Content-Type"] = "application/json";
68
+ const hasBody = method !== "GET" && bodyParams && Object.keys(bodyParams).length > 0;
69
+ const body = hasBody ? { body: JSON.stringify((0, import_snakecase_keys.default)(bodyParams, { deep: false })) } : null;
70
+ res = await fetch(finalUrl.href, {
71
+ method,
72
+ headers,
73
+ ...body
74
+ });
75
+ }
76
+ const isJSONResponse = (res == null ? void 0 : res.headers) && ((_a = res.headers) == null ? void 0 : _a.get(import_constants.constants.Headers.ContentType)) === import_constants.constants.ContentTypes.Json;
77
+ const responseBody = isJSONResponse ? await res.json() : JSON.parse(await res.text());
78
+ if (!res.ok) {
79
+ return null;
80
+ }
81
+ return {
82
+ ...responseBody
83
+ };
84
+ } catch (err) {
85
+ if (err instanceof Error) {
86
+ return null;
87
+ }
88
+ return null;
89
+ }
90
+ };
91
+ return requestFn;
92
+ }
93
+ // Annotate the CommonJS export names for ESM import in node:
94
+ 0 && (module.exports = {
95
+ buildRequest
96
+ });
97
+ //# 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;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA0B;AAC1B,uBAAgD;AAChD,kCAAqC;AACrC,4BAA0B;AA4CnB,SAAS,aAAa,SAA8B;AACzD,QAAM,YAAY,OAChB,mBACsB;AAlD1B;AAmDI,UAAM,EAAE,WAAW,SAAS,0BAAS,aAAa,6BAAY,IAAI;AAClE,UAAM,EAAE,MAAM,QAAQ,aAAa,cAAc,YAAY,SAAS,IACpE;AAEF,0DAAqB,SAAS;AAE9B,UAAM,UAAM,uBAAU,QAAQ,YAAY,IAAI;AAG9C,UAAM,WAAW,IAAI,IAAI,GAAG;AAE5B,QAAI,aAAa;AAEf,YAAM,4BAAwB,sBAAAA,SAAc,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,cAAU,sBAAAA,SAAc,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,2BAAU,QAAQ,kBACjC,2BAAU,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":["snakecaseKeys"]}
@@ -18,11 +18,11 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var component_client_exports = {};
20
20
  __export(component_client_exports, {
21
- CabinIDProvider: () => import_provider.CabinIDProvider,
21
+ CabinIDProvider: () => import_main.CabinIDProvider,
22
22
  useUser: () => import_hooks.useUser
23
23
  });
24
24
  module.exports = __toCommonJS(component_client_exports);
25
- var import_provider = require("./client/provider");
25
+ var import_main = require("./provider/main.provider");
26
26
  var import_hooks = require("./hooks");
27
27
  // Annotate the CommonJS export names for ESM import in node:
28
28
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/component.client.ts"],"sourcesContent":["export { CabinIDProvider } from './client/provider';\nexport { useUser } from './hooks';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAgC;AAChC,mBAAwB;","names":[]}
1
+ {"version":3,"sources":["../../src/component.client.ts"],"sourcesContent":["export { CabinIDProvider } from './provider/main.provider';\nexport { useUser } from './hooks';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAgC;AAChC,mBAAwB;","names":[]}
@@ -18,12 +18,15 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var component_server_exports = {};
20
20
  __export(component_server_exports, {
21
- auth: () => import_auth.auth
21
+ auth: () => import_auth.auth,
22
+ createRouteMatcher: () => import_routeMatcher.createRouteMatcher
22
23
  });
23
24
  module.exports = __toCommonJS(component_server_exports);
24
25
  var import_auth = require("./server/auth");
26
+ var import_routeMatcher = require("./server/routeMatcher");
25
27
  // Annotate the CommonJS export names for ESM import in node:
26
28
  0 && (module.exports = {
27
- auth
29
+ auth,
30
+ createRouteMatcher
28
31
  });
29
32
  //# sourceMappingURL=component.server.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/component.server.ts"],"sourcesContent":["export { auth } from './server/auth';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;","names":[]}
1
+ {"version":3,"sources":["../../src/component.server.ts"],"sourcesContent":["export { auth } from './server/auth';\nexport { createRouteMatcher } from './server/routeMatcher';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;AACrB,0BAAmC;","names":[]}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
  var __create = Object.create;
3
4
  var __defProp = Object.defineProperty;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -35,12 +36,20 @@ var import_react = __toESM(require("react"));
35
36
  var import_logo = require("../icons/logo");
36
37
  var import_constants = require("../constants");
37
38
  const SignInButton = () => {
38
- const signInUrl = import_react.default.useMemo(() => {
39
- const params = new URLSearchParams({
40
- redirect_url: import_constants.CUSTOM_AFTER_SIGN_IN_URL || "/"
41
- });
42
- return import_constants.frontendApi ? `http://${import_constants.frontendApi}/sign-in?${params.toString()}` : "#";
43
- }, [import_constants.frontendApi, import_constants.CUSTOM_AFTER_SIGN_IN_URL]);
39
+ const [signInUrl, setSignInUrl] = (0, import_react.useState)("#");
40
+ (0, import_react.useEffect)(() => {
41
+ if (typeof window !== "undefined") {
42
+ const origin = typeof window === "undefined" ? null : window.origin;
43
+ if (!origin) {
44
+ return;
45
+ }
46
+ const params = new URLSearchParams({
47
+ redirect_url: `${origin}${import_constants.AFTER_SIGN_IN_URL}` || "/"
48
+ });
49
+ const signInUrlTemp = import_constants.frontendApi ? `https://${import_constants.frontendApi}/sign-in?${params.toString()}` : "#";
50
+ setSignInUrl(signInUrlTemp);
51
+ }
52
+ }, []);
44
53
  return /* @__PURE__ */ import_react.default.createElement(
45
54
  "a",
46
55
  {
@@ -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;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,kBAA0B;AAC1B,uBAAsD;AAE/C,MAAM,eAAe,MAAM;AAChC,QAAM,YAAY,aAAAA,QAAM,QAAQ,MAAM;AACpC,UAAM,SAAS,IAAI,gBAAgB;AAAA,MACjC,cAAc,6CAA4B;AAAA,IAC5C,CAAC;AACD,WAAO,+BACH,UAAU,4BAAW,YAAY,OAAO,SAAS,CAAC,KAClD;AAAA,EACN,GAAG,CAAC,8BAAa,yCAAwB,CAAC;AAE1C,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,WAAU;AAAA;AAAA,IAEV,6BAAAA,QAAA,cAAC,2BAAU;AAAA,IACX,6BAAAA,QAAA,cAAC,UAAK,WAAU,wBAAqB,qBAAmB;AAAA,EAC1D;AAEJ;","names":["React"]}
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA2C;AAC3C,kBAA0B;AAC1B,uBAA+C;AAExC,MAAM,eAAe,MAAM;AAChC,QAAM,CAAC,WAAW,YAAY,QAAI,uBAAS,GAAG;AAE9C,8BAAU,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,kCAAiB,MAAM;AAAA,MACnD,CAAC;AACD,YAAM,gBAAgB,+BAClB,WAAW,4BAAW,YAAY,OAAO,SAAS,CAAC,KACnD;AACJ,mBAAa,aAAa;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SACE,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,WAAU;AAAA;AAAA,IAEV,6BAAAA,QAAA,cAAC,2BAAU;AAAA,IACX,6BAAAA,QAAA,cAAC,UAAK,WAAU,wBAAqB,qBAAmB;AAAA,EAC1D;AAEJ;","names":["React"]}
@@ -18,14 +18,14 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var constants_exports = {};
20
20
  __export(constants_exports, {
21
+ AFTER_SIGN_IN_URL: () => AFTER_SIGN_IN_URL,
22
+ AFTER_SIGN_UP_URL: () => AFTER_SIGN_UP_URL,
21
23
  API_URL: () => API_URL,
22
24
  API_VERSION: () => API_VERSION,
23
- CUSTOM_AFTER_SIGN_IN_URL: () => CUSTOM_AFTER_SIGN_IN_URL,
24
- CUSTOM_AFTER_SIGN_UP_URL: () => CUSTOM_AFTER_SIGN_UP_URL,
25
- CUSTOM_SIGN_IN_URL: () => CUSTOM_SIGN_IN_URL,
26
- CUSTOM_SIGN_Up_URL: () => CUSTOM_SIGN_Up_URL,
27
25
  PUBLISHABLE_KEY: () => PUBLISHABLE_KEY,
28
26
  SECRET_KEY: () => SECRET_KEY,
27
+ SIGN_IN_URL: () => SIGN_IN_URL,
28
+ SIGN_UP_URL: () => SIGN_UP_URL,
29
29
  baseApiUrl: () => baseApiUrl,
30
30
  constants: () => constants,
31
31
  frontendApi: () => frontendApi
@@ -37,19 +37,19 @@ const API_URL = "https://api.cabinid.dev/";
37
37
  const API_VERSION = "v1";
38
38
  const PUBLISHABLE_KEY = process.env.NEXT_PUBLIC_CABIN_ID_PUBLISH_KEY || "";
39
39
  const SECRET_KEY = process.env.CABIN_ID_SECRET_KEY || "";
40
- const CUSTOM_SIGN_IN_URL = process.env.NEXT_PUBLIC_CABIN_ID_SIGN_IN_URL || "";
41
- const CUSTOM_SIGN_Up_URL = process.env.NEXT_PUBLIC_CABIN_ID_SIGN_UP_URL || "";
42
- const CUSTOM_AFTER_SIGN_IN_URL = process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_IN_URL || "";
43
- const CUSTOM_AFTER_SIGN_UP_URL = process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_UP_URL || "";
40
+ const SIGN_IN_URL = process.env.NEXT_PUBLIC_CABIN_ID_SIGN_IN_URL || "";
41
+ const SIGN_UP_URL = process.env.NEXT_PUBLIC_CABIN_ID_SIGN_UP_URL || "";
42
+ const AFTER_SIGN_IN_URL = process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_IN_URL || "";
43
+ const AFTER_SIGN_UP_URL = process.env.NEXT_PUBLIC_CABIN_ID_AFTER_SIGN_UP_URL || "";
44
44
  const baseApiUrl = (0, import_path.joinPaths)(API_URL, API_VERSION);
45
45
  const frontendApi = (0, import_key.parsePublishableKey)(PUBLISHABLE_KEY);
46
46
  const Attributes = {
47
- AuthToken: "__clerkAuthToken",
48
- AuthSignature: "__clerkAuthSignature",
49
- AuthStatus: "__clerkAuthStatus",
50
- AuthReason: "__clerkAuthReason",
51
- AuthMessage: "__clerkAuthMessage",
52
- ClerkUrl: "__clerkUrl"
47
+ AuthToken: "__cabinIdAuthToken",
48
+ AuthSignature: "__cabinIdAuthSignature",
49
+ AuthStatus: "__cabinIdAuthStatus",
50
+ AuthReason: "__cabinIdAuthReason",
51
+ AuthMessage: "__cabinIdAuthMessage",
52
+ CabinIdUrl: "__cabinIdUrl"
53
53
  };
54
54
  const Cookies = {
55
55
  Session: "__session",
@@ -58,7 +58,8 @@ const Cookies = {
58
58
  };
59
59
  const QueryParams = {
60
60
  UserId: "user_id",
61
- Token: "token"
61
+ Token: "token",
62
+ CabinIdRedirectUrl: "__cabin_id_redirect_url"
62
63
  };
63
64
  const Headers = {
64
65
  AuthToken: "x-cabin-id-auth-token",
@@ -106,14 +107,14 @@ const constants = {
106
107
  };
107
108
  // Annotate the CommonJS export names for ESM import in node:
108
109
  0 && (module.exports = {
110
+ AFTER_SIGN_IN_URL,
111
+ AFTER_SIGN_UP_URL,
109
112
  API_URL,
110
113
  API_VERSION,
111
- CUSTOM_AFTER_SIGN_IN_URL,
112
- CUSTOM_AFTER_SIGN_UP_URL,
113
- CUSTOM_SIGN_IN_URL,
114
- CUSTOM_SIGN_Up_URL,
115
114
  PUBLISHABLE_KEY,
116
115
  SECRET_KEY,
116
+ SIGN_IN_URL,
117
+ SIGN_UP_URL,
117
118
  baseApiUrl,
118
119
  constants,
119
120
  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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAoC;AACpC,kBAA0B;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,iBAAa,uBAAU,SAAS,WAAW;AACjD,MAAM,kBAAc,gCAAoB,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAoC;AACpC,kBAA0B;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,iBAAa,uBAAU,SAAS,WAAW;AACjD,MAAM,kBAAc,gCAAoB,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":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var createContextAndHook_exports = {};
31
+ __export(createContextAndHook_exports, {
32
+ assertContextExists: () => assertContextExists,
33
+ createContextAndHook: () => createContextAndHook
34
+ });
35
+ module.exports = __toCommonJS(createContextAndHook_exports);
36
+ var import_react = __toESM(require("react"));
37
+ function assertContextExists(contextVal, msgOrCtx) {
38
+ if (!contextVal) {
39
+ throw typeof msgOrCtx === "string" ? new Error(msgOrCtx) : new Error(`${msgOrCtx.displayName} not found`);
40
+ }
41
+ }
42
+ const createContextAndHook = (displayName, options) => {
43
+ const { assertCtxFn = assertContextExists } = options || {};
44
+ const Ctx = import_react.default.createContext(void 0);
45
+ Ctx.displayName = displayName;
46
+ const useCtx = () => {
47
+ const ctx = import_react.default.useContext(Ctx);
48
+ assertCtxFn(ctx, `${displayName} not found`);
49
+ return ctx.value;
50
+ };
51
+ const useCtxWithoutGuarantee = () => {
52
+ const ctx = import_react.default.useContext(Ctx);
53
+ return ctx ? ctx.value : {};
54
+ };
55
+ return [Ctx, useCtx, useCtxWithoutGuarantee];
56
+ };
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ assertContextExists,
60
+ createContextAndHook
61
+ });
62
+ //# sourceMappingURL=createContextAndHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/createContextAndHook.ts"],"sourcesContent":["'use client';\nimport React from 'react';\n\nexport function assertContextExists(contextVal: unknown, msgOrCtx: string | React.Context<any>): asserts contextVal {\n if (!contextVal) {\n throw typeof msgOrCtx === 'string' ? new Error(msgOrCtx) : new Error(`${msgOrCtx.displayName} not found`);\n }\n}\n\ntype Options = { assertCtxFn?: (v: unknown, msg: string) => void };\ntype ContextOf<T> = React.Context<{ value: T } | undefined>;\ntype UseCtxFn<T> = () => T;\n\n/**\n * Creates and returns a Context and two hooks that return the context value.\n * The Context type is derived from the type passed in by the user.\n * The first hook returned guarantees that the context exists so the returned value is always CtxValue\n * The second hook makes no guarantees, so the returned value can be CtxValue | undefined\n */\nexport const createContextAndHook = <CtxVal>(\n displayName: string,\n options?: Options,\n): [ContextOf<CtxVal>, UseCtxFn<CtxVal>, UseCtxFn<CtxVal | Partial<CtxVal>>] => {\n const { assertCtxFn = assertContextExists } = options || {};\n const Ctx = React.createContext<{ value: CtxVal } | undefined>(undefined);\n Ctx.displayName = displayName;\n\n const useCtx = () => {\n const ctx = React.useContext(Ctx);\n assertCtxFn(ctx, `${displayName} not found`);\n return (ctx as any).value as CtxVal;\n };\n\n const useCtxWithoutGuarantee = () => {\n const ctx = React.useContext(Ctx);\n return ctx ? ctx.value : {};\n };\n\n return [Ctx, useCtx, useCtxWithoutGuarantee];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAkB;AAEX,SAAS,oBAAoB,YAAqB,UAA2D;AAClH,MAAI,CAAC,YAAY;AACf,UAAM,OAAO,aAAa,WAAW,IAAI,MAAM,QAAQ,IAAI,IAAI,MAAM,GAAG,SAAS,WAAW,YAAY;AAAA,EAC1G;AACF;AAYO,MAAM,uBAAuB,CAClC,aACA,YAC8E;AAC9E,QAAM,EAAE,cAAc,oBAAoB,IAAI,WAAW,CAAC;AAC1D,QAAM,MAAM,aAAAA,QAAM,cAA6C,MAAS;AACxE,MAAI,cAAc;AAElB,QAAM,SAAS,MAAM;AACnB,UAAM,MAAM,aAAAA,QAAM,WAAW,GAAG;AAChC,gBAAY,KAAK,GAAG,WAAW,YAAY;AAC3C,WAAQ,IAAY;AAAA,EACtB;AAEA,QAAM,yBAAyB,MAAM;AACnC,UAAM,MAAM,aAAAA,QAAM,WAAW,GAAG;AAChC,WAAO,MAAM,IAAI,QAAQ,CAAC;AAAA,EAC5B;AAEA,SAAO,CAAC,KAAK,QAAQ,sBAAsB;AAC7C;","names":["React"]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var useSafeLayoutEffect_exports = {};
30
+ __export(useSafeLayoutEffect_exports, {
31
+ useSafeLayoutEffect: () => useSafeLayoutEffect
32
+ });
33
+ module.exports = __toCommonJS(useSafeLayoutEffect_exports);
34
+ var import_react = __toESM(require("react"));
35
+ const useSafeLayoutEffect = typeof window !== "undefined" ? import_react.default.useLayoutEffect : import_react.default.useEffect;
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ useSafeLayoutEffect
39
+ });
40
+ //# sourceMappingURL=useSafeLayoutEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/useSafeLayoutEffect.tsx"],"sourcesContent":["import React from 'react';\n\nexport const useSafeLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAEX,MAAM,sBAAsB,OAAO,WAAW,cAAc,aAAAA,QAAM,kBAAkB,aAAAA,QAAM;","names":["React"]}