@tern-secure/nextjs 5.1.8 → 5.1.9

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 (329) hide show
  1. package/dist/cjs/__tests__/gemini_fnTernSecureNextHandler.bench.js +31 -0
  2. package/dist/cjs/__tests__/gemini_fnTernSecureNextHandler.bench.js.map +1 -0
  3. package/dist/cjs/app-router/admin/actions.js +62 -0
  4. package/dist/cjs/app-router/admin/actions.js.map +1 -0
  5. package/dist/cjs/app-router/admin/constants.js +29 -0
  6. package/dist/cjs/app-router/admin/constants.js.map +1 -0
  7. package/dist/cjs/app-router/admin/fnValidators.js +295 -0
  8. package/dist/cjs/app-router/admin/fnValidators.js.map +1 -0
  9. package/dist/cjs/app-router/admin/index.js +16 -3
  10. package/dist/cjs/app-router/admin/index.js.map +1 -1
  11. package/dist/cjs/app-router/admin/responses.js +120 -0
  12. package/dist/cjs/app-router/admin/responses.js.map +1 -0
  13. package/dist/cjs/app-router/admin/sessionHandlers.js +167 -0
  14. package/dist/cjs/app-router/admin/sessionHandlers.js.map +1 -0
  15. package/dist/cjs/app-router/admin/ternsecureNextjsHandler.js +84 -0
  16. package/dist/cjs/app-router/admin/ternsecureNextjsHandler.js.map +1 -0
  17. package/dist/cjs/app-router/admin/types.js +127 -0
  18. package/dist/cjs/app-router/admin/types.js.map +1 -0
  19. package/dist/cjs/app-router/admin/utils.js +107 -0
  20. package/dist/cjs/app-router/admin/utils.js.map +1 -0
  21. package/dist/cjs/app-router/admin/validators.js +217 -0
  22. package/dist/cjs/app-router/admin/validators.js.map +1 -0
  23. package/dist/cjs/app-router/client/TernSecureProvider.js +2 -6
  24. package/dist/cjs/app-router/client/TernSecureProvider.js.map +1 -1
  25. package/dist/cjs/app-router/server/auth.js +100 -0
  26. package/dist/cjs/app-router/server/auth.js.map +1 -0
  27. package/dist/cjs/app-router/server/utils.js +87 -0
  28. package/dist/cjs/app-router/server/utils.js.map +1 -0
  29. package/dist/cjs/boundary/components.js +4 -7
  30. package/dist/cjs/boundary/components.js.map +1 -1
  31. package/dist/cjs/{components/uiComponents.js → constants.js} +17 -18
  32. package/dist/cjs/constants.js.map +1 -0
  33. package/dist/cjs/errors.js.map +1 -1
  34. package/dist/cjs/index.js +4 -9
  35. package/dist/cjs/index.js.map +1 -1
  36. package/dist/cjs/server/constant.js +38 -0
  37. package/dist/cjs/server/constant.js.map +1 -0
  38. package/dist/cjs/server/edge-session.js +118 -24
  39. package/dist/cjs/server/edge-session.js.map +1 -1
  40. package/dist/cjs/server/headers-utils.js +70 -0
  41. package/dist/cjs/server/headers-utils.js.map +1 -0
  42. package/dist/cjs/server/index.js +8 -6
  43. package/dist/cjs/server/index.js.map +1 -1
  44. package/dist/cjs/server/jwt-edge.js +47 -19
  45. package/dist/cjs/server/jwt-edge.js.map +1 -1
  46. package/dist/cjs/server/jwt.js +11 -4
  47. package/dist/cjs/server/jwt.js.map +1 -1
  48. package/dist/cjs/server/nextErrors.js +131 -0
  49. package/dist/cjs/server/nextErrors.js.map +1 -0
  50. package/dist/cjs/server/nextFetcher.js +31 -0
  51. package/dist/cjs/server/nextFetcher.js.map +1 -0
  52. package/dist/cjs/server/node/SessionTernSecure.js +55 -0
  53. package/dist/cjs/server/node/SessionTernSecure.js.map +1 -0
  54. package/dist/cjs/server/{auth.js → node/auth.js} +11 -20
  55. package/dist/cjs/server/node/auth.js.map +1 -0
  56. package/dist/cjs/server/node/index.js +40 -0
  57. package/dist/cjs/server/node/index.js.map +1 -0
  58. package/dist/cjs/server/node/node-session.js +60 -0
  59. package/dist/cjs/server/node/node-session.js.map +1 -0
  60. package/dist/cjs/server/node/ternSecureNodeMiddleware.js +182 -0
  61. package/dist/cjs/server/node/ternSecureNodeMiddleware.js.map +1 -0
  62. package/dist/cjs/server/protect.js +90 -0
  63. package/dist/cjs/server/protect.js.map +1 -0
  64. package/dist/cjs/server/redirect.js +84 -0
  65. package/dist/cjs/server/redirect.js.map +1 -0
  66. package/dist/cjs/server/routeMatcher.js +36 -0
  67. package/dist/cjs/server/routeMatcher.js.map +1 -0
  68. package/dist/cjs/server/sdk-versions.js +43 -0
  69. package/dist/cjs/server/sdk-versions.js.map +1 -0
  70. package/dist/cjs/server/session-store.js.map +1 -1
  71. package/dist/cjs/server/ternSecureEdgeMiddleware.js +298 -0
  72. package/dist/cjs/server/ternSecureEdgeMiddleware.js.map +1 -0
  73. package/dist/cjs/server/ternSecureFireMiddleware.js +192 -0
  74. package/dist/cjs/server/ternSecureFireMiddleware.js.map +1 -0
  75. package/dist/cjs/server/types.js.map +1 -1
  76. package/dist/cjs/server/utils.js +115 -2
  77. package/dist/cjs/server/utils.js.map +1 -1
  78. package/dist/cjs/types.js.map +1 -1
  79. package/dist/cjs/utils/NextCookieAdapter.js +44 -0
  80. package/dist/cjs/utils/NextCookieAdapter.js.map +1 -0
  81. package/dist/cjs/utils/allNextProviderProps.js +10 -24
  82. package/dist/cjs/utils/allNextProviderProps.js.map +1 -1
  83. package/dist/cjs/utils/config.js +38 -2
  84. package/dist/cjs/utils/config.js.map +1 -1
  85. package/dist/cjs/utils/construct.js.map +1 -1
  86. package/dist/cjs/utils/fireconfig.js +38 -0
  87. package/dist/cjs/utils/fireconfig.js.map +1 -0
  88. package/dist/cjs/utils/logger.js +101 -0
  89. package/dist/cjs/utils/logger.js.map +1 -0
  90. package/dist/cjs/utils/redis.js +33 -0
  91. package/dist/cjs/utils/redis.js.map +1 -0
  92. package/dist/cjs/utils/response.js +38 -0
  93. package/dist/cjs/utils/response.js.map +1 -0
  94. package/dist/cjs/utils/serverRedirectAuth.js +39 -0
  95. package/dist/cjs/utils/serverRedirectAuth.js.map +1 -0
  96. package/dist/cjs/utils/ternsecure-sw.js +1 -1
  97. package/dist/cjs/utils/ternsecure-sw.js.map +1 -1
  98. package/dist/cjs/utils/withLogger.js +82 -0
  99. package/dist/cjs/utils/withLogger.js.map +1 -0
  100. package/dist/esm/__tests__/gemini_fnTernSecureNextHandler.bench.js +30 -0
  101. package/dist/esm/__tests__/gemini_fnTernSecureNextHandler.bench.js.map +1 -0
  102. package/dist/esm/app-router/admin/actions.js +40 -0
  103. package/dist/esm/app-router/admin/actions.js.map +1 -0
  104. package/dist/esm/app-router/admin/constants.js +5 -0
  105. package/dist/esm/app-router/admin/constants.js.map +1 -0
  106. package/dist/esm/app-router/admin/fnValidators.js +270 -0
  107. package/dist/esm/app-router/admin/fnValidators.js.map +1 -0
  108. package/dist/esm/app-router/admin/index.js +16 -2
  109. package/dist/esm/app-router/admin/index.js.map +1 -1
  110. package/dist/esm/app-router/admin/responses.js +93 -0
  111. package/dist/esm/app-router/admin/responses.js.map +1 -0
  112. package/dist/esm/app-router/admin/sessionHandlers.js +131 -0
  113. package/dist/esm/app-router/admin/sessionHandlers.js.map +1 -0
  114. package/dist/esm/app-router/admin/ternsecureNextjsHandler.js +62 -0
  115. package/dist/esm/app-router/admin/ternsecureNextjsHandler.js.map +1 -0
  116. package/dist/esm/app-router/admin/types.js +98 -0
  117. package/dist/esm/app-router/admin/types.js.map +1 -0
  118. package/dist/esm/app-router/admin/utils.js +80 -0
  119. package/dist/esm/app-router/admin/utils.js.map +1 -0
  120. package/dist/esm/app-router/admin/validators.js +189 -0
  121. package/dist/esm/app-router/admin/validators.js.map +1 -0
  122. package/dist/esm/app-router/client/TernSecureProvider.js +2 -6
  123. package/dist/esm/app-router/client/TernSecureProvider.js.map +1 -1
  124. package/dist/esm/app-router/server/auth.js +81 -0
  125. package/dist/esm/app-router/server/auth.js.map +1 -0
  126. package/dist/esm/app-router/server/utils.js +51 -0
  127. package/dist/esm/app-router/server/utils.js.map +1 -0
  128. package/dist/esm/boundary/components.js +4 -7
  129. package/dist/esm/boundary/components.js.map +1 -1
  130. package/dist/esm/constants.js +17 -0
  131. package/dist/esm/constants.js.map +1 -0
  132. package/dist/esm/errors.js.map +1 -1
  133. package/dist/esm/index.js +5 -11
  134. package/dist/esm/index.js.map +1 -1
  135. package/dist/esm/server/constant.js +11 -0
  136. package/dist/esm/server/constant.js.map +1 -0
  137. package/dist/esm/server/edge-session.js +113 -22
  138. package/dist/esm/server/edge-session.js.map +1 -1
  139. package/dist/esm/server/headers-utils.js +41 -0
  140. package/dist/esm/server/headers-utils.js.map +1 -0
  141. package/dist/esm/server/index.js +9 -3
  142. package/dist/esm/server/index.js.map +1 -1
  143. package/dist/esm/server/jwt-edge.js +48 -20
  144. package/dist/esm/server/jwt-edge.js.map +1 -1
  145. package/dist/esm/server/jwt.js +12 -5
  146. package/dist/esm/server/jwt.js.map +1 -1
  147. package/dist/esm/server/nextErrors.js +97 -0
  148. package/dist/esm/server/nextErrors.js.map +1 -0
  149. package/dist/esm/server/nextFetcher.js +7 -0
  150. package/dist/esm/server/nextFetcher.js.map +1 -0
  151. package/dist/esm/server/node/SessionTernSecure.js +31 -0
  152. package/dist/esm/server/node/SessionTernSecure.js.map +1 -0
  153. package/dist/esm/server/{auth.js → node/auth.js} +11 -20
  154. package/dist/esm/server/node/auth.js.map +1 -0
  155. package/dist/esm/server/node/index.js +19 -0
  156. package/dist/esm/server/node/index.js.map +1 -0
  157. package/dist/esm/server/node/node-session.js +36 -0
  158. package/dist/esm/server/node/node-session.js.map +1 -0
  159. package/dist/esm/server/node/ternSecureNodeMiddleware.js +165 -0
  160. package/dist/esm/server/node/ternSecureNodeMiddleware.js.map +1 -0
  161. package/dist/esm/server/protect.js +66 -0
  162. package/dist/esm/server/protect.js.map +1 -0
  163. package/dist/esm/server/redirect.js +60 -0
  164. package/dist/esm/server/redirect.js.map +1 -0
  165. package/dist/esm/server/routeMatcher.js +12 -0
  166. package/dist/esm/server/routeMatcher.js.map +1 -0
  167. package/dist/esm/server/sdk-versions.js +8 -0
  168. package/dist/esm/server/sdk-versions.js.map +1 -0
  169. package/dist/esm/server/session-store.js.map +1 -1
  170. package/dist/esm/server/ternSecureEdgeMiddleware.js +286 -0
  171. package/dist/esm/server/ternSecureEdgeMiddleware.js.map +1 -0
  172. package/dist/esm/server/ternSecureFireMiddleware.js +179 -0
  173. package/dist/esm/server/ternSecureFireMiddleware.js.map +1 -0
  174. package/dist/esm/server/utils.js +99 -1
  175. package/dist/esm/server/utils.js.map +1 -1
  176. package/dist/esm/types.js.map +1 -1
  177. package/dist/esm/utils/NextCookieAdapter.js +20 -0
  178. package/dist/esm/utils/NextCookieAdapter.js.map +1 -0
  179. package/dist/esm/utils/allNextProviderProps.js +10 -24
  180. package/dist/esm/utils/allNextProviderProps.js.map +1 -1
  181. package/dist/esm/utils/config.js +34 -1
  182. package/dist/esm/utils/config.js.map +1 -1
  183. package/dist/esm/utils/construct.js +1 -1
  184. package/dist/esm/utils/construct.js.map +1 -1
  185. package/dist/esm/utils/fireconfig.js +14 -0
  186. package/dist/esm/utils/fireconfig.js.map +1 -0
  187. package/dist/esm/utils/logger.js +74 -0
  188. package/dist/esm/utils/logger.js.map +1 -0
  189. package/dist/esm/utils/redis.js +9 -0
  190. package/dist/esm/utils/redis.js.map +1 -0
  191. package/dist/esm/utils/response.js +13 -0
  192. package/dist/esm/utils/response.js.map +1 -0
  193. package/dist/esm/utils/serverRedirectAuth.js +17 -0
  194. package/dist/esm/utils/serverRedirectAuth.js.map +1 -0
  195. package/dist/esm/utils/ternsecure-sw.js +1 -1
  196. package/dist/esm/utils/ternsecure-sw.js.map +1 -1
  197. package/dist/esm/utils/withLogger.js +57 -0
  198. package/dist/esm/utils/withLogger.js.map +1 -0
  199. package/dist/types/app-router/admin/actions.d.ts +19 -0
  200. package/dist/types/app-router/admin/actions.d.ts.map +1 -0
  201. package/dist/types/app-router/admin/constants.d.ts +2 -0
  202. package/dist/types/app-router/admin/constants.d.ts.map +1 -0
  203. package/dist/types/app-router/admin/fnValidators.d.ts +35 -0
  204. package/dist/types/app-router/admin/fnValidators.d.ts.map +1 -0
  205. package/dist/types/app-router/admin/index.d.ts +3 -1
  206. package/dist/types/app-router/admin/index.d.ts.map +1 -1
  207. package/dist/types/app-router/admin/responses.d.ts +28 -0
  208. package/dist/types/app-router/admin/responses.d.ts.map +1 -0
  209. package/dist/types/app-router/admin/sessionHandlers.d.ts +26 -0
  210. package/dist/types/app-router/admin/sessionHandlers.d.ts.map +1 -0
  211. package/dist/types/app-router/admin/ternsecureNextjsHandler.d.ts +7 -0
  212. package/dist/types/app-router/admin/ternsecureNextjsHandler.d.ts.map +1 -0
  213. package/dist/types/app-router/admin/types.d.ts +105 -0
  214. package/dist/types/app-router/admin/types.d.ts.map +1 -0
  215. package/dist/types/app-router/admin/utils.d.ts +53 -0
  216. package/dist/types/app-router/admin/utils.d.ts.map +1 -0
  217. package/dist/types/app-router/admin/validators.d.ts +46 -0
  218. package/dist/types/app-router/admin/validators.d.ts.map +1 -0
  219. package/dist/types/app-router/client/TernSecureProvider.d.ts.map +1 -1
  220. package/dist/types/app-router/server/auth.d.ts +26 -0
  221. package/dist/types/app-router/server/auth.d.ts.map +1 -0
  222. package/dist/types/app-router/server/utils.d.ts +5 -0
  223. package/dist/types/app-router/server/utils.d.ts.map +1 -0
  224. package/dist/types/boundary/components.d.ts +1 -1
  225. package/dist/types/boundary/components.d.ts.map +1 -1
  226. package/dist/types/constants.d.ts +11 -0
  227. package/dist/types/constants.d.ts.map +1 -0
  228. package/dist/types/errors.d.ts +1 -1
  229. package/dist/types/errors.d.ts.map +1 -1
  230. package/dist/types/index.d.ts +3 -3
  231. package/dist/types/index.d.ts.map +1 -1
  232. package/dist/types/server/constant.d.ts +5 -0
  233. package/dist/types/server/constant.d.ts.map +1 -0
  234. package/dist/types/server/edge-session.d.ts +13 -1
  235. package/dist/types/server/edge-session.d.ts.map +1 -1
  236. package/dist/types/server/headers-utils.d.ts +10 -0
  237. package/dist/types/server/headers-utils.d.ts.map +1 -0
  238. package/dist/types/server/index.d.ts +6 -3
  239. package/dist/types/server/index.d.ts.map +1 -1
  240. package/dist/types/server/jwt-edge.d.ts +12 -18
  241. package/dist/types/server/jwt-edge.d.ts.map +1 -1
  242. package/dist/types/server/jwt.d.ts +12 -18
  243. package/dist/types/server/jwt.d.ts.map +1 -1
  244. package/dist/types/server/nextErrors.d.ts +54 -0
  245. package/dist/types/server/nextErrors.d.ts.map +1 -0
  246. package/dist/types/server/nextFetcher.d.ts +26 -0
  247. package/dist/types/server/nextFetcher.d.ts.map +1 -0
  248. package/dist/types/server/node/SessionTernSecure.d.ts +3 -0
  249. package/dist/types/server/node/SessionTernSecure.d.ts.map +1 -0
  250. package/dist/types/server/{auth.d.ts → node/auth.d.ts} +5 -5
  251. package/dist/types/server/node/auth.d.ts.map +1 -0
  252. package/dist/types/server/node/index.d.ts +3 -0
  253. package/dist/types/server/node/index.d.ts.map +1 -0
  254. package/dist/types/server/node/node-session.d.ts +4 -0
  255. package/dist/types/server/node/node-session.d.ts.map +1 -0
  256. package/dist/types/server/node/ternSecureNodeMiddleware.d.ts +54 -0
  257. package/dist/types/server/node/ternSecureNodeMiddleware.d.ts.map +1 -0
  258. package/dist/types/server/protect.d.ts +26 -0
  259. package/dist/types/server/protect.d.ts.map +1 -0
  260. package/dist/types/server/redirect.d.ts +20 -0
  261. package/dist/types/server/redirect.d.ts.map +1 -0
  262. package/dist/types/server/routeMatcher.d.ts +13 -0
  263. package/dist/types/server/routeMatcher.d.ts.map +1 -0
  264. package/dist/types/server/sdk-versions.d.ts +8 -0
  265. package/dist/types/server/sdk-versions.d.ts.map +1 -0
  266. package/dist/types/server/session-store.d.ts.map +1 -1
  267. package/dist/types/server/ternSecureEdgeMiddleware.d.ts +47 -0
  268. package/dist/types/server/ternSecureEdgeMiddleware.d.ts.map +1 -0
  269. package/dist/types/server/ternSecureFireMiddleware.d.ts +47 -0
  270. package/dist/types/server/ternSecureFireMiddleware.d.ts.map +1 -0
  271. package/dist/types/server/types.d.ts +16 -2
  272. package/dist/types/server/types.d.ts.map +1 -1
  273. package/dist/types/server/utils.d.ts +7 -0
  274. package/dist/types/server/utils.d.ts.map +1 -1
  275. package/dist/types/types.d.ts +33 -1
  276. package/dist/types/types.d.ts.map +1 -1
  277. package/dist/types/utils/NextCookieAdapter.d.ts +9 -0
  278. package/dist/types/utils/NextCookieAdapter.d.ts.map +1 -0
  279. package/dist/types/utils/allNextProviderProps.d.ts +1 -1
  280. package/dist/types/utils/allNextProviderProps.d.ts.map +1 -1
  281. package/dist/types/utils/config.d.ts +17 -1
  282. package/dist/types/utils/config.d.ts.map +1 -1
  283. package/dist/types/utils/fireconfig.d.ts +4 -0
  284. package/dist/types/utils/fireconfig.d.ts.map +1 -0
  285. package/dist/types/utils/logger.d.ts +27 -0
  286. package/dist/types/utils/logger.d.ts.map +1 -0
  287. package/dist/types/utils/redis.d.ts +8 -0
  288. package/dist/types/utils/redis.d.ts.map +1 -0
  289. package/dist/types/utils/response.d.ts +3 -0
  290. package/dist/types/utils/response.d.ts.map +1 -0
  291. package/dist/types/utils/serverRedirectAuth.d.ts +6 -0
  292. package/dist/types/utils/serverRedirectAuth.d.ts.map +1 -0
  293. package/dist/types/utils/withLogger.d.ts +17 -0
  294. package/dist/types/utils/withLogger.d.ts.map +1 -0
  295. package/package.json +21 -7
  296. package/server/node/package.json +5 -0
  297. package/server/package.json +5 -0
  298. package/dist/cjs/app-router/admin/sessionHandler.js +0 -74
  299. package/dist/cjs/app-router/admin/sessionHandler.js.map +0 -1
  300. package/dist/cjs/app-router/client/actions.js +0 -4
  301. package/dist/cjs/app-router/client/actions.js.map +0 -1
  302. package/dist/cjs/components/uiComponents.js.map +0 -1
  303. package/dist/cjs/server/auth.js.map +0 -1
  304. package/dist/cjs/server/ternSecureMiddleware.js +0 -95
  305. package/dist/cjs/server/ternSecureMiddleware.js.map +0 -1
  306. package/dist/cjs/utils/tern-ui-script.js +0 -78
  307. package/dist/cjs/utils/tern-ui-script.js.map +0 -1
  308. package/dist/esm/app-router/admin/sessionHandler.js +0 -50
  309. package/dist/esm/app-router/admin/sessionHandler.js.map +0 -1
  310. package/dist/esm/app-router/client/actions.js +0 -3
  311. package/dist/esm/app-router/client/actions.js.map +0 -1
  312. package/dist/esm/components/uiComponents.js +0 -21
  313. package/dist/esm/components/uiComponents.js.map +0 -1
  314. package/dist/esm/server/auth.js.map +0 -1
  315. package/dist/esm/server/ternSecureMiddleware.js +0 -69
  316. package/dist/esm/server/ternSecureMiddleware.js.map +0 -1
  317. package/dist/esm/utils/tern-ui-script.js +0 -44
  318. package/dist/esm/utils/tern-ui-script.js.map +0 -1
  319. package/dist/types/app-router/admin/sessionHandler.d.ts +0 -3
  320. package/dist/types/app-router/admin/sessionHandler.d.ts.map +0 -1
  321. package/dist/types/app-router/client/actions.d.ts +0 -2
  322. package/dist/types/app-router/client/actions.d.ts.map +0 -1
  323. package/dist/types/components/uiComponents.d.ts +0 -6
  324. package/dist/types/components/uiComponents.d.ts.map +0 -1
  325. package/dist/types/server/auth.d.ts.map +0 -1
  326. package/dist/types/server/ternSecureMiddleware.d.ts +0 -20
  327. package/dist/types/server/ternSecureMiddleware.d.ts.map +0 -1
  328. package/dist/types/utils/tern-ui-script.d.ts +0 -9
  329. package/dist/types/utils/tern-ui-script.d.ts.map +0 -1
@@ -0,0 +1,17 @@
1
+ import {
2
+ constants
3
+ } from "@tern-secure/backend";
4
+ import { NextResponse } from "next/server";
5
+ const serverRedirectWithAuth = (ternSecureRequest, res) => {
6
+ const location = res.headers.get("location");
7
+ const shouldAppendDevBrowser = res.headers.get(constants.Headers.TernSecureRedirectTo) === "true";
8
+ if (shouldAppendDevBrowser && !!location && ternSecureRequest.ternUrl.isCrossOrigin(location)) {
9
+ const url = new URL(location);
10
+ return NextResponse.redirect(url.href, res);
11
+ }
12
+ return res;
13
+ };
14
+ export {
15
+ serverRedirectWithAuth
16
+ };
17
+ //# sourceMappingURL=serverRedirectAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/serverRedirectAuth.ts"],"sourcesContent":["import type {\n TernSecureRequest,\n} from \"@tern-secure/backend\";\nimport {\n constants\n} from \"@tern-secure/backend\";\nimport { NextResponse } from 'next/server';\n\n/**\n * Grabs the dev browser JWT from cookies and appends it to the redirect URL when redirecting to cross-origin.\n */\nexport const serverRedirectWithAuth = (ternSecureRequest: TernSecureRequest, res: Response) => {\n const location = res.headers.get('location');\n const shouldAppendDevBrowser = res.headers.get(constants.Headers.TernSecureRedirectTo) === 'true';\n\n if (\n shouldAppendDevBrowser &&\n !!location &&\n ternSecureRequest.ternUrl.isCrossOrigin(location)\n ) {\n // Next.js 12.1+ allows redirects only to absolute URLs\n const url = new URL(location);\n return NextResponse.redirect(url.href, res);\n }\n return res;\n};\n"],"mappings":"AAGA;AAAA,EACE;AAAA,OACK;AACP,SAAS,oBAAoB;AAKtB,MAAM,yBAAyB,CAAC,mBAAsC,QAAkB;AAC7F,QAAM,WAAW,IAAI,QAAQ,IAAI,UAAU;AAC3C,QAAM,yBAAyB,IAAI,QAAQ,IAAI,UAAU,QAAQ,oBAAoB,MAAM;AAE3F,MACE,0BACA,CAAC,CAAC,YACF,kBAAkB,QAAQ,cAAc,QAAQ,GAChD;AAEA,UAAM,MAAM,IAAI,IAAI,QAAQ;AAC5B,WAAO,aAAa,SAAS,IAAI,MAAM,GAAG;AAAA,EAC5C;AACA,SAAO;AACT;","names":[]}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { useEffect } from "react";
3
2
  import { reg } from "@tern-secure/shared/serviceWorker";
3
+ import { useEffect } from "react";
4
4
  const TernUIServiceWorker = ({
5
5
  ternSecureConfig,
6
6
  baseUrl = window.location.origin
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/ternsecure-sw.ts"],"sourcesContent":["'use client';\n\nimport { useEffect } from 'react';\nimport type { TernSecureConfig } from '@tern-secure/types';\nimport { reg } from '@tern-secure/shared/serviceWorker';\n\ninterface TernUIServiceWorkerProps {\n ternSecureConfig?: TernSecureConfig;\n baseUrl?: string;\n}\n\nexport const TernUIServiceWorker: React.FC<TernUIServiceWorkerProps> = ({ \n ternSecureConfig,\n baseUrl = window.location.origin \n}) => {\n useEffect(() => {\n const registerServiceWorker = async () => {\n if (!ternSecureConfig) {\n console.warn('[TernSecure] Service worker registration skipped: config not provided');\n return;\n }\n\n try {\n await reg({\n firebaseConfig: ternSecureConfig,\n domain: baseUrl\n });\n } catch (error) {\n console.error('[TernSecure] Service worker registration failed:', error);\n }\n };\n\n registerServiceWorker();\n }, [ternSecureConfig, baseUrl]);\n\n return null;\n};"],"mappings":";AAEA,SAAS,iBAAiB;AAE1B,SAAS,WAAW;AAOb,MAAM,sBAA0D,CAAC;AAAA,EACpE;AAAA,EACA,UAAU,OAAO,SAAS;AAC9B,MAAM;AACJ,YAAU,MAAM;AACd,UAAM,wBAAwB,YAAY;AACxC,UAAI,CAAC,kBAAkB;AACrB,gBAAQ,KAAK,uEAAuE;AACpF;AAAA,MACF;AAEA,UAAI;AACF,cAAM,IAAI;AAAA,UACR,gBAAgB;AAAA,UAChB,QAAQ;AAAA,QACV,CAAC;AAAA,MACH,SAAS,OAAO;AACd,gBAAQ,MAAM,oDAAoD,KAAK;AAAA,MACzE;AAAA,IACF;AAEA,0BAAsB;AAAA,EACxB,GAAG,CAAC,kBAAkB,OAAO,CAAC;AAE9B,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/utils/ternsecure-sw.ts"],"sourcesContent":["'use client';\n\nimport { reg } from '@tern-secure/shared/serviceWorker';\nimport type { TernSecureConfig } from '@tern-secure/types';\nimport { useEffect } from 'react';\n\ninterface TernUIServiceWorkerProps {\n ternSecureConfig?: TernSecureConfig;\n baseUrl?: string;\n}\n\nexport const TernUIServiceWorker: React.FC<TernUIServiceWorkerProps> = ({ \n ternSecureConfig,\n baseUrl = window.location.origin \n}) => {\n useEffect(() => {\n const registerServiceWorker = async () => {\n if (!ternSecureConfig) {\n console.warn('[TernSecure] Service worker registration skipped: config not provided');\n return;\n }\n\n try {\n await reg({\n firebaseConfig: ternSecureConfig,\n domain: baseUrl\n });\n } catch (error) {\n console.error('[TernSecure] Service worker registration failed:', error);\n }\n };\n\n registerServiceWorker();\n }, [ternSecureConfig, baseUrl]);\n\n return null;\n};"],"mappings":";AAEA,SAAS,WAAW;AAEpB,SAAS,iBAAiB;AAOnB,MAAM,sBAA0D,CAAC;AAAA,EACpE;AAAA,EACA,UAAU,OAAO,SAAS;AAC9B,MAAM;AACJ,YAAU,MAAM;AACd,UAAM,wBAAwB,YAAY;AACxC,UAAI,CAAC,kBAAkB;AACrB,gBAAQ,KAAK,uEAAuE;AACpF;AAAA,MACF;AAEA,UAAI;AACF,cAAM,IAAI;AAAA,UACR,gBAAgB;AAAA,UAChB,QAAQ;AAAA,QACV,CAAC;AAAA,MACH,SAAS,OAAO;AACd,gBAAQ,MAAM,oDAAoD,KAAK;AAAA,MACzE;AAAA,IACF;AAEA,0BAAsB;AAAA,EACxB,GAAG,CAAC,kBAAkB,OAAO,CAAC;AAE9B,SAAO;AACT;","names":[]}
@@ -0,0 +1,57 @@
1
+ import { LogLevel, middlewareLogger } from "./logger";
2
+ function createEdgeCompatibleLogger(debug = false) {
3
+ if (debug) {
4
+ middlewareLogger.enable();
5
+ middlewareLogger.setLevel(LogLevel.DEBUG);
6
+ }
7
+ return {
8
+ logStart: (requestId, method, url) => {
9
+ middlewareLogger.debug(`[${requestId}] Middleware started for ${method} ${url}`);
10
+ },
11
+ logEnd: (requestId, duration) => {
12
+ middlewareLogger.debug(`[${requestId}] Middleware completed in ${duration.toFixed(2)}ms`);
13
+ },
14
+ logError: (requestId, duration, error) => {
15
+ middlewareLogger.error(
16
+ `[${requestId}] Middleware failed after ${duration.toFixed(2)}ms:`,
17
+ error instanceof Error ? error.message : "Unknown error"
18
+ );
19
+ },
20
+ debug: (message, ...args) => middlewareLogger.debug(message, ...args),
21
+ info: (message, ...args) => middlewareLogger.info(message, ...args),
22
+ warn: (message, ...args) => middlewareLogger.warn(message, ...args),
23
+ error: (message, ...args) => middlewareLogger.error(message, ...args)
24
+ };
25
+ }
26
+ const withLogger = (middleware, options = {}) => {
27
+ const { debug = false, logLevel = LogLevel.INFO } = options;
28
+ if (debug) {
29
+ middlewareLogger.enable();
30
+ middlewareLogger.setLevel(LogLevel.DEBUG);
31
+ } else {
32
+ middlewareLogger.setLevel(logLevel);
33
+ }
34
+ return async (request, event) => {
35
+ const startTime = performance.now();
36
+ const requestId = crypto.randomUUID().slice(0, 8);
37
+ middlewareLogger.debug(`[${requestId}] Middleware started for ${request.method} ${request.url}`);
38
+ try {
39
+ const result = await middleware(request, event);
40
+ const duration = performance.now() - startTime;
41
+ middlewareLogger.debug(`[${requestId}] Middleware completed in ${duration.toFixed(2)}ms`);
42
+ return result;
43
+ } catch (error) {
44
+ const duration = performance.now() - startTime;
45
+ middlewareLogger.error(
46
+ `[${requestId}] Middleware failed after ${duration.toFixed(2)}ms:`,
47
+ error instanceof Error ? error.message : "Unknown error"
48
+ );
49
+ throw error;
50
+ }
51
+ };
52
+ };
53
+ export {
54
+ createEdgeCompatibleLogger,
55
+ withLogger
56
+ };
57
+ //# sourceMappingURL=withLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/withLogger.ts"],"sourcesContent":["import type { NextMiddleware } from \"next/server\"\n\nimport { LogLevel,middlewareLogger } from \"./logger\"\n\nexport interface WithLoggerOptions {\n debug?: boolean\n logLevel?: LogLevel\n}\n\nexport function createEdgeCompatibleLogger(debug: boolean = false) {\n if (debug) {\n middlewareLogger.enable()\n middlewareLogger.setLevel(LogLevel.DEBUG)\n }\n \n return {\n logStart: (requestId: string, method: string, url: string) => {\n middlewareLogger.debug(`[${requestId}] Middleware started for ${method} ${url}`)\n },\n logEnd: (requestId: string, duration: number) => {\n middlewareLogger.debug(`[${requestId}] Middleware completed in ${duration.toFixed(2)}ms`)\n },\n logError: (requestId: string, duration: number, error: unknown) => {\n middlewareLogger.error(\n `[${requestId}] Middleware failed after ${duration.toFixed(2)}ms:`,\n error instanceof Error ? error.message : 'Unknown error'\n )\n },\n debug: (message: string, ...args: any[]) => middlewareLogger.debug(message, ...args),\n info: (message: string, ...args: any[]) => middlewareLogger.info(message, ...args),\n warn: (message: string, ...args: any[]) => middlewareLogger.warn(message, ...args),\n error: (message: string, ...args: any[]) => middlewareLogger.error(message, ...args),\n }\n}\n\nexport const withLogger = (\n middleware: NextMiddleware,\n options: WithLoggerOptions = {}\n): NextMiddleware => {\n const { debug = false, logLevel = LogLevel.INFO } = options\n\n if (debug) {\n middlewareLogger.enable()\n middlewareLogger.setLevel(LogLevel.DEBUG)\n } else {\n middlewareLogger.setLevel(logLevel)\n }\n\n return async (request, event) => {\n const startTime = performance.now()\n const requestId = crypto.randomUUID().slice(0, 8)\n \n middlewareLogger.debug(`[${requestId}] Middleware started for ${request.method} ${request.url}`)\n\n try {\n const result = await middleware(request, event)\n const duration = performance.now() - startTime\n \n middlewareLogger.debug(`[${requestId}] Middleware completed in ${duration.toFixed(2)}ms`)\n \n return result\n } catch (error) {\n const duration = performance.now() - startTime\n \n middlewareLogger.error(\n `[${requestId}] Middleware failed after ${duration.toFixed(2)}ms:`,\n error instanceof Error ? error.message : 'Unknown error'\n )\n \n throw error\n }\n }\n}"],"mappings":"AAEA,SAAS,UAAS,wBAAwB;AAOnC,SAAS,2BAA2B,QAAiB,OAAO;AACjE,MAAI,OAAO;AACT,qBAAiB,OAAO;AACxB,qBAAiB,SAAS,SAAS,KAAK;AAAA,EAC1C;AAEA,SAAO;AAAA,IACL,UAAU,CAAC,WAAmB,QAAgB,QAAgB;AAC5D,uBAAiB,MAAM,IAAI,SAAS,4BAA4B,MAAM,IAAI,GAAG,EAAE;AAAA,IACjF;AAAA,IACA,QAAQ,CAAC,WAAmB,aAAqB;AAC/C,uBAAiB,MAAM,IAAI,SAAS,6BAA6B,SAAS,QAAQ,CAAC,CAAC,IAAI;AAAA,IAC1F;AAAA,IACA,UAAU,CAAC,WAAmB,UAAkB,UAAmB;AACjE,uBAAiB;AAAA,QACf,IAAI,SAAS,6BAA6B,SAAS,QAAQ,CAAC,CAAC;AAAA,QAC7D,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC3C;AAAA,IACF;AAAA,IACA,OAAO,CAAC,YAAoB,SAAgB,iBAAiB,MAAM,SAAS,GAAG,IAAI;AAAA,IACnF,MAAM,CAAC,YAAoB,SAAgB,iBAAiB,KAAK,SAAS,GAAG,IAAI;AAAA,IACjF,MAAM,CAAC,YAAoB,SAAgB,iBAAiB,KAAK,SAAS,GAAG,IAAI;AAAA,IACjF,OAAO,CAAC,YAAoB,SAAgB,iBAAiB,MAAM,SAAS,GAAG,IAAI;AAAA,EACrF;AACF;AAEO,MAAM,aAAa,CACxB,YACA,UAA6B,CAAC,MACX;AACnB,QAAM,EAAE,QAAQ,OAAO,WAAW,SAAS,KAAK,IAAI;AAEpD,MAAI,OAAO;AACT,qBAAiB,OAAO;AACxB,qBAAiB,SAAS,SAAS,KAAK;AAAA,EAC1C,OAAO;AACL,qBAAiB,SAAS,QAAQ;AAAA,EACpC;AAEA,SAAO,OAAO,SAAS,UAAU;AAC/B,UAAM,YAAY,YAAY,IAAI;AAClC,UAAM,YAAY,OAAO,WAAW,EAAE,MAAM,GAAG,CAAC;AAEhD,qBAAiB,MAAM,IAAI,SAAS,4BAA4B,QAAQ,MAAM,IAAI,QAAQ,GAAG,EAAE;AAE/F,QAAI;AACF,YAAM,SAAS,MAAM,WAAW,SAAS,KAAK;AAC9C,YAAM,WAAW,YAAY,IAAI,IAAI;AAErC,uBAAiB,MAAM,IAAI,SAAS,6BAA6B,SAAS,QAAQ,CAAC,CAAC,IAAI;AAExF,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,WAAW,YAAY,IAAI,IAAI;AAErC,uBAAiB;AAAA,QACf,IAAI,SAAS,6BAA6B,SAAS,QAAQ,CAAC,CAAC;AAAA,QAC7D,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC3C;AAEA,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,19 @@
1
+ export declare function createSessionCookieServer(idToken: string): Promise<import("@tern-secure/types").SessionResult>;
2
+ export declare function clearSessionCookieServer(): Promise<import("@tern-secure/types").SessionResult>;
3
+ export declare function clearNextSessionCookie(): Promise<{
4
+ success: boolean;
5
+ message: string;
6
+ }>;
7
+ export declare function setNextServerSession(idToken: string): Promise<{
8
+ success: boolean;
9
+ message: string;
10
+ }>;
11
+ export declare function setNextServerToken(token: string): Promise<{
12
+ success: boolean;
13
+ message: string;
14
+ }>;
15
+ export declare function createNextSessionCookie(idToken: string): Promise<{
16
+ success: boolean;
17
+ message: string;
18
+ }>;
19
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/actions.ts"],"names":[],"mappings":"AAcA,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,uDAG9D;AAED,wBAAsB,wBAAwB,wDAG7C;AAED,wBAAsB,sBAAsB;;;GAE3C;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM;;;GAEzD;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM;;;GAErD;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM;;;GAE5D"}
@@ -0,0 +1,2 @@
1
+ export declare const TENANT_ID: string;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAmD,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { type NextRequest, NextResponse } from 'next/server';
2
+ import type { AuthEndpoint, ComprehensiveValidationResult, CorsOptions, EndpointConfig, SecurityOptions, SessionSubEndpoint, ValidationConfig } from './types';
3
+ export interface RequestContext {
4
+ request: NextRequest;
5
+ origin: string | null;
6
+ host: string | null;
7
+ referer: string | null;
8
+ userAgent: string;
9
+ method: string;
10
+ pathSegments: string[];
11
+ }
12
+ export declare function createRequestContext(request: NextRequest): RequestContext;
13
+ /**
14
+ * Main validators factory function
15
+ * Returns an object containing all validator functions and utilities
16
+ */
17
+ export declare function createValidators(context: RequestContext): {
18
+ createValidationConfig: (overrides?: Partial<ValidationConfig>) => ValidationConfig;
19
+ validateRequest: (config: ValidationConfig) => Promise<ComprehensiveValidationResult>;
20
+ validateCors: (corsOptions: CorsOptions) => Promise<NextResponse | null>;
21
+ validateSecurity: (securityOptions: SecurityOptions) => Promise<NextResponse | null>;
22
+ validatePathStructure: () => NextResponse | null;
23
+ validateEndpoint: (_endpoint: AuthEndpoint, endpointConfig: EndpointConfig) => NextResponse | null;
24
+ validateSubEndpoint: (subEndpoint: SessionSubEndpoint | undefined, subEndpointConfig: any) => NextResponse | null;
25
+ validateSessionRequest: () => Promise<{
26
+ body: any;
27
+ idToken?: string;
28
+ csrfToken?: string;
29
+ error?: NextResponse;
30
+ }>;
31
+ validateIdToken: (idToken: string | undefined) => NextResponse | null;
32
+ validateCsrfToken: (csrfToken: string, csrfCookieValue: string | undefined) => NextResponse | null;
33
+ createCorsOptionsResponse: (corsOptions: CorsOptions) => NextResponse;
34
+ };
35
+ //# sourceMappingURL=fnValidators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fnValidators.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/fnValidators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7D,OAAO,KAAK,EACV,YAAY,EACZ,6BAA6B,EAC7B,WAAW,EACX,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAazE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc;yCA4SX,OAAO,CAAC,gBAAgB,CAAC,KAAQ,gBAAgB;8BA7ErD,gBAAgB,KAAG,OAAO,CAAC,6BAA6B,CAAC;gCA5NvD,WAAW,KAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;wCAqDlC,eAAe,KAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;iCA0F7D,YAAY,GAAG,IAAI;kCAYxC,YAAY,kBACP,cAAc,KAC7B,YAAY,GAAG,IAAI;uCAaP,kBAAkB,GAAG,SAAS,qBACxB,GAAG,KACrB,YAAY,GAAG,IAAI;kCAgBmB,OAAO,CAAC;QAC/C,IAAI,EAAE,GAAG,CAAC;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;+BAYgC,MAAM,GAAG,SAAS,KAAG,YAAY,GAAG,IAAI;mCAhF7D,MAAM,mBACA,MAAM,GAAG,SAAS,KAClC,YAAY,GAAG,IAAI;6CAvG0B,WAAW,KAAG,YAAY;EAuS3E"}
@@ -1,2 +1,4 @@
1
- export { createSessionHandler } from './sessionHandler';
1
+ export { createTernSecureNextJsHandler } from './ternsecureNextjsHandler';
2
+ export { clearSessionCookieServer, clearNextSessionCookie, createSessionCookieServer, createNextSessionCookie, setNextServerSession, setNextServerToken } from './actions';
3
+ export type { TernSecureHandlerOptions } from './types';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAEzE,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EACrB,MAAM,WAAW,CAAA;AAElB,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { NextResponse } from 'next/server';
2
+ /**
3
+ * Standardized error response creation
4
+ */
5
+ export declare function createApiErrorResponse(code: string, message: string, status: number): NextResponse;
6
+ /**
7
+ * Standardized success response creation
8
+ */
9
+ export declare function createApiSuccessResponse<T>(data: T, status?: number): NextResponse;
10
+ /**
11
+ * Session verification response utilities
12
+ */
13
+ export declare class SessionResponseHelper {
14
+ static createVerificationResponse(decodedSession: any): NextResponse;
15
+ static createUnauthorizedResponse(): NextResponse;
16
+ static createSessionCreationResponse(res: any): NextResponse;
17
+ static createRefreshResponse(refreshRes: any): NextResponse;
18
+ static createRevokeResponse(res: any): NextResponse;
19
+ }
20
+ /**
21
+ * HTTP method response utilities
22
+ */
23
+ export declare class HttpResponseHelper {
24
+ static createMethodNotAllowedResponse(): NextResponse;
25
+ static createNotFoundResponse(): NextResponse;
26
+ static createSubEndpointNotSupportedResponse(): NextResponse;
27
+ }
28
+ //# sourceMappingURL=responses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/responses.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,YAAY,CAiBd;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAE,MAAY,GAAG,YAAY,CAQvF;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC,MAAM,CAAC,0BAA0B,CAAC,cAAc,EAAE,GAAG,GAAG,YAAY;IAQpE,MAAM,CAAC,0BAA0B,IAAI,YAAY;IAIjD,MAAM,CAAC,6BAA6B,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY;IAoB5D,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,GAAG,GAAG,YAAY;IAY3D,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY;CAUpD;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,8BAA8B,IAAI,YAAY;IAIrD,MAAM,CAAC,sBAAsB,IAAI,YAAY;IAI7C,MAAM,CAAC,qCAAqC,IAAI,YAAY;CAO7D"}
@@ -0,0 +1,26 @@
1
+ import type { NextRequest, NextResponse } from 'next/server';
2
+ import type { SessionSubEndpoint, TernSecureHandlerOptions, TernSecureInternalHandlerConfig } from './types';
3
+ /**
4
+ * Session GET request handlers
5
+ */
6
+ export declare class SessionGetHandler {
7
+ static handle(request: NextRequest, subEndpoint: SessionSubEndpoint, _config: Required<TernSecureHandlerOptions>): Promise<NextResponse>;
8
+ private static handleVerify;
9
+ }
10
+ /**
11
+ * Session POST request handlers
12
+ */
13
+ export declare class SessionPostHandler {
14
+ static handle(request: NextRequest, subEndpoint: SessionSubEndpoint, _config: TernSecureInternalHandlerConfig): Promise<NextResponse>;
15
+ private static handleCreateSession;
16
+ private static handleRefreshSession;
17
+ private static handleRevokeSession;
18
+ }
19
+ /**
20
+ * Main session endpoint orchestrator
21
+ */
22
+ export declare class SessionEndpointHandler {
23
+ static handle(request: NextRequest, method: string, subEndpoint: SessionSubEndpoint | undefined, config: Required<TernSecureHandlerOptions>): Promise<NextResponse>;
24
+ private static validateSubEndpoint;
25
+ }
26
+ //# sourceMappingURL=sessionHandlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionHandlers.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/sessionHandlers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI7D,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,qBAAa,iBAAiB;WACf,MAAM,CACjB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GAC1C,OAAO,CAAC,YAAY,CAAC;mBASH,YAAY;CAiBlC;AAED;;GAEG;AACH,qBAAa,kBAAkB;WAChB,MAAM,CACjB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,YAAY,CAAC;mBA0BH,mBAAmB;mBAmBnB,oBAAoB;mBA0BpB,mBAAmB;CAIzC;AAED;;GAEG;AACH,qBAAa,sBAAsB;WACpB,MAAM,CACjB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,GAAG,SAAS,EAC3C,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GACzC,OAAO,CAAC,YAAY,CAAC;IA4BxB,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAmBnC"}
@@ -0,0 +1,7 @@
1
+ import type { NextRequest, NextResponse } from 'next/server';
2
+ import type { TernSecureHandlerOptions } from './types';
3
+ export declare function createTernSecureNextJsHandler(options?: TernSecureHandlerOptions): {
4
+ GET: (request: NextRequest) => Promise<NextResponse>;
5
+ POST: (request: NextRequest) => Promise<NextResponse>;
6
+ };
7
+ //# sourceMappingURL=ternsecureNextjsHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ternsecureNextjsHandler.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/ternsecureNextjsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO7D,OAAO,KAAK,EAGV,wBAAwB,EACQ,MAAM,SAAS,CAAC;AA4ClD,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE,wBAAwB;mBAW9C,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC;oBAAnC,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC;EA0BpE"}
@@ -0,0 +1,105 @@
1
+ import { type NextResponse } from 'next/server';
2
+ export interface CorsOptions {
3
+ allowedOrigins: string[] | '*';
4
+ allowedMethods?: string[];
5
+ allowedHeaders?: string[];
6
+ allowCredentials?: boolean;
7
+ maxAge?: number;
8
+ skipSameOrigin?: boolean;
9
+ }
10
+ export interface CookieOptions {
11
+ name?: string;
12
+ domain?: string;
13
+ path?: string;
14
+ secure?: boolean;
15
+ httpOnly?: boolean;
16
+ sameSite?: 'strict' | 'lax' | 'none';
17
+ maxAge?: number;
18
+ }
19
+ export interface RateLimitOptions {
20
+ windowMs?: number;
21
+ maxRequests?: number;
22
+ skipSuccessful?: boolean;
23
+ skipFailedRequests?: boolean;
24
+ }
25
+ export interface SecurityOptions {
26
+ requireCSRF?: boolean;
27
+ allowedReferers?: string[];
28
+ requiredHeaders?: Record<string, string>;
29
+ ipWhitelist?: string[];
30
+ userAgent?: {
31
+ block?: string[];
32
+ allow?: string[];
33
+ };
34
+ }
35
+ export interface EndpointConfig {
36
+ enabled: boolean;
37
+ methods: ('GET' | 'POST' | 'PUT' | 'DELETE')[];
38
+ requireAuth?: boolean;
39
+ rateLimit?: RateLimitOptions;
40
+ security?: SecurityOptions;
41
+ cors?: Partial<CorsOptions>;
42
+ }
43
+ export interface SessionEndpointConfig extends EndpointConfig {
44
+ subEndpoints?: {
45
+ [K in SessionSubEndpoint]?: Partial<EndpointConfig>;
46
+ };
47
+ }
48
+ export interface TernSecureHandlerOptions {
49
+ cors?: CorsOptions;
50
+ cookies?: CookieOptions;
51
+ rateLimit?: RateLimitOptions;
52
+ security?: SecurityOptions;
53
+ endpoints?: {
54
+ sessions?: SessionEndpointConfig;
55
+ };
56
+ debug?: boolean;
57
+ environment?: 'development' | 'production' | 'test';
58
+ basePath?: string;
59
+ }
60
+ /**
61
+ * Define an internal config type that extends the public options
62
+ * with server-side only values like tenantId.
63
+ */
64
+ export type TernSecureInternalHandlerConfig = Required<TernSecureHandlerOptions> & {
65
+ tenantId?: string;
66
+ };
67
+ export type AuthEndpoint = 'sessions' | 'users';
68
+ export type SessionSubEndpoint = 'verify' | 'createsession' | 'refresh' | 'revoke';
69
+ export declare const DEFAULT_CORS_OPTIONS: CorsOptions;
70
+ export declare const DEFAULT_COOKIE_OPTIONS: CookieOptions;
71
+ export declare const DEFAULT_SECURITY_OPTIONS: SecurityOptions;
72
+ export declare const DEFAULT_ENDPOINT_CONFIG: EndpointConfig;
73
+ export declare const DEFAULT_SESSIONS_CONFIG: SessionEndpointConfig;
74
+ export declare const DEFAULT_HANDLER_OPTIONS: Required<TernSecureHandlerOptions> & {
75
+ endpoints: Required<NonNullable<TernSecureHandlerOptions['endpoints']>>;
76
+ };
77
+ export interface ValidationResult {
78
+ error?: NextResponse;
79
+ data?: any;
80
+ }
81
+ export interface ValidationConfig {
82
+ cors?: CorsOptions;
83
+ security?: SecurityOptions;
84
+ endpoint?: {
85
+ name: AuthEndpoint;
86
+ config: EndpointConfig;
87
+ };
88
+ subEndpoint?: {
89
+ name: SessionSubEndpoint;
90
+ config: EndpointConfig;
91
+ };
92
+ requireIdToken?: boolean;
93
+ requireCsrfToken?: boolean;
94
+ }
95
+ export interface ComprehensiveValidationResult {
96
+ isValid: boolean;
97
+ error?: NextResponse;
98
+ corsResponse?: NextResponse;
99
+ sessionData?: {
100
+ body: any;
101
+ idToken?: string;
102
+ csrfToken?: string;
103
+ };
104
+ }
105
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { NextRequest } from 'next/server';
2
+ /**
3
+ * HTTP utilities
4
+ */
5
+ export declare class HttpUtils {
6
+ /**
7
+ * Extract client IP address from various headers
8
+ */
9
+ static getClientIP(request: NextRequest): string;
10
+ /**
11
+ * Parse URL path segments for routing
12
+ */
13
+ static parsePathSegments(url: URL): string[];
14
+ /**
15
+ * Extract authentication headers
16
+ */
17
+ static extractAuthHeaders(request: NextRequest): {
18
+ origin: string | null;
19
+ host: string | null;
20
+ referer: string | null;
21
+ userAgent: string;
22
+ authorization: string | null;
23
+ xRequestedWith: string | null;
24
+ };
25
+ }
26
+ /**
27
+ * Configuration utilities
28
+ */
29
+ export declare class ConfigUtils {
30
+ /**
31
+ * Deep merge handler options with defaults
32
+ */
33
+ static mergeWithDefaults(defaults: any, options?: any): any;
34
+ }
35
+ /**
36
+ * Cookie utilities
37
+ */
38
+ export declare class CookieUtils {
39
+ static extractSessionCookies(request: NextRequest): {
40
+ sessionCookie: string | undefined;
41
+ csrfCookie: string | undefined;
42
+ mainSession: string | undefined;
43
+ };
44
+ }
45
+ /**
46
+ * Logging utilities for debugging
47
+ */
48
+ export declare class LoggingUtils {
49
+ static logRequest(request: NextRequest, context?: string): void;
50
+ static logError(error: any, context?: string): void;
51
+ static logWarning(message: string, context?: string): void;
52
+ }
53
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAYhD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE;IAI5C;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW;;;;;;;;CAU/C;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,QAAQ,EAAE,GAAG,EACb,OAAO,CAAC,EAAE,GAAG,GACZ,GAAG;CAgBP;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,WAAW;;;;;CAOlD;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;IAMxD,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM;IAI5C,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAGpD"}
@@ -0,0 +1,46 @@
1
+ import type { NextRequest } from 'next/server';
2
+ import { NextResponse } from 'next/server';
3
+ import type { AuthEndpoint, CorsOptions, SecurityOptions, SessionSubEndpoint } from './types';
4
+ /**
5
+ * CORS validation utilities
6
+ */
7
+ export declare class CorsValidator {
8
+ static validate(request: NextRequest, corsOptions: CorsOptions): Promise<NextResponse | null>;
9
+ static createOptionsResponse(corsOptions: CorsOptions): NextResponse;
10
+ }
11
+ /**
12
+ * Security validation utilities
13
+ */
14
+ export declare class SecurityValidator {
15
+ static validate(request: NextRequest, securityOptions: SecurityOptions): Promise<NextResponse | null>;
16
+ private static validateCsrf;
17
+ private static validateRequiredHeaders;
18
+ private static validateUserAgent;
19
+ }
20
+ /**
21
+ * CSRF token validation utilities
22
+ */
23
+ export declare class CsrfValidator {
24
+ static validate(csrfToken: string, csrfCookieValue: string | undefined): NextResponse | null;
25
+ }
26
+ /**
27
+ * Route validation utilities
28
+ */
29
+ export declare class RouteValidator {
30
+ static validatePathStructure(pathSegments: string[]): NextResponse | null;
31
+ static validateEndpoint(_endpoint: AuthEndpoint, endpointConfig: any, method: string): NextResponse | null;
32
+ static validateSubEndpoint(subEndpoint: SessionSubEndpoint | undefined, subEndpointConfig: any, method: string): NextResponse | null;
33
+ }
34
+ /**
35
+ * Request body validation utilities
36
+ */
37
+ export declare class RequestValidator {
38
+ static validateSessionRequest(request: NextRequest): Promise<{
39
+ body: any;
40
+ idToken?: string;
41
+ csrfToken?: string;
42
+ error?: NextResponse;
43
+ }>;
44
+ static validateIdToken(idToken: string | undefined): NextResponse | null;
45
+ }
46
+ //# sourceMappingURL=validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE9F;;GAEG;AACH,qBAAa,aAAa;WACX,QAAQ,CACnB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA0B/B,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY;CA4BrE;AAED;;GAEG;AACH,qBAAa,iBAAiB;WACf,QAAQ,CACnB,OAAO,EAAE,WAAW,EACpB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAqB/B,OAAO,CAAC,MAAM,CAAC,YAAY;IAwB3B,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAmBtC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CA4BjC;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI;CAe7F;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,YAAY,GAAG,IAAI;IAWzE,MAAM,CAAC,gBAAgB,CACrB,SAAS,EAAE,YAAY,EACvB,cAAc,EAAE,GAAG,EACnB,MAAM,EAAE,MAAM,GACb,YAAY,GAAG,IAAI;IAYtB,MAAM,CAAC,mBAAmB,CACxB,WAAW,EAAE,kBAAkB,GAAG,SAAS,EAC3C,iBAAiB,EAAE,GAAG,EACtB,MAAM,EAAE,MAAM,GACb,YAAY,GAAG,IAAI;CAevB;AAED;;GAEG;AACH,qBAAa,gBAAgB;WACd,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;QACjE,IAAI,EAAE,GAAG,CAAC;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IAYF,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI;CAUzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"TernSecureProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AActD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,2CASrF"}
1
+ {"version":3,"file":"TernSecureProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAatD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,2CAQrF"}
@@ -0,0 +1,26 @@
1
+ import type { AuthObject } from '@tern-secure/backend';
2
+ import { redirect } from 'next/navigation';
3
+ import { type AuthProtect } from '../../server/protect';
4
+ import { type RedirectFun } from '../../server/redirect';
5
+ import type { BaseUser } from '../../server/types';
6
+ export interface AuthResult {
7
+ user: BaseUser | null;
8
+ error: Error | null;
9
+ }
10
+ /**
11
+ * `Auth` object of the currently active user and the `redirectToSignIn()` method.
12
+ */
13
+ type Auth = AuthObject & {
14
+ redirectToSignIn: RedirectFun<ReturnType<typeof redirect>>;
15
+ redirectToSignUp: RedirectFun<ReturnType<typeof redirect>>;
16
+ };
17
+ export interface AuthFn {
18
+ (): Promise<Auth>;
19
+ protect: AuthProtect;
20
+ }
21
+ /**
22
+ * Get the current authenticated user from the session or token
23
+ */
24
+ export declare const auth: AuthFn;
25
+ export {};
26
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/app-router/server/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAQvD,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIrD,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,oBAAoB,CAAC;AAGhE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,KAAK,IAAI,GAAG,UAAU,GAAG;IACvB,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC;IAC3D,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,WAAW,MAAM;IACrB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElB,OAAO,EAAE,WAAW,CAAC;CACtB;AAyBD;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,MAwClB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { NextRequest } from 'next/server';
2
+ export declare const isPrerenderingBailout: (e: unknown) => boolean;
3
+ export declare function buildRequestLike(): Promise<NextRequest>;
4
+ export declare function getScriptNonceFromHeader(cspHeaderValue: string): string | undefined;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/app-router/server/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,eAAO,MAAM,qBAAqB,GAAI,GAAG,OAAO,YAiB/C,CAAC;AAEF,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAkB7D;AAGD,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA0CnF"}
@@ -1,2 +1,2 @@
1
- export { useAuth, useIdToken, useSignUp, useSession, SignIn, SignUp, } from '@tern-secure/react';
1
+ export { useAuth, useIdToken, useSession, useSignIn, signIn, } from '@tern-secure/react';
2
2
  //# sourceMappingURL=components.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/boundary/components.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,OAAO,EACP,UAAU,EACV,SAAS,EACT,UAAU,EACV,MAAM,EAGN,MAAM,GACT,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/boundary/components.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,GACT,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,11 @@
1
+ export declare const constants: {
2
+ readonly Headers: {
3
+ readonly NextRewrite: "x-middleware-rewrite";
4
+ readonly NextResume: "x-middleware-next";
5
+ readonly NextRedirect: "Location";
6
+ readonly NextUrl: "next-url";
7
+ readonly NextAction: "next-action";
8
+ readonly NextjsData: "x-nextjs-data";
9
+ };
10
+ };
11
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS;;;;;;;;;CAEZ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { SignInResponse } from "@tern-secure/types";
1
+ import type { SignInResponse } from "@tern-secure/types";
2
2
  export type ErrorCode = keyof typeof ERRORS;
3
3
  export interface AuthErrorResponse {
4
4
  success: false;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,MAAM,CAAA;AAE3C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;CAsBT,CAAA;AAmBV,qBAAa,eAAgB,SAAQ,KAAK;IACxC,IAAI,EAAE,SAAS,CAAA;gBAEH,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;CAK9C;AAiJD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAwFzE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,iBAAiB,CASpF;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,6BAsBrE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,MAAM,CAAA;AAE3C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;CAsBT,CAAA;AAmBV,qBAAa,eAAgB,SAAQ,KAAK;IACxC,IAAI,EAAE,SAAS,CAAA;gBAEH,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;CAK9C;AAiJD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAwFzE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,iBAAiB,CASpF;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,6BAsBrE"}
@@ -1,5 +1,5 @@
1
1
  export { TernSecureProvider } from './app-router/client/TernSecureProvider';
2
- export { useAuth, useIdToken, useSignUp, useSession, } from './boundary/components';
3
- export { SignIn, SignUp, UserButton, } from './components/uiComponents';
4
- export type { TernSecureUser, TernSecureUserData } from '@tern-secure/types';
2
+ export { useAuth, useIdToken, useSession, useSignIn, signIn } from './boundary/components';
3
+ export type { TernSecureUser, TernSecureUserData, SignInResponseTree } from '@tern-secure/types';
4
+ export type { UserInfo, SessionResult } from './types';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,OAAO,EACH,OAAO,EACP,UAAU,EACV,SAAS,EACT,UAAU,GAKb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACH,MAAM,EACN,MAAM,EACN,UAAU,GACb,MAAM,2BAA2B,CAAA;AAElC,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,OAAO,EACH,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,EAKT,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEhG,YAAY,EACR,QAAQ,EACR,aAAa,EAChB,MAAM,SAAS,CAAA"}
@@ -0,0 +1,5 @@
1
+ export declare const API_URL: string | undefined;
2
+ export declare const API_VERSION: string;
3
+ export declare const SIGN_IN_URL: string;
4
+ export declare const SIGN_UP_URL: string;
5
+ //# sourceMappingURL=constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../../src/server/constant.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,oBAAiC,CAAA;AACrD,eAAO,MAAM,WAAW,QAA6C,CAAC;AACtE,eAAO,MAAM,WAAW,QAA4C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA4C,CAAC"}