@tern-secure/nextjs 3.2.41 → 3.2.43

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 (110) hide show
  1. package/README.md +34 -0
  2. package/dist/cjs/app-router/client/TernSecureProvider.js +1 -1
  3. package/dist/cjs/app-router/client/TernSecureProvider.js.map +1 -1
  4. package/dist/cjs/app-router/client/actions.js +52 -2
  5. package/dist/cjs/app-router/client/actions.js.map +1 -1
  6. package/dist/cjs/app-router/server/sessionTernSecure.js +21 -1
  7. package/dist/cjs/app-router/server/sessionTernSecure.js.map +1 -1
  8. package/dist/cjs/boundary/TernSecureClientProvider.js +1 -2
  9. package/dist/cjs/boundary/TernSecureClientProvider.js.map +1 -1
  10. package/dist/cjs/boundary/hooks/useAuth.js +0 -6
  11. package/dist/cjs/boundary/hooks/useAuth.js.map +1 -1
  12. package/dist/cjs/components/background.js +65 -0
  13. package/dist/cjs/components/background.js.map +1 -0
  14. package/dist/cjs/components/sign-in.js +162 -56
  15. package/dist/cjs/components/sign-in.js.map +1 -1
  16. package/dist/cjs/components/sign-out.js +69 -0
  17. package/dist/cjs/components/sign-out.js.map +1 -0
  18. package/dist/cjs/components/ui/alert.js +88 -0
  19. package/dist/cjs/components/ui/alert.js.map +1 -0
  20. package/dist/cjs/components/ui/button.js +84 -0
  21. package/dist/cjs/components/ui/button.js.map +1 -0
  22. package/dist/cjs/components/ui/card.js +101 -0
  23. package/dist/cjs/components/ui/card.js.map +1 -0
  24. package/dist/cjs/components/ui/input.js +58 -0
  25. package/dist/cjs/components/ui/input.js.map +1 -0
  26. package/dist/cjs/components/ui/label.js +55 -0
  27. package/dist/cjs/components/ui/label.js.map +1 -0
  28. package/dist/cjs/components/ui/separator.js +59 -0
  29. package/dist/cjs/components/ui/separator.js.map +1 -0
  30. package/dist/cjs/index.js +3 -0
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/cjs/lib/utils.d.js +17 -0
  33. package/dist/cjs/lib/utils.d.js.map +1 -0
  34. package/dist/cjs/lib/utils.js +33 -0
  35. package/dist/cjs/lib/utils.js.map +1 -0
  36. package/dist/cjs/utils/client-init.js.map +1 -1
  37. package/dist/cjs/utils/construct.js +63 -0
  38. package/dist/cjs/utils/construct.js.map +1 -0
  39. package/dist/esm/app-router/client/TernSecureProvider.js +1 -1
  40. package/dist/esm/app-router/client/TernSecureProvider.js.map +1 -1
  41. package/dist/esm/app-router/client/actions.js +49 -2
  42. package/dist/esm/app-router/client/actions.js.map +1 -1
  43. package/dist/esm/app-router/server/sessionTernSecure.js +20 -1
  44. package/dist/esm/app-router/server/sessionTernSecure.js.map +1 -1
  45. package/dist/esm/boundary/TernSecureClientProvider.js +1 -2
  46. package/dist/esm/boundary/TernSecureClientProvider.js.map +1 -1
  47. package/dist/esm/boundary/hooks/useAuth.js +0 -6
  48. package/dist/esm/boundary/hooks/useAuth.js.map +1 -1
  49. package/dist/esm/components/background.js +41 -0
  50. package/dist/esm/components/background.js.map +1 -0
  51. package/dist/esm/components/sign-in.js +160 -54
  52. package/dist/esm/components/sign-in.js.map +1 -1
  53. package/dist/esm/components/sign-out.js +45 -0
  54. package/dist/esm/components/sign-out.js.map +1 -0
  55. package/dist/esm/components/ui/alert.js +52 -0
  56. package/dist/esm/components/ui/alert.js.map +1 -0
  57. package/dist/esm/components/ui/button.js +49 -0
  58. package/dist/esm/components/ui/button.js.map +1 -0
  59. package/dist/esm/components/ui/card.js +62 -0
  60. package/dist/esm/components/ui/card.js.map +1 -0
  61. package/dist/esm/components/ui/input.js +24 -0
  62. package/dist/esm/components/ui/input.js.map +1 -0
  63. package/dist/esm/components/ui/label.js +21 -0
  64. package/dist/esm/components/ui/label.js.map +1 -0
  65. package/dist/esm/components/ui/separator.js +25 -0
  66. package/dist/esm/components/ui/separator.js.map +1 -0
  67. package/dist/esm/index.js +2 -0
  68. package/dist/esm/index.js.map +1 -1
  69. package/dist/esm/lib/utils.d.js +1 -0
  70. package/dist/esm/lib/utils.d.js.map +1 -0
  71. package/dist/esm/lib/utils.js +9 -0
  72. package/dist/esm/lib/utils.js.map +1 -0
  73. package/dist/esm/utils/client-init.js.map +1 -1
  74. package/dist/esm/utils/construct.js +37 -0
  75. package/dist/esm/utils/construct.js.map +1 -0
  76. package/dist/types/app-router/client/TernSecureProvider.d.ts +1 -1
  77. package/dist/types/app-router/client/TernSecureProvider.d.ts.map +1 -1
  78. package/dist/types/app-router/client/actions.d.ts +34 -0
  79. package/dist/types/app-router/client/actions.d.ts.map +1 -1
  80. package/dist/types/app-router/server/sessionTernSecure.d.ts +4 -0
  81. package/dist/types/app-router/server/sessionTernSecure.d.ts.map +1 -1
  82. package/dist/types/boundary/TernSecureClientProvider.d.ts.map +1 -1
  83. package/dist/types/boundary/hooks/useAuth.d.ts +0 -1
  84. package/dist/types/boundary/hooks/useAuth.d.ts.map +1 -1
  85. package/dist/types/components/background.d.ts +2 -0
  86. package/dist/types/components/background.d.ts.map +1 -0
  87. package/dist/types/components/sign-in.d.ts +8 -10
  88. package/dist/types/components/sign-in.d.ts.map +1 -1
  89. package/dist/types/components/sign-out.d.ts +10 -0
  90. package/dist/types/components/sign-out.d.ts.map +1 -0
  91. package/dist/types/components/ui/alert.d.ts +9 -0
  92. package/dist/types/components/ui/alert.d.ts.map +1 -0
  93. package/dist/types/components/ui/button.d.ts +12 -0
  94. package/dist/types/components/ui/button.d.ts.map +1 -0
  95. package/dist/types/components/ui/card.d.ts +9 -0
  96. package/dist/types/components/ui/card.d.ts.map +1 -0
  97. package/dist/types/components/ui/input.d.ts +4 -0
  98. package/dist/types/components/ui/input.d.ts.map +1 -0
  99. package/dist/types/components/ui/label.d.ts +6 -0
  100. package/dist/types/components/ui/label.d.ts.map +1 -0
  101. package/dist/types/components/ui/separator.d.ts +5 -0
  102. package/dist/types/components/ui/separator.d.ts.map +1 -0
  103. package/dist/types/index.d.ts +1 -0
  104. package/dist/types/index.d.ts.map +1 -1
  105. package/dist/types/lib/utils.d.ts +3 -0
  106. package/dist/types/lib/utils.d.ts.map +1 -0
  107. package/dist/types/utils/client-init.d.ts.map +1 -1
  108. package/dist/types/utils/construct.d.ts +22 -0
  109. package/dist/types/utils/construct.d.ts.map +1 -0
  110. package/package.json +79 -65
@@ -0,0 +1,49 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { Slot } from "@radix-ui/react-slot";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "../../lib/utils";
6
+ const buttonVariants = cva(
7
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
12
+ destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
13
+ outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
14
+ secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
15
+ ghost: "hover:bg-accent hover:text-accent-foreground",
16
+ link: "text-primary underline-offset-4 hover:underline"
17
+ },
18
+ size: {
19
+ default: "h-9 px-4 py-2",
20
+ sm: "h-8 rounded-md px-3 text-xs",
21
+ lg: "h-10 rounded-md px-8",
22
+ icon: "h-9 w-9"
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ variant: "default",
27
+ size: "default"
28
+ }
29
+ }
30
+ );
31
+ const Button = React.forwardRef(
32
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
33
+ const Comp = asChild ? Slot : "button";
34
+ return /* @__PURE__ */ jsx(
35
+ Comp,
36
+ {
37
+ className: cn(buttonVariants({ variant, size, className })),
38
+ ref,
39
+ ...props
40
+ }
41
+ );
42
+ }
43
+ );
44
+ Button.displayName = "Button";
45
+ export {
46
+ Button,
47
+ buttonVariants
48
+ };
49
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/button.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n"],"mappings":"AA8CM;AA9CN,YAAY,WAAW;AACvB,SAAS,YAAY;AACrB,SAAS,WAA8B;AAEvC,SAAS,UAAU;AAEnB,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAQA,MAAM,SAAS,MAAM;AAAA,EACnB,CAAC,EAAE,WAAW,SAAS,MAAM,UAAU,OAAO,GAAG,MAAM,GAAG,QAAQ;AAChE,UAAM,OAAO,UAAU,OAAO;AAC9B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,GAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,QAC1D;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,OAAO,cAAc;","names":[]}
@@ -0,0 +1,62 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../../lib/utils";
4
+ const Card = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
5
+ "div",
6
+ {
7
+ ref,
8
+ className: cn(
9
+ "rounded-xl border bg-card text-card-foreground shadow",
10
+ className
11
+ ),
12
+ ...props
13
+ }
14
+ ));
15
+ Card.displayName = "Card";
16
+ const CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
17
+ "div",
18
+ {
19
+ ref,
20
+ className: cn("flex flex-col space-y-1.5 p-6", className),
21
+ ...props
22
+ }
23
+ ));
24
+ CardHeader.displayName = "CardHeader";
25
+ const CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
26
+ "div",
27
+ {
28
+ ref,
29
+ className: cn("font-semibold leading-none tracking-tight", className),
30
+ ...props
31
+ }
32
+ ));
33
+ CardTitle.displayName = "CardTitle";
34
+ const CardDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
35
+ "div",
36
+ {
37
+ ref,
38
+ className: cn("text-sm text-muted-foreground", className),
39
+ ...props
40
+ }
41
+ ));
42
+ CardDescription.displayName = "CardDescription";
43
+ const CardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props }));
44
+ CardContent.displayName = "CardContent";
45
+ const CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
46
+ "div",
47
+ {
48
+ ref,
49
+ className: cn("flex items-center p-6 pt-0", className),
50
+ ...props
51
+ }
52
+ ));
53
+ CardFooter.displayName = "CardFooter";
54
+ export {
55
+ Card,
56
+ CardContent,
57
+ CardDescription,
58
+ CardFooter,
59
+ CardHeader,
60
+ CardTitle
61
+ };
62
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/card.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow\",\n className\n )}\n {...props}\n />\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n"],"mappings":"AAQE;AARF,YAAY,WAAW;AAEvB,SAAS,UAAU;AAEnB,MAAM,OAAO,MAAM,WAGjB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,KAAK,cAAc;AAEnB,MAAM,aAAa,MAAM,WAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,WAAW,cAAc;AAEzB,MAAM,YAAY,MAAM,WAGtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,6CAA6C,SAAS;AAAA,IACnE,GAAG;AAAA;AACN,CACD;AACD,UAAU,cAAc;AAExB,MAAM,kBAAkB,MAAM,WAG5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,gBAAgB,cAAc;AAE9B,MAAM,cAAc,MAAM,WAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,oBAAC,SAAI,KAAU,WAAW,GAAG,YAAY,SAAS,GAAI,GAAG,OAAO,CACjE;AACD,YAAY,cAAc;AAE1B,MAAM,aAAa,MAAM,WAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,8BAA8B,SAAS;AAAA,IACpD,GAAG;AAAA;AACN,CACD;AACD,WAAW,cAAc;","names":[]}
@@ -0,0 +1,24 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../../lib/utils";
4
+ const Input = React.forwardRef(
5
+ ({ className, type, ...props }, ref) => {
6
+ return /* @__PURE__ */ jsx(
7
+ "input",
8
+ {
9
+ type,
10
+ className: cn(
11
+ "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
12
+ className
13
+ ),
14
+ ref,
15
+ ...props
16
+ }
17
+ );
18
+ }
19
+ );
20
+ Input.displayName = "Input";
21
+ export {
22
+ Input
23
+ };
24
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/input.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n"],"mappings":"AAOM;AAPN,YAAY,WAAW;AAEvB,SAAS,UAAU;AAEnB,MAAM,QAAQ,MAAM;AAAA,EAClB,CAAC,EAAE,WAAW,MAAM,GAAG,MAAM,GAAG,QAAQ;AACtC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,MAAM,cAAc;","names":[]}
@@ -0,0 +1,21 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as LabelPrimitive from "@radix-ui/react-label";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "../../lib/utils";
6
+ const labelVariants = cva(
7
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
8
+ );
9
+ const Label = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
10
+ LabelPrimitive.Root,
11
+ {
12
+ ref,
13
+ className: cn(labelVariants(), className),
14
+ ...props
15
+ }
16
+ ));
17
+ Label.displayName = LabelPrimitive.Root.displayName;
18
+ export {
19
+ Label
20
+ };
21
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/label.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n"],"mappings":"AAeE;AAfF,YAAY,WAAW;AACvB,YAAY,oBAAoB;AAChC,SAAS,WAA8B;AAEvC,SAAS,UAAU;AAEnB,MAAM,gBAAgB;AAAA,EACpB;AACF;AAEA,MAAM,QAAQ,MAAM,WAIlB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC,eAAe;AAAA,EAAf;AAAA,IACC;AAAA,IACA,WAAW,GAAG,cAAc,GAAG,SAAS;AAAA,IACvC,GAAG;AAAA;AACN,CACD;AACD,MAAM,cAAc,eAAe,KAAK;","names":[]}
@@ -0,0 +1,25 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
4
+ import { cn } from "../../lib/utils";
5
+ const Separator = React.forwardRef(
6
+ ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
7
+ SeparatorPrimitive.Root,
8
+ {
9
+ ref,
10
+ decorative,
11
+ orientation,
12
+ className: cn(
13
+ "shrink-0 bg-border",
14
+ orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
15
+ className
16
+ ),
17
+ ...props
18
+ }
19
+ )
20
+ );
21
+ Separator.displayName = SeparatorPrimitive.Root.displayName;
22
+ export {
23
+ Separator
24
+ };
25
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/separator.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n"],"mappings":"AAaI;AAbJ,YAAY,WAAW;AACvB,YAAY,wBAAwB;AAEpC,SAAS,UAAU;AAEnB,MAAM,YAAY,MAAM;AAAA,EAItB,CACE,EAAE,WAAW,cAAc,cAAc,aAAa,MAAM,GAAG,MAAM,GACrE,QAEA;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,eAAe,mBAAmB;AAAA,QAClD;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,UAAU,cAAc,mBAAmB,KAAK;","names":[]}
package/dist/esm/index.js CHANGED
@@ -5,8 +5,10 @@ import { TernSecureProvider } from "./app-router/client/TernSecureProvider";
5
5
  import { useAuth } from "./boundary/hooks/useAuth";
6
6
  import { useUser } from "./boundary/hooks/useUser";
7
7
  import { SignIn } from "./components/sign-in";
8
+ import { SignOut } from "./components/sign-out";
8
9
  export {
9
10
  SignIn,
11
+ SignOut,
10
12
  TernSecureAuth,
11
13
  TernSecureFirestore,
12
14
  TernSecureProvider,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["\r\n//import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider'\r\n//import type { TernSecureState } from './app-router/client/TernSecureProvider'\r\nexport { TernSecureAuth, TernSecureFirestore, ternSecureAuth } from './utils/client-init'\r\nexport { loadFireConfig, validateConfig } from './utils/config'\r\nexport { signInWithEmail } from './app-router/client/actions'\r\n//export { useInternalContext } from './boundary/TernSecureCtx'\r\n//export { TernSecureClientProvider } from './app-router/client/TernSecureProvider'\r\nexport { TernSecureProvider } from './app-router/client/TernSecureProvider'\r\nexport { useAuth } from './boundary/hooks/useAuth' \r\nexport { useUser } from './boundary/hooks/useUser'\r\nexport { SignIn } from './components/sign-in'\r\n\r\n//export const TernSecureProvider = TernSecureServerProvider\r\n//export type { TernSecureState }"],"mappings":"AAGA,SAAS,gBAAgB,qBAAqB,sBAAsB;AACpE,SAAS,gBAAgB,sBAAsB;AAC/C,SAAS,uBAAuB;AAGhC,SAAS,0BAA0B;AACnC,SAAS,eAAe;AACxB,SAAS,eAAe;AACxB,SAAS,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["\r\n//import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider'\r\n//import type { TernSecureState } from './app-router/client/TernSecureProvider'\r\nexport { TernSecureAuth, TernSecureFirestore, ternSecureAuth } from './utils/client-init'\r\nexport { loadFireConfig, validateConfig } from './utils/config'\r\nexport { signInWithEmail } from './app-router/client/actions'\r\n//export { useInternalContext } from './boundary/TernSecureCtx'\r\n//export { TernSecureClientProvider } from './app-router/client/TernSecureProvider'\r\nexport { TernSecureProvider } from './app-router/client/TernSecureProvider'\r\nexport { useAuth } from './boundary/hooks/useAuth' \r\nexport { useUser } from './boundary/hooks/useUser'\r\nexport { SignIn } from './components/sign-in'\r\nexport { SignOut } from './components/sign-out'\r\n\r\n//export const TernSecureProvider = TernSecureServerProvider\r\n//export type { TernSecureState }"],"mappings":"AAGA,SAAS,gBAAgB,qBAAqB,sBAAsB;AACpE,SAAS,gBAAgB,sBAAsB;AAC/C,SAAS,uBAAuB;AAGhC,SAAS,0BAA0B;AACnC,SAAS,eAAe;AACxB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,eAAe;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=utils.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,9 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
5
+ }
6
+ export {
7
+ cn
8
+ };
9
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n"],"mappings":"AAAA,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/client-init.ts"],"sourcesContent":["import { initializeApp, getApps } from 'firebase/app';\r\nimport { getAuth, setPersistence, browserSessionPersistence } from 'firebase/auth';\r\nimport { getFirestore } from 'firebase/firestore';\r\nimport { getStorage } from 'firebase/storage';\r\nimport { initializeConfig} from './config';\r\n\r\n// Initialize immediately\r\nconst config = initializeConfig();\r\nconst clientApp = getApps().length === 0 ? initializeApp(config) : getApps()[0];\r\nexport const ternSecureAuth = getAuth(clientApp);\r\nsetPersistence(ternSecureAuth, browserSessionPersistence); //to change later user should be able to choose persistance\r\nconst firestore = getFirestore(clientApp);\r\nconst storage = getStorage(clientApp);\r\n\r\nexport const TernSecureAuth = () => ternSecureAuth;\r\nexport const TernSecureFirestore = () => firestore;\r\nexport const TernSecureStorage = () => storage;\r\n"],"mappings":"AAAA,SAAS,eAAe,eAAe;AACvC,SAAS,SAAS,gBAAgB,iCAAiC;AACnE,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,wBAAuB;AAGhC,MAAM,SAAS,iBAAiB;AAChC,MAAM,YAAY,QAAQ,EAAE,WAAW,IAAI,cAAc,MAAM,IAAI,QAAQ,EAAE,CAAC;AACvE,MAAM,iBAAiB,QAAQ,SAAS;AAC/C,eAAe,gBAAgB,yBAAyB;AACxD,MAAM,YAAY,aAAa,SAAS;AACxC,MAAM,UAAU,WAAW,SAAS;AAE7B,MAAM,iBAAiB,MAAM;AAC7B,MAAM,sBAAsB,MAAM;AAClC,MAAM,oBAAoB,MAAM;","names":[]}
1
+ {"version":3,"sources":["../../../src/utils/client-init.ts"],"sourcesContent":["import { initializeApp, getApps } from 'firebase/app';\r\nimport { getAuth, setPersistence, browserSessionPersistence } from 'firebase/auth';\r\nimport { getFirestore } from 'firebase/firestore';\r\nimport { getStorage } from 'firebase/storage';\r\nimport { initializeConfig} from './config';\r\n\r\n// Initialize immediately\r\nconst config = initializeConfig();\r\nconst clientApp = getApps().length === 0 ? initializeApp(config) : getApps()[0];\r\nexport const ternSecureAuth = getAuth(clientApp);\r\nsetPersistence(ternSecureAuth, browserSessionPersistence); //to change later user should be able to choose persistance\r\nconst firestore = getFirestore(clientApp);\r\nconst storage = getStorage(clientApp);\r\n\r\n\r\n\r\nexport const TernSecureAuth = () => ternSecureAuth;\r\nexport const TernSecureFirestore = () => firestore;\r\nexport const TernSecureStorage = () => storage;\r\n"],"mappings":"AAAA,SAAS,eAAe,eAAe;AACvC,SAAS,SAAS,gBAAgB,iCAAiC;AACnE,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,wBAAuB;AAGhC,MAAM,SAAS,iBAAiB;AAChC,MAAM,YAAY,QAAQ,EAAE,WAAW,IAAI,cAAc,MAAM,IAAI,QAAQ,EAAE,CAAC;AACvE,MAAM,iBAAiB,QAAQ,SAAS;AAC/C,eAAe,gBAAgB,yBAAyB;AACxD,MAAM,YAAY,aAAa,SAAS;AACxC,MAAM,UAAU,WAAW,SAAS;AAI7B,MAAM,iBAAiB,MAAM;AAC7B,MAAM,sBAAsB,MAAM;AAClC,MAAM,oBAAoB,MAAM;","names":[]}
@@ -0,0 +1,37 @@
1
+ const constructFullUrl = (path) => {
2
+ const baseUrl = window.location.origin;
3
+ if (path.startsWith("http")) {
4
+ return path;
5
+ }
6
+ return `${baseUrl}${path.startsWith("/") ? path : `/${path}`}`;
7
+ };
8
+ const constructUrlWithRedirect = (path, redirectUrl, loginPath) => {
9
+ const url = new URL(path, window.location.origin);
10
+ if (redirectUrl && !redirectUrl.startsWith(loginPath)) {
11
+ const fullRedirectUrl = redirectUrl.startsWith("http") ? redirectUrl : constructFullUrl(redirectUrl);
12
+ url.searchParams.set("redirect_url", fullRedirectUrl);
13
+ }
14
+ return url.toString();
15
+ };
16
+ const getValidRedirectUrl = (redirectUrl, searchParams) => {
17
+ const redirect = redirectUrl || searchParams.get("redirect_url") || "/";
18
+ try {
19
+ if (redirect.startsWith("http")) {
20
+ const url = new URL(redirect);
21
+ if (url.origin === window.location.origin) {
22
+ return redirect;
23
+ }
24
+ return "/";
25
+ }
26
+ return constructFullUrl(redirect);
27
+ } catch (e) {
28
+ console.error("Invalid redirect URL:", e);
29
+ return constructFullUrl("/");
30
+ }
31
+ };
32
+ export {
33
+ constructFullUrl,
34
+ constructUrlWithRedirect,
35
+ getValidRedirectUrl
36
+ };
37
+ //# sourceMappingURL=construct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/construct.ts"],"sourcesContent":["/**\r\n * Constructs a full URL with the current origin\r\n * @param path - The path to construct the URL for\r\n * @returns The full URL with origin\r\n */\r\nexport const constructFullUrl = (path: string) => {\r\n const baseUrl = window.location.origin\r\n if (path.startsWith('http')) {\r\n return path\r\n }\r\n return `${baseUrl}${path.startsWith('/') ? path : `/${path}`}`\r\n }\r\n \r\n /**\r\n * Constructs a URL with redirect parameters\r\n * @param path - The base path (usually login path)\r\n * @param redirectUrl - The URL to redirect to after action completes\r\n * @param loginPath - The login path to check against\r\n * @returns The full URL with redirect parameters\r\n */\r\n export const constructUrlWithRedirect = (path: string, redirectUrl: string, loginPath: string) => {\r\n // Create the URL with the full origin\r\n const url = new URL(path, window.location.origin)\r\n \r\n // Add redirect parameter if provided and not redirecting to login\r\n if (redirectUrl && !redirectUrl.startsWith(loginPath)) {\r\n // Ensure redirect URL is also absolute if it's not already\r\n const fullRedirectUrl = redirectUrl.startsWith('http') \r\n ? redirectUrl \r\n : constructFullUrl(redirectUrl)\r\n \r\n url.searchParams.set('redirect_url', fullRedirectUrl)\r\n }\r\n \r\n return url.toString()\r\n }\r\n \r\n /**\r\n * Gets a validated redirect URL ensuring it's from the same origin\r\n * @param redirectUrl - The URL to validate\r\n * @param searchParams - The search parameters to check for redirect_url\r\n * @returns A validated redirect URL\r\n */\r\n export const getValidRedirectUrl = (\r\n redirectUrl: string | undefined,\r\n searchParams: URLSearchParams\r\n ): string => {\r\n const redirect = redirectUrl || searchParams.get('redirect_url') || '/'\r\n \r\n try {\r\n if (redirect.startsWith('http')) {\r\n const url = new URL(redirect)\r\n if (url.origin === window.location.origin) {\r\n return redirect\r\n }\r\n return '/'\r\n }\r\n return constructFullUrl(redirect)\r\n } catch (e) {\r\n console.error('Invalid redirect URL:', e)\r\n return constructFullUrl('/')\r\n }\r\n }\r\n \r\n "],"mappings":"AAKO,MAAM,mBAAmB,CAAC,SAAiB;AAC9C,QAAM,UAAU,OAAO,SAAS;AAChC,MAAI,KAAK,WAAW,MAAM,GAAG;AAC3B,WAAO;AAAA,EACT;AACA,SAAO,GAAG,OAAO,GAAG,KAAK,WAAW,GAAG,IAAI,OAAO,IAAI,IAAI,EAAE;AAC9D;AASO,MAAM,2BAA2B,CAAC,MAAc,aAAqB,cAAsB;AAEhG,QAAM,MAAM,IAAI,IAAI,MAAM,OAAO,SAAS,MAAM;AAGhD,MAAI,eAAe,CAAC,YAAY,WAAW,SAAS,GAAG;AAErD,UAAM,kBAAkB,YAAY,WAAW,MAAM,IACjD,cACA,iBAAiB,WAAW;AAEhC,QAAI,aAAa,IAAI,gBAAgB,eAAe;AAAA,EACtD;AAEA,SAAO,IAAI,SAAS;AACtB;AAQO,MAAM,sBAAsB,CACjC,aACA,iBACW;AACX,QAAM,WAAW,eAAe,aAAa,IAAI,cAAc,KAAK;AAEpE,MAAI;AACF,QAAI,SAAS,WAAW,MAAM,GAAG;AAC/B,YAAM,MAAM,IAAI,IAAI,QAAQ;AAC5B,UAAI,IAAI,WAAW,OAAO,SAAS,QAAQ;AACzC,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AACA,WAAO,iBAAiB,QAAQ;AAAA,EAClC,SAAS,GAAG;AACV,YAAQ,MAAM,yBAAyB,CAAC;AACxC,WAAO,iBAAiB,GAAG;AAAA,EAC7B;AACF;","names":[]}
@@ -22,5 +22,5 @@ import React from "react";
22
22
  */
23
23
  export declare function TernSecureProvider({ children }: {
24
24
  children: React.ReactNode;
25
- }): import("react/jsx-runtime").JSX.Element;
25
+ }): Promise<import("react/jsx-runtime").JSX.Element>;
26
26
  //# sourceMappingURL=TernSecureProvider.d.ts.map
@@ -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;AAYzB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAM7E"}
1
+ {"version":3,"file":"TernSecureProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,oDAMnF"}
@@ -2,4 +2,38 @@ export declare function signInWithEmail(email: string, password: string): Promis
2
2
  success: boolean;
3
3
  message: string;
4
4
  }>;
5
+ export declare function signInWithRedirectGoogle(): Promise<{
6
+ success: boolean;
7
+ message: string;
8
+ error?: undefined;
9
+ } | {
10
+ success: boolean;
11
+ error: string;
12
+ message?: undefined;
13
+ }>;
14
+ export declare function signInWithMicrosoft(): Promise<{
15
+ success: boolean;
16
+ message: string;
17
+ error?: undefined;
18
+ } | {
19
+ success: boolean;
20
+ error: string;
21
+ message?: undefined;
22
+ }>;
23
+ export declare function handleAuthRedirectResult(): Promise<{
24
+ success: boolean;
25
+ user: import("@firebase/auth").User;
26
+ error?: undefined;
27
+ code?: undefined;
28
+ } | {
29
+ success: boolean;
30
+ error: string;
31
+ user?: undefined;
32
+ code?: undefined;
33
+ } | {
34
+ success: boolean;
35
+ error: any;
36
+ code: any;
37
+ user?: undefined;
38
+ }>;
5
39
  //# sourceMappingURL=actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/actions.ts"],"names":[],"mappings":"AAKA,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;GAiBpE"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/actions.ts"],"names":[],"mappings":"AAKA,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;GAiBpE;AAED,wBAAsB,wBAAwB;;;;;;;;GAe7C;AAGD,wBAAsB,mBAAmB;;;;;;;;GAcxC;AAGD,wBAAsB,wBAAwB;;;;;;;;;;;;;;;GAc7C"}
@@ -30,4 +30,8 @@ export declare function verifyTernSessionCookie(session: string): Promise<{
30
30
  uid?: any;
31
31
  error?: any;
32
32
  }>;
33
+ export declare function clearSessionCookie(): Promise<{
34
+ success: boolean;
35
+ message: string;
36
+ }>;
33
37
  //# sourceMappingURL=sessionTernSecure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionTernSecure.d.ts","sourceRoot":"","sources":["../../../../src/app-router/server/sessionTernSecure.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,IAAI;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAEH,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACvB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM;;;GAgBxD;AAID,wBAAsB,sBAAsB;;;GAkB3C;AAGD,wBAAsB,UAAU;;;GAkB/B;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,iBASjD;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBhH;AAGD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,CAWlH"}
1
+ {"version":3,"file":"sessionTernSecure.d.ts","sourceRoot":"","sources":["../../../../src/app-router/server/sessionTernSecure.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,IAAI;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAEH,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACvB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM;;;GAgBxD;AAID,wBAAsB,sBAAsB;;;GAkB3C;AAGD,wBAAsB,UAAU;;;GAkB/B;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,iBASjD;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBhH;AAGD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,CAWlH;AAGD,wBAAsB,kBAAkB;;;GAwBvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TernSecureClientProvider.d.ts","sourceRoot":"","sources":["../../../src/boundary/TernSecureClientProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,EAAsB,IAAI,EAAE,MAAM,eAAe,CAAA;AAIxD,UAAU,6BAA6B;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC;AAED,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,SAAsB,EACtB,gBAAgB,EACjB,EAAE,6BAA6B,2CAyE/B"}
1
+ {"version":3,"file":"TernSecureClientProvider.d.ts","sourceRoot":"","sources":["../../../src/boundary/TernSecureClientProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,EAAsB,IAAI,EAAE,MAAM,eAAe,CAAA;AAIxD,UAAU,6BAA6B;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC;AAED,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,SAAsB,EACtB,gBAAgB,EACjB,EAAE,6BAA6B,2CAwE/B"}
@@ -6,7 +6,6 @@ export declare function useAuth(): {
6
6
  error: Error | null;
7
7
  isAuthenticated: boolean;
8
8
  token: any;
9
- refreshToken: () => Promise<string | null>;
10
9
  signOut: () => Promise<void>;
11
10
  };
12
11
  //# sourceMappingURL=useAuth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../../src/boundary/hooks/useAuth.ts"],"names":[],"mappings":"AAIA,OAAO,EAAG,IAAI,EAAE,MAAM,eAAe,CAAA;AAGrC,wBAAgB,OAAO;;;;;;;;;EA2BtB"}
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../../src/boundary/hooks/useAuth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAG,IAAI,EAAE,MAAM,eAAe,CAAA;AAGrC,wBAAgB,OAAO;;;;;;;;EAqBtB"}
@@ -0,0 +1,2 @@
1
+ export declare function AuthBackground(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=background.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../../src/components/background.tsx"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,4CAgC3B"}
@@ -1,20 +1,18 @@
1
- import React from 'react';
2
1
  export interface SignInProps {
2
+ redirectUrl?: string;
3
3
  onError?: (error: Error) => void;
4
+ onSuccess?: () => void;
4
5
  className?: string;
5
- style?: React.CSSProperties;
6
6
  customStyles?: {
7
- container?: string;
8
- header?: string;
9
- title?: string;
10
- formWrapper?: string;
11
- formContainer?: string;
12
- form?: string;
7
+ card?: string;
13
8
  input?: string;
14
9
  button?: string;
15
- errorText?: string;
16
10
  label?: string;
11
+ separator?: string;
12
+ title?: string;
13
+ description?: string;
14
+ socialButton?: string;
17
15
  };
18
16
  }
19
- export declare function SignIn({ onError, className, style, customStyles }: SignInProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function SignIn({ redirectUrl, onError, onSuccess, className, customStyles }: SignInProps): import("react/jsx-runtime").JSX.Element;
20
18
  //# sourceMappingURL=sign-in.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../../src/components/sign-in.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,YAAY,CAAC,EAAE;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,SAAS,EACT,KAAK,EACL,YAAiB,EAClB,EAAE,WAAW,2CAmGb"}
1
+ {"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../../src/components/sign-in.tsx"],"names":[],"mappings":"AAyBA,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,wBAAgB,MAAM,CAAC,EACrB,WAAW,EACX,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAiB,EAClB,EAAE,WAAW,2CAkOb"}
@@ -0,0 +1,10 @@
1
+ import { type ButtonProps } from './ui/button';
2
+ type SignOutCustomProps = {
3
+ children?: React.ReactNode;
4
+ onError?: (error: Error) => void;
5
+ onSignOutSuccess?: () => void;
6
+ };
7
+ type SignOutProps = Omit<ButtonProps, 'onClick'> & SignOutCustomProps;
8
+ export declare function SignOut({ children, onError, onSignOutSuccess, ...buttonProps }: SignOutProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=sign-out.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-out.d.ts","sourceRoot":"","sources":["../../../src/components/sign-out.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAItD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;CAC9B,CAAA;AAED,KAAK,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,kBAAkB,CAAA;AAErE,wBAAgB,OAAO,CAAC,EACtB,QAAqB,EACrB,OAAO,EACP,gBAAgB,EAChB,GAAG,WAAW,EACf,EAAE,YAAY,2CAoCd"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const Alert: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
4
+ variant?: "default" | "destructive" | null | undefined;
5
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
6
+ declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
7
+ declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
8
+ export { Alert, AlertTitle, AlertDescription };
9
+ //# sourceMappingURL=alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAoBjE,QAAA,MAAM,KAAK;;2HAUT,CAAA;AAGF,QAAA,MAAM,UAAU,uHASd,CAAA;AAGF,QAAA,MAAM,gBAAgB,yHASpB,CAAA;AAGF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
7
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
+ asChild?: boolean;
9
+ }
10
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
11
+ export { Button, buttonVariants };
12
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;mFA4BnB,CAAA;AAED,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,MAAM,uFAWX,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
5
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
6
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
8
+ export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
9
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,IAAI,6GAYR,CAAA;AAGF,QAAA,MAAM,UAAU,6GASd,CAAA;AAGF,QAAA,MAAM,SAAS,6GASb,CAAA;AAGF,QAAA,MAAM,eAAe,6GASnB,CAAA;AAGF,QAAA,MAAM,WAAW,6GAKf,CAAA;AAGF,QAAA,MAAM,UAAU,6GASd,CAAA;AAGF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ declare const Input: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
3
+ export { Input };
4
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,QAAA,MAAM,KAAK,8KAcV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import * as LabelPrimitive from "@radix-ui/react-label";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ declare const Label: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>>;
5
+ export { Label };
6
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAQjE,QAAA,MAAM,KAAK,iQAUT,CAAA;AAGF,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
3
+ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ export { Separator };
5
+ //# sourceMappingURL=separator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/separator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAA;AAI/D,QAAA,MAAM,SAAS,6JAoBd,CAAA;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -5,4 +5,5 @@ export { TernSecureProvider } from './app-router/client/TernSecureProvider';
5
5
  export { useAuth } from './boundary/hooks/useAuth';
6
6
  export { useUser } from './boundary/hooks/useUser';
7
7
  export { SignIn } from './components/sign-in';
8
+ export { SignOut } from './components/sign-out';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { type ClassValue } from "clsx";
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAG5C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"client-init.d.ts","sourceRoot":"","sources":["../../../src/utils/client-init.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,+BAAqB,CAAC;AAKjD,eAAO,MAAM,cAAc,qCAAuB,CAAC;AACnD,eAAO,MAAM,mBAAmB,+CAAkB,CAAC;AACnD,eAAO,MAAM,iBAAiB,mDAAgB,CAAC"}
1
+ {"version":3,"file":"client-init.d.ts","sourceRoot":"","sources":["../../../src/utils/client-init.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc,+BAAqB,CAAC;AAOjD,eAAO,MAAM,cAAc,qCAAuB,CAAC;AACnD,eAAO,MAAM,mBAAmB,+CAAkB,CAAC;AACnD,eAAO,MAAM,iBAAiB,mDAAgB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Constructs a full URL with the current origin
3
+ * @param path - The path to construct the URL for
4
+ * @returns The full URL with origin
5
+ */
6
+ export declare const constructFullUrl: (path: string) => string;
7
+ /**
8
+ * Constructs a URL with redirect parameters
9
+ * @param path - The base path (usually login path)
10
+ * @param redirectUrl - The URL to redirect to after action completes
11
+ * @param loginPath - The login path to check against
12
+ * @returns The full URL with redirect parameters
13
+ */
14
+ export declare const constructUrlWithRedirect: (path: string, redirectUrl: string, loginPath: string) => string;
15
+ /**
16
+ * Gets a validated redirect URL ensuring it's from the same origin
17
+ * @param redirectUrl - The URL to validate
18
+ * @param searchParams - The search parameters to check for redirect_url
19
+ * @returns A validated redirect URL
20
+ */
21
+ export declare const getValidRedirectUrl: (redirectUrl: string | undefined, searchParams: URLSearchParams) => string;
22
+ //# sourceMappingURL=construct.d.ts.map