@unblind/nextjs 0.1.0-alpha.7 → 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +2 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/server/index.d.mts +14 -48
- package/dist/server/index.d.ts +14 -48
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +1 -1
- package/dist/server/index.mjs.map +1 -1
- package/package.json +6 -5
package/dist/index.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.ub-tooltip{display:flex;width:fit-content;min-width:320px;max-width:520px;flex-direction:column;font-size:.875rem;gap:.5rem;border-radius:var(--ub-radius);border:1px solid var(--ub-border);padding:.5rem 0rem;background-color:var(--ub-popover);overflow:hidden}.ub-tooltip-datetime{font-weight:500}.ub-tooltip-divider{height:1px;width:100%;border:none;background:var(--ub-border);margin:0}.ub-tooltip-header{display:flex;align-items:center;justify-content:space-between;padding-left:1rem;padding-right:1rem;color:var(--ub-muted-foreground)}.ub-tooltip-content{position:relative;display:grid;column-gap:calc(1rem - 4px);row-gap:.25rem;padding-right:1rem}.ub-tooltip-multiple-metrics-attributes .ub-tooltip-content{grid-template-columns:min-content max-content 1fr auto}.ub-tooltip-multiple-attributes .ub-tooltip-content,.ub-tooltip-multiple-metrics .ub-tooltip-content{grid-template-columns:min-content 1fr auto}.ub-tooltip-serie{display:contents}.ub-tooltip-serie-color{height:1em;width:4px;align-self:center;border-radius:0 1.5px 1.5px 0}.ub-tooltip-multiple-attributes .ub-tooltip-serie-metric,.ub-tooltip-multiple-metrics-attributes .ub-tooltip-serie-metric{color:var(--ub-muted-foreground)}.ub-tooltip-summary{display:flex;justify-content:space-between;padding-left:1rem;padding-right:1rem;padding-top:.125rem;color:var(--ub-muted-foreground);opacity:90%}.ub-tooltip-serie-value{text-align:right;font-weight:500}.ub-tooltip-serie-value-empty{font-weight:400;color:var(--ub-text-disabled)}.ub-tooltip-serie-attribute-divider:before{content:attr(data-text)}.ub-tooltip-no-data{padding:0 .3rem;font-style:italic;color:var(--ub-placeholder);line-height:1rem}.ub-default{display:flex;height:100%;align-items:center;justify-content:center;color:var(--ub-muted-foreground)}.ub-empty-content{text-align:center}.ub-empty-icon-wrapper{margin:0 auto;display:flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-radius:9999px;background-color:var(--ub-muted)}.ub-icon{width:1.25rem;height:1.25rem;color:var(--ub-muted-foreground)}.ub-empty-text{margin-top:.5rem;font-size:.875rem;color:var(--ub-muted-foreground)}.ub-empty-text:before{content:attr(data-text)}.ub-default-loading{position:relative;width:100%;height:100%;background:linear-gradient(90deg,var(--ub-muted) 25%,var(--ub-muted) 50%,var(--ub-muted) 75%);border-radius:var(--ub-radius);overflow:hidden;animation:ub-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes ub-pulse{0%,to{opacity:1}50%{opacity:.5}}:root{--ub-radius: var(--radius, .5rem);--ub-background: var(--background, oklch(1 0 0));--ub-primary: var(--primary, oklch(.208 .042 264.541));--ub-primary-foreground: var(--primary-foreground, oklch(1 0 0));--ub-secondary: var(--secondary, oklch(.985 .002 264.542));--ub-secondary-foreground: var( --secondary-foreground, oklch(.208 .042 264.541) );--ub-muted: var(--muted, oklch(.967 .001 286.375));--ub-muted-foreground: var(--muted-foreground, oklch(.552 .016 285.938));--ub-popover: var(--popover, oklch(1 0 0));--ub-border: var( --border, oklch(.922 .005 264.542 / .8) );--ub-ring: var(--ring, oklch(.208 .042 264.541));--ub-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--ub-shadow-lg: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ub-shadow-ring: 0 0 0 1px oklch(.922 .005 264.542 / .4);--ub-shadow-ring-sm: 0 0 0 1px rgb(0 0 0 / .05);--ub-backdrop-blur: blur(12px);--ub-opacity-subtle: .7;--ub-chart-font-size: 11px;--ub-chart-font-color: var(--ub-muted-foreground);--ub-chart-grid-color: oklch(from var(--ub-muted-foreground) l c h / .15);--ub-chart-threshold-error: oklch(60% .2 30);--ub-chart-threshold-warning: oklch(75% .18 90);--ub-chart-threshold-ok: oklch(65% .15 145);--ub-chart-threshold-info: oklch(85% .005 240);--ub-chart-threshold-default: oklch(65% .01 0);--ub-chart-threshold-error-fill: oklch( from var(--ub-chart-threshold-error) l c h / .15 );--ub-chart-threshold-warning-fill: oklch( from var(--ub-chart-threshold-warning) l c h / .15 );--ub-chart-threshold-ok-fill: oklch( from var(--ub-chart-threshold-ok) l c h / .15 );--ub-chart-threshold-info-fill: oklch( from var(--ub-chart-threshold-info) l c h / .15 );--ub-chart-threshold-default-fill: oklch( from var(--ub-chart-threshold-default) l c h / .1 );--ub-chart-serie-color-1: var(--chart-1, oklch(.68 .214 293.418));--ub-chart-serie-color-2: var(--chart-2, oklch(.84 .151 94.621));--ub-chart-serie-color-3: var(--chart-3, oklch(.68 .2 255.485));--ub-chart-serie-color-4: var(--chart-4, oklch(.7 .245 27.325));--ub-chart-serie-color-5: var(--chart-5, oklch(.68 .18 149.579));--ub-chart-serie-color-6: var(--chart-6, oklch(.75 .159 50.554));--ub-chart-serie-color-7: var(--chart-7, oklch(.7 .14 215.355));--ub-chart-serie-color-8: var(--chart-8, oklch(.68 .25 301.364));--ub-chart-serie-color-9: var(--chart-9, oklch(.72 .16 89.872));--ub-chart-serie-color-10: var(--chart-10, oklch(.65 .2 276.652));--ub-chart-serie-color-11: var(--chart-11, oklch(.68 .14 192.803));--ub-chart-serie-color-12: var(--chart-12, oklch(.65 .22 3.555));--ub-chart-serie-fill-color-1: oklch( from var(--ub-chart-serie-color-1) l c h / .4 );--ub-chart-serie-fill-color-2: oklch( from var(--ub-chart-serie-color-2) l c h / .4 );--ub-chart-serie-fill-color-3: oklch( from var(--ub-chart-serie-color-3) l c h / .4 );--ub-chart-serie-fill-color-4: oklch( from var(--ub-chart-serie-color-4) l c h / .4 );--ub-chart-serie-fill-color-5: oklch( from var(--ub-chart-serie-color-5) l c h / .4 );--ub-chart-serie-fill-color-6: oklch( from var(--ub-chart-serie-color-6) l c h / .4 );--ub-chart-serie-fill-color-7: oklch( from var(--ub-chart-serie-color-7) l c h / .4 );--ub-chart-serie-fill-color-8: oklch( from var(--ub-chart-serie-color-8) l c h / .4 );--ub-chart-serie-fill-color-9: oklch( from var(--ub-chart-serie-color-9) l c h / .4 );--ub-chart-serie-fill-color-10: oklch( from var(--ub-chart-serie-color-10) l c h / .4 );--ub-chart-serie-fill-color-11: oklch( from var(--ub-chart-serie-color-11) l c h / .4 );--ub-chart-serie-fill-color-12: oklch( from var(--ub-chart-serie-color-12) l c h / .4 );.ub-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}-webkit-font-smoothing:antialiased}.dark{--ub-background: var(--background, oklch(.236 .013 265.755));--ub-primary: var(--primary, oklch(1 0 0));--ub-primary-foreground: var( --primary-foreground, oklch(.236 .013 265.755) );--ub-secondary: var(--secondary, oklch(1 0 0 / .05));--ub-secondary-foreground: var(--secondary-foreground, oklch(1 0 0));--ub-muted: var(--muted, oklch(1 0 0 / .05));--ub-muted-foreground: var(--muted-foreground, oklch(.665 .032 252.894));--ub-popover: var(--popover, oklch(.236 .013 265.755));--ub-border: var(--border, oklch(1 0 0 / .1));--ub-ring: var(--ring, oklch(1 0 0));--ub-shadow-ring: 0 0 0 1px oklch(.274 .014 265.755 / .4);--ub-shadow-ring-sm: 0 0 0 1px oklch(1 0 0 / .1)}@media(prefers-color-scheme:dark){.root{--ub-background: var( --background, oklch(.236 .013 265.755) );--ub-primary: var(--primary, oklch(1 0 0));--ub-primary-foreground: var( --primary-foreground, oklch(.236 .013 265.755) );--ub-secondary: var(--secondary, oklch(1 0 0 / .05));--ub-secondary-foreground: var(--secondary-foreground, oklch(1 0 0));--ub-muted: var(--muted, oklch(1 0 0 / .05));--ub-muted-foreground: var(--muted-foreground, oklch(.665 .032 252.894));--ub-popover: var(--popover, oklch(.236 .013 265.755));--ub-border: var(--border, oklch(1 0 0 / .1));--ub-ring: var(--ring, oklch(1 0 0));--ub-shadow-ring: 0 0 0 1px oklch(.274 .014 265.755 / .4);--ub-shadow-ring-sm: 0 0 0 1px oklch(1 0 0 / .1)}}@layer ub-chart{:where(.ub-chart-container){width:100%;height:100%;min-height:0;flex-grow:1}}
|
|
2
|
+
/*# sourceMappingURL=index.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/uplot@1.6.32/node_modules/uplot/dist/uPlot.min.css","../../react/src/components/Tooltip/Tooltip.css","../../react/src/components/Defaults/Defaults.css","../../react/src/styles.css"],"sourcesContent":[".uplot, .uplot *, .uplot *::before, .uplot *::after {box-sizing: border-box;}.uplot {font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";line-height: 1.5;width: min-content;}.u-title {text-align: center;font-size: 18px;font-weight: bold;}.u-wrap {position: relative;user-select: none;}.u-over, .u-under {position: absolute;}.u-under {overflow: hidden;}.uplot canvas {display: block;position: relative;width: 100%;height: 100%;}.u-axis {position: absolute;}.u-legend {font-size: 14px;margin: auto;text-align: center;}.u-inline {display: block;}.u-inline * {display: inline-block;}.u-inline tr {margin-right: 16px;}.u-legend th {font-weight: 600;}.u-legend th > * {vertical-align: middle;display: inline-block;}.u-legend .u-marker {width: 1em;height: 1em;margin-right: 4px;background-clip: padding-box !important;}.u-inline.u-live th::after {content: \":\";vertical-align: middle;}.u-inline:not(.u-live) .u-value {display: none;}.u-series > * {padding: 4px;}.u-series th {cursor: pointer;}.u-legend .u-off > * {opacity: 0.3;}.u-select {background: rgba(0,0,0,0.07);position: absolute;pointer-events: none;}.u-cursor-x, .u-cursor-y {position: absolute;left: 0;top: 0;pointer-events: none;will-change: transform;}.u-hz .u-cursor-x, .u-vt .u-cursor-y {height: 100%;border-right: 1px dashed #607D8B;}.u-hz .u-cursor-y, .u-vt .u-cursor-x {width: 100%;border-bottom: 1px dashed #607D8B;}.u-cursor-pt {position: absolute;top: 0;left: 0;border-radius: 50%;border: 0 solid;pointer-events: none;will-change: transform;/*this has to be !important since we set inline \"background\" shorthand */background-clip: padding-box !important;}.u-axis.u-off, .u-select.u-off, .u-cursor-x.u-off, .u-cursor-y.u-off, .u-cursor-pt.u-off {display: none;}","/* Container */\n.ub-tooltip {\n display: flex;\n width: fit-content;\n min-width: 320px;\n max-width: 520px;\n flex-direction: column;\n font-size: 0.875rem;\n gap: 0.5rem;\n border-radius: var(--ub-radius);\n border: 1px solid var(--ub-border);\n padding: 0.5rem 0rem 0.5rem 0rem;\n background-color: var(--ub-popover);\n overflow: hidden;\n}\n\n.ub-tooltip-datetime {\n font-weight: 500;\n}\n\n.ub-tooltip-divider {\n height: 1px;\n width: 100%;\n border: none;\n background: var(--ub-border);\n margin: 0;\n}\n\n.ub-tooltip-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-left: 1rem;\n padding-right: 1rem;\n color: var(--ub-muted-foreground);\n}\n\n.ub-tooltip-content {\n position: relative;\n display: grid;\n column-gap: calc(1rem - 4px);\n row-gap: calc(0.25rem);\n padding-right: 1rem;\n}\n\n.ub-tooltip-multiple-metrics-attributes .ub-tooltip-content {\n grid-template-columns: min-content max-content 1fr auto;\n}\n\n.ub-tooltip-multiple-attributes .ub-tooltip-content {\n grid-template-columns: min-content 1fr auto;\n}\n\n.ub-tooltip-multiple-metrics .ub-tooltip-content {\n grid-template-columns: min-content 1fr auto;\n}\n\n.ub-tooltip-serie {\n display: contents;\n}\n\n.ub-tooltip-serie-color {\n height: 1em;\n width: 4px;\n align-self: center;\n border-radius: 0px 1.5px 1.5px 0px;\n}\n\n.ub-tooltip-multiple-attributes .ub-tooltip-serie-metric {\n color: var(--ub-muted-foreground);\n}\n\n.ub-tooltip-multiple-metrics-attributes .ub-tooltip-serie-metric {\n color: var(--ub-muted-foreground);\n}\n\n.ub-tooltip-summary {\n display: flex;\n justify-content: space-between;\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.125rem;\n color: var(--ub-muted-foreground);\n opacity: 90%;\n}\n\n.ub-tooltip-serie-value {\n text-align: right;\n font-weight: 500;\n}\n\n.ub-tooltip-serie-value-empty {\n font-weight: 400;\n color: var(--ub-text-disabled);\n}\n\n.ub-tooltip-serie-attribute-divider::before {\n content: attr(data-text);\n}\n\n.ub-tooltip-no-data {\n padding: 0 0.3rem 0 0.3rem;\n font-style: italic;\n color: var(--ub-placeholder);\n line-height: 1rem;\n}\n",".ub-default {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n color: var(--ub-muted-foreground);\n}\n\n.ub-empty-content {\n text-align: center;\n}\n\n.ub-empty-icon-wrapper {\n margin: 0 auto;\n display: flex;\n height: 2.5rem;\n width: 2.5rem;\n align-items: center;\n justify-content: center;\n border-radius: 9999px;\n background-color: var(--ub-muted);\n}\n\n.ub-icon {\n width: 1.25rem;\n height: 1.25rem;\n color: var(--ub-muted-foreground);\n}\n\n.ub-empty-text {\n margin-top: 0.5rem;\n font-size: 0.875rem;\n color: var(--ub-muted-foreground);\n}\n\n.ub-empty-text::before {\n content: attr(data-text);\n}\n\n.ub-default-loading {\n position: relative;\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 90deg,\n var(--ub-muted) 25%,\n var(--ub-muted) 50%,\n var(--ub-muted) 75%\n );\n border-radius: var(--ub-radius);\n overflow: hidden;\n animation: ub-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n@keyframes ub-pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n}\n","@import \"uplot/dist/uPlot.min.css\";\n@import \"./components/Tooltip/Tooltip.css\";\n@import \"./components/Defaults/Defaults.css\";\n\n:root {\n --ub-radius: var(--radius, 0.5rem);\n --ub-background: var(--background, oklch(1 0 0));\n --ub-primary: var(--primary, oklch(0.208 0.042 264.541));\n --ub-primary-foreground: var(--primary-foreground, oklch(1 0 0));\n --ub-secondary: var(--secondary, oklch(0.985 0.002 264.542));\n --ub-secondary-foreground: var(\n --secondary-foreground,\n oklch(0.208 0.042 264.541)\n );\n --ub-muted: var(--muted, oklch(0.967 0.001 286.375));\n --ub-muted-foreground: var(--muted-foreground, oklch(0.552 0.016 285.938));\n --ub-popover: var(--popover, oklch(1 0 0));\n --ub-border: var(\n --border,\n oklch(0.922 0.005 264.542 / 0.8)\n ); /* gray-200/80 */\n --ub-ring: var(--ring, oklch(0.208 0.042 264.541));\n\n /* Custom extensions */\n /* Shadows */\n --ub-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --ub-shadow-lg:\n 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --ub-shadow-ring: 0 0 0 1px oklch(0.922 0.005 264.542 / 0.4);\n --ub-shadow-ring-sm: 0 0 0 1px rgb(0 0 0 / 0.05);\n\n /* Effects */\n --ub-backdrop-blur: blur(12px);\n --ub-opacity-subtle: 0.7;\n\n /* Chart */\n --ub-chart-font-size: 11px;\n --ub-chart-font-color: var(--ub-muted-foreground);\n --ub-chart-grid-color: oklch(from var(--ub-muted-foreground) l c h / 0.15);\n\n /* Threshold colors */\n --ub-chart-threshold-error: oklch(60% 0.2 30);\n --ub-chart-threshold-warning: oklch(75% 0.18 90);\n --ub-chart-threshold-ok: oklch(65% 0.15 145);\n --ub-chart-threshold-info: oklch(85% 0.005 240);\n --ub-chart-threshold-default: oklch(65% 0.01 0);\n\n --ub-chart-threshold-error-fill: oklch(\n from var(--ub-chart-threshold-error) l c h / 0.15\n );\n --ub-chart-threshold-warning-fill: oklch(\n from var(--ub-chart-threshold-warning) l c h / 0.15\n );\n --ub-chart-threshold-ok-fill: oklch(\n from var(--ub-chart-threshold-ok) l c h / 0.15\n );\n --ub-chart-threshold-info-fill: oklch(\n from var(--ub-chart-threshold-info) l c h / 0.15\n );\n --ub-chart-threshold-default-fill: oklch(\n from var(--ub-chart-threshold-default) l c h / 0.1\n );\n\n --ub-chart-serie-color-1: var(--chart-1, oklch(0.68 0.214 293.418));\n --ub-chart-serie-color-2: var(--chart-2, oklch(0.84 0.151 94.621));\n --ub-chart-serie-color-3: var(--chart-3, oklch(0.68 0.2 255.485));\n --ub-chart-serie-color-4: var(--chart-4, oklch(0.7 0.245 27.325));\n --ub-chart-serie-color-5: var(--chart-5, oklch(0.68 0.18 149.579));\n --ub-chart-serie-color-6: var(--chart-6, oklch(0.75 0.159 50.554));\n --ub-chart-serie-color-7: var(--chart-7, oklch(0.7 0.14 215.355));\n --ub-chart-serie-color-8: var(--chart-8, oklch(0.68 0.25 301.364));\n --ub-chart-serie-color-9: var(--chart-9, oklch(0.72 0.16 89.872));\n --ub-chart-serie-color-10: var(--chart-10, oklch(0.65 0.2 276.652));\n --ub-chart-serie-color-11: var(--chart-11, oklch(0.68 0.14 192.803));\n --ub-chart-serie-color-12: var(--chart-12, oklch(0.65 0.22 3.555));\n\n --ub-chart-serie-fill-color-1: oklch(\n from var(--ub-chart-serie-color-1) l c h / 0.4\n );\n --ub-chart-serie-fill-color-2: oklch(\n from var(--ub-chart-serie-color-2) l c h / 0.4\n );\n --ub-chart-serie-fill-color-3: oklch(\n from var(--ub-chart-serie-color-3) l c h / 0.4\n );\n --ub-chart-serie-fill-color-4: oklch(\n from var(--ub-chart-serie-color-4) l c h / 0.4\n );\n --ub-chart-serie-fill-color-5: oklch(\n from var(--ub-chart-serie-color-5) l c h / 0.4\n );\n --ub-chart-serie-fill-color-6: oklch(\n from var(--ub-chart-serie-color-6) l c h / 0.4\n );\n --ub-chart-serie-fill-color-7: oklch(\n from var(--ub-chart-serie-color-7) l c h / 0.4\n );\n --ub-chart-serie-fill-color-8: oklch(\n from var(--ub-chart-serie-color-8) l c h / 0.4\n );\n --ub-chart-serie-fill-color-9: oklch(\n from var(--ub-chart-serie-color-9) l c h / 0.4\n );\n --ub-chart-serie-fill-color-10: oklch(\n from var(--ub-chart-serie-color-10) l c h / 0.4\n );\n --ub-chart-serie-fill-color-11: oklch(\n from var(--ub-chart-serie-color-11) l c h / 0.4\n );\n --ub-chart-serie-fill-color-12: oklch(\n from var(--ub-chart-serie-color-12) l c h / 0.4\n );\n\n .ub-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n -webkit-font-smoothing: antialiased;\n}\n\n/* Explicit, compatibility with shadcn */\n.dark {\n --ub-background: var(--background, oklch(0.236 0.013 265.755)); /* zinc-900 */\n --ub-primary: var(--primary, oklch(1 0 0));\n --ub-primary-foreground: var(\n --primary-foreground,\n oklch(0.236 0.013 265.755)\n ); /* zinc-900 */\n --ub-secondary: var(--secondary, oklch(1 0 0 / 0.05));\n --ub-secondary-foreground: var(--secondary-foreground, oklch(1 0 0));\n --ub-muted: var(--muted, oklch(1 0 0 / 0.05));\n --ub-muted-foreground: var(--muted-foreground, oklch(0.665 0.032 252.894));\n --ub-popover: var(--popover, oklch(0.236 0.013 265.755)); /* zinc-900 */\n --ub-border: var(--border, oklch(1 0 0 / 0.1));\n --ub-ring: var(--ring, oklch(1 0 0));\n\n /* Custom extensions */\n --ub-shadow-ring: 0 0 0 1px oklch(0.274 0.014 265.755 / 0.4); /* zinc-800/40 */\n --ub-shadow-ring-sm: 0 0 0 1px oklch(1 0 0 / 0.1);\n}\n\n@media (prefers-color-scheme: dark) {\n .root {\n --ub-background: var(\n --background,\n oklch(0.236 0.013 265.755)\n ); /* zinc-900 */\n --ub-primary: var(--primary, oklch(1 0 0));\n --ub-primary-foreground: var(\n --primary-foreground,\n oklch(0.236 0.013 265.755)\n ); /* zinc-900 */\n --ub-secondary: var(--secondary, oklch(1 0 0 / 0.05));\n --ub-secondary-foreground: var(--secondary-foreground, oklch(1 0 0));\n --ub-muted: var(--muted, oklch(1 0 0 / 0.05));\n --ub-muted-foreground: var(--muted-foreground, oklch(0.665 0.032 252.894));\n --ub-popover: var(--popover, oklch(0.236 0.013 265.755)); /* zinc-900 */\n --ub-border: var(--border, oklch(1 0 0 / 0.1));\n --ub-ring: var(--ring, oklch(1 0 0));\n\n /* Custom extensions */\n --ub-shadow-ring: 0 0 0 1px oklch(0.274 0.014 265.755 / 0.4); /* zinc-800/40 */\n --ub-shadow-ring-sm: 0 0 0 1px oklch(1 0 0 / 0.1);\n }\n}\n\n@layer ub-chart {\n :where(.ub-chart-container) {\n width: 100%;\n height: 100%;\n min-height: 0;\n flex-grow: 1;\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { AggregationOperator, Appearance,
|
|
1
|
+
export { AggregationOperator, Appearance, Chart, ChartProps, ChartType, Colors, Log, MetricMetadata, MetricMetadataList, MetricType, PaginatedResponse, Scope, ScopeConfig, ScopeProps, Serie, Severity, TimeRange, Timeseries, TimeseriesProps, TimeseriesQuery, TooltipProps, UnblindClientConfig, UnblindProvider, UnblindProviderProps, Usage, UseLogsParams, UseLogsReturn, UseMetricsReturn, UseScopeReturn, UseTimeseriesParams, UseTimeseriesReturn, UseUsageParams, UseUsageReturn, useLogs, useMetrics, useRefresh, useScope, useTimeseries, useUsage } from '@unblind/react';
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { AggregationOperator, Appearance,
|
|
1
|
+
export { AggregationOperator, Appearance, Chart, ChartProps, ChartType, Colors, Log, MetricMetadata, MetricMetadataList, MetricType, PaginatedResponse, Scope, ScopeConfig, ScopeProps, Serie, Severity, TimeRange, Timeseries, TimeseriesProps, TimeseriesQuery, TooltipProps, UnblindClientConfig, UnblindProvider, UnblindProviderProps, Usage, UseLogsParams, UseLogsReturn, UseMetricsReturn, UseScopeReturn, UseTimeseriesParams, UseTimeseriesReturn, UseUsageParams, UseUsageReturn, useLogs, useMetrics, useRefresh, useScope, useTimeseries, useUsage } from '@unblind/react';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";"use client";var o=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var
|
|
1
|
+
"use strict";"use client";var o=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var g=(r,s)=>{for(var t in s)o(r,t,{get:s[t],enumerable:!0})},u=(r,s,t,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of p(s))!c.call(r,i)&&i!==t&&o(r,i,{get:()=>s[i],enumerable:!(a=n(s,i))||a.enumerable});return r};var U=r=>u(o({},"__esModule",{value:!0}),r);var m={};g(m,{Chart:()=>e.Chart,Scope:()=>e.Scope,Timeseries:()=>e.Timeseries,UnblindProvider:()=>e.UnblindProvider,useLogs:()=>e.useLogs,useMetrics:()=>e.useMetrics,useRefresh:()=>e.useRefresh,useScope:()=>e.useScope,useTimeseries:()=>e.useTimeseries,useUsage:()=>e.useUsage});module.exports=U(m);var e=require("@unblind/react");0&&(module.exports={Chart,Scope,Timeseries,UnblindProvider,useLogs,useMetrics,useRefresh,useScope,useTimeseries,useUsage});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["\"use client\";\n\nexport {\n
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["\"use client\";\n\nexport {\n Scope,\n UnblindProvider,\n useScope,\n useMetrics,\n useTimeseries,\n useUsage,\n useLogs,\n useRefresh,\n Timeseries,\n Chart,\n} from \"@unblind/react\";\nimport \"./styles.css\";\n\nexport type {\n UnblindClientConfig,\n UnblindProviderProps,\n ScopeConfig,\n Appearance,\n ScopeProps,\n UseScopeReturn,\n UseMetricsReturn,\n UseTimeseriesParams,\n UseTimeseriesReturn,\n UseUsageParams,\n UseUsageReturn,\n Usage,\n UseLogsParams,\n UseLogsReturn,\n TimeseriesProps,\n TooltipProps,\n ChartProps,\n Colors,\n MetricType,\n MetricMetadata,\n MetricMetadataList,\n AggregationOperator,\n Serie,\n TimeseriesQuery,\n ChartType,\n TimeRange,\n Log,\n Severity,\n PaginatedResponse,\n} from \"@unblind/react\";\n"],"mappings":"sbAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wRAAAE,EAAAF,GAEA,IAAAG,EAWO","names":["index_exports","__export","__toCommonJS","import_react"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{
|
|
1
|
+
"use client";import{Scope as o,UnblindProvider as a,useScope as n,useMetrics as p,useTimeseries as c,useUsage as g,useLogs as u,useRefresh as U,Timeseries as m,Chart as P}from"@unblind/react";export{P as Chart,o as Scope,m as Timeseries,a as UnblindProvider,u as useLogs,p as useMetrics,U as useRefresh,n as useScope,c as useTimeseries,g as useUsage};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["\"use client\";\n\nexport {\n
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["\"use client\";\n\nexport {\n Scope,\n UnblindProvider,\n useScope,\n useMetrics,\n useTimeseries,\n useUsage,\n useLogs,\n useRefresh,\n Timeseries,\n Chart,\n} from \"@unblind/react\";\nimport \"./styles.css\";\n\nexport type {\n UnblindClientConfig,\n UnblindProviderProps,\n ScopeConfig,\n Appearance,\n ScopeProps,\n UseScopeReturn,\n UseMetricsReturn,\n UseTimeseriesParams,\n UseTimeseriesReturn,\n UseUsageParams,\n UseUsageReturn,\n Usage,\n UseLogsParams,\n UseLogsReturn,\n TimeseriesProps,\n TooltipProps,\n ChartProps,\n Colors,\n MetricType,\n MetricMetadata,\n MetricMetadataList,\n AggregationOperator,\n Serie,\n TimeseriesQuery,\n ChartType,\n TimeRange,\n Log,\n Severity,\n PaginatedResponse,\n} from \"@unblind/react\";\n"],"mappings":"aAEA,OACE,SAAAA,EACA,mBAAAC,EACA,YAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,WAAAC,EACA,cAAAC,EACA,cAAAC,EACA,SAAAC,MACK","names":["Scope","UnblindProvider","useScope","useMetrics","useTimeseries","useUsage","useLogs","useRefresh","Timeseries","Chart"]}
|
package/dist/server/index.d.mts
CHANGED
|
@@ -1,78 +1,44 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NextRequest, NextProxy } from 'next/server';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Custom NextRequest to avoid compatibility issues with older NextJS versions.
|
|
5
|
-
*/
|
|
6
|
-
interface NextRequest {
|
|
7
|
-
method: string;
|
|
8
|
-
headers: Headers;
|
|
9
|
-
text(): Promise<string>;
|
|
10
|
-
nextUrl: {
|
|
11
|
-
href: string;
|
|
12
|
-
pathname: string;
|
|
13
|
-
search: string;
|
|
14
|
-
searchParams: URLSearchParams;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
3
|
/**
|
|
18
4
|
* Unblind API handler for Next.js applications.
|
|
19
5
|
*
|
|
20
6
|
* This handler intercepts requests to `/api/unblind` and proxies them to the Unblind API,
|
|
21
|
-
* automatically adding authentication and tenant context.
|
|
7
|
+
* automatically adding authentication and tenant context. Returns `undefined` for requests
|
|
22
8
|
* that don't match the path prefix, allowing Next.js to continue normal routing.
|
|
23
9
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* @param request - The incoming Next.js request object
|
|
27
|
-
* @param tenantId - The tenant identifier to inject into API paths (e.g., user ID, organization ID)
|
|
28
|
-
* @param apiKey - Optional Unblind API key. Falls back to UNBLIND_API_KEY environment variable
|
|
10
|
+
* @param extractTenantId - A function that receives the incoming request and returns a tenant ID string (or undefined)
|
|
29
11
|
*
|
|
30
|
-
* @returns
|
|
12
|
+
* @returns An async request handler that proxies matching requests to the Unblind API
|
|
31
13
|
*
|
|
32
14
|
* @example
|
|
33
|
-
* // Usage as Proxy (
|
|
34
|
-
* import {
|
|
35
|
-
* import { NextRequest } from "next/server";
|
|
36
|
-
*
|
|
37
|
-
* export function proxy(request: NextRequest) {
|
|
38
|
-
* const path = new URL(request.url).pathname;
|
|
15
|
+
* // Usage as Proxy (Next.js 16+, proxy.ts)
|
|
16
|
+
* import { handler } from "@unblind/nextjs/server";
|
|
39
17
|
*
|
|
40
|
-
*
|
|
41
|
-
* // Extract tenant ID from your auth system (e.g., session, JWT, cookies)
|
|
42
|
-
* const tenantId = request.cookies.get("tenantId")?.value;
|
|
43
|
-
* return unblindProxy(request, tenantId);
|
|
44
|
-
* }
|
|
45
|
-
* }
|
|
18
|
+
* export const proxy = handler((req) => req.cookies.get("userId")?.value);
|
|
46
19
|
*
|
|
47
20
|
* export const config = {
|
|
48
21
|
* matcher: "/api/unblind/:path*",
|
|
49
22
|
* };
|
|
50
23
|
*
|
|
51
24
|
* @example
|
|
52
|
-
* // Usage in Middleware
|
|
53
|
-
* import {
|
|
25
|
+
* // Usage in Middleware (Next.js <16, middleware.ts)
|
|
26
|
+
* import { unblindProxy } from "@unblind/nextjs/server";
|
|
54
27
|
* import { NextRequest, NextResponse } from "next/server";
|
|
55
28
|
*
|
|
56
29
|
* export async function middleware(request: NextRequest) {
|
|
57
|
-
*
|
|
58
|
-
* // Let the handler process Unblind API requests
|
|
59
30
|
* if (request.nextUrl.pathname.startsWith("/api/unblind")) {
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* const response = await unblindMiddleware(request, tenantId);
|
|
64
|
-
* if (response) {
|
|
65
|
-
* return response;
|
|
66
|
-
* }
|
|
31
|
+
* const response = await unblindProxy((req) => req.cookies.get("userId")?.value);
|
|
32
|
+
* if (response) return response;
|
|
67
33
|
* }
|
|
68
34
|
*
|
|
69
35
|
* return NextResponse.next();
|
|
70
36
|
* }
|
|
71
37
|
*
|
|
72
38
|
* export const config = {
|
|
73
|
-
* matcher: [
|
|
39
|
+
* matcher: ["/api/unblind/:path*"],
|
|
74
40
|
* };
|
|
75
41
|
*/
|
|
76
|
-
declare function
|
|
42
|
+
declare function proxy(extractTenantId: (request: NextRequest) => string | undefined | Promise<string | undefined>): NextProxy;
|
|
77
43
|
|
|
78
|
-
export {
|
|
44
|
+
export { proxy as unblindProxy };
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,78 +1,44 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NextRequest, NextProxy } from 'next/server';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Custom NextRequest to avoid compatibility issues with older NextJS versions.
|
|
5
|
-
*/
|
|
6
|
-
interface NextRequest {
|
|
7
|
-
method: string;
|
|
8
|
-
headers: Headers;
|
|
9
|
-
text(): Promise<string>;
|
|
10
|
-
nextUrl: {
|
|
11
|
-
href: string;
|
|
12
|
-
pathname: string;
|
|
13
|
-
search: string;
|
|
14
|
-
searchParams: URLSearchParams;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
3
|
/**
|
|
18
4
|
* Unblind API handler for Next.js applications.
|
|
19
5
|
*
|
|
20
6
|
* This handler intercepts requests to `/api/unblind` and proxies them to the Unblind API,
|
|
21
|
-
* automatically adding authentication and tenant context.
|
|
7
|
+
* automatically adding authentication and tenant context. Returns `undefined` for requests
|
|
22
8
|
* that don't match the path prefix, allowing Next.js to continue normal routing.
|
|
23
9
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* @param request - The incoming Next.js request object
|
|
27
|
-
* @param tenantId - The tenant identifier to inject into API paths (e.g., user ID, organization ID)
|
|
28
|
-
* @param apiKey - Optional Unblind API key. Falls back to UNBLIND_API_KEY environment variable
|
|
10
|
+
* @param extractTenantId - A function that receives the incoming request and returns a tenant ID string (or undefined)
|
|
29
11
|
*
|
|
30
|
-
* @returns
|
|
12
|
+
* @returns An async request handler that proxies matching requests to the Unblind API
|
|
31
13
|
*
|
|
32
14
|
* @example
|
|
33
|
-
* // Usage as Proxy (
|
|
34
|
-
* import {
|
|
35
|
-
* import { NextRequest } from "next/server";
|
|
36
|
-
*
|
|
37
|
-
* export function proxy(request: NextRequest) {
|
|
38
|
-
* const path = new URL(request.url).pathname;
|
|
15
|
+
* // Usage as Proxy (Next.js 16+, proxy.ts)
|
|
16
|
+
* import { handler } from "@unblind/nextjs/server";
|
|
39
17
|
*
|
|
40
|
-
*
|
|
41
|
-
* // Extract tenant ID from your auth system (e.g., session, JWT, cookies)
|
|
42
|
-
* const tenantId = request.cookies.get("tenantId")?.value;
|
|
43
|
-
* return unblindProxy(request, tenantId);
|
|
44
|
-
* }
|
|
45
|
-
* }
|
|
18
|
+
* export const proxy = handler((req) => req.cookies.get("userId")?.value);
|
|
46
19
|
*
|
|
47
20
|
* export const config = {
|
|
48
21
|
* matcher: "/api/unblind/:path*",
|
|
49
22
|
* };
|
|
50
23
|
*
|
|
51
24
|
* @example
|
|
52
|
-
* // Usage in Middleware
|
|
53
|
-
* import {
|
|
25
|
+
* // Usage in Middleware (Next.js <16, middleware.ts)
|
|
26
|
+
* import { unblindProxy } from "@unblind/nextjs/server";
|
|
54
27
|
* import { NextRequest, NextResponse } from "next/server";
|
|
55
28
|
*
|
|
56
29
|
* export async function middleware(request: NextRequest) {
|
|
57
|
-
*
|
|
58
|
-
* // Let the handler process Unblind API requests
|
|
59
30
|
* if (request.nextUrl.pathname.startsWith("/api/unblind")) {
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* const response = await unblindMiddleware(request, tenantId);
|
|
64
|
-
* if (response) {
|
|
65
|
-
* return response;
|
|
66
|
-
* }
|
|
31
|
+
* const response = await unblindProxy((req) => req.cookies.get("userId")?.value);
|
|
32
|
+
* if (response) return response;
|
|
67
33
|
* }
|
|
68
34
|
*
|
|
69
35
|
* return NextResponse.next();
|
|
70
36
|
* }
|
|
71
37
|
*
|
|
72
38
|
* export const config = {
|
|
73
|
-
* matcher: [
|
|
39
|
+
* matcher: ["/api/unblind/:path*"],
|
|
74
40
|
* };
|
|
75
41
|
*/
|
|
76
|
-
declare function
|
|
42
|
+
declare function proxy(extractTenantId: (request: NextRequest) => string | undefined | Promise<string | undefined>): NextProxy;
|
|
77
43
|
|
|
78
|
-
export {
|
|
44
|
+
export { proxy as unblindProxy };
|
package/dist/server/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var c=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var N=(e,t)=>{for(var o in t)c(e,o,{get:t[o],enumerable:!0})},U=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of E(t))!I.call(e,n)&&n!==o&&c(e,n,{get:()=>t[n],enumerable:!(r=m(t,n))||r.enumerable});return e};var f=e=>U(c({},"__esModule",{value:!0}),e);var y={};N(y,{unblindProxy:()=>x});module.exports=f(y);var a=require("next/server"),h=process.env.UNBLIND_API_KEY,g="https://api.unblind.dev/v1",l="/api/unblind";function x(e){return async t=>{if(!t.nextUrl.pathname.startsWith(l))return a.NextResponse.next();if(!h)return console.error("UNBLIND_API_KEY is missing"),a.NextResponse.json({error:"Internal Server Error"},{status:500});let o=await e(t);try{if(!o&&t.nextUrl.pathname.includes("/tenants/"))return console.error("[Unblind] Unauthorized request (missing tenantId):",{path:t.nextUrl.pathname}),a.NextResponse.json({error:"Internal Server Error"},{status:500});let r=t.nextUrl.pathname.replace(new RegExp(`^${l}`),"").replace(new RegExp("^/tenants/"),"/tenants/"+o+"/"),n=new URL(`${g}${r}`);t.nextUrl.searchParams.forEach((s,u)=>{n.searchParams.append(u,s)});let p={Authorization:`Bearer ${h}`};if(["POST","PUT","PATCH","DELETE"].includes(t.method)){let s=t.headers.get("content-type");s&&(p["Content-Type"]=s)}let d={method:t.method,headers:p};if(["POST","PUT","PATCH","DELETE"].includes(t.method)){let s=await t.text();s&&(d.body=s)}let i=await fetch(n.toString(),d),P=await i.text();return new a.NextResponse(P,{status:i.status,headers:{"Content-Type":i.headers.get("content-type")||"application/json"}})}catch(r){let n=r instanceof Error?r.message:String(r);return console.error("[Unblind]",n),a.NextResponse.json({error:"Internal Server Error"},{status:500})}}}0&&(module.exports={unblindProxy});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/server/index.ts","../../src/server/
|
|
1
|
+
{"version":3,"sources":["../../src/server/index.ts","../../src/server/proxy/index.ts"],"sourcesContent":["export { proxy as unblindProxy } from \"./proxy\";\n","import { NextProxy, NextRequest, NextResponse } from \"next/server\";\n\nconst UNBLIND_API_KEY = process.env.UNBLIND_API_KEY;\nconst UNBLIND_API_ENDPOINT = \"https://api.unblind.dev/v1\";\nconst UNBLIND_PATH_PREFIX = \"/api/unblind\";\n\n/**\n * Unblind API handler for Next.js applications.\n *\n * This handler intercepts requests to `/api/unblind` and proxies them to the Unblind API,\n * automatically adding authentication and tenant context. Returns `undefined` for requests\n * that don't match the path prefix, allowing Next.js to continue normal routing.\n *\n * @param extractTenantId - A function that receives the incoming request and returns a tenant ID string (or undefined)\n *\n * @returns An async request handler that proxies matching requests to the Unblind API\n *\n * @example\n * // Usage as Proxy (Next.js 16+, proxy.ts)\n * import { handler } from \"@unblind/nextjs/server\";\n *\n * export const proxy = handler((req) => req.cookies.get(\"userId\")?.value);\n *\n * export const config = {\n * matcher: \"/api/unblind/:path*\",\n * };\n *\n * @example\n * // Usage in Middleware (Next.js <16, middleware.ts)\n * import { unblindProxy } from \"@unblind/nextjs/server\";\n * import { NextRequest, NextResponse } from \"next/server\";\n *\n * export async function middleware(request: NextRequest) {\n * if (request.nextUrl.pathname.startsWith(\"/api/unblind\")) {\n * const response = await unblindProxy((req) => req.cookies.get(\"userId\")?.value);\n * if (response) return response;\n * }\n *\n * return NextResponse.next();\n * }\n *\n * export const config = {\n * matcher: [\"/api/unblind/:path*\"],\n * };\n */\nexport function proxy(\n extractTenantId: (\n request: NextRequest,\n ) => string | undefined | Promise<string | undefined>,\n): NextProxy {\n return async (request: NextRequest) => {\n if (!request.nextUrl.pathname.startsWith(UNBLIND_PATH_PREFIX)) {\n return NextResponse.next();\n }\n\n if (!UNBLIND_API_KEY) {\n console.error(\"UNBLIND_API_KEY is missing\");\n return NextResponse.json(\n { error: \"Internal Server Error\" },\n { status: 500 },\n );\n }\n\n const tenantId = await extractTenantId(request);\n\n try {\n // Tenant requests use a different path\n if (!tenantId && request.nextUrl.pathname.includes(\"/tenants/\")) {\n console.error(\"[Unblind] Unauthorized request (missing tenantId):\", {\n path: request.nextUrl.pathname,\n });\n\n return NextResponse.json(\n { error: \"Internal Server Error\" },\n { status: 500 },\n );\n }\n\n // Extract the API path (remove the prefix)\n const apiPath = request.nextUrl.pathname\n .replace(new RegExp(`^${UNBLIND_PATH_PREFIX}`), \"\")\n .replace(new RegExp(\"^\\/tenants\\/\"), \"/tenants/\" + tenantId + \"/\");\n const url = new URL(`${UNBLIND_API_ENDPOINT}${apiPath}`);\n\n request.nextUrl.searchParams.forEach((value: string, key: string) => {\n url.searchParams.append(key, value);\n });\n\n const headers: HeadersInit = {\n Authorization: `Bearer ${UNBLIND_API_KEY}`,\n };\n\n // Forward Content-Type for requests with body\n if ([\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(request.method)) {\n const contentType = request.headers.get(\"content-type\");\n if (contentType) {\n headers[\"Content-Type\"] = contentType;\n }\n }\n\n const options: RequestInit = {\n method: request.method,\n headers,\n };\n\n if ([\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(request.method)) {\n const body = await request.text();\n if (body) {\n options.body = body;\n }\n }\n\n const response = await fetch(url.toString(), options);\n const data = await response.text();\n\n return new NextResponse(data, {\n status: response.status,\n headers: {\n \"Content-Type\":\n response.headers.get(\"content-type\") || \"application/json\",\n },\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n console.error(\"[Unblind]\", message);\n return NextResponse.json(\n { error: \"Internal Server Error\" },\n { status: 500 },\n );\n }\n };\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,IAAA,eAAAC,EAAAH,GCAA,IAAAI,EAAqD,uBAE/CC,EAAkB,QAAQ,IAAI,gBAC9BC,EAAuB,6BACvBC,EAAsB,eAyCrB,SAASC,EACdC,EAGW,CACX,MAAO,OAAOC,GAAyB,CACrC,GAAI,CAACA,EAAQ,QAAQ,SAAS,WAAWH,CAAmB,EAC1D,OAAO,eAAa,KAAK,EAG3B,GAAI,CAACF,EACH,eAAQ,MAAM,4BAA4B,EACnC,eAAa,KAClB,CAAE,MAAO,uBAAwB,EACjC,CAAE,OAAQ,GAAI,CAChB,EAGF,IAAMM,EAAW,MAAMF,EAAgBC,CAAO,EAE9C,GAAI,CAEF,GAAI,CAACC,GAAYD,EAAQ,QAAQ,SAAS,SAAS,WAAW,EAC5D,eAAQ,MAAM,qDAAsD,CAClE,KAAMA,EAAQ,QAAQ,QACxB,CAAC,EAEM,eAAa,KAClB,CAAE,MAAO,uBAAwB,EACjC,CAAE,OAAQ,GAAI,CAChB,EAIF,IAAME,EAAUF,EAAQ,QAAQ,SAC7B,QAAQ,IAAI,OAAO,IAAIH,CAAmB,EAAE,EAAG,EAAE,EACjD,QAAQ,IAAI,OAAO,YAAc,EAAG,YAAcI,EAAW,GAAG,EAC7DE,EAAM,IAAI,IAAI,GAAGP,CAAoB,GAAGM,CAAO,EAAE,EAEvDF,EAAQ,QAAQ,aAAa,QAAQ,CAACI,EAAeC,IAAgB,CACnEF,EAAI,aAAa,OAAOE,EAAKD,CAAK,CACpC,CAAC,EAED,IAAME,EAAuB,CAC3B,cAAe,UAAUX,CAAe,EAC1C,EAGA,GAAI,CAAC,OAAQ,MAAO,QAAS,QAAQ,EAAE,SAASK,EAAQ,MAAM,EAAG,CAC/D,IAAMO,EAAcP,EAAQ,QAAQ,IAAI,cAAc,EAClDO,IACFD,EAAQ,cAAc,EAAIC,EAE9B,CAEA,IAAMC,EAAuB,CAC3B,OAAQR,EAAQ,OAChB,QAAAM,CACF,EAEA,GAAI,CAAC,OAAQ,MAAO,QAAS,QAAQ,EAAE,SAASN,EAAQ,MAAM,EAAG,CAC/D,IAAMS,EAAO,MAAMT,EAAQ,KAAK,EAC5BS,IACFD,EAAQ,KAAOC,EAEnB,CAEA,IAAMC,EAAW,MAAM,MAAMP,EAAI,SAAS,EAAGK,CAAO,EAC9CG,EAAO,MAAMD,EAAS,KAAK,EAEjC,OAAO,IAAI,eAAaC,EAAM,CAC5B,OAAQD,EAAS,OACjB,QAAS,CACP,eACEA,EAAS,QAAQ,IAAI,cAAc,GAAK,kBAC5C,CACF,CAAC,CACH,OAASE,EAAO,CACd,IAAMC,EAAUD,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,EACrE,eAAQ,MAAM,YAAaC,CAAO,EAC3B,eAAa,KAClB,CAAE,MAAO,uBAAwB,EACjC,CAAE,OAAQ,GAAI,CAChB,CACF,CACF,CACF","names":["server_exports","__export","proxy","__toCommonJS","import_server","UNBLIND_API_KEY","UNBLIND_API_ENDPOINT","UNBLIND_PATH_PREFIX","proxy","extractTenantId","request","tenantId","apiPath","url","value","key","headers","contentType","options","body","response","data","error","message"]}
|
package/dist/server/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{NextResponse as
|
|
1
|
+
import{NextResponse as r}from"next/server";var p=process.env.UNBLIND_API_KEY,P="https://api.unblind.dev/v1",d="/api/unblind";function u(h){return async t=>{if(!t.nextUrl.pathname.startsWith(d))return r.next();if(!p)return console.error("UNBLIND_API_KEY is missing"),r.json({error:"Internal Server Error"},{status:500});let a=await h(t);try{if(!a&&t.nextUrl.pathname.includes("/tenants/"))return console.error("[Unblind] Unauthorized request (missing tenantId):",{path:t.nextUrl.pathname}),r.json({error:"Internal Server Error"},{status:500});let e=t.nextUrl.pathname.replace(new RegExp(`^${d}`),"").replace(new RegExp("^/tenants/"),"/tenants/"+a+"/"),o=new URL(`${P}${e}`);t.nextUrl.searchParams.forEach((n,x)=>{o.searchParams.append(x,n)});let i={Authorization:`Bearer ${p}`};if(["POST","PUT","PATCH","DELETE"].includes(t.method)){let n=t.headers.get("content-type");n&&(i["Content-Type"]=n)}let c={method:t.method,headers:i};if(["POST","PUT","PATCH","DELETE"].includes(t.method)){let n=await t.text();n&&(c.body=n)}let s=await fetch(o.toString(),c),l=await s.text();return new r(l,{status:s.status,headers:{"Content-Type":s.headers.get("content-type")||"application/json"}})}catch(e){let o=e instanceof Error?e.message:String(e);return console.error("[Unblind]",o),r.json({error:"Internal Server Error"},{status:500})}}}export{u as unblindProxy};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/server/
|
|
1
|
+
{"version":3,"sources":["../../src/server/proxy/index.ts"],"sourcesContent":["import { NextProxy, NextRequest, NextResponse } from \"next/server\";\n\nconst UNBLIND_API_KEY = process.env.UNBLIND_API_KEY;\nconst UNBLIND_API_ENDPOINT = \"https://api.unblind.dev/v1\";\nconst UNBLIND_PATH_PREFIX = \"/api/unblind\";\n\n/**\n * Unblind API handler for Next.js applications.\n *\n * This handler intercepts requests to `/api/unblind` and proxies them to the Unblind API,\n * automatically adding authentication and tenant context. Returns `undefined` for requests\n * that don't match the path prefix, allowing Next.js to continue normal routing.\n *\n * @param extractTenantId - A function that receives the incoming request and returns a tenant ID string (or undefined)\n *\n * @returns An async request handler that proxies matching requests to the Unblind API\n *\n * @example\n * // Usage as Proxy (Next.js 16+, proxy.ts)\n * import { handler } from \"@unblind/nextjs/server\";\n *\n * export const proxy = handler((req) => req.cookies.get(\"userId\")?.value);\n *\n * export const config = {\n * matcher: \"/api/unblind/:path*\",\n * };\n *\n * @example\n * // Usage in Middleware (Next.js <16, middleware.ts)\n * import { unblindProxy } from \"@unblind/nextjs/server\";\n * import { NextRequest, NextResponse } from \"next/server\";\n *\n * export async function middleware(request: NextRequest) {\n * if (request.nextUrl.pathname.startsWith(\"/api/unblind\")) {\n * const response = await unblindProxy((req) => req.cookies.get(\"userId\")?.value);\n * if (response) return response;\n * }\n *\n * return NextResponse.next();\n * }\n *\n * export const config = {\n * matcher: [\"/api/unblind/:path*\"],\n * };\n */\nexport function proxy(\n extractTenantId: (\n request: NextRequest,\n ) => string | undefined | Promise<string | undefined>,\n): NextProxy {\n return async (request: NextRequest) => {\n if (!request.nextUrl.pathname.startsWith(UNBLIND_PATH_PREFIX)) {\n return NextResponse.next();\n }\n\n if (!UNBLIND_API_KEY) {\n console.error(\"UNBLIND_API_KEY is missing\");\n return NextResponse.json(\n { error: \"Internal Server Error\" },\n { status: 500 },\n );\n }\n\n const tenantId = await extractTenantId(request);\n\n try {\n // Tenant requests use a different path\n if (!tenantId && request.nextUrl.pathname.includes(\"/tenants/\")) {\n console.error(\"[Unblind] Unauthorized request (missing tenantId):\", {\n path: request.nextUrl.pathname,\n });\n\n return NextResponse.json(\n { error: \"Internal Server Error\" },\n { status: 500 },\n );\n }\n\n // Extract the API path (remove the prefix)\n const apiPath = request.nextUrl.pathname\n .replace(new RegExp(`^${UNBLIND_PATH_PREFIX}`), \"\")\n .replace(new RegExp(\"^\\/tenants\\/\"), \"/tenants/\" + tenantId + \"/\");\n const url = new URL(`${UNBLIND_API_ENDPOINT}${apiPath}`);\n\n request.nextUrl.searchParams.forEach((value: string, key: string) => {\n url.searchParams.append(key, value);\n });\n\n const headers: HeadersInit = {\n Authorization: `Bearer ${UNBLIND_API_KEY}`,\n };\n\n // Forward Content-Type for requests with body\n if ([\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(request.method)) {\n const contentType = request.headers.get(\"content-type\");\n if (contentType) {\n headers[\"Content-Type\"] = contentType;\n }\n }\n\n const options: RequestInit = {\n method: request.method,\n headers,\n };\n\n if ([\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(request.method)) {\n const body = await request.text();\n if (body) {\n options.body = body;\n }\n }\n\n const response = await fetch(url.toString(), options);\n const data = await response.text();\n\n return new NextResponse(data, {\n status: response.status,\n headers: {\n \"Content-Type\":\n response.headers.get(\"content-type\") || \"application/json\",\n },\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n console.error(\"[Unblind]\", message);\n return NextResponse.json(\n { error: \"Internal Server Error\" },\n { status: 500 },\n );\n }\n };\n}\n"],"mappings":"AAAA,OAAiC,gBAAAA,MAAoB,cAErD,IAAMC,EAAkB,QAAQ,IAAI,gBAC9BC,EAAuB,6BACvBC,EAAsB,eAyCrB,SAASC,EACdC,EAGW,CACX,MAAO,OAAOC,GAAyB,CACrC,GAAI,CAACA,EAAQ,QAAQ,SAAS,WAAWH,CAAmB,EAC1D,OAAOH,EAAa,KAAK,EAG3B,GAAI,CAACC,EACH,eAAQ,MAAM,4BAA4B,EACnCD,EAAa,KAClB,CAAE,MAAO,uBAAwB,EACjC,CAAE,OAAQ,GAAI,CAChB,EAGF,IAAMO,EAAW,MAAMF,EAAgBC,CAAO,EAE9C,GAAI,CAEF,GAAI,CAACC,GAAYD,EAAQ,QAAQ,SAAS,SAAS,WAAW,EAC5D,eAAQ,MAAM,qDAAsD,CAClE,KAAMA,EAAQ,QAAQ,QACxB,CAAC,EAEMN,EAAa,KAClB,CAAE,MAAO,uBAAwB,EACjC,CAAE,OAAQ,GAAI,CAChB,EAIF,IAAMQ,EAAUF,EAAQ,QAAQ,SAC7B,QAAQ,IAAI,OAAO,IAAIH,CAAmB,EAAE,EAAG,EAAE,EACjD,QAAQ,IAAI,OAAO,YAAc,EAAG,YAAcI,EAAW,GAAG,EAC7DE,EAAM,IAAI,IAAI,GAAGP,CAAoB,GAAGM,CAAO,EAAE,EAEvDF,EAAQ,QAAQ,aAAa,QAAQ,CAACI,EAAeC,IAAgB,CACnEF,EAAI,aAAa,OAAOE,EAAKD,CAAK,CACpC,CAAC,EAED,IAAME,EAAuB,CAC3B,cAAe,UAAUX,CAAe,EAC1C,EAGA,GAAI,CAAC,OAAQ,MAAO,QAAS,QAAQ,EAAE,SAASK,EAAQ,MAAM,EAAG,CAC/D,IAAMO,EAAcP,EAAQ,QAAQ,IAAI,cAAc,EAClDO,IACFD,EAAQ,cAAc,EAAIC,EAE9B,CAEA,IAAMC,EAAuB,CAC3B,OAAQR,EAAQ,OAChB,QAAAM,CACF,EAEA,GAAI,CAAC,OAAQ,MAAO,QAAS,QAAQ,EAAE,SAASN,EAAQ,MAAM,EAAG,CAC/D,IAAMS,EAAO,MAAMT,EAAQ,KAAK,EAC5BS,IACFD,EAAQ,KAAOC,EAEnB,CAEA,IAAMC,EAAW,MAAM,MAAMP,EAAI,SAAS,EAAGK,CAAO,EAC9CG,EAAO,MAAMD,EAAS,KAAK,EAEjC,OAAO,IAAIhB,EAAaiB,EAAM,CAC5B,OAAQD,EAAS,OACjB,QAAS,CACP,eACEA,EAAS,QAAQ,IAAI,cAAc,GAAK,kBAC5C,CACF,CAAC,CACH,OAASE,EAAO,CACd,IAAMC,EAAUD,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,EACrE,eAAQ,MAAM,YAAaC,CAAO,EAC3BnB,EAAa,KAClB,CAAE,MAAO,uBAAwB,EACjC,CAAE,OAAQ,GAAI,CAChB,CACF,CACF,CACF","names":["NextResponse","UNBLIND_API_KEY","UNBLIND_API_ENDPOINT","UNBLIND_PATH_PREFIX","proxy","extractTenantId","request","tenantId","apiPath","url","value","key","headers","contentType","options","body","response","data","error","message"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unblind/nextjs",
|
|
3
|
-
"version": "0.1.0-
|
|
3
|
+
"version": "0.1.0-beta.1",
|
|
4
4
|
"description": "Unblind Next.js library",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -15,18 +15,19 @@
|
|
|
15
15
|
"types": "./dist/server/index.d.ts",
|
|
16
16
|
"import": "./dist/server/index.mjs",
|
|
17
17
|
"require": "./dist/server/index.js"
|
|
18
|
-
}
|
|
18
|
+
},
|
|
19
|
+
"./styles.css": "./dist/index.css"
|
|
19
20
|
},
|
|
20
21
|
"files": [
|
|
21
22
|
"dist"
|
|
22
23
|
],
|
|
23
24
|
"dependencies": {
|
|
24
|
-
"@unblind/react": "0.1.0-
|
|
25
|
+
"@unblind/react": "0.1.0-beta.1"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
28
|
"prettier": "^3.5.3",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
29
|
+
"tsup": "^8.3.5",
|
|
30
|
+
"typescript": "5.8.2"
|
|
30
31
|
},
|
|
31
32
|
"peerDependencies": {
|
|
32
33
|
"next": "^15.2.8 || ^15.3.8 || ^15.4.10 || ^15.5.9 || ^15.6.0-0 || ^16.0.10 || ^16.1.0-0"
|