@cabin-id/nextjs 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/dist/cjs/api/endpoints/AbstractApi.js +38 -0
  2. package/dist/cjs/api/endpoints/AbstractApi.js.map +1 -0
  3. package/dist/cjs/api/endpoints/UserApi.js +40 -0
  4. package/dist/cjs/api/endpoints/UserApi.js.map +1 -0
  5. package/dist/cjs/api/endpoints/index.js +32 -0
  6. package/dist/cjs/api/endpoints/index.js.map +1 -0
  7. package/dist/cjs/api/factory.js +60 -0
  8. package/dist/cjs/api/factory.js.map +1 -0
  9. package/dist/cjs/api/request.js +97 -0
  10. package/dist/cjs/api/request.js.map +1 -0
  11. package/dist/cjs/component.client.js +32 -0
  12. package/dist/cjs/component.client.js.map +1 -0
  13. package/dist/cjs/component.server.js +32 -0
  14. package/dist/cjs/component.server.js.map +1 -0
  15. package/dist/cjs/components/SignInButton.js +67 -0
  16. package/dist/cjs/components/SignInButton.js.map +1 -0
  17. package/dist/cjs/components/index.js +29 -0
  18. package/dist/cjs/components/index.js.map +1 -0
  19. package/dist/cjs/constants.js +122 -0
  20. package/dist/cjs/constants.js.map +1 -0
  21. package/dist/cjs/hooks/createContextAndHook.js +62 -0
  22. package/dist/cjs/hooks/createContextAndHook.js.map +1 -0
  23. package/dist/cjs/hooks/index.js +29 -0
  24. package/dist/cjs/hooks/index.js.map +1 -0
  25. package/dist/cjs/hooks/useSafeLayoutEffect.js +40 -0
  26. package/dist/cjs/hooks/useSafeLayoutEffect.js.map +1 -0
  27. package/dist/cjs/hooks/useUser.js +70 -0
  28. package/dist/cjs/hooks/useUser.js.map +1 -0
  29. package/dist/cjs/icons/logo.js +98 -0
  30. package/dist/cjs/icons/logo.js.map +1 -0
  31. package/dist/cjs/index.js +45 -0
  32. package/dist/cjs/index.js.map +1 -0
  33. package/dist/cjs/package.json +9 -0
  34. package/dist/cjs/provider/context.js +62 -0
  35. package/dist/cjs/provider/context.js.map +1 -0
  36. package/dist/cjs/provider/core.provider.js +49 -0
  37. package/dist/cjs/provider/core.provider.js.map +1 -0
  38. package/dist/cjs/provider/main.provider.js +45 -0
  39. package/dist/cjs/provider/main.provider.js.map +1 -0
  40. package/dist/cjs/server/auth.js +61 -0
  41. package/dist/cjs/server/auth.js.map +1 -0
  42. package/dist/cjs/server/client.js +35 -0
  43. package/dist/cjs/server/client.js.map +1 -0
  44. package/dist/cjs/server/createGetAuth.js +45 -0
  45. package/dist/cjs/server/createGetAuth.js.map +1 -0
  46. package/dist/cjs/server/createRedirect.js +90 -0
  47. package/dist/cjs/server/createRedirect.js.map +1 -0
  48. package/dist/cjs/server/errors.js +110 -0
  49. package/dist/cjs/server/errors.js.map +1 -0
  50. package/dist/cjs/server/getCurrentUser.js +36 -0
  51. package/dist/cjs/server/getCurrentUser.js.map +1 -0
  52. package/dist/cjs/server/index.js +32 -0
  53. package/dist/cjs/server/index.js.map +1 -0
  54. package/dist/cjs/server/middleware.js +195 -0
  55. package/dist/cjs/server/middleware.js.map +1 -0
  56. package/dist/cjs/server/protect.js +69 -0
  57. package/dist/cjs/server/protect.js.map +1 -0
  58. package/dist/cjs/server/routeMatcher.js +42 -0
  59. package/dist/cjs/server/routeMatcher.js.map +1 -0
  60. package/dist/cjs/server/serverRedirectWithAuth.js +39 -0
  61. package/dist/cjs/server/serverRedirectWithAuth.js.map +1 -0
  62. package/dist/cjs/server/type.js +17 -0
  63. package/dist/cjs/server/type.js.map +1 -0
  64. package/dist/cjs/server/utils.js +165 -0
  65. package/dist/cjs/server/utils.js.map +1 -0
  66. package/dist/cjs/styles/global.css +420 -0
  67. package/dist/cjs/styles/global.css.map +1 -0
  68. package/dist/cjs/tokens/authObjects.js +45 -0
  69. package/dist/cjs/tokens/authObjects.js.map +1 -0
  70. package/dist/cjs/tokens/authStatus.js +86 -0
  71. package/dist/cjs/tokens/authStatus.js.map +1 -0
  72. package/dist/cjs/tokens/authenticateContext.js +69 -0
  73. package/dist/cjs/tokens/authenticateContext.js.map +1 -0
  74. package/dist/cjs/tokens/cabinIdRequest.js +79 -0
  75. package/dist/cjs/tokens/cabinIdRequest.js.map +1 -0
  76. package/dist/cjs/tokens/cabinIdUrl.js +36 -0
  77. package/dist/cjs/tokens/cabinIdUrl.js.map +1 -0
  78. package/dist/cjs/tokens/request.js +58 -0
  79. package/dist/cjs/tokens/request.js.map +1 -0
  80. package/dist/cjs/types.js +17 -0
  81. package/dist/cjs/types.js.map +1 -0
  82. package/dist/cjs/utils/assertValidSecretKey.js +35 -0
  83. package/dist/cjs/utils/assertValidSecretKey.js.map +1 -0
  84. package/dist/cjs/utils/createCabinIdClient.js +38 -0
  85. package/dist/cjs/utils/createCabinIdClient.js.map +1 -0
  86. package/dist/cjs/utils/http.js +31 -0
  87. package/dist/cjs/utils/http.js.map +1 -0
  88. package/dist/cjs/utils/initial.js +45 -0
  89. package/dist/cjs/utils/initial.js.map +1 -0
  90. package/dist/cjs/utils/isomorphicAtob.js +36 -0
  91. package/dist/cjs/utils/isomorphicAtob.js.map +1 -0
  92. package/dist/cjs/utils/isomorphicBtoa.js +36 -0
  93. package/dist/cjs/utils/isomorphicBtoa.js.map +1 -0
  94. package/dist/cjs/utils/key.js +49 -0
  95. package/dist/cjs/utils/key.js.map +1 -0
  96. package/dist/cjs/utils/path.js +33 -0
  97. package/dist/cjs/utils/path.js.map +1 -0
  98. package/dist/cjs/utils/response.js +76 -0
  99. package/dist/cjs/utils/response.js.map +1 -0
  100. package/dist/cjs/utils.js +52 -0
  101. package/dist/cjs/utils.js.map +1 -0
  102. package/dist/esm/api/endpoints/AbstractApi.js +14 -0
  103. package/dist/esm/api/endpoints/AbstractApi.js.map +1 -0
  104. package/dist/esm/api/endpoints/UserApi.js +16 -0
  105. package/dist/esm/api/endpoints/UserApi.js.map +1 -0
  106. package/dist/esm/api/endpoints/index.js +7 -0
  107. package/dist/esm/api/endpoints/index.js.map +1 -0
  108. package/dist/esm/api/factory.js +35 -0
  109. package/dist/esm/api/factory.js.map +1 -0
  110. package/dist/esm/api/request.js +63 -0
  111. package/dist/esm/api/request.js.map +1 -0
  112. package/dist/esm/component.client.js +7 -0
  113. package/dist/esm/component.client.js.map +1 -0
  114. package/dist/esm/component.server.js +7 -0
  115. package/dist/esm/component.server.js.map +1 -0
  116. package/dist/esm/components/SignInButton.js +33 -0
  117. package/dist/esm/components/SignInButton.js.map +1 -0
  118. package/dist/esm/components/index.js +5 -0
  119. package/dist/esm/components/index.js.map +1 -0
  120. package/dist/esm/constants.js +88 -0
  121. package/dist/esm/constants.js.map +1 -0
  122. package/dist/esm/hooks/createContextAndHook.js +27 -0
  123. package/dist/esm/hooks/createContextAndHook.js.map +1 -0
  124. package/dist/esm/hooks/index.js +5 -0
  125. package/dist/esm/hooks/index.js.map +1 -0
  126. package/dist/esm/hooks/useSafeLayoutEffect.js +6 -0
  127. package/dist/esm/hooks/useSafeLayoutEffect.js.map +1 -0
  128. package/dist/esm/hooks/useUser.js +54 -0
  129. package/dist/esm/hooks/useUser.js.map +1 -0
  130. package/dist/esm/icons/logo.js +64 -0
  131. package/dist/esm/icons/logo.js.map +1 -0
  132. package/dist/esm/index.js +16 -0
  133. package/dist/esm/index.js.map +1 -0
  134. package/dist/esm/package.json +9 -0
  135. package/dist/esm/provider/context.js +24 -0
  136. package/dist/esm/provider/context.js.map +1 -0
  137. package/dist/esm/provider/core.provider.js +15 -0
  138. package/dist/esm/provider/core.provider.js.map +1 -0
  139. package/dist/esm/provider/main.provider.js +11 -0
  140. package/dist/esm/provider/main.provider.js.map +1 -0
  141. package/dist/esm/server/auth.js +37 -0
  142. package/dist/esm/server/auth.js.map +1 -0
  143. package/dist/esm/server/client.js +11 -0
  144. package/dist/esm/server/client.js.map +1 -0
  145. package/dist/esm/server/createGetAuth.js +23 -0
  146. package/dist/esm/server/createGetAuth.js.map +1 -0
  147. package/dist/esm/server/createRedirect.js +66 -0
  148. package/dist/esm/server/createRedirect.js.map +1 -0
  149. package/dist/esm/server/errors.js +78 -0
  150. package/dist/esm/server/errors.js.map +1 -0
  151. package/dist/esm/server/getCurrentUser.js +12 -0
  152. package/dist/esm/server/getCurrentUser.js.map +1 -0
  153. package/dist/esm/server/index.js +7 -0
  154. package/dist/esm/server/index.js.map +1 -0
  155. package/dist/esm/server/middleware.js +177 -0
  156. package/dist/esm/server/middleware.js.map +1 -0
  157. package/dist/esm/server/protect.js +45 -0
  158. package/dist/esm/server/protect.js.map +1 -0
  159. package/dist/esm/server/routeMatcher.js +18 -0
  160. package/dist/esm/server/routeMatcher.js.map +1 -0
  161. package/dist/esm/server/serverRedirectWithAuth.js +15 -0
  162. package/dist/esm/server/serverRedirectWithAuth.js.map +1 -0
  163. package/dist/esm/server/type.js +1 -0
  164. package/dist/esm/server/type.js.map +1 -0
  165. package/dist/esm/server/utils.js +132 -0
  166. package/dist/esm/server/utils.js.map +1 -0
  167. package/dist/esm/styles/global.css +420 -0
  168. package/dist/esm/styles/global.css.map +1 -0
  169. package/dist/esm/tokens/authObjects.js +20 -0
  170. package/dist/esm/tokens/authObjects.js.map +1 -0
  171. package/dist/esm/tokens/authStatus.js +59 -0
  172. package/dist/esm/tokens/authStatus.js.map +1 -0
  173. package/dist/esm/tokens/authenticateContext.js +45 -0
  174. package/dist/esm/tokens/authenticateContext.js.map +1 -0
  175. package/dist/esm/tokens/cabinIdRequest.js +55 -0
  176. package/dist/esm/tokens/cabinIdRequest.js.map +1 -0
  177. package/dist/esm/tokens/cabinIdUrl.js +12 -0
  178. package/dist/esm/tokens/cabinIdUrl.js.map +1 -0
  179. package/dist/esm/tokens/request.js +34 -0
  180. package/dist/esm/tokens/request.js.map +1 -0
  181. package/dist/esm/types.js +1 -0
  182. package/dist/esm/types.js.map +1 -0
  183. package/dist/esm/utils/assertValidSecretKey.js +11 -0
  184. package/dist/esm/utils/assertValidSecretKey.js.map +1 -0
  185. package/dist/esm/utils/createCabinIdClient.js +17 -0
  186. package/dist/esm/utils/createCabinIdClient.js.map +1 -0
  187. package/dist/esm/utils/http.js +7 -0
  188. package/dist/esm/utils/http.js.map +1 -0
  189. package/dist/esm/utils/initial.js +21 -0
  190. package/dist/esm/utils/initial.js.map +1 -0
  191. package/dist/esm/utils/isomorphicAtob.js +12 -0
  192. package/dist/esm/utils/isomorphicAtob.js.map +1 -0
  193. package/dist/esm/utils/isomorphicBtoa.js +12 -0
  194. package/dist/esm/utils/isomorphicBtoa.js.map +1 -0
  195. package/dist/esm/utils/key.js +24 -0
  196. package/dist/esm/utils/key.js.map +1 -0
  197. package/dist/esm/utils/path.js +9 -0
  198. package/dist/esm/utils/path.js.map +1 -0
  199. package/dist/esm/utils/response.js +49 -0
  200. package/dist/esm/utils/response.js.map +1 -0
  201. package/dist/esm/utils.js +27 -0
  202. package/dist/esm/utils.js.map +1 -0
  203. package/dist/types/api/endpoints/AbstractApi.d.ts +7 -0
  204. package/dist/types/api/endpoints/AbstractApi.d.ts.map +1 -0
  205. package/dist/types/api/endpoints/UserApi.d.ts +6 -0
  206. package/dist/types/api/endpoints/UserApi.d.ts.map +1 -0
  207. package/dist/types/api/endpoints/index.d.ts +3 -0
  208. package/dist/types/api/endpoints/index.d.ts.map +1 -0
  209. package/dist/types/api/factory.d.ts +35 -0
  210. package/dist/types/api/factory.d.ts.map +1 -0
  211. package/dist/types/api/request.d.ts +33 -0
  212. package/dist/types/api/request.d.ts.map +1 -0
  213. package/dist/types/component.client.d.ts +3 -0
  214. package/dist/types/component.client.d.ts.map +1 -0
  215. package/dist/types/component.server.d.ts +3 -0
  216. package/dist/types/component.server.d.ts.map +1 -0
  217. package/dist/types/components/SignInButton.d.ts +3 -0
  218. package/dist/types/components/SignInButton.d.ts.map +1 -0
  219. package/dist/types/components/index.d.ts +2 -0
  220. package/dist/types/components/index.d.ts.map +1 -0
  221. package/dist/types/constants.d.ts +69 -0
  222. package/dist/types/constants.d.ts.map +1 -0
  223. package/dist/types/hooks/createContextAndHook.d.ts +18 -0
  224. package/dist/types/hooks/createContextAndHook.d.ts.map +1 -0
  225. package/dist/types/hooks/index.d.ts +2 -0
  226. package/dist/types/hooks/index.d.ts.map +1 -0
  227. package/dist/types/hooks/useSafeLayoutEffect.d.ts +3 -0
  228. package/dist/types/hooks/useSafeLayoutEffect.d.ts.map +1 -0
  229. package/dist/types/hooks/useUser.d.ts +36 -0
  230. package/dist/types/hooks/useUser.d.ts.map +1 -0
  231. package/dist/types/icons/logo.d.ts +3 -0
  232. package/dist/types/icons/logo.d.ts.map +1 -0
  233. package/dist/types/index.d.ts +8 -0
  234. package/dist/types/index.d.ts.map +1 -0
  235. package/dist/types/provider/context.d.ts +15 -0
  236. package/dist/types/provider/context.d.ts.map +1 -0
  237. package/dist/types/provider/core.provider.d.ts +6 -0
  238. package/dist/types/provider/core.provider.d.ts.map +1 -0
  239. package/dist/types/provider/main.provider.d.ts +5 -0
  240. package/dist/types/provider/main.provider.d.ts.map +1 -0
  241. package/dist/types/server/auth.d.ts +11 -0
  242. package/dist/types/server/auth.d.ts.map +1 -0
  243. package/dist/types/server/client.d.ts +3 -0
  244. package/dist/types/server/client.d.ts.map +1 -0
  245. package/dist/types/server/createGetAuth.d.ts +5 -0
  246. package/dist/types/server/createGetAuth.d.ts.map +1 -0
  247. package/dist/types/server/createRedirect.d.ts +21 -0
  248. package/dist/types/server/createRedirect.d.ts.map +1 -0
  249. package/dist/types/server/errors.d.ts +10 -0
  250. package/dist/types/server/errors.d.ts.map +1 -0
  251. package/dist/types/server/getCurrentUser.d.ts +3 -0
  252. package/dist/types/server/getCurrentUser.d.ts.map +1 -0
  253. package/dist/types/server/index.d.ts +3 -0
  254. package/dist/types/server/index.d.ts.map +1 -0
  255. package/dist/types/server/middleware.d.ts +33 -0
  256. package/dist/types/server/middleware.d.ts.map +1 -0
  257. package/dist/types/server/protect.d.ts +34 -0
  258. package/dist/types/server/protect.d.ts.map +1 -0
  259. package/dist/types/server/routeMatcher.d.ts +10 -0
  260. package/dist/types/server/routeMatcher.d.ts.map +1 -0
  261. package/dist/types/server/serverRedirectWithAuth.d.ts +3 -0
  262. package/dist/types/server/serverRedirectWithAuth.d.ts.map +1 -0
  263. package/dist/types/server/type.d.ts +14 -0
  264. package/dist/types/server/type.d.ts.map +1 -0
  265. package/dist/types/server/utils.d.ts +17 -0
  266. package/dist/types/server/utils.d.ts.map +1 -0
  267. package/dist/types/tokens/authObjects.d.ts +37 -0
  268. package/dist/types/tokens/authObjects.d.ts.map +1 -0
  269. package/dist/types/tokens/authStatus.d.ts +51 -0
  270. package/dist/types/tokens/authStatus.d.ts.map +1 -0
  271. package/dist/types/tokens/authenticateContext.d.ts +40 -0
  272. package/dist/types/tokens/authenticateContext.d.ts.map +1 -0
  273. package/dist/types/tokens/cabinIdRequest.d.ts +24 -0
  274. package/dist/types/tokens/cabinIdRequest.d.ts.map +1 -0
  275. package/dist/types/tokens/cabinIdUrl.d.ts +18 -0
  276. package/dist/types/tokens/cabinIdUrl.d.ts.map +1 -0
  277. package/dist/types/tokens/request.d.ts +4 -0
  278. package/dist/types/tokens/request.d.ts.map +1 -0
  279. package/dist/types/types.d.ts +34 -0
  280. package/dist/types/types.d.ts.map +1 -0
  281. package/dist/types/utils/assertValidSecretKey.d.ts +2 -0
  282. package/dist/types/utils/assertValidSecretKey.d.ts.map +1 -0
  283. package/dist/types/utils/createCabinIdClient.d.ts +5 -0
  284. package/dist/types/utils/createCabinIdClient.d.ts.map +1 -0
  285. package/dist/types/utils/http.d.ts +4 -0
  286. package/dist/types/utils/http.d.ts.map +1 -0
  287. package/dist/types/utils/initial.d.ts +5 -0
  288. package/dist/types/utils/initial.d.ts.map +1 -0
  289. package/dist/types/utils/isomorphicAtob.d.ts +6 -0
  290. package/dist/types/utils/isomorphicAtob.d.ts.map +1 -0
  291. package/dist/types/utils/isomorphicBtoa.d.ts +2 -0
  292. package/dist/types/utils/isomorphicBtoa.d.ts.map +1 -0
  293. package/dist/types/utils/key.d.ts +5 -0
  294. package/dist/types/utils/key.d.ts.map +1 -0
  295. package/dist/types/utils/path.d.ts +4 -0
  296. package/dist/types/utils/path.d.ts.map +1 -0
  297. package/dist/types/utils/response.d.ts +13 -0
  298. package/dist/types/utils/response.d.ts.map +1 -0
  299. package/dist/types/utils.d.ts +5 -0
  300. package/dist/types/utils.d.ts.map +1 -0
  301. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/response.ts"],"sourcesContent":["import { NextResponse } from 'next/server';\n\nimport { constants } from '../constants';\n\n/**\n * A function that merges two Response objects into a single response.\n * The final response respects the body and the status of the last response,\n * but the cookies and headers of all responses are merged.\n */\nexport const mergeResponses = (...responses: (NextResponse | Response | null | undefined | void)[]) => {\n const normalisedResponses = responses.filter(Boolean).map(res => {\n // If the response is a NextResponse, we can just return it\n if (res instanceof NextResponse) {\n return res;\n }\n\n return new NextResponse(res!.body, res!);\n });\n\n if (normalisedResponses.length === 0) {\n return;\n }\n\n const lastResponse = normalisedResponses[normalisedResponses.length - 1];\n const finalResponse = new NextResponse(lastResponse.body, lastResponse);\n\n for (const response of normalisedResponses) {\n response.headers.forEach((value: string, name: string) => {\n finalResponse.headers.set(name, value);\n });\n\n response.cookies.getAll().forEach(cookie => {\n const { name, value, ...options } = cookie;\n\n finalResponse.cookies.set(name, value, options);\n });\n }\n\n return finalResponse;\n};\n\nexport const isRedirect = (res: Response) => {\n return res.headers.get(constants.NextHeaders.NextRedirect);\n};\n\nexport const setHeader = <T extends Response>(res: T, name: string, val: string): T => {\n res.headers.set(name, val);\n return res;\n};\n\nexport const stringifyHeaders = (headers: { forEach: Headers['forEach'] }) => {\n if (!headers) {\n return JSON.stringify({});\n }\n\n const obj: Record<string, string> = {};\n headers.forEach((value, name) => {\n obj[name] = value;\n });\n return JSON.stringify(obj);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6B;AAE7B,uBAA0B;AAOnB,MAAM,iBAAiB,IAAI,cAAqE;AACrG,QAAM,sBAAsB,UAAU,OAAO,OAAO,EAAE,IAAI,SAAO;AAE/D,QAAI,eAAe,4BAAc;AAC/B,aAAO;AAAA,IACT;AAEA,WAAO,IAAI,2BAAa,IAAK,MAAM,GAAI;AAAA,EACzC,CAAC;AAED,MAAI,oBAAoB,WAAW,GAAG;AACpC;AAAA,EACF;AAEA,QAAM,eAAe,oBAAoB,oBAAoB,SAAS,CAAC;AACvE,QAAM,gBAAgB,IAAI,2BAAa,aAAa,MAAM,YAAY;AAEtE,aAAW,YAAY,qBAAqB;AAC1C,aAAS,QAAQ,QAAQ,CAAC,OAAe,SAAiB;AACxD,oBAAc,QAAQ,IAAI,MAAM,KAAK;AAAA,IACvC,CAAC;AAED,aAAS,QAAQ,OAAO,EAAE,QAAQ,YAAU;AAC1C,YAAM,EAAE,MAAM,OAAO,GAAG,QAAQ,IAAI;AAEpC,oBAAc,QAAQ,IAAI,MAAM,OAAO,OAAO;AAAA,IAChD,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEO,MAAM,aAAa,CAAC,QAAkB;AAC3C,SAAO,IAAI,QAAQ,IAAI,2BAAU,YAAY,YAAY;AAC3D;AAEO,MAAM,YAAY,CAAqB,KAAQ,MAAc,QAAmB;AACrF,MAAI,QAAQ,IAAI,MAAM,GAAG;AACzB,SAAO;AACT;AAEO,MAAM,mBAAmB,CAAC,YAA6C;AAC5E,MAAI,CAAC,SAAS;AACZ,WAAO,KAAK,UAAU,CAAC,CAAC;AAAA,EAC1B;AAEA,QAAM,MAA8B,CAAC;AACrC,UAAQ,QAAQ,CAAC,OAAO,SAAS;AAC/B,QAAI,IAAI,IAAI;AAAA,EACd,CAAC;AACD,SAAO,KAAK,UAAU,GAAG;AAC3B;","names":[]}
@@ -0,0 +1,52 @@
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 utils_exports = {};
20
+ __export(utils_exports, {
21
+ mergePreDefinedOptions: () => mergePreDefinedOptions,
22
+ paths: () => paths
23
+ });
24
+ module.exports = __toCommonJS(utils_exports);
25
+ var import_path_to_regexp = require("path-to-regexp");
26
+ const paths = {
27
+ toRegexp: (path) => {
28
+ try {
29
+ return (0, import_path_to_regexp.pathToRegexp)(path);
30
+ } catch (e) {
31
+ throw new Error(
32
+ `Invalid path: ${path}.
33
+ Consult the documentation of path-to-regexp here: https://github.com/pillarjs/path-to-regexp
34
+ ${e.message}`
35
+ );
36
+ }
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
+ }
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ mergePreDefinedOptions,
50
+ paths
51
+ });
52
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +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\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":[]}
@@ -0,0 +1,7 @@
1
+ import { CabinIDProvider } from "./provider/main.provider";
2
+ import { useUser } from "./hooks";
3
+ export {
4
+ CabinIDProvider,
5
+ useUser
6
+ };
7
+ //# sourceMappingURL=component.client.js.map
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,7 @@
1
+ import { auth } from "./server/auth";
2
+ import { createRouteMatcher } from "./server/routeMatcher";
3
+ export {
4
+ auth,
5
+ createRouteMatcher
6
+ };
7
+ //# sourceMappingURL=component.server.js.map
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import React, { useEffect, useState } from "react";
3
+ import { CabinLogo } from "../icons/logo";
4
+ import { AFTER_SIGN_IN_URL, frontendApi } from "../constants";
5
+ const SignInButton = () => {
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
+ }, []);
20
+ return /* @__PURE__ */ React.createElement(
21
+ "a",
22
+ {
23
+ href: signInUrl,
24
+ 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"
25
+ },
26
+ /* @__PURE__ */ React.createElement(CabinLogo, null),
27
+ /* @__PURE__ */ React.createElement("span", { className: "text-white text-sm" }, "Continue to CabinID")
28
+ );
29
+ };
30
+ export {
31
+ SignInButton
32
+ };
33
+ //# sourceMappingURL=SignInButton.js.map
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,5 @@
1
+ import { SignInButton } from "./SignInButton";
2
+ export {
3
+ SignInButton
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export { SignInButton } from './SignInButton';\n"],"mappings":"AAAA,SAAS,oBAAoB;","names":[]}
@@ -0,0 +1,88 @@
1
+ import { parsePublishableKey } from "./utils/key";
2
+ import { joinPaths } from "./utils/path";
3
+ const API_URL = "https://api.cabinid.dev/";
4
+ const API_VERSION = "v1";
5
+ const PUBLISHABLE_KEY = process.env.NEXT_PUBLIC_CABIN_ID_PUBLISH_KEY || "";
6
+ const SECRET_KEY = process.env.CABIN_ID_SECRET_KEY || "";
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
+ const baseApiUrl = joinPaths(API_URL, API_VERSION);
12
+ const frontendApi = parsePublishableKey(PUBLISHABLE_KEY);
13
+ const Attributes = {
14
+ AuthToken: "__cabinIdAuthToken",
15
+ AuthSignature: "__cabinIdAuthSignature",
16
+ AuthStatus: "__cabinIdAuthStatus",
17
+ AuthReason: "__cabinIdAuthReason",
18
+ AuthMessage: "__cabinIdAuthMessage",
19
+ CabinIdUrl: "__cabinIdUrl"
20
+ };
21
+ const Cookies = {
22
+ Session: "__session",
23
+ Client: "__client",
24
+ User: "__user"
25
+ };
26
+ const QueryParams = {
27
+ UserId: "user_id",
28
+ Token: "token",
29
+ CabinIdRedirectUrl: "__cabin_id_redirect_url"
30
+ };
31
+ const Headers = {
32
+ AuthToken: "x-cabin-id-auth-token",
33
+ AuthSignature: "x-cabin-id-auth-signature",
34
+ AuthStatus: "x-cabin-id-auth-status",
35
+ AuthReason: "x-cabin-id-auth-reason",
36
+ AuthMessage: "x-cabin-id-auth-message",
37
+ CabinIdUrl: "x-cabin-id-cabin-id-url",
38
+ EnableDebug: "x-cabin-id-debug",
39
+ CabinIdRedirectTo: "x-cabin-id-redirect-to",
40
+ CloudFrontForwardedProto: "cloudfront-forwarded-proto",
41
+ Authorization: "authorization",
42
+ ForwardedPort: "x-forwarded-port",
43
+ ForwardedProto: "x-forwarded-proto",
44
+ ForwardedHost: "x-forwarded-host",
45
+ Accept: "accept",
46
+ Referrer: "referer",
47
+ UserAgent: "user-agent",
48
+ Origin: "origin",
49
+ Host: "host",
50
+ ContentType: "content-type",
51
+ SecFetchDest: "sec-fetch-dest",
52
+ Location: "location"
53
+ };
54
+ const ContentTypes = {
55
+ Json: "application/json"
56
+ };
57
+ const NextHeaders = {
58
+ NextRewrite: "x-middleware-rewrite",
59
+ NextResume: "x-middleware-next",
60
+ NextRedirect: "Location",
61
+ // Used by next to identify internal navigation for app router
62
+ NextUrl: "next-url",
63
+ NextAction: "next-action",
64
+ // Used by next to identify internal navigation for pages router
65
+ NextjsData: "x-nextjs-data"
66
+ };
67
+ const constants = {
68
+ Attributes,
69
+ Cookies,
70
+ Headers,
71
+ ContentTypes,
72
+ QueryParams,
73
+ NextHeaders
74
+ };
75
+ export {
76
+ AFTER_SIGN_IN_URL,
77
+ AFTER_SIGN_UP_URL,
78
+ API_URL,
79
+ API_VERSION,
80
+ PUBLISHABLE_KEY,
81
+ SECRET_KEY,
82
+ SIGN_IN_URL,
83
+ SIGN_UP_URL,
84
+ baseApiUrl,
85
+ constants,
86
+ frontendApi
87
+ };
88
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +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 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":[]}
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import React from "react";
3
+ function assertContextExists(contextVal, msgOrCtx) {
4
+ if (!contextVal) {
5
+ throw typeof msgOrCtx === "string" ? new Error(msgOrCtx) : new Error(`${msgOrCtx.displayName} not found`);
6
+ }
7
+ }
8
+ const createContextAndHook = (displayName, options) => {
9
+ const { assertCtxFn = assertContextExists } = options || {};
10
+ const Ctx = React.createContext(void 0);
11
+ Ctx.displayName = displayName;
12
+ const useCtx = () => {
13
+ const ctx = React.useContext(Ctx);
14
+ assertCtxFn(ctx, `${displayName} not found`);
15
+ return ctx.value;
16
+ };
17
+ const useCtxWithoutGuarantee = () => {
18
+ const ctx = React.useContext(Ctx);
19
+ return ctx ? ctx.value : {};
20
+ };
21
+ return [Ctx, useCtx, useCtxWithoutGuarantee];
22
+ };
23
+ export {
24
+ assertContextExists,
25
+ createContextAndHook
26
+ };
27
+ //# 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":";AACA,OAAO,WAAW;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,MAAM,cAA6C,MAAS;AACxE,MAAI,cAAc;AAElB,QAAM,SAAS,MAAM;AACnB,UAAM,MAAM,MAAM,WAAW,GAAG;AAChC,gBAAY,KAAK,GAAG,WAAW,YAAY;AAC3C,WAAQ,IAAY;AAAA,EACtB;AAEA,QAAM,yBAAyB,MAAM;AACnC,UAAM,MAAM,MAAM,WAAW,GAAG;AAChC,WAAO,MAAM,IAAI,QAAQ,CAAC;AAAA,EAC5B;AAEA,SAAO,CAAC,KAAK,QAAQ,sBAAsB;AAC7C;","names":[]}
@@ -0,0 +1,5 @@
1
+ import { useUser } from "./useUser";
2
+ export {
3
+ useUser
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/index.ts"],"sourcesContent":["export { useUser } from './useUser';\n"],"mappings":"AAAA,SAAS,eAAe;","names":[]}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ const useSafeLayoutEffect = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect;
3
+ export {
4
+ useSafeLayoutEffect
5
+ };
6
+ //# 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,OAAO,WAAW;AAEX,MAAM,sBAAsB,OAAO,WAAW,cAAc,MAAM,kBAAkB,MAAM;","names":[]}
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import { deleteCookie } from "cookies-next";
3
+ import {
4
+ useAssertWrappedByCabinIdProvider,
5
+ useUserContext
6
+ } from "../provider/context";
7
+ import {
8
+ AFTER_SIGN_IN_URL,
9
+ constants,
10
+ frontendApi,
11
+ SIGN_IN_URL
12
+ } from "../constants";
13
+ import { useRouter } from "next/navigation";
14
+ const useUser = () => {
15
+ useAssertWrappedByCabinIdProvider("useUser");
16
+ const user = useUserContext();
17
+ const router = useRouter();
18
+ const signOut = async (...args) => {
19
+ deleteCookie(constants.Cookies.Client);
20
+ deleteCookie(constants.Cookies.User);
21
+ const hasCallback = typeof args[0] === "function";
22
+ if (hasCallback) {
23
+ const callback = args[0];
24
+ await callback();
25
+ } else {
26
+ if (SIGN_IN_URL) {
27
+ router.push(SIGN_IN_URL);
28
+ } else {
29
+ if (typeof window !== "undefined") {
30
+ const origin = typeof window === "undefined" ? null : window.origin;
31
+ if (!origin) {
32
+ return;
33
+ }
34
+ const params = new URLSearchParams({
35
+ redirect_url: `${origin}${AFTER_SIGN_IN_URL}` || "/"
36
+ });
37
+ const signInUrlTemp = frontendApi ? `https://${frontendApi}/sign-in?${params.toString()}` : "#";
38
+ router.push(signInUrlTemp);
39
+ }
40
+ }
41
+ }
42
+ };
43
+ if (user === void 0) {
44
+ return { isLoaded: false, isSignedIn: void 0, user: void 0, signOut };
45
+ }
46
+ if (user === null) {
47
+ return { isLoaded: true, isSignedIn: false, user: null, signOut };
48
+ }
49
+ return { isLoaded: true, isSignedIn: true, user, signOut };
50
+ };
51
+ export {
52
+ useUser
53
+ };
54
+ //# sourceMappingURL=useUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/useUser.ts"],"sourcesContent":["'use client';\n\nimport { deleteCookie } from 'cookies-next';\nimport {\n useAssertWrappedByCabinIdProvider,\n useUserContext,\n} from '../provider/context';\nimport { User } from '../types';\nimport {\n AFTER_SIGN_IN_URL,\n constants,\n frontendApi,\n SIGN_IN_URL,\n} from '../constants';\nimport { useRouter } from 'next/navigation';\n\nexport type SignOutCallback = () => void | Promise<any>;\n\nexport type SignOutOptions = {\n /**\n * Specify a specific session to sign out. Useful for\n * multi-session applications.\n */\n sessionId?: string;\n /**\n * Specify a redirect URL to navigate after sign out is complete.\n */\n redirectUrl?: string;\n};\n\nexport interface SignOut {\n (options?: SignOutOptions): Promise<void>;\n\n (signOutCallback?: SignOutCallback, options?: SignOutOptions): Promise<void>;\n}\n\ntype UseUserReturn =\n | {\n isLoaded: false;\n isSignedIn: undefined;\n user: undefined;\n signOut: SignOut;\n }\n | { isLoaded: true; isSignedIn: false; user: null; signOut: SignOut }\n | {\n isLoaded: true;\n isSignedIn: true;\n user: User;\n signOut: SignOut;\n };\n\nexport const useUser = (): UseUserReturn => {\n useAssertWrappedByCabinIdProvider('useUser');\n\n const user = useUserContext();\n const router = useRouter();\n\n const signOut = async (...args: any[]) => {\n deleteCookie(constants.Cookies.Client);\n deleteCookie(constants.Cookies.User);\n const hasCallback = typeof args[0] === 'function';\n if (hasCallback) {\n const callback = args[0];\n await callback();\n } else {\n if (SIGN_IN_URL) {\n router.push(SIGN_IN_URL);\n } else {\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 router.push(signInUrlTemp);\n }\n }\n }\n };\n\n if (user === undefined) {\n return { isLoaded: false, isSignedIn: undefined, user: undefined, signOut };\n }\n\n if (user === null) {\n return { isLoaded: true, isSignedIn: false, user: null, signOut };\n }\n\n return { isLoaded: true, isSignedIn: true, user, signOut };\n};\n"],"mappings":";AAEA,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,iBAAiB;AAqCnB,MAAM,UAAU,MAAqB;AAC1C,oCAAkC,SAAS;AAE3C,QAAM,OAAO,eAAe;AAC5B,QAAM,SAAS,UAAU;AAEzB,QAAM,UAAU,UAAU,SAAgB;AACxC,iBAAa,UAAU,QAAQ,MAAM;AACrC,iBAAa,UAAU,QAAQ,IAAI;AACnC,UAAM,cAAc,OAAO,KAAK,CAAC,MAAM;AACvC,QAAI,aAAa;AACf,YAAM,WAAW,KAAK,CAAC;AACvB,YAAM,SAAS;AAAA,IACjB,OAAO;AACL,UAAI,aAAa;AACf,eAAO,KAAK,WAAW;AAAA,MACzB,OAAO;AACL,YAAI,OAAO,WAAW,aAAa;AACjC,gBAAM,SAAS,OAAO,WAAW,cAAc,OAAO,OAAO;AAC7D,cAAI,CAAC,QAAQ;AACX;AAAA,UACF;AACA,gBAAM,SAAS,IAAI,gBAAgB;AAAA,YACjC,cAAc,GAAG,MAAM,GAAG,iBAAiB,MAAM;AAAA,UACnD,CAAC;AACD,gBAAM,gBAAgB,cAClB,WAAW,WAAW,YAAY,OAAO,SAAS,CAAC,KACnD;AACJ,iBAAO,KAAK,aAAa;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,SAAS,QAAW;AACtB,WAAO,EAAE,UAAU,OAAO,YAAY,QAAW,MAAM,QAAW,QAAQ;AAAA,EAC5E;AAEA,MAAI,SAAS,MAAM;AACjB,WAAO,EAAE,UAAU,MAAM,YAAY,OAAO,MAAM,MAAM,QAAQ;AAAA,EAClE;AAEA,SAAO,EAAE,UAAU,MAAM,YAAY,MAAM,MAAM,QAAQ;AAC3D;","names":[]}
@@ -0,0 +1,64 @@
1
+ import React from "react";
2
+ const CabinLogo = (props) => /* @__PURE__ */ React.createElement(
3
+ "svg",
4
+ {
5
+ width: 24,
6
+ height: 25,
7
+ viewBox: "0 0 24 25",
8
+ fill: "none",
9
+ xmlns: "http://www.w3.org/2000/svg",
10
+ ...props
11
+ },
12
+ /* @__PURE__ */ React.createElement("path", { d: "M24 12.816q0 12-12 12t-12-12 12-12 12 12", fill: "url(#a)" }),
13
+ /* @__PURE__ */ React.createElement(
14
+ "mask",
15
+ {
16
+ id: "c",
17
+ style: {
18
+ maskType: "alpha"
19
+ },
20
+ maskUnits: "userSpaceOnUse",
21
+ x: 0,
22
+ y: 0,
23
+ width: 24,
24
+ height: 25
25
+ },
26
+ /* @__PURE__ */ React.createElement("path", { d: "M24 12.816q0 12-12 12t-12-12 12-12 12 12", fill: "url(#b)" })
27
+ ),
28
+ /* @__PURE__ */ React.createElement("g", { mask: "url(#c)" }, /* @__PURE__ */ React.createElement(
29
+ "path",
30
+ {
31
+ d: "M12.274 19.263q-2.97 0-4.853-1.79t-1.882-4.67q0-2.892 1.87-4.67 1.883-1.779 4.865-1.779 2.42 0 4.071 1.198t2.103 3.376l-3.252.35q-.281-1.089-1.051-1.633-.771-.544-1.907-.544-1.419 0-2.299 1.016t-.88 2.686q0 1.657.88 2.686.88 1.016 2.299 1.016 1.138 0 1.894-.544.77-.546 1.064-1.634l3.252.251c-.302 1.444-1.01 2.669-2.127 3.476q-1.663 1.21-4.047 1.21",
32
+ fill: "#1F5AF5"
33
+ }
34
+ )),
35
+ /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement(
36
+ "linearGradient",
37
+ {
38
+ id: "a",
39
+ x1: 8.282,
40
+ y1: 15.013,
41
+ x2: 13.252,
42
+ y2: 30.181,
43
+ gradientUnits: "userSpaceOnUse"
44
+ },
45
+ /* @__PURE__ */ React.createElement("stop", { stopColor: "#fff" }),
46
+ /* @__PURE__ */ React.createElement("stop", { offset: 1, stopColor: "#fff", stopOpacity: 0 })
47
+ ), /* @__PURE__ */ React.createElement(
48
+ "linearGradient",
49
+ {
50
+ id: "b",
51
+ x1: 8.282,
52
+ y1: 15.013,
53
+ x2: 13.252,
54
+ y2: 30.181,
55
+ gradientUnits: "userSpaceOnUse"
56
+ },
57
+ /* @__PURE__ */ React.createElement("stop", { stopColor: "#fff" }),
58
+ /* @__PURE__ */ React.createElement("stop", { offset: 1, stopColor: "#fff", stopOpacity: 0 })
59
+ ))
60
+ );
61
+ export {
62
+ CabinLogo
63
+ };
64
+ //# sourceMappingURL=logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/icons/logo.tsx"],"sourcesContent":["import React from 'react';\n\nexport const CabinLogo: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n width={24}\n height={25}\n viewBox=\"0 0 24 25\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M24 12.816q0 12-12 12t-12-12 12-12 12 12\" fill=\"url(#a)\" />\n <mask\n id=\"c\"\n style={{\n maskType: 'alpha',\n }}\n maskUnits=\"userSpaceOnUse\"\n x={0}\n y={0}\n width={24}\n height={25}\n >\n <path d=\"M24 12.816q0 12-12 12t-12-12 12-12 12 12\" fill=\"url(#b)\" />\n </mask>\n <g mask=\"url(#c)\">\n <path\n d=\"M12.274 19.263q-2.97 0-4.853-1.79t-1.882-4.67q0-2.892 1.87-4.67 1.883-1.779 4.865-1.779 2.42 0 4.071 1.198t2.103 3.376l-3.252.35q-.281-1.089-1.051-1.633-.771-.544-1.907-.544-1.419 0-2.299 1.016t-.88 2.686q0 1.657.88 2.686.88 1.016 2.299 1.016 1.138 0 1.894-.544.77-.546 1.064-1.634l3.252.251c-.302 1.444-1.01 2.669-2.127 3.476q-1.663 1.21-4.047 1.21\"\n fill=\"#1F5AF5\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"a\"\n x1={8.282}\n y1={15.013}\n x2={13.252}\n y2={30.181}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#fff\" />\n <stop offset={1} stopColor=\"#fff\" stopOpacity={0} />\n </linearGradient>\n <linearGradient\n id=\"b\"\n x1={8.282}\n y1={15.013}\n x2={13.252}\n y2={30.181}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#fff\" />\n <stop offset={1} stopColor=\"#fff\" stopOpacity={0} />\n </linearGradient>\n </defs>\n </svg>\n);\n"],"mappings":"AAAA,OAAO,WAAW;AAEX,MAAM,YAAqD,CAAC,UACjE;AAAA,EAAC;AAAA;AAAA,IACC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACL,GAAG;AAAA;AAAA,EAEJ,oCAAC,UAAK,GAAE,4CAA2C,MAAK,WAAU;AAAA,EAClE;AAAA,IAAC;AAAA;AAAA,MACC,IAAG;AAAA,MACH,OAAO;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,MACA,WAAU;AAAA,MACV,GAAG;AAAA,MACH,GAAG;AAAA,MACH,OAAO;AAAA,MACP,QAAQ;AAAA;AAAA,IAER,oCAAC,UAAK,GAAE,4CAA2C,MAAK,WAAU;AAAA,EACpE;AAAA,EACA,oCAAC,OAAE,MAAK,aACN;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP,CACF;AAAA,EACA,oCAAC,cACC;AAAA,IAAC;AAAA;AAAA,MACC,IAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,eAAc;AAAA;AAAA,IAEd,oCAAC,UAAK,WAAU,QAAO;AAAA,IACvB,oCAAC,UAAK,QAAQ,GAAG,WAAU,QAAO,aAAa,GAAG;AAAA,EACpD,GACA;AAAA,IAAC;AAAA;AAAA,MACC,IAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,eAAc;AAAA;AAAA,IAEd,oCAAC,UAAK,WAAU,QAAO;AAAA,IACvB,oCAAC,UAAK,QAAQ,GAAG,WAAU,QAAO,aAAa,GAAG;AAAA,EACpD,CACF;AACF;","names":[]}
@@ -0,0 +1,16 @@
1
+ import "./styles/global.css";
2
+ import { auth } from "./server/auth";
3
+ import { currentUser } from "./server/getCurrentUser";
4
+ import { CabinIDProvider } from "./provider/main.provider";
5
+ import { useUser } from "./hooks";
6
+ import { authMiddleware } from "./server/middleware";
7
+ import { SignInButton } from "./components";
8
+ export {
9
+ CabinIDProvider,
10
+ SignInButton,
11
+ auth,
12
+ authMiddleware,
13
+ currentUser,
14
+ useUser
15
+ };
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import './styles/global.css';\n\nexport { auth } from './server/auth';\nexport { currentUser } from './server/getCurrentUser';\nexport { CabinIDProvider } from './provider/main.provider';\nexport { useUser } from './hooks';\nexport { authMiddleware } from './server/middleware';\nexport { SignInButton } from './components';\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,YAAY;AACrB,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,eAAe;AACxB,SAAS,sBAAsB;AAC/B,SAAS,oBAAoB;","names":[]}