Compare commits

..

16 Commits

Author SHA1 Message Date
Raj Nandan Sharma 617c594c80 Build 0.0.1 2023-12-23 00:02:58 +05:30
Raj Nandan Sharma e842e1172f Build 0.0.1 2023-12-22 23:58:00 +05:30
Raj Nandan Sharma 2852245fbb latest build 2023-12-22 22:58:07 +05:30
Raj Nandan Sharma 702b273fe5 change logic of utc 2023-12-22 21:54:21 +05:30
Raj Nandan Sharma c8327cdb03 latest build 2023-12-21 21:37:41 +05:30
Raj Nandan Sharma 1624839c35 updated doc 2023-12-21 21:36:37 +05:30
Raj Nandan Sharma 9825745578 all in one data 2023-12-20 01:20:46 +05:30
Raj Nandan Sharma be8e49183c all in one data 2023-12-20 01:08:25 +05:30
Raj Nandan Sharma a0d8f437a5 all in one data 2023-12-20 01:03:13 +05:30
Raj Nandan Sharma 1399f76591 all in one data 2023-12-20 00:57:44 +05:30
Raj Nandan Sharma 037cba7b3e all in one data 2023-12-19 23:27:41 +05:30
Raj Nandan Sharma 397dd4a971 latest build 2023-12-18 00:36:15 +05:30
Raj Nandan Sharma f0f51aeb6f latest build 2023-12-18 00:10:00 +05:30
Raj Nandan Sharma 3f32605afd latest build 2023-12-17 23:51:55 +05:30
Raj Nandan Sharma 6d4f43e921 latest build 2023-12-17 23:38:54 +05:30
Raj Nandan Sharma 9fb136882b Merge pull request #5 from rajnandan1/refactor
Refactor
2023-12-17 23:33:16 +05:30
145 changed files with 2325 additions and 2170 deletions
+13 -1
View File
@@ -1,10 +1,22 @@
# Kener - Status Page System
Kener: An open-source Node.js status page application for real-time service monitoring, incident management, and customizable reporting. Simplify service outage tracking, enhance incident communication, and ensure a seamless user experience.
Kener: Open-source Node.js status page tool, designed to make service monitoring and incident handling a breeze. It offers a sleek and user-friendly interface that simplifies tracking service outages and improves how we communicate during incidents. And the best part? Kener integrates seamlessly with GitHub, making incident management a team effort—making it easier for us to track and fix issues together in a collaborative and friendly environment.
It uses files to store the data. Other adapters are coming soon
Kener is still under development. There might be bugs. Please report them and I will fix them
Visit a live server [here](https://kener.ing)
Read the documentation [here](https://kener.ing/docs)
![alt text](static/ss.png "SS")
## Technologies used
- [SvelteKit](https://kit.svelte.dev/)
- [shadcn-svelte](https://www.shadcn-svelte.com/)
## Inspired from
- [Upptime](https://upptime.js.org/)
## Roadmap
- [ ] Add notification
- [ ] Add api to create incident
- [ ] Add Mysql adapter
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
const o=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global;export{o as g};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{C as b,s as w,V as m,G as q,N as x}from"./scheduler.b29f3093.js";const a=[];function z(s,u){return{subscribe:A(s,u).subscribe}}function A(s,u=b){let t;const r=new Set;function o(n){if(w(s,n)&&(s=n,t)){const i=!a.length;for(const e of r)e[1](),a.push(e,s);if(i){for(let e=0;e<a.length;e+=2)a[e][0](a[e+1]);a.length=0}}}function f(n){o(n(s))}function l(n,i=b){const e=[n,i];return r.add(e),r.size===1&&(t=u(o,f)||b),n(s),()=>{r.delete(e),r.size===0&&t&&(t(),t=null)}}return{set:o,update:f,subscribe:l}}function C(s,u,t){const r=!Array.isArray(s),o=r?[s]:s;if(!o.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const f=u.length<2;return z(t,(l,n)=>{let i=!1;const e=[];let d=0,p=b;const y=()=>{if(d)return;p();const c=u(r?e[0]:e,l,n);f?l(c):p=x(c)?c:b},h=o.map((c,g)=>m(c,_=>{e[g]=_,d&=~(1<<g),i&&y()},()=>{d|=1<<g}));return i=!0,y(),function(){q(h),p(),i=!1}})}function E(s){return{subscribe:s.subscribe.bind(s)}}export{E as a,C as d,z as r,A as w};
import{n as b,s as w,V as m,I as q,T as x}from"./scheduler.ea4d12df.js";const a=[];function z(s,u){return{subscribe:A(s,u).subscribe}}function A(s,u=b){let t;const r=new Set;function o(n){if(w(s,n)&&(s=n,t)){const i=!a.length;for(const e of r)e[1](),a.push(e,s);if(i){for(let e=0;e<a.length;e+=2)a[e][0](a[e+1]);a.length=0}}}function f(n){o(n(s))}function l(n,i=b){const e=[n,i];return r.add(e),r.size===1&&(t=u(o,f)||b),n(s),()=>{r.delete(e),r.size===0&&t&&(t(),t=null)}}return{set:o,update:f,subscribe:l}}function E(s,u,t){const r=!Array.isArray(s),o=r?[s]:s;if(!o.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const f=u.length<2;return z(t,(l,n)=>{let i=!1;const e=[];let d=0,p=b;const y=()=>{if(d)return;p();const c=u(r?e[0]:e,l,n);f?l(c):p=x(c)?c:b},h=o.map((c,g)=>m(c,_=>{e[g]=_,d&=~(1<<g),i&&y()},()=>{d|=1<<g}));return i=!0,y(),function(){q(h),p(),i=!1}})}function I(s){return{subscribe:s.subscribe.bind(s)}}export{I as a,E as d,z as r,A as w};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
import{w as u}from"./index.2f161581.js";var b;const y=((b=globalThis.__sveltekit_12t8kyc)==null?void 0:b.base)??"";var h;(h=globalThis.__sveltekit_12t8kyc)==null||h.assets;const I="sveltekit:snapshot",x="sveltekit:scroll",O="sveltekit:index",c={tap:1,hover:2,viewport:3,eager:4,off:-1},k=location.origin;function T(e){let t=e.baseURI;if(!t){const o=e.getElementsByTagName("base");t=o.length?o[0].href:e.URL}return t}function U(){return{x:pageXOffset,y:pageYOffset}}const d=new WeakSet,p={"preload-code":["","off","tap","hover","viewport","eager"],"preload-data":["","off","tap","hover"],keepfocus:["","true","off","false"],noscroll:["","true","off","false"],reload:["","true","off","false"],replacestate:["","true","off","false"]};function f(e,t){const o=e.getAttribute(`data-sveltekit-${t}`);return E(e,t,o),o}function E(e,t,o){o!==null&&!d.has(e)&&!p[t].includes(o)&&(console.error(`Unexpected value for ${t} — should be one of ${p[t].map(s=>JSON.stringify(s)).join(", ")}`,e),d.add(e))}const _={...c,"":c.hover};function v(e){let t=e.assignedSlot??e.parentNode;return(t==null?void 0:t.nodeType)===11&&(t=t.host),t}function N(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=v(e)}}function L(e,t){let o;try{o=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI)}catch{}const s=e instanceof SVGAElement?e.target.baseVal:e.target,l=!o||!!s||A(o,t)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),r=(o==null?void 0:o.origin)===k&&e.hasAttribute("download");return{url:o,external:l,target:s,download:r}}function P(e){let t=null,o=null,s=null,l=null,r=null,a=null,n=e;for(;n&&n!==document.documentElement;)s===null&&(s=f(n,"preload-code")),l===null&&(l=f(n,"preload-data")),t===null&&(t=f(n,"keepfocus")),o===null&&(o=f(n,"noscroll")),r===null&&(r=f(n,"reload")),a===null&&(a=f(n,"replacestate")),n=v(n);function i(w){switch(w){case"":case"true":return!0;case"off":case"false":return!1;default:return null}}return{preload_code:_[s??"off"],preload_data:_[l??"off"],keep_focus:i(t),noscroll:i(o),reload:i(r),replace_state:i(a)}}function g(e){const t=u(e);let o=!0;function s(){o=!0,t.update(a=>a)}function l(a){o=!1,t.set(a)}function r(a){let n;return t.subscribe(i=>{(n===void 0||o&&i!==n)&&a(n=i)})}return{notify:s,set:l,subscribe:r}}function S(){const{set:e,subscribe:t}=u(!1);return{subscribe:t,check:async()=>!1}}function A(e,t){return e.origin!==k||!e.pathname.startsWith(t)}function V(e){e.client}const Y={url:g({}),page:g({}),navigating:u(null),updated:S()};export{O as I,c as P,x as S,I as a,L as b,P as c,Y as d,y as e,N as f,T as g,V as h,A as i,k as o,U as s};
@@ -0,0 +1 @@
import{w as u}from"./index.7ea6c3d8.js";var b;const E=((b=globalThis.__sveltekit_fcreex)==null?void 0:b.base)??"";var h;(h=globalThis.__sveltekit_fcreex)==null||h.assets;const y="sveltekit:snapshot",I="sveltekit:scroll",O="sveltekit:index",c={tap:1,hover:2,viewport:3,eager:4,off:-1},v=location.origin;function T(e){let t=e.baseURI;if(!t){const o=e.getElementsByTagName("base");t=o.length?o[0].href:e.URL}return t}function U(){return{x:pageXOffset,y:pageYOffset}}const d=new WeakSet,p={"preload-code":["","off","tap","hover","viewport","eager"],"preload-data":["","off","tap","hover"],keepfocus:["","true","off","false"],noscroll:["","true","off","false"],reload:["","true","off","false"],replacestate:["","true","off","false"]};function f(e,t){const o=e.getAttribute(`data-sveltekit-${t}`);return S(e,t,o),o}function S(e,t,o){o!==null&&!d.has(e)&&!p[t].includes(o)&&(console.error(`Unexpected value for ${t} — should be one of ${p[t].map(s=>JSON.stringify(s)).join(", ")}`,e),d.add(e))}const _={...c,"":c.hover};function k(e){let t=e.assignedSlot??e.parentNode;return(t==null?void 0:t.nodeType)===11&&(t=t.host),t}function N(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=k(e)}}function L(e,t){let o;try{o=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI)}catch{}const s=e instanceof SVGAElement?e.target.baseVal:e.target,l=!o||!!s||A(o,t)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),r=(o==null?void 0:o.origin)===v&&e.hasAttribute("download");return{url:o,external:l,target:s,download:r}}function P(e){let t=null,o=null,s=null,l=null,r=null,a=null,n=e;for(;n&&n!==document.documentElement;)s===null&&(s=f(n,"preload-code")),l===null&&(l=f(n,"preload-data")),t===null&&(t=f(n,"keepfocus")),o===null&&(o=f(n,"noscroll")),r===null&&(r=f(n,"reload")),a===null&&(a=f(n,"replacestate")),n=k(n);function i(w){switch(w){case"":case"true":return!0;case"off":case"false":return!1;default:return null}}return{preload_code:_[s??"off"],preload_data:_[l??"off"],keep_focus:i(t),noscroll:i(o),reload:i(r),replace_state:i(a)}}function g(e){const t=u(e);let o=!0;function s(){o=!0,t.update(a=>a)}function l(a){o=!1,t.set(a)}function r(a){let n;return t.subscribe(i=>{(n===void 0||o&&i!==n)&&a(n=i)})}return{notify:s,set:l,subscribe:r}}function x(){const{set:e,subscribe:t}=u(!1);return{subscribe:t,check:async()=>!1}}function A(e,t){return e.origin!==v||!e.pathname.startsWith(t)}function V(e){e.client}const Y={url:g({}),page:g({}),navigating:u(null),updated:x()};export{O as I,c as P,I as S,y as a,L as b,P as c,Y as d,E as e,N as f,T as g,V as h,A as i,v as o,U as s};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{s as O,z as R,A as q,g as b,l as g,c as z,h as E,i as $,m as w,d as A,k as S,n as k}from"../chunks/scheduler.ea4d12df.js";import{S as B,i as D,d as C,v as H,e as d,a as m,o as j,s as x}from"../chunks/index.12c4b772.js";import{d as N}from"../chunks/singletons.e4f99468.js";const P=()=>{const t=N;return{page:{subscribe:t.page.subscribe},navigating:{subscribe:t.navigating.subscribe},updated:t.updated}},_={subscribe(t){return P().page.subscribe(t)}},y="node_modules/@sveltejs/kit/src/runtime/components/error.svelte";function f(t){var h;let e,i=t[0].status+"",r,l,n,c=((h=t[0].error)==null?void 0:h.message)+"",a;const v={c:function(){e=b("h1"),r=g(i),l=z(),n=b("p"),a=g(c),this.h()},l:function(s){e=E(s,"H1",{});var o=$(e);r=w(o,i),o.forEach(d),l=A(s),n=E(s,"P",{});var p=$(n);a=w(p,c),p.forEach(d),this.h()},h:function(){S(e,y,4,0,57),S(n,y,5,0,81)},m:function(s,o){m(s,e,o),j(e,r),m(s,l,o),m(s,n,o),j(n,a)},p:function(s,[o]){var p;o&1&&i!==(i=s[0].status+"")&&x(r,i),o&1&&c!==(c=((p=s[0].error)==null?void 0:p.message)+"")&&x(a,c)},i:k,o:k,d:function(s){s&&(d(e),d(l),d(n))}};return C("SvelteRegisterBlock",{block:v,id:f.name,type:"component",source:"",ctx:t}),v}function F(t,e,i){let r;R(_,"page"),q(t,_,a=>i(0,r=a));let{$$slots:l={},$$scope:n}=e;H("Error",l,[]);const c=[];return Object.keys(e).forEach(a=>{!~c.indexOf(a)&&a.slice(0,2)!=="$$"&&a!=="slot"&&console.warn(`<Error> was created with unknown prop '${a}'`)}),t.$capture_state=()=>({page:_,$page:r}),[r]}let K=class extends B{constructor(e){super(e),D(this,e,F,f,O,{}),C("SvelteRegisterComponent",{component:this,tagName:"Error",options:e,id:f.name})}};export{K as component};
@@ -1 +0,0 @@
import{s as B,A as O,B as R,g as b,l as g,c as q,h as E,i as $,m as w,d as A,k as S,C as k}from"../chunks/scheduler.b29f3093.js";import{S as D,i as H,d as y,v as N,e as d,a as m,o as C,s as j}from"../chunks/index.7aebdd36.js";import{d as P}from"../chunks/singletons.222cc637.js";const z=()=>{const t=P;return{page:{subscribe:t.page.subscribe},navigating:{subscribe:t.navigating.subscribe},updated:t.updated}},_={subscribe(t){return z().page.subscribe(t)}},x="node_modules/@sveltejs/kit/src/runtime/components/error.svelte";function f(t){var h;let e,i=t[0].status+"",r,l,n,c=((h=t[0].error)==null?void 0:h.message)+"",a;const v={c:function(){e=b("h1"),r=g(i),l=q(),n=b("p"),a=g(c),this.h()},l:function(s){e=E(s,"H1",{});var o=$(e);r=w(o,i),o.forEach(d),l=A(s),n=E(s,"P",{});var p=$(n);a=w(p,c),p.forEach(d),this.h()},h:function(){S(e,x,4,0,57),S(n,x,5,0,81)},m:function(s,o){m(s,e,o),C(e,r),m(s,l,o),m(s,n,o),C(n,a)},p:function(s,[o]){var p;o&1&&i!==(i=s[0].status+"")&&j(r,i),o&1&&c!==(c=((p=s[0].error)==null?void 0:p.message)+"")&&j(a,c)},i:k,o:k,d:function(s){s&&(d(e),d(l),d(n))}};return y("SvelteRegisterBlock",{block:v,id:f.name,type:"component",source:"",ctx:t}),v}function F(t,e,i){let r;O(_,"page"),R(t,_,a=>i(0,r=a));let{$$slots:l={},$$scope:n}=e;N("Error",l,[]);const c=[];return Object.keys(e).forEach(a=>{!~c.indexOf(a)&&a.slice(0,2)!=="$$"&&a!=="slot"&&console.warn(`<Error> was created with unknown prop '${a}'`)}),t.$capture_state=()=>({page:_,$page:r}),[r]}let K=class extends D{constructor(e){super(e),H(this,e,F,f,B,{}),y("SvelteRegisterComponent",{component:this,tagName:"Error",options:e,id:f.name})}};export{K as component};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"version":"1702750261938"}
{"version":"1703269613365"}
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

-6
View File
@@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" fill="#FF6F61" viewBox="2 6 28 24.1">
<g>
<path
d="M24.66,26a3.83,3.83,0,0,1-2.86-1.32,1.81,1.81,0,0,0-2.95,0,3.76,3.76,0,0,1-5.72,0,1.8,1.8,0,0,0-2.94,0,3.76,3.76,0,0,1-5.72,0A1.9,1.9,0,0,0,3,24a1,1,0,0,1,0-2,3.82,3.82,0,0,1,2.86,1.32A1.9,1.9,0,0,0,7.33,24a1.9,1.9,0,0,0,1.47-.76,3.76,3.76,0,0,1,5.72,0A1.9,1.9,0,0,0,16,24a1.94,1.94,0,0,0,1.48-.76,3.76,3.76,0,0,1,5.72,0,1.81,1.81,0,0,0,2.95,0A3.82,3.82,0,0,1,29,22a1,1,0,0,1,0,2,1.94,1.94,0,0,0-1.48.76A3.82,3.82,0,0,1,24.66,26Zm2.86,2.68A1.94,1.94,0,0,1,29,28a1,1,0,0,0,0-2,3.82,3.82,0,0,0-2.86,1.32,1.81,1.81,0,0,1-2.95,0,3.76,3.76,0,0,0-5.72,0A1.94,1.94,0,0,1,16,28a1.9,1.9,0,0,1-1.47-.76,3.76,3.76,0,0,0-5.72,0A1.9,1.9,0,0,1,7.33,28a1.9,1.9,0,0,1-1.47-.76A3.82,3.82,0,0,0,3,26a1,1,0,0,0,0,2,1.9,1.9,0,0,1,1.47.76,3.76,3.76,0,0,0,5.72,0,1.8,1.8,0,0,1,2.94,0,3.76,3.76,0,0,0,5.72,0,1.81,1.81,0,0,1,2.95,0,3.76,3.76,0,0,0,5.72,0ZM26,6a1,1,0,0,0-1,1c0,.55-1.83,1.08-3.17,1.47-2,.57-4.34,1.25-5.83,2.82C14.51,9.72,12.14,9,10.17,8.47,8.83,8.08,7,7.55,7,7A1,1,0,0,0,5,7a11,11,0,0,0,7.28,10.35,1,1,0,0,1,.72,1V20a1,1,0,0,0,1,1h4a1,1,0,0,0,1-1V18.31a1,1,0,0,1,.72-1A11,11,0,0,0,27,7,1,1,0,0,0,26,6Z"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 KiB

After

Width:  |  Height:  |  Size: 285 KiB

+31
View File
@@ -0,0 +1,31 @@
import fs from 'fs-extra';
import { p as public_env } from './shared-server-58a5f352.js';
async function load({ params, route, url, cookies }) {
let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let localTz = "GMT";
const localTzCookie = cookies.get("localTz");
if (!!localTzCookie) {
localTz = localTzCookie;
}
return {
site,
localTz
};
}
var _layout_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 0;
let component_cache;
const component = async () => component_cache ??= (await import('./_layout.svelte-5d2a766d.js')).default;
const server_id = "src/routes/+layout.server.js";
const imports = ["_app/immutable/nodes/0.c41bf379.js","_app/immutable/chunks/scheduler.ea4d12df.js","_app/immutable/chunks/index.12c4b772.js","_app/immutable/chunks/globals.7f7f1b26.js","_app/immutable/chunks/index.cab2b962.js","_app/immutable/chunks/utils.9739163d.js","_app/immutable/chunks/index.7ea6c3d8.js"];
const stylesheets = ["_app/immutable/assets/0.7f04db4e.css"];
const fonts = [];
export { component, fonts, imports, index, _layout_server as server, server_id, stylesheets };
//# sourceMappingURL=0-8bac6565.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"0-8bac6565.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.server.js","../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["import fs from \"fs-extra\";\nimport { p as public_env } from \"../../chunks/shared-server.js\";\nasync function load({ params, route, url, cookies }) {\n let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/site.json\", \"utf8\"));\n let localTz = \"GMT\";\n const localTzCookie = cookies.get(\"localTz\");\n if (!!localTzCookie) {\n localTz = localTzCookie;\n }\n return {\n site,\n localTz\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/_layout.server.js';\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+layout.server.js\";\nexport const imports = [\"_app/immutable/nodes/0.c41bf379.js\",\"_app/immutable/chunks/scheduler.ea4d12df.js\",\"_app/immutable/chunks/index.12c4b772.js\",\"_app/immutable/chunks/globals.7f7f1b26.js\",\"_app/immutable/chunks/index.cab2b962.js\",\"_app/immutable/chunks/utils.9739163d.js\",\"_app/immutable/chunks/index.7ea6c3d8.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.7f04db4e.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;AAEA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;AACrD,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AAChG,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC;AACtB,EAAE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,CAAC,aAAa,EAAE;AACvB,IAAI,OAAO,GAAG,aAAa,CAAC;AAC5B,GAAG;AACH,EAAE,OAAO;AACT,IAAI,IAAI;AACR,IAAI,OAAO;AACX,GAAG,CAAC;AACJ;;;;;;;ACXY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE,QAAQ;AAE1G,MAAC,SAAS,GAAG,+BAA+B;AAC5C,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,2CAA2C,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,yCAAyC,EAAE;AACpT,MAAC,WAAW,GAAG,CAAC,sCAAsC,EAAE;AACxD,MAAC,KAAK,GAAG;;;;"}
-33
View File
@@ -1,33 +0,0 @@
import fs from 'fs-extra';
import { p as public_env } from './shared-server-58a5f352.js';
async function load({ params, route, url, cookies }) {
const tzOffsetCookie = cookies.get("tzOffset");
var dt = /* @__PURE__ */ new Date();
let tzOffset = dt.getTimezoneOffset();
if (!!tzOffsetCookie) {
tzOffset = Number(tzOffsetCookie);
}
let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
console.log("Rendering page with " + tzOffset);
return {
site,
tzOffset
};
}
var _layout_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 0;
let component_cache;
const component = async () => component_cache ??= (await import('./_layout.svelte-d281ddab.js')).default;
const server_id = "src/routes/+layout.server.js";
const imports = ["_app/immutable/nodes/0.a42378a7.js","_app/immutable/chunks/scheduler.b29f3093.js","_app/immutable/chunks/index.7aebdd36.js","_app/immutable/chunks/index.eede6470.js","_app/immutable/chunks/index.ed2d54e5.js","_app/immutable/chunks/index.2f161581.js"];
const stylesheets = ["_app/immutable/assets/0.d2e53a0b.css"];
const fonts = [];
export { component, fonts, imports, index, _layout_server as server, server_id, stylesheets };
//# sourceMappingURL=0-d2d5f55c.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"0-d2d5f55c.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.server.js","../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["import fs from \"fs-extra\";\nimport { p as public_env } from \"../../chunks/shared-server.js\";\nasync function load({ params, route, url, cookies }) {\n const tzOffsetCookie = cookies.get(\"tzOffset\");\n var dt = /* @__PURE__ */ new Date();\n let tzOffset = dt.getTimezoneOffset();\n if (!!tzOffsetCookie) {\n tzOffset = Number(tzOffsetCookie);\n }\n let site = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/site.json\", \"utf8\"));\n console.log(\"Rendering page with \" + tzOffset);\n return {\n site,\n tzOffset\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/_layout.server.js';\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+layout.server.js\";\nexport const imports = [\"_app/immutable/nodes/0.a42378a7.js\",\"_app/immutable/chunks/scheduler.b29f3093.js\",\"_app/immutable/chunks/index.7aebdd36.js\",\"_app/immutable/chunks/index.eede6470.js\",\"_app/immutable/chunks/index.ed2d54e5.js\",\"_app/immutable/chunks/index.2f161581.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.d2e53a0b.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;AAEA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;AACrD,EAAE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACjD,EAAE,IAAI,EAAE,mBAAmB,IAAI,IAAI,EAAE,CAAC;AACtC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;AACxC,EAAE,IAAI,CAAC,CAAC,cAAc,EAAE;AACxB,IAAI,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AAChG,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,QAAQ,CAAC,CAAC;AACjD,EAAE,OAAO;AACT,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,GAAG,CAAC;AACJ;;;;;;;ACbY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE,QAAQ;AAE1G,MAAC,SAAS,GAAG,+BAA+B;AAC5C,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,yCAAyC,EAAE;AACxQ,MAAC,WAAW,GAAG,CAAC,sCAAsC,EAAE;AACxD,MAAC,KAAK,GAAG;;;;"}
+9
View File
@@ -0,0 +1,9 @@
const index = 1;
let component_cache;
const component = async () => component_cache ??= (await import('./error.svelte-f1948e50.js')).default;
const imports = ["_app/immutable/nodes/1.ae816ce0.js","_app/immutable/chunks/scheduler.ea4d12df.js","_app/immutable/chunks/index.12c4b772.js","_app/immutable/chunks/singletons.e4f99468.js","_app/immutable/chunks/index.7ea6c3d8.js"];
const stylesheets = [];
const fonts = [];
export { component, fonts, imports, index, stylesheets };
//# sourceMappingURL=1-54dc7c70.js.map
@@ -1 +1 @@
{"version":3,"file":"1-b7fabb6f.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.f67c7e5a.js\",\"_app/immutable/chunks/scheduler.b29f3093.js\",\"_app/immutable/chunks/index.7aebdd36.js\",\"_app/immutable/chunks/singletons.222cc637.js\",\"_app/immutable/chunks/index.2f161581.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE,QAAQ;AAC5G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,8CAA8C,CAAC,yCAAyC,EAAE;AACnO,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
{"version":3,"file":"1-54dc7c70.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.ae816ce0.js\",\"_app/immutable/chunks/scheduler.ea4d12df.js\",\"_app/immutable/chunks/index.12c4b772.js\",\"_app/immutable/chunks/singletons.e4f99468.js\",\"_app/immutable/chunks/index.7ea6c3d8.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE,QAAQ;AAC5G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,8CAA8C,CAAC,yCAAyC,EAAE;AACnO,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
-9
View File
@@ -1,9 +0,0 @@
const index = 1;
let component_cache;
const component = async () => component_cache ??= (await import('./error.svelte-c2f5f995.js')).default;
const imports = ["_app/immutable/nodes/1.f67c7e5a.js","_app/immutable/chunks/scheduler.b29f3093.js","_app/immutable/chunks/index.7aebdd36.js","_app/immutable/chunks/singletons.222cc637.js","_app/immutable/chunks/index.2f161581.js"];
const stylesheets = [];
const fonts = [];
export { component, fonts, imports, index, stylesheets };
//# sourceMappingURL=1-b7fabb6f.js.map
-33
View File
@@ -1,33 +0,0 @@
import { h as hasActiveIncident } from './incident-f316d011.js';
import { p as public_env } from './shared-server-58a5f352.js';
import fs from 'fs-extra';
import 'axios';
async function load({ params, route, url, parent }) {
let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const parentData = await parent();
const siteData = parentData.site;
const github = siteData.github;
for (let i = 0; i < monitors.length; i++) {
monitors[i].hasActiveIncident = await hasActiveIncident(monitors[i].tag, github);
}
return {
monitors
};
}
var _page_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 2;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-2442d3a2.js')).default;
const server_id = "src/routes/+page.server.js";
const imports = ["_app/immutable/nodes/2.34ad5b96.js","_app/immutable/chunks/scheduler.b29f3093.js","_app/immutable/chunks/index.7aebdd36.js","_app/immutable/chunks/index.eede6470.js","_app/immutable/chunks/index.ed2d54e5.js","_app/immutable/chunks/index.2f161581.js","_app/immutable/chunks/separator.4ff811e2.js"];
const stylesheets = [];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets };
//# sourceMappingURL=2-503244ba.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"2-503244ba.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.server.js","../../../.svelte-kit/adapter-node/nodes/2.js"],"sourcesContent":["import { h as hasActiveIncident } from \"../../chunks/incident.js\";\nimport { p as public_env } from \"../../chunks/shared-server.js\";\nimport fs from \"fs-extra\";\nasync function load({ params, route, url, parent }) {\n let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/monitors.json\", \"utf8\"));\n const parentData = await parent();\n const siteData = parentData.site;\n const github = siteData.github;\n for (let i = 0; i < monitors.length; i++) {\n monitors[i].hasActiveIncident = await hasActiveIncident(monitors[i].tag, github);\n }\n return {\n monitors\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/_page.server.js';\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+page.server.js\";\nexport const imports = [\"_app/immutable/nodes/2.34ad5b96.js\",\"_app/immutable/chunks/scheduler.b29f3093.js\",\"_app/immutable/chunks/index.7aebdd36.js\",\"_app/immutable/chunks/index.eede6470.js\",\"_app/immutable/chunks/index.ed2d54e5.js\",\"_app/immutable/chunks/index.2f161581.js\",\"_app/immutable/chunks/separator.4ff811e2.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;AAGA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACxG,EAAE,MAAM,UAAU,GAAG,MAAM,MAAM,EAAE,CAAC;AACpC,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;AACnC,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACrF,GAAG;AACH,EAAE,OAAO;AACT,IAAI,QAAQ;AACZ,GAAG,CAAC;AACJ;;;;;;;ACZY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAkC,CAAC,EAAE,QAAQ;AAExG,MAAC,SAAS,GAAG,6BAA6B;AAC1C,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,6CAA6C,EAAE;AACtT,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
+151
View File
@@ -0,0 +1,151 @@
import { G as GetIncidents, M as Mapper } from './github-3ae10cb0.js';
import fs from 'fs-extra';
import { G as GetMinuteStartNowTimestampUTC, B as BeginingOfDay } from './tool-5bef1c33.js';
import { S as StatusObj } from './helpers-fc56b344.js';
import { p as public_env } from './shared-server-58a5f352.js';
import 'axios';
import '@markdoc/markdoc';
function parseUptime(up, all) {
if (all === 0)
return String("-");
if (up == 0)
return String("0");
if (up == all) {
return String((up / all * parseFloat(100)).toFixed(0));
}
return String((up / all * parseFloat(100)).toFixed(4));
}
function parsePercentage(n) {
if (isNaN(n))
return "-";
if (n == 0) {
return "0";
}
if (n == 100) {
return "100";
}
return n.toFixed(4);
}
const secondsInDay = 24 * 60 * 60;
function getDayData(day0, startTime, endTime) {
let dayData = {
UP: 0,
DEGRADED: 0,
DOWN: 0,
timestamp: startTime,
cssClass: StatusObj.NO_DATA,
message: "No Data"
};
for (let i = startTime; i <= endTime; i += 60) {
if (day0[i] === void 0) {
continue;
}
if (day0[i].status == "UP") {
dayData.UP++;
} else if (day0[i].status == "DEGRADED") {
dayData.DEGRADED++;
} else if (day0[i].status == "DOWN") {
dayData.DOWN++;
}
}
dayData.uptimePercentage = parseUptime(dayData.UP + dayData.DEGRADED, dayData.UP + dayData.DEGRADED + dayData.DOWN);
let cssClass = StatusObj.UP;
let message = "Status OK";
if (dayData.DEGRADED > 0) {
cssClass = StatusObj.DEGRADED;
message = "Degraded for " + dayData.DEGRADED + " minutes";
}
if (dayData.DOWN > 0) {
cssClass = StatusObj.DOWN;
message = "Down for " + dayData.DOWN + " minutes";
}
if (dayData.DEGRADED + dayData.DOWN + dayData.UP > 0) {
dayData.message = message;
dayData.cssClass = cssClass;
}
return dayData;
}
const FetchData = async function(monitor, localTz) {
let _0Day = {};
let _90Day = {};
let uptime0Day = "0";
let dailyUps = 0;
let dailyDown = 0;
let percentage90DaysBuildUp = [];
let dailyDegraded = 0;
const now = GetMinuteStartNowTimestampUTC();
const midnight = BeginingOfDay({ timeZone: localTz });
const midnight90DaysAgo = midnight - 90 * 24 * 60 * 60;
const midnightTomorrow = midnight + secondsInDay;
for (let i = midnight; i <= now; i += 60) {
_0Day[i] = {
timestamp: i,
status: "NO_DATA",
cssClass: StatusObj.NO_DATA,
index: (i - midnight) / 60
};
}
let day0 = JSON.parse(fs.readFileSync(monitor.path0Day, "utf8"));
for (const timestamp in day0) {
const element = day0[timestamp];
let status = element.status;
if (_0Day[timestamp] !== void 0) {
_0Day[timestamp].status = status;
_0Day[timestamp].cssClass = StatusObj[status];
dailyUps = status == "UP" ? dailyUps + 1 : dailyUps;
dailyDown = status == "DOWN" ? dailyDown + 1 : dailyDown;
dailyDegraded = status == "DEGRADED" ? dailyDegraded + 1 : dailyDegraded;
}
}
for (let i = midnight90DaysAgo; i < midnightTomorrow; i += secondsInDay) {
_90Day[i] = getDayData(day0, i, i + secondsInDay - 1);
}
for (const key in _90Day) {
const element = _90Day[key];
if (element.message == "No Data")
continue;
percentage90DaysBuildUp.push(parseFloat(element.uptimePercentage));
}
uptime0Day = parseUptime(dailyUps + dailyDegraded, dailyUps + dailyDown + dailyDegraded);
return {
_0Day,
_90Day,
uptime0Day,
uptime90Day: parsePercentage(percentage90DaysBuildUp.reduce((a, b) => a + b, 0) / percentage90DaysBuildUp.length),
dailyUps,
dailyDown,
dailyDegraded
};
};
async function load({ params, route, url, parent }) {
let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const parentData = await parent();
const siteData = parentData.site;
const github = siteData.github;
for (let i = 0; i < monitors.length; i++) {
const gitHubActiveIssues = await GetIncidents(monitors[i].tag, github, "open");
let data = await FetchData(monitors[i], parentData.localTz);
monitors[i].pageData = data;
monitors[i].activeIncidents = await Promise.all(gitHubActiveIssues.map(Mapper, { github }));
}
return {
monitors
};
}
var _page_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 2;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-5fa31107.js')).default;
const server_id = "src/routes/+page.server.js";
const imports = ["_app/immutable/nodes/2.1c032969.js","_app/immutable/chunks/scheduler.ea4d12df.js","_app/immutable/chunks/index.12c4b772.js","_app/immutable/chunks/globals.7f7f1b26.js","_app/immutable/chunks/index.b3676155.js","_app/immutable/chunks/utils.9739163d.js","_app/immutable/chunks/incident.07f56014.js","_app/immutable/chunks/index.cab2b962.js","_app/immutable/chunks/index.7ea6c3d8.js"];
const stylesheets = [];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets };
//# sourceMappingURL=2-a75cfff7.js.map
File diff suppressed because one or more lines are too long
@@ -14,11 +14,11 @@ var _page_server = /*#__PURE__*/Object.freeze({
const index = 3;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-43dcbc25.js')).default;
const component = async () => component_cache ??= (await import('./_page.svelte-7ccd3c5c.js')).default;
const server_id = "src/routes/docs/+page.server.js";
const imports = ["_app/immutable/nodes/3.c23c022a.js","_app/immutable/chunks/scheduler.b29f3093.js","_app/immutable/chunks/index.7aebdd36.js"];
const imports = ["_app/immutable/nodes/3.48942a71.js","_app/immutable/chunks/scheduler.ea4d12df.js","_app/immutable/chunks/index.12c4b772.js","_app/immutable/chunks/index.b3676155.js","_app/immutable/chunks/utils.9739163d.js"];
const stylesheets = [];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets };
//# sourceMappingURL=3-99004f09.js.map
//# sourceMappingURL=3-17bd4bcd.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"3-17bd4bcd.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/docs/_page.server.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import axios from \"axios\";\nasync function load({ params, route, url, parent }) {\n const { data } = await axios.get(\"https://raw.githubusercontent.com/rajnandan1/kener/main/docs.md\");\n return {\n md: data\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/docs/_page.server.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/docs/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/docs/+page.server.js\";\nexport const imports = [\"_app/immutable/nodes/3.48942a71.js\",\"_app/immutable/chunks/scheduler.ea4d12df.js\",\"_app/immutable/chunks/index.12c4b772.js\",\"_app/immutable/chunks/index.b3676155.js\",\"_app/immutable/chunks/utils.9739163d.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;AACtG,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,IAAI;AACZ,GAAG,CAAC;AACJ;;;;;;;ACJY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAuC,CAAC,EAAE,QAAQ;AAE7G,MAAC,SAAS,GAAG,kCAAkC;AAC/C,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,yCAAyC,EAAE;AAC9N,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"3-99004f09.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/docs/_page.server.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import axios from \"axios\";\nasync function load({ params, route, url, parent }) {\n const { data } = await axios.get(\"https://raw.githubusercontent.com/rajnandan1/kener/main/docs.md\");\n return {\n md: data\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/docs/_page.server.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/docs/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/docs/+page.server.js\";\nexport const imports = [\"_app/immutable/nodes/3.c23c022a.js\",\"_app/immutable/chunks/scheduler.b29f3093.js\",\"_app/immutable/chunks/index.7aebdd36.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;AACtG,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,IAAI;AACZ,GAAG,CAAC;AACJ;;;;;;;ACJY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAuC,CAAC,EAAE,QAAQ;AAE7G,MAAC,SAAS,GAAG,kCAAkC;AAC/C,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,EAAE;AAC1I,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
-70
View File
@@ -1,70 +0,0 @@
import { p as public_env } from './shared-server-58a5f352.js';
import { a as activeIncident, p as pastIncident, g as getCommentsForIssue } from './incident-f316d011.js';
import Markdoc from '@markdoc/markdoc';
import fs from 'fs-extra';
import 'axios';
var _page = /*#__PURE__*/Object.freeze({
__proto__: null
});
async function mapper(issue) {
const ast = Markdoc.parse(issue.body);
const content = Markdoc.transform(ast);
const html = Markdoc.renderers.html(content);
const comments = await getCommentsForIssue(issue.number, this.github);
return {
title: issue.title,
number: issue.number,
body: html,
created_at: issue.created_at,
updated_at: issue.updated_at,
collapsed: true,
comments: issue.comments,
html_url: issue.html_url,
// @ts-ignore
comments: comments.map((comment) => {
const ast2 = Markdoc.parse(comment.body);
const content2 = Markdoc.transform(ast2);
const html2 = Markdoc.renderers.html(content2);
return {
body: html2,
created_at: comment.created_at,
updated_at: comment.updated_at,
html_url: comment.html_url
};
})
};
}
async function load({ params, route, url, parent }) {
let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const siteData = await parent();
const github = siteData.site.github;
const { description, name, tag } = monitors.find((monitor) => monitor.folderName === params.id);
const gitHubActiveIssues = await activeIncident(tag, github);
const gitHubPastIssues = await pastIncident(tag, github);
return {
issues: params.id,
githubConfig: github,
monitor: { description, name },
activeIncidents: await Promise.all(gitHubActiveIssues.map(mapper, { github })),
pastIncidents: await Promise.all(gitHubPastIssues.map(mapper, { github }))
};
}
var _page_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 4;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-21cc1492.js')).default;
const universal_id = "src/routes/incident/[id]/+page.js";
const server_id = "src/routes/incident/[id]/+page.server.js";
const imports = ["_app/immutable/nodes/4.9ff9e569.js","_app/immutable/chunks/scheduler.b29f3093.js","_app/immutable/chunks/index.7aebdd36.js","_app/immutable/chunks/separator.4ff811e2.js","_app/immutable/chunks/index.ed2d54e5.js","_app/immutable/chunks/index.2f161581.js"];
const stylesheets = [];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets, _page as universal, universal_id };
//# sourceMappingURL=4-58c19338.js.map
File diff suppressed because one or more lines are too long
+43
View File
@@ -0,0 +1,43 @@
import { p as public_env } from './shared-server-58a5f352.js';
import { G as GetIncidents, M as Mapper } from './github-3ae10cb0.js';
import fs from 'fs-extra';
import 'axios';
import './tool-5bef1c33.js';
import '@markdoc/markdoc';
async function load({ params, route, url, parent }) {
let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const siteData = await parent();
const github = siteData.site.github;
const { description, name, tag, image } = monitors.find((monitor) => monitor.folderName === params.id);
const allIncidents = await GetIncidents(tag, github, "all");
const gitHubActiveIssues = allIncidents.filter((issue) => {
return issue.state === "open";
});
const gitHubPastIssues = allIncidents.filter((issue) => {
return issue.state === "closed";
});
return {
issues: params.id,
githubConfig: github,
monitor: { description, name, image },
activeIncidents: await Promise.all(gitHubActiveIssues.map(Mapper, { github })),
pastIncidents: await Promise.all(gitHubPastIssues.map(Mapper, { github }))
};
}
var _page_server = /*#__PURE__*/Object.freeze({
__proto__: null,
load: load
});
const index = 4;
let component_cache;
const component = async () => component_cache ??= (await import('./_page.svelte-9a970c64.js')).default;
const server_id = "src/routes/incident/[id]/+page.server.js";
const imports = ["_app/immutable/nodes/4.0e597a8c.js","_app/immutable/chunks/scheduler.ea4d12df.js","_app/immutable/chunks/index.12c4b772.js","_app/immutable/chunks/index.b3676155.js","_app/immutable/chunks/utils.9739163d.js","_app/immutable/chunks/incident.07f56014.js","_app/immutable/chunks/index.cab2b962.js","_app/immutable/chunks/index.7ea6c3d8.js"];
const stylesheets = [];
const fonts = [];
export { component, fonts, imports, index, _page_server as server, server_id, stylesheets };
//# sourceMappingURL=4-7b9a345a.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"4-7b9a345a.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/incident/_id_/_page.server.js","../../../.svelte-kit/adapter-node/nodes/4.js"],"sourcesContent":["import { p as public_env } from \"../../../../chunks/shared-server.js\";\nimport { G as GetIncidents, M as Mapper } from \"../../../../chunks/github.js\";\nimport fs from \"fs-extra\";\nasync function load({ params, route, url, parent }) {\n let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + \"/monitors.json\", \"utf8\"));\n const siteData = await parent();\n const github = siteData.site.github;\n const { description, name, tag, image } = monitors.find((monitor) => monitor.folderName === params.id);\n const allIncidents = await GetIncidents(tag, github, \"all\");\n const gitHubActiveIssues = allIncidents.filter((issue) => {\n return issue.state === \"open\";\n });\n const gitHubPastIssues = allIncidents.filter((issue) => {\n return issue.state === \"closed\";\n });\n return {\n issues: params.id,\n githubConfig: github,\n monitor: { description, name, image },\n activeIncidents: await Promise.all(gitHubActiveIssues.map(Mapper, { github })),\n pastIncidents: await Promise.all(gitHubPastIssues.map(Mapper, { github }))\n };\n}\nexport {\n load\n};\n","import * as server from '../entries/pages/incident/_id_/_page.server.js';\n\nexport const index = 4;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/incident/_id_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/incident/[id]/+page.server.js\";\nexport const imports = [\"_app/immutable/nodes/4.0e597a8c.js\",\"_app/immutable/chunks/scheduler.ea4d12df.js\",\"_app/immutable/chunks/index.12c4b772.js\",\"_app/immutable/chunks/index.b3676155.js\",\"_app/immutable/chunks/utils.9739163d.js\",\"_app/immutable/chunks/incident.07f56014.js\",\"_app/immutable/chunks/index.cab2b962.js\",\"_app/immutable/chunks/index.7ea6c3d8.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;AAGA,eAAe,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;AACpD,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACxG,EAAE,MAAM,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAC;AAClC,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;AACzG,EAAE,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9D,EAAE,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AAC5D,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;AAClC,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AAC1D,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC;AACpC,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,MAAM,CAAC,EAAE;AACrB,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;AACzC,IAAI,eAAe,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClF,IAAI,aAAa,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,GAAG,CAAC;AACJ;;;;;;;ACpBY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAgD,CAAC,EAAE,QAAQ;AAEtH,MAAC,SAAS,GAAG,2CAA2C;AACxD,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,4CAA4C,CAAC,yCAAyC,CAAC,yCAAyC,EAAE;AAC/V,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
-60
View File
@@ -1,60 +0,0 @@
import { c as create_ssr_component, h as compute_rest_props, i as spread, k as escape_object, j as escape_attribute_value, b as each } from './ssr-72fe14f2.js';
import { v as validate_dynamic_element, i as is_void } from './ctx-ae09ff2a.js';
const defaultAttributes = {
xmlns: "http://www.w3.org/2000/svg",
width: 24,
height: 24,
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": 2,
"stroke-linecap": "round",
"stroke-linejoin": "round"
};
const Icon = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["name", "color", "size", "strokeWidth", "absoluteStrokeWidth", "iconNode"]);
let { name } = $$props;
let { color = "currentColor" } = $$props;
let { size = 24 } = $$props;
let { strokeWidth = 2 } = $$props;
let { absoluteStrokeWidth = false } = $$props;
let { iconNode } = $$props;
if ($$props.name === void 0 && $$bindings.name && name !== void 0)
$$bindings.name(name);
if ($$props.color === void 0 && $$bindings.color && color !== void 0)
$$bindings.color(color);
if ($$props.size === void 0 && $$bindings.size && size !== void 0)
$$bindings.size(size);
if ($$props.strokeWidth === void 0 && $$bindings.strokeWidth && strokeWidth !== void 0)
$$bindings.strokeWidth(strokeWidth);
if ($$props.absoluteStrokeWidth === void 0 && $$bindings.absoluteStrokeWidth && absoluteStrokeWidth !== void 0)
$$bindings.absoluteStrokeWidth(absoluteStrokeWidth);
if ($$props.iconNode === void 0 && $$bindings.iconNode && iconNode !== void 0)
$$bindings.iconNode(iconNode);
return `<svg${spread(
[
escape_object(defaultAttributes),
escape_object($$restProps),
{ width: escape_attribute_value(size) },
{ height: escape_attribute_value(size) },
{ stroke: escape_attribute_value(color) },
{
"stroke-width": escape_attribute_value(absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth)
},
{
class: escape_attribute_value(`lucide-icon lucide lucide-${name} ${$$props.class ?? ""}`)
}
],
{}
)}>${each(iconNode, ([tag, attrs]) => {
return `${((tag$1) => {
validate_dynamic_element(tag$1);
return tag$1 ? `<${tag}${spread([escape_object(attrs)], {})}>${is_void(tag$1) ? "" : ``}${is_void(tag$1) ? "" : `</${tag$1}>`}` : "";
})(tag)}`;
})}${slots.default ? slots.default({}) : ``}</svg>`;
});
const Icon$1 = Icon;
export { Icon$1 as I };
//# sourceMappingURL=Icon-17c26744.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,25 @@
import { c as create_ssr_component, v as validate_component, e as escape, a as each, b as add_attribute } from './ssr-3ed108ea.js';
import './index3-cffb6b6f.js';
import './index2-d2b6b2d2.js';
import 'clsx';
import 'tailwind-variants';
const Nav = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<div class="one"></div> <header class="relative z-50 w-full"><div class="container flex h-14 items-center"><div class="mr-4 flex blurry-bg"><a${add_attribute("href", data.site.home ? data.site.home : "/", 0)} class="mr-6 flex items-center space-x-2">${data.site.logo ? `<img${add_attribute("src", data.site.logo, 0)} class="h-5 w-5" alt="" srcset="">` : ``} ${data.site.title ? `<span class="hidden font-bold sm:inline-block text-[15px] lg:text-base">${escape(data.site.title)}</span>` : ``}</a> ${data.site.nav ? `<nav class="flex items-center space-x-6 text-sm font-medium">${each(data.site.nav, (navItem) => {
return `<a${add_attribute("href", navItem.url, 0)}>${escape(navItem.name)} </a>`;
})}</nav>` : ``}</div></div></header>`;
});
const Layout = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `${validate_component(Nav, "Nav").$$render($$result, { data }, {}, {})} ${$$result.head += `<!-- HEAD_svelte-xs6o1m_START -->${$$result.title = `<title>${escape(data.site.title)}</title>`, ""}${each(Object.entries(data.site.metaTags), ([key, value]) => {
return `<meta${add_attribute("name", key, 0)}${add_attribute("content", value, 0)}>`;
})}<!-- HEAD_svelte-xs6o1m_END -->`, ""} ${slots.default ? slots.default({}) : ``}`;
});
export { Layout as default };
//# sourceMappingURL=_layout.svelte-5d2a766d.js.map
@@ -0,0 +1 @@
{"version":3,"file":"_layout.svelte-5d2a766d.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.svelte.js"],"sourcesContent":["import { c as create_ssr_component, a as add_attribute, e as escape, b as each, v as validate_component } from \"../../chunks/ssr.js\";\nimport \"../../chunks/index3.js\";\nconst app = \"\";\nconst kener = \"\";\nconst Nav = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let { data } = $$props;\n if ($$props.data === void 0 && $$bindings.data && data !== void 0)\n $$bindings.data(data);\n return `<div class=\"one\"></div> <header class=\"relative z-50 w-full\"><div class=\"container flex h-14 items-center\"><div class=\"mr-4 flex blurry-bg\"><a${add_attribute(\"href\", data.site.home ? data.site.home : \"/\", 0)} class=\"mr-6 flex items-center space-x-2\">${data.site.logo ? `<img${add_attribute(\"src\", data.site.logo, 0)} class=\"h-5 w-5\" alt=\"\" srcset=\"\">` : ``} ${data.site.title ? `<span class=\"hidden font-bold sm:inline-block text-[15px] lg:text-base\">${escape(data.site.title)}</span>` : ``}</a> ${data.site.nav ? `<nav class=\"flex items-center space-x-6 text-sm font-medium\">${each(data.site.nav, (navItem) => {\n return `<a${add_attribute(\"href\", navItem.url, 0)}>${escape(navItem.name)} </a>`;\n })}</nav>` : ``}</div></div></header>`;\n});\nconst Layout = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let { data } = $$props;\n if ($$props.data === void 0 && $$bindings.data && data !== void 0)\n $$bindings.data(data);\n return `${validate_component(Nav, \"Nav\").$$render($$result, { data }, {}, {})} ${$$result.head += `<!-- HEAD_svelte-xs6o1m_START -->${$$result.title = `<title>${escape(data.site.title)}</title>`, \"\"}${each(Object.entries(data.site.metaTags), ([key, value]) => {\n return `<meta${add_attribute(\"name\", key, 0)}${add_attribute(\"content\", value, 0)}>`;\n })}<!-- HEAD_svelte-xs6o1m_END -->`, \"\"} ${slots.default ? slots.default({}) : ``}`;\n});\nexport {\n Layout as default\n};\n"],"names":[],"mappings":";;;;;;AAIA,MAAM,GAAG,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC3E,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC;AACnE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,EAAE,OAAO,CAAC,8IAA8I,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,0CAA0C,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,kCAAkC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,wEAAwE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,6DAA6D,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,KAAK;AAC7mB,IAAI,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACrF,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AACE,MAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC9E,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC;AACnE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,iCAAiC,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACtQ,IAAI,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,GAAG,CAAC,CAAC,+BAA+B,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;;;;"}
@@ -1,51 +0,0 @@
import { c as create_ssr_component, a as add_attribute, v as validate_component, e as escape, b as each } from './ssr-72fe14f2.js';
import { b as buttonVariants } from './index2-39686446.js';
import { I as Icon$1 } from './Icon-17c26744.js';
import './ctx-ae09ff2a.js';
import './index3-1a2d4d4c.js';
import 'clsx';
import 'tailwind-variants';
const Github = create_ssr_component(($$result, $$props, $$bindings, slots) => {
const iconNode = [
[
"path",
{
"d": "M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"
}
],
["path", { "d": "M9 18c-4.51 2-5-2-7-2" }]
];
return `${validate_component(Icon$1, "Icon").$$render($$result, Object.assign({}, { name: "github" }, $$props, { iconNode }), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const Github$1 = Github;
const Nav = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<div class="one"></div> <header class="relative z-50 w-full "><div class="container flex h-14 items-center"><div class="mr-4 flex blurry-bg "><a${add_attribute("href", data.site.home, 0)} class="mr-6 flex items-center space-x-2"><img${add_attribute("src", data.site.logo, 0)} class="h-5 w-5" alt="" srcset=""> <span class="hidden font-bold sm:inline-block text-[15px] lg:text-base">${escape(data.site.title)}</span></a> <nav class="flex items-center space-x-6 text-sm font-medium">${each(data.site.nav, (navItem) => {
return `<a${add_attribute("href", navItem.url, 0)}>${escape(navItem.name)} </a>`;
})}</nav></div> ${data.site.github && data.site.github.visible ? `<div class="flex flex-1 items-center justify-between space-x-2 sm:space-x-4 md:justify-end"><div class="w-full flex-1 md:w-auto md:flex-none"><a href="${"https://github.com/" + escape(data.site.github.owner, true) + "/" + escape(data.site.github.repo, true)}" class="${escape(buttonVariants({ variant: "ghost" }), true) + " blurry-bg"}">${validate_component(Github$1, "Github").$$render(
$$result,
{
class: "h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all"
},
{},
{}
)}</a></div></div>` : ``}</div></header>`;
});
const Layout = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<input type="hidden"${add_attribute("value", data.tzOffset, 0)}> ${validate_component(Nav, "Nav").$$render($$result, { data }, {}, {})} ${$$result.head += `<!-- HEAD_svelte-3shchj_START -->${$$result.title = `<title>${escape(data.site.title)}</title>`, ""}${each(Object.entries(data.site.metaTags), ([key, value]) => {
return `<meta${add_attribute("name", key, 0)}${add_attribute("content", value, 0)}>`;
})}<!-- HEAD_svelte-3shchj_END -->`, ""} ${slots.default ? slots.default({}) : ``}`;
});
export { Layout as default };
//# sourceMappingURL=_layout.svelte-d281ddab.js.map
File diff suppressed because one or more lines are too long
@@ -1,412 +0,0 @@
import { c as create_ssr_component, e as escape, v as validate_component, b as each, h as compute_rest_props, i as spread, j as escape_attribute_value, k as escape_object, d as validate_store, f as subscribe } from './ssr-72fe14f2.js';
import { C as Card, a as Card_content, c as cn, d as badgeVariants, b as createDispatcher, e as cubicOut } from './index4-353b5e33.js';
import 'clsx';
import { v as validate_dynamic_element, a as validate_void_dynamic_element, i as is_void, c as setCtx$2, d as getCtx$1, e as setCtx, f as getAttrs$2, h as getAttrs } from './ctx-ae09ff2a.js';
import moment from 'moment';
import { I as Icon$1 } from './Icon-17c26744.js';
import 'tailwind-merge';
import 'tailwind-variants';
import './index3-1a2d4d4c.js';
const Chevron_down = create_ssr_component(($$result, $$props, $$bindings, slots) => {
const iconNode = [["path", { "d": "m6 9 6 6 6-6" }]];
return `${validate_component(Icon$1, "Icon").$$render($$result, Object.assign({}, { name: "chevron-down" }, $$props, { iconNode }), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const ChevronDown = Chevron_down;
const Collapsible = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["forceVisible", "disabled", "open", "onOpenChange", "asChild"]);
let $root, $$unsubscribe_root;
let { forceVisible = false } = $$props;
let { disabled = void 0 } = $$props;
let { open = void 0 } = $$props;
let { onOpenChange = void 0 } = $$props;
let { asChild = false } = $$props;
const { elements: { root }, states: { open: localOpen }, updateOption } = setCtx$2({
disabled,
forceVisible,
defaultOpen: open,
onOpenChange: ({ next }) => {
if (open !== next) {
onOpenChange?.(next);
open = next;
}
return next;
}
});
validate_store(root, "root");
$$unsubscribe_root = subscribe(root, (value) => $root = value);
const attrs = getAttrs$2("root");
if ($$props.forceVisible === void 0 && $$bindings.forceVisible && forceVisible !== void 0)
$$bindings.forceVisible(forceVisible);
if ($$props.disabled === void 0 && $$bindings.disabled && disabled !== void 0)
$$bindings.disabled(disabled);
if ($$props.open === void 0 && $$bindings.open && open !== void 0)
$$bindings.open(open);
if ($$props.onOpenChange === void 0 && $$bindings.onOpenChange && onOpenChange !== void 0)
$$bindings.onOpenChange(onOpenChange);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
open !== void 0 && localOpen.set(open);
{
updateOption("disabled", disabled);
}
{
updateOption("forceVisible", forceVisible);
}
builder = $root;
$$unsubscribe_root();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>`}`;
});
const CollapsibleContent = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, [
"transition",
"transitionConfig",
"inTransition",
"inTransitionConfig",
"outTransition",
"outTransitionConfig",
"asChild"
]);
let $content, $$unsubscribe_content;
let $open, $$unsubscribe_open;
let { transition = void 0 } = $$props;
let { transitionConfig = void 0 } = $$props;
let { inTransition = void 0 } = $$props;
let { inTransitionConfig = void 0 } = $$props;
let { outTransition = void 0 } = $$props;
let { outTransitionConfig = void 0 } = $$props;
let { asChild = false } = $$props;
const { elements: { content }, states: { open } } = getCtx$1();
validate_store(content, "content");
$$unsubscribe_content = subscribe(content, (value) => $content = value);
validate_store(open, "open");
$$unsubscribe_open = subscribe(open, (value) => $open = value);
const attrs = getAttrs$2("content");
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
if ($$props.inTransition === void 0 && $$bindings.inTransition && inTransition !== void 0)
$$bindings.inTransition(inTransition);
if ($$props.inTransitionConfig === void 0 && $$bindings.inTransitionConfig && inTransitionConfig !== void 0)
$$bindings.inTransitionConfig(inTransitionConfig);
if ($$props.outTransition === void 0 && $$bindings.outTransition && outTransition !== void 0)
$$bindings.outTransition(outTransition);
if ($$props.outTransitionConfig === void 0 && $$bindings.outTransitionConfig && outTransitionConfig !== void 0)
$$bindings.outTransitionConfig(outTransitionConfig);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
builder = $content;
$$unsubscribe_content();
$$unsubscribe_open();
return `${asChild && $open ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `${transition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${inTransition && outTransition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${inTransition && $open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${outTransition && $open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${$open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : ``}`}`}`}`}`}`;
});
const CollapsibleTrigger = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["asChild"]);
let $trigger, $$unsubscribe_trigger;
let { asChild = false } = $$props;
const { elements: { trigger } } = getCtx$1();
validate_store(trigger, "trigger");
$$unsubscribe_trigger = subscribe(trigger, (value) => $trigger = value);
createDispatcher();
const attrs = getAttrs$2("trigger");
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
builder = $trigger;
$$unsubscribe_trigger();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<button${spread(
[
escape_object(builder),
{ type: "button" },
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</button>`}`;
});
const Separator$1 = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["orientation", "decorative", "asChild"]);
let $root, $$unsubscribe_root;
let { orientation = "horizontal" } = $$props;
let { decorative = true } = $$props;
let { asChild = false } = $$props;
const { elements: { root }, updateOption } = setCtx({ orientation, decorative });
validate_store(root, "root");
$$unsubscribe_root = subscribe(root, (value) => $root = value);
const attrs = getAttrs("root");
if ($$props.orientation === void 0 && $$bindings.orientation && orientation !== void 0)
$$bindings.orientation(orientation);
if ($$props.decorative === void 0 && $$bindings.decorative && decorative !== void 0)
$$bindings.decorative(decorative);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
{
updateOption("orientation", orientation);
}
{
updateOption("decorative", decorative);
}
builder = $root;
$$unsubscribe_root();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}></div>`}`;
});
const Card_description = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class"]);
let { class: className = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
return `<p${spread(
[
{
class: escape_attribute_value(cn("text-sm text-muted-foreground", className))
},
escape_object($$restProps)
],
{}
)}>${slots.default ? slots.default({}) : ``}</p>`;
});
const Card_header = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class"]);
let { class: className = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
return `<div${spread(
[
{
class: escape_attribute_value(cn("flex flex-col space-y-1.5 p-6", className))
},
escape_object($$restProps)
],
{}
)}>${slots.default ? slots.default({}) : ``}</div>`;
});
const Card_title = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "tag"]);
let { class: className = void 0 } = $$props;
let { tag = "h3" } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.tag === void 0 && $$bindings.tag && tag !== void 0)
$$bindings.tag(tag);
return `${((tag$1) => {
validate_dynamic_element(tag$1);
return tag$1 ? (() => {
validate_void_dynamic_element(tag$1);
return `<${tag}${spread(
[
{
class: escape_attribute_value(cn("text-lg font-semibold leading-none tracking-tight", className))
},
escape_object($$restProps)
],
{}
)}>${is_void(tag$1) ? "" : `${slots.default ? slots.default({}) : ``}`}${is_void(tag$1) ? "" : `</${tag$1}>`}`;
})() : "";
})(tag)}`;
});
const Badge = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "href", "variant"]);
let { class: className = void 0 } = $$props;
let { href = void 0 } = $$props;
let { variant = "default" } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.href === void 0 && $$bindings.href && href !== void 0)
$$bindings.href(href);
if ($$props.variant === void 0 && $$bindings.variant && variant !== void 0)
$$bindings.variant(variant);
return `${((tag) => {
validate_dynamic_element(tag);
return tag ? (() => {
validate_void_dynamic_element(tag);
return `<${href ? "a" : "span"}${spread(
[
{ href: escape_attribute_value(href) },
{
class: escape_attribute_value(cn(badgeVariants({ variant, className })))
},
escape_object($$restProps)
],
{}
)}>${is_void(tag) ? "" : `${slots.default ? slots.default({}) : ``}`}${is_void(tag) ? "" : `</${tag}>`}`;
})() : "";
})(href ? "a" : "span")}`;
});
const Separator = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "orientation", "decorative"]);
let { class: className = void 0 } = $$props;
let { orientation = "horizontal" } = $$props;
let { decorative = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.orientation === void 0 && $$bindings.orientation && orientation !== void 0)
$$bindings.orientation(orientation);
if ($$props.decorative === void 0 && $$bindings.decorative && decorative !== void 0)
$$bindings.decorative(decorative);
return `${validate_component(Separator$1, "SeparatorPrimitive.Root").$$render(
$$result,
Object.assign(
{},
{
class: cn(
"shrink-0 bg-border",
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
className
)
},
{ orientation },
{ decorative },
$$restProps
),
{},
{}
)}`;
});
function slide(node, { delay = 0, duration = 400, easing = cubicOut, axis = "y" } = {}) {
const style = getComputedStyle(node);
const opacity = +style.opacity;
const primary_property = axis === "y" ? "height" : "width";
const primary_property_value = parseFloat(style[primary_property]);
const secondary_properties = axis === "y" ? ["top", "bottom"] : ["left", "right"];
const capitalized_secondary_properties = secondary_properties.map(
(e) => `${e[0].toUpperCase()}${e.slice(1)}`
);
const padding_start_value = parseFloat(style[`padding${capitalized_secondary_properties[0]}`]);
const padding_end_value = parseFloat(style[`padding${capitalized_secondary_properties[1]}`]);
const margin_start_value = parseFloat(style[`margin${capitalized_secondary_properties[0]}`]);
const margin_end_value = parseFloat(style[`margin${capitalized_secondary_properties[1]}`]);
const border_width_start_value = parseFloat(
style[`border${capitalized_secondary_properties[0]}Width`]
);
const border_width_end_value = parseFloat(
style[`border${capitalized_secondary_properties[1]}Width`]
);
return {
delay,
duration,
easing,
css: (t) => `overflow: hidden;opacity: ${Math.min(t * 20, 1) * opacity};${primary_property}: ${t * primary_property_value}px;padding-${secondary_properties[0]}: ${t * padding_start_value}px;padding-${secondary_properties[1]}: ${t * padding_end_value}px;margin-${secondary_properties[0]}: ${t * margin_start_value}px;margin-${secondary_properties[1]}: ${t * margin_end_value}px;border-${secondary_properties[0]}-width: ${t * border_width_start_value}px;border-${secondary_properties[1]}-width: ${t * border_width_end_value}px;`
};
}
const Collapsible_content = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["transition", "transitionConfig"]);
let { transition = slide } = $$props;
let { transitionConfig = { duration: 150 } } = $$props;
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
return `${validate_component(CollapsibleContent, "CollapsiblePrimitive.Content").$$render($$result, Object.assign({}, { transition }, { transitionConfig }, $$restProps), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const Root = Collapsible;
const Trigger = CollapsibleTrigger;
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<section class="mx-auto flex w-full max-w-4xl flex-1 flex-col items-start justify-center"><div class="mx-auto max-w-screen-xl px-4 pt-32 pb-16 lg:flex lg:items-center"><div class="mx-auto max-w-3xl text-center blurry-bg"><h1 class="bg-gradient-to-r from-green-300 via-blue-500 to-purple-600 bg-clip-text text-5xl font-extrabold text-transparent leading-snug">${escape(data.monitor.name)}</h1> <p class="mx-auto mt-4 max-w-xl sm:text-xl">${escape(data.monitor.description)}</p></div></div></section> <section class="mx-auto flex-1 mt-8 flex-col mb-4 flex w-full" id="active_incident"><div class="container"><h1 class="mb-4 text-2xl font-bold leading-none">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline text-2xl bg-red-500" }, {}, {
default: () => {
return `Active Incidents`;
}
})}</h1> ${data.activeIncidents.length > 0 ? `${each(data.activeIncidents, (incident) => {
return `<div class="grid grid-cols-3 gap-4 mb-4"><div class="col-span-3">${validate_component(Card, "Card.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Card_header, "Card.Header").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Card_title, "Card.Title").$$render($$result, { class: "relative" }, {}, {
default: () => {
return `${escape(incident.title)} <span class="animate-ping absolute -left-[24px] -top-[24px] w-[8px] h-[8px] inline-flex rounded-full h-3 w-3 bg-red-500 opacity-75"></span> `;
}
})} ${validate_component(Card_description, "Card.Description").$$render($$result, {}, {}, {
default: () => {
return `${escape(moment(incident.created_at).format("MMMM Do YYYY, h:mm:ss a"))} `;
}
})} `;
}
})} ${validate_component(Card_content, "Card.Content").$$render($$result, {}, {}, {
default: () => {
return `<div class="prose prose-stone dark:prose-invert max-w-none prose-code:px-[0.3rem] prose-code:py-[0.2rem] prose-code:font-mono prose-code:text-sm prose-code:rounded"><!-- HTML_TAG_START -->${incident.body}<!-- HTML_TAG_END --></div> ${incident.comments.length > 0 ? `<div class="ml-4 mt-8"><ol class="relative border-s border-secondary">${each(incident.comments, (comment) => {
return `<li class="mb-10 ms-4"><div class="absolute w-3 h-3 rounded-full mt-1.5 -start-1.5 border bg-secondary border-secondary"></div> <time class="mb-1 text-sm font-normal leading-none text-muted-foreground">${escape(moment(comment.created_at).format("MMMM Do YYYY, h:mm:ss a"))}</time> <div class="mb-4 text-base font-normal wysiwyg dark:prose-invert prose prose-stone max-w-none prose-code:px-[0.3rem] prose-code:py-[0.2rem] prose-code:font-mono prose-code:text-sm prose-code:rounded"><!-- HTML_TAG_START -->${comment.body}<!-- HTML_TAG_END --></div> </li>`;
})}</ol> </div>` : ``} `;
}
})} `;
}
})}</div> </div>`;
})}` : `<div class="flex items-center justify-left"><p class="text-xl" data-svelte-h="svelte-18j567b">No active incidents</p> <picture><source srcset="https://fonts.gstatic.com/s/e/notoemoji/latest/1f91e_1f3fb/512.webp" type="image/webp"> <img src="https://fonts.gstatic.com/s/e/notoemoji/latest/1f91e_1f3fb/512.gif" alt="🤞" width="32" height="32"></picture></div>`}</div></section> ${validate_component(Separator, "Separator").$$render($$result, { class: "container mb-4 w-[400px]" }, {}, {})} <section class="mx-auto flex-1 mt-8 flex-col mb-4 flex w-full" id="past_incident"><div class="container"><h1 class="mb-4 text-2xl font-bold leading-none">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline text-2xl bg-red-500" }, {}, {
default: () => {
return `Past Incidents`;
}
})}</h1> ${data.pastIncidents.length > 0 ? `${each(data.pastIncidents, (incident, i) => {
return `<div class="grid grid-cols-3 gap-4 mb-4"><div class="col-span-3">${validate_component(Card, "Card.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Root, "Collapsible.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Trigger, "Collapsible.Trigger").$$render($$result, { class: "w-full text-left" }, {}, {
default: () => {
return `${validate_component(Card_header, "Card.Header").$$render($$result, { class: "relative" }, {}, {
default: () => {
return `${validate_component(Card_title, "Card.Title").$$render($$result, { class: "relative" }, {}, {
default: () => {
return `${escape(incident.title)} `;
}
})} ${validate_component(Card_description, "Card.Description").$$render($$result, {}, {}, {
default: () => {
return `${escape(moment(incident.created_at).format("MMMM Do YYYY, h:mm:ss a"))} `;
}
})} ${validate_component(ChevronDown, "ChevronDown").$$render($$result, { class: "absolute right-5", size: 32 }, {}, {})} `;
}
})} `;
}
})} ${validate_component(Collapsible_content, "Collapsible.Content").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, {}, {}, {
default: () => {
return `<div class="prose prose-stone dark:prose-invert max-w-none prose-code:px-[0.3rem] prose-code:py-[0.2rem] prose-code:font-mono prose-code:text-sm prose-code:rounded"><!-- HTML_TAG_START -->${incident.body}<!-- HTML_TAG_END --></div> ${incident.comments.length > 0 ? `<div class="ml-4 mt-8"><ol class="relative border-s border-secondary">${each(incident.comments, (comment) => {
return `<li class="mb-10 ms-4"><div class="absolute w-3 h-3 rounded-full mt-1.5 -start-1.5 border border-secondary bg-secondary"></div> <time class="mb-1 text-sm font-normal leading-none text-muted-foreground">${escape(moment(comment.created_at).format("MMMM Do YYYY, h:mm:ss a"))}</time> <div class="mb-4 wysiwyg text-base font-normal prose dark:prose-invert prose-stone max-w-none prose-code:px-[0.3rem] prose-code:py-[0.2rem] prose-code:font-mono prose-code:text-sm prose-code:rounded"><!-- HTML_TAG_START -->${comment.body}<!-- HTML_TAG_END --></div> </li>`;
})}</ol> </div>` : ``} `;
}
})} `;
}
})} `;
}
})} `;
}
})}</div> </div>`;
})}` : `<div class="flex items-center justify-left"><p class="text-xl" data-svelte-h="svelte-ak4fah">No past incidents</p> <picture><source srcset="https://fonts.gstatic.com/s/e/notoemoji/latest/270c_1f3fb/512.webp" type="image/webp"> <img src="https://fonts.gstatic.com/s/e/notoemoji/latest/270c_1f3fb/512.gif" alt="✌" width="32" height="32"></picture></div>`}</div></section>`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-21cc1492.js.map
File diff suppressed because one or more lines are too long
@@ -1,310 +0,0 @@
import { c as create_ssr_component, a as add_attribute, e as escape, b as each, v as validate_component, h as compute_rest_props, i as spread, j as escape_attribute_value, k as escape_object, d as validate_store, f as subscribe } from './ssr-72fe14f2.js';
import { C as Card, a as Card_content, c as cn, b as createDispatcher, f as flyAndScale } from './index4-353b5e33.js';
import 'clsx';
import { s as setCtx$1, g as getCtx, v as validate_dynamic_element, a as validate_void_dynamic_element, i as is_void, b as getAttrs$1 } from './ctx-ae09ff2a.js';
import { d as derived } from './index3-1a2d4d4c.js';
import './index2-39686446.js';
import { tv } from 'tailwind-variants';
import 'tailwind-merge';
const LinkPreview = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $idValues, $$unsubscribe_idValues;
let { positioning = void 0 } = $$props;
let { open = void 0 } = $$props;
let { onOpenChange = void 0 } = $$props;
let { openDelay = 700 } = $$props;
let { closeDelay = 300 } = $$props;
let { closeOnOutsideClick = void 0 } = $$props;
let { closeOnEscape = void 0 } = $$props;
let { arrowSize = void 0 } = $$props;
let { portal = void 0 } = $$props;
const { states: { open: localOpen }, updateOption, ids } = setCtx$1({
defaultOpen: open,
positioning,
openDelay,
closeDelay,
closeOnOutsideClick,
closeOnEscape,
arrowSize,
portal,
onOpenChange: ({ next }) => {
if (open !== next) {
onOpenChange?.(next);
open = next;
}
return next;
}
});
const idValues = derived([ids.content, ids.trigger], ([$contentId, $triggerId]) => ({ content: $contentId, trigger: $triggerId }));
validate_store(idValues, "idValues");
$$unsubscribe_idValues = subscribe(idValues, (value) => $idValues = value);
if ($$props.positioning === void 0 && $$bindings.positioning && positioning !== void 0)
$$bindings.positioning(positioning);
if ($$props.open === void 0 && $$bindings.open && open !== void 0)
$$bindings.open(open);
if ($$props.onOpenChange === void 0 && $$bindings.onOpenChange && onOpenChange !== void 0)
$$bindings.onOpenChange(onOpenChange);
if ($$props.openDelay === void 0 && $$bindings.openDelay && openDelay !== void 0)
$$bindings.openDelay(openDelay);
if ($$props.closeDelay === void 0 && $$bindings.closeDelay && closeDelay !== void 0)
$$bindings.closeDelay(closeDelay);
if ($$props.closeOnOutsideClick === void 0 && $$bindings.closeOnOutsideClick && closeOnOutsideClick !== void 0)
$$bindings.closeOnOutsideClick(closeOnOutsideClick);
if ($$props.closeOnEscape === void 0 && $$bindings.closeOnEscape && closeOnEscape !== void 0)
$$bindings.closeOnEscape(closeOnEscape);
if ($$props.arrowSize === void 0 && $$bindings.arrowSize && arrowSize !== void 0)
$$bindings.arrowSize(arrowSize);
if ($$props.portal === void 0 && $$bindings.portal && portal !== void 0)
$$bindings.portal(portal);
open !== void 0 && localOpen.set(open);
{
updateOption("positioning", positioning);
}
{
updateOption("openDelay", openDelay);
}
{
updateOption("closeDelay", closeDelay);
}
{
updateOption("closeOnOutsideClick", closeOnOutsideClick);
}
{
updateOption("closeOnEscape", closeOnEscape);
}
{
updateOption("arrowSize", arrowSize);
}
{
updateOption("portal", portal);
}
$$unsubscribe_idValues();
return `${slots.default ? slots.default({ ids: $idValues }) : ``}`;
});
const LinkPreviewContent = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, [
"transition",
"transitionConfig",
"inTransition",
"inTransitionConfig",
"outTransition",
"outTransitionConfig",
"asChild",
"id"
]);
let $content, $$unsubscribe_content;
let $open, $$unsubscribe_open;
let { transition = void 0 } = $$props;
let { transitionConfig = void 0 } = $$props;
let { inTransition = void 0 } = $$props;
let { inTransitionConfig = void 0 } = $$props;
let { outTransition = void 0 } = $$props;
let { outTransitionConfig = void 0 } = $$props;
let { asChild = false } = $$props;
let { id = void 0 } = $$props;
const { elements: { content }, states: { open }, ids } = getCtx();
validate_store(content, "content");
$$unsubscribe_content = subscribe(content, (value) => $content = value);
validate_store(open, "open");
$$unsubscribe_open = subscribe(open, (value) => $open = value);
const attrs = getAttrs$1("content");
createDispatcher();
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
if ($$props.inTransition === void 0 && $$bindings.inTransition && inTransition !== void 0)
$$bindings.inTransition(inTransition);
if ($$props.inTransitionConfig === void 0 && $$bindings.inTransitionConfig && inTransitionConfig !== void 0)
$$bindings.inTransitionConfig(inTransitionConfig);
if ($$props.outTransition === void 0 && $$bindings.outTransition && outTransition !== void 0)
$$bindings.outTransition(outTransition);
if ($$props.outTransitionConfig === void 0 && $$bindings.outTransitionConfig && outTransitionConfig !== void 0)
$$bindings.outTransitionConfig(outTransitionConfig);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.id === void 0 && $$bindings.id && id !== void 0)
$$bindings.id(id);
{
if (id) {
ids.content.set(id);
}
}
builder = $content;
$$unsubscribe_content();
$$unsubscribe_open();
return ` ${asChild && $open ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `${transition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${inTransition && outTransition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${inTransition && $open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${outTransition && $open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${$open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : ``}`}`}`}`}`}`;
});
const LinkPreviewTrigger = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["asChild", "id"]);
let $trigger, $$unsubscribe_trigger;
let { asChild = false } = $$props;
let { id = void 0 } = $$props;
const { elements: { trigger }, ids } = getCtx();
validate_store(trigger, "trigger");
$$unsubscribe_trigger = subscribe(trigger, (value) => $trigger = value);
createDispatcher();
const attrs = getAttrs$1("trigger");
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.id === void 0 && $$bindings.id && id !== void 0)
$$bindings.id(id);
{
if (id) {
ids.trigger.set(id);
}
}
builder = $trigger;
$$unsubscribe_trigger();
return `${asChild ? `${slots.default ? slots.default({ attrs, builder }) : ``}` : (() => {
let builder2 = $trigger;
return ` ${((tag) => {
validate_dynamic_element(tag);
return tag ? (() => {
validate_void_dynamic_element(tag);
return `<a${spread(
[
escape_object(builder2),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${is_void(tag) ? "" : `${slots.default ? slots.default({ builder: builder2, attrs }) : ``}`}</a>`;
})() : "";
})("a")}`;
})()}`;
});
const Hover_card_content = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "transition", "transitionConfig"]);
let { class: className = void 0 } = $$props;
let { transition = flyAndScale } = $$props;
let { transitionConfig = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
return `${validate_component(LinkPreviewContent, "HoverCardPrimitive.Content").$$render(
$$result,
Object.assign(
{},
{ transition },
{ transitionConfig },
{
class: cn("z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none mt-3", className)
},
$$restProps
),
{},
{
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
}
)}`;
});
const Root = LinkPreview;
const Trigger = LinkPreviewTrigger;
const Skeleton = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class"]);
let { class: className = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
return `<div${spread(
[
{
class: escape_attribute_value(cn("animate-pulse rounded-md bg-muted", className))
},
escape_object($$restProps)
],
{}
)}></div>`;
});
tv({
base: "relative w-full rounded-lg border p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11",
variants: {
variant: {
default: "bg-background text-foreground",
destructive: "text-destructive border-destructive/50 dark:border-destructive [&>svg]:text-destructive text-destructive"
}
},
defaultVariants: {
variant: "default"
}
});
function getTodayDD() {
let yourDate = /* @__PURE__ */ new Date();
const offset = yourDate.getTimezoneOffset();
yourDate = new Date(yourDate.getTime() - offset * 60 * 1e3);
return yourDate.toISOString().split("T")[0];
}
function getminuteFromMidnightTillNow() {
var date = /* @__PURE__ */ new Date();
var hours = date.getHours();
var minutes = date.getMinutes();
var totalMinutes = hours * 60 + minutes;
return totalMinutes;
}
const Monitor = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { monitor } = $$props;
getTodayDD();
getminuteFromMidnightTillNow();
if ($$props.monitor === void 0 && $$bindings.monitor && monitor !== void 0)
$$bindings.monitor(monitor);
return `<section class="mx-auto backdrop-blur-[2px] mb-8 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center">${validate_component(Card, "Card.Root").$$render($$result, { class: "w-full" }, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, {}, {}, {
default: () => {
return `<div class="grid grid-cols-12 gap-4"><div class="col-span-12 md:col-span-4"><div class="pt-3"><div class="scroll-m-20 text-2xl font-semibold tracking-tight">${monitor.image ? `<img${add_attribute("src", monitor.image, 0)} class="w-6 h-6 inline" alt="" srcset="">` : ``} ${escape(monitor.name)} ${monitor.description ? `${validate_component(Root, "HoverCard.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Trigger, "HoverCard.Trigger").$$render($$result, {}, {}, {
default: () => {
return `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide inline lucide-info"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>`;
}
})} ${validate_component(Hover_card_content, "HoverCard.Content").$$render($$result, {}, {}, {
default: () => {
return `${escape(monitor.description)}`;
}
})}`;
}
})}` : ``}</div></div> ${``}</div> <div class="col-span-12 md:col-span-8 pt-4">${`${validate_component(Skeleton, "Skeleton").$$render($$result, { class: "w-full h-[40px] mt-[7px]" }, {}, {})}`}</div></div>`;
}
})}`;
}
})}</section>`;
});
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `${data.site.hero ? `<section class="mx-auto flex w-full max-w-4xl flex-1 flex-col items-start justify-center"><div class="mx-auto max-w-screen-xl px-4 pt-32 pb-16 lg:flex lg:items-center"><div class="mx-auto max-w-3xl text-center blurry-bg">${data.site.hero.image ? `<img${add_attribute("src", data.site.hero.image, 0)} class="h-16 w-16 m-auto" alt="" srcset="">` : ``} ${data.site.hero.title ? `<h1 class="bg-gradient-to-r from-green-300 via-blue-500 to-purple-600 bg-clip-text text-5xl font-extrabold text-transparent leading-snug">${escape(data.site.hero.title)}</h1>` : ``} ${data.site.hero.subtitle ? `<p class="mx-auto mt-4 max-w-xl sm:text-xl">${escape(data.site.hero.subtitle)}</p>` : ``}</div></div></section>` : ``} ${each(data.monitors, (monitor) => {
return `${validate_component(Monitor, "Monitor").$$render($$result, { monitor }, {}, {})}`;
})}`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-2442d3a2.js.map
File diff suppressed because one or more lines are too long
@@ -1,18 +0,0 @@
import { c as create_ssr_component, b as each, e as escape, a as add_attribute } from './ssr-72fe14f2.js';
import Markdoc from '@markdoc/markdoc';
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
const ast = Markdoc.parse(data.md);
const content = Markdoc.transform(ast);
let html = Markdoc.renderers.html(content);
let sideBar = [];
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<section class="mx-auto container rounded-3xl bg-white mt-32"><div class="grid grid-cols-5 gap-4"><div class="col-span-5 md:col-span-1 hidden md:block border-r-2 border-gray-500"><ul class="w-full text-sm font-medium text-gray-900 bg-white mt-8 rounded-lg">${each(sideBar, (item) => {
return `<li class="w-full px-4 py-2"><a href="${"#" + escape(item.id, true)}"${add_attribute("class", item.type == "h2" ? "pl-5" : "", 0)}>${escape(item.text)}</a> </li>`;
})} <li class="w-full px-4 py-2 rounded-b-lg" data-svelte-h="svelte-1fk2cyx">Download</li></ul></div> <div class="col-span-5 md:col-span-4"><div class="bg-white pt-6 p-0 md:p-10"><article id="markdown" class="prose prose-stone max-w-none prose-code:bg-gray-200 prose-code:px-[0.3rem] prose-code:py-[0.2rem] prose-code:font-mono prose-code:text-sm prose-code:rounded"><!-- HTML_TAG_START -->${html}<!-- HTML_TAG_END --></article></div></div></div></section>`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-43dcbc25.js.map
@@ -1 +0,0 @@
{"version":3,"file":"_page.svelte-43dcbc25.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/docs/_page.svelte.js"],"sourcesContent":["import { c as create_ssr_component, e as each, a as escape, b as add_attribute } from \"../../../chunks/ssr.js\";\nimport Markdoc from \"@markdoc/markdoc\";\nconst Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let { data } = $$props;\n const ast = Markdoc.parse(data.md);\n const content = Markdoc.transform(ast);\n let html = Markdoc.renderers.html(content);\n let sideBar = [];\n if ($$props.data === void 0 && $$bindings.data && data !== void 0)\n $$bindings.data(data);\n return `<section class=\"mx-auto container rounded-3xl bg-white mt-32\"><div class=\"grid grid-cols-5 gap-4\"><div class=\"col-span-5 md:col-span-1 hidden md:block border-r-2 border-gray-500\"><ul class=\"w-full text-sm font-medium text-gray-900 bg-white mt-8 rounded-lg\">${each(sideBar, (item) => {\n return `<li class=\"w-full px-4 py-2\"><a href=\"${\"#\" + escape(item.id, true)}\"${add_attribute(\"class\", item.type == \"h2\" ? \"pl-5\" : \"\", 0)}>${escape(item.text)}</a> </li>`;\n })} <li class=\"w-full px-4 py-2 rounded-b-lg\" data-svelte-h=\"svelte-1fk2cyx\">Download</li></ul></div> <div class=\"col-span-5 md:col-span-4\"><div class=\"bg-white pt-6 p-0 md:p-10\"><article id=\"markdown\" class=\"prose prose-stone max-w-none prose-code:bg-gray-200 prose-code:px-[0.3rem] prose-code:py-[0.2rem] prose-code:font-mono prose-code:text-sm prose-code:rounded\"><!-- HTML_TAG_START -->${html}<!-- HTML_TAG_END --></article></div></div></div></section>`;\n});\nexport {\n Page as default\n};\n"],"names":[],"mappings":";;;AAEK,MAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC5E,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,EAAE,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACzC,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;AACnB,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC;AACnE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,EAAE,OAAO,CAAC,iQAAiQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK;AACrS,IAAI,OAAO,CAAC,sCAAsC,EAAE,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/K,GAAG,CAAC,CAAC,mYAAmY,EAAE,IAAI,CAAC,2DAA2D,CAAC,CAAC;AAC5c,CAAC;;;;"}
@@ -0,0 +1,127 @@
import { c as create_ssr_component, b as add_attribute, e as escape, v as validate_component, a as each } from './ssr-3ed108ea.js';
import { C as Card, a as Card_content } from './card-content-bc70344f.js';
import 'clsx';
import { B as Badge, I as Incident, R as Root, T as Trigger, H as Hover_card_content, a as Icon$1 } from './incident-3b230fb3.js';
import { b as buttonVariants } from './index3-cffb6b6f.js';
import { tv } from 'tailwind-variants';
import 'tailwind-merge';
import './index2-d2b6b2d2.js';
import './helpers-fc56b344.js';
import 'moment';
const Arrow_right = create_ssr_component(($$result, $$props, $$bindings, slots) => {
const iconNode = [["path", { "d": "M5 12h14" }], ["path", { "d": "m12 5 7 7-7 7" }]];
return `${validate_component(Icon$1, "Icon").$$render($$result, Object.assign({}, { name: "arrow-right" }, $$props, { iconNode }), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const ArrowRight = Arrow_right;
tv({
base: "relative w-full rounded-lg border p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11",
variants: {
variant: {
default: "bg-background text-foreground",
destructive: "text-destructive border-destructive/50 dark:border-destructive [&>svg]:text-destructive text-destructive"
}
},
defaultVariants: {
variant: "default"
}
});
const Monitor = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { monitor } = $$props;
monitor.pageData._0Day;
let _90Day = monitor.pageData._90Day;
let uptime0Day = monitor.pageData.uptime0Day;
let uptime90Day = monitor.pageData.uptime90Day;
monitor.pageData.dailyUps;
monitor.pageData.dailyDown;
monitor.pageData.dailyDegraded;
let todayDD = Object.keys(_90Day)[Object.keys(_90Day).length - 1];
if ($$props.monitor === void 0 && $$bindings.monitor && monitor !== void 0)
$$bindings.monitor(monitor);
return `<section class="mx-auto backdrop-blur-[2px] mb-8 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center">${validate_component(Card, "Card.Root").$$render($$result, { class: "w-full" }, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, { class: "pb-4 pt-2" }, {}, {
default: () => {
return `<div class="grid grid-cols-12 gap-4"><div class="col-span-12 md:col-span-4"><div class="pt-1"><div class="scroll-m-20 text-2xl font-semibold tracking-tight">${monitor.image ? `<img${add_attribute("src", monitor.image, 0)} class="w-6 h-6 inline" alt="" srcset="">` : ``} ${escape(monitor.name)} ${monitor.description ? `${validate_component(Root, "HoverCard.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Trigger, "HoverCard.Trigger").$$render($$result, {}, {}, {
default: () => {
return `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide inline lucide-info"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>`;
}
})} ${validate_component(Hover_card_content, "HoverCard.Content").$$render($$result, { class: "dark:invert" }, {}, {
default: () => {
return `${escape(monitor.description)}`;
}
})}`;
}
})}` : ``}</div></div> ${`<div class="mt-2"><div class="grid grid-cols-2 gap-0"><div class="col-span-2 -mt-2"><a href="${"/incident/" + escape(monitor.folderName, true) + "#past_incident"}" class="${"pt-0 pl-0 pb-0 text-indigo-500 text-left " + escape(buttonVariants({ variant: "link" }), true)}">Recent Incidents ${validate_component(ArrowRight, "ArrowRight").$$render($$result, { size: 16 }, {}, {})}</a></div></div></div>`}</div> <div class="col-span-12 md:col-span-8 pt-2">${`<div class="grid grid-cols-12"><div class="col-span-12 md:col-span-8 h-[32px]"><a href="javascript:void(0);">${validate_component(Badge, "Badge").$$render(
$$result,
{
variant: ""
},
{},
{
default: () => {
return `90 Day ► ${escape(uptime90Day)}%`;
}
}
)}</a> <a href="javascript:void(0);">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `Today ► ${escape(uptime0Day)}%`;
}
})}</a></div> <div class="col-span-12 md:col-span-4 text-right h-[32px]">${_90Day[todayDD] ? `<div class="${"text-api-up text-sm font-semibold mt-[4px] text-" + escape(_90Day[todayDD].cssClass, true)}">${escape(_90Day[todayDD].message)}</div>` : ``}</div></div> <div class="grid grid-cols-12">${`<div class="chart-status relative mt-1 col-span-12"><div class="flex flex-wrap">${each(Object.entries(_90Day), ([ts, bar]) => {
return `<div class="h-[30px] w-[6px] rounded-sm oneline"><div class="${"h-[30px] bg-" + escape(bar.cssClass, true) + " w-[4px] rounded-sm mr-[2px]"}"></div></div> <div class="absolute show-hover text-sm bg-background"><div class="${"text-" + escape(bar.cssClass, true) + " font-semibold"}">${bar.message != "No Data" ? `${escape(new Date(bar.timestamp * 1e3).toLocaleDateString())} ${escape(bar.message)}` : `${escape(new Date(bar.timestamp * 1e3).toLocaleDateString())} ${escape(bar.message)}`}</div> </div>`;
})}</div></div>`}</div>`}</div></div>`;
}
})}`;
}
})}</section>`;
});
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
let hasActiveIncidents = false;
for (let i = 0; i < data.monitors.length; i++) {
if (data.monitors[i].activeIncidents.length > 0) {
hasActiveIncidents = true;
break;
}
}
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<div class="mt-32"></div> ${data.site.hero ? `<section class="mx-auto flex w-full max-w-4xl mb-8 flex-1 flex-col items-start justify-center"><div class="mx-auto max-w-screen-xl px-4 lg:flex lg:items-center"><div class="mx-auto max-w-3xl text-center blurry-bg">${data.site.hero.image ? `<img${add_attribute("src", data.site.hero.image, 0)} class="h-16 w-16 m-auto" alt="" srcset="">` : ``} ${data.site.hero.title ? `<h1 class="bg-gradient-to-r from-green-300 via-blue-500 to-purple-600 bg-clip-text text-5xl font-extrabold text-transparent leading-snug">${escape(data.site.hero.title)}</h1>` : ``} ${data.site.hero.subtitle ? `<p class="mx-auto mt-4 max-w-xl sm:text-xl">${escape(data.site.hero.subtitle)}</p>` : ``}</div></div></section>` : ``} ${hasActiveIncidents ? `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id=""><div class="grid w-full grid-cols-2 gap-4"><div class="col-span-2 md:col-span-1 text-center md:text-left">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `Ongoing Incidents`;
}
})}</div></div></section> <section class="mx-auto backdrop-blur-[2px] mb-8 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id="">${each(data.monitors, (monitor) => {
return `${each(monitor.activeIncidents, (incident, i) => {
return `${validate_component(Incident, "Incident").$$render(
$$result,
{
incident,
state: "close",
variant: "title+body+comments+monitor",
monitor
},
{},
{}
)}`;
})}`;
})}</section>` : ``} ${data.monitors.length > 0 ? `<section class="mx-auto bg-transparent mb-4 flex w-full max-w-[890px] flex-1 flex-col items-start justify-center" id=""><div class="grid w-full grid-cols-2 gap-4"><div class="col-span-2 md:col-span-1 text-center md:text-left">${validate_component(Badge, "Badge").$$render($$result, { class: "", variant: "outline" }, {}, {
default: () => {
return `Availability per Component`;
}
})}</div> <div class="col-span-2 md:col-span-1 text-center md:text-right">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline" }, {}, {
default: () => {
return `<span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-up opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-fd8nbr">UP</span> <span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-degraded opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-ddctvm">DEGRADED</span> <span class="w-[8px] h-[8px] inline-flex rounded-full bg-api-down opacity-75 mr-1"></span> <span class="mr-3" data-svelte-h="svelte-1o75psw">DOWN</span>`;
}
})}</div></div></section> ${each(data.monitors, (monitor) => {
return `${validate_component(Monitor, "Monitor").$$render($$result, { monitor }, {}, {})}`;
})}` : ``}`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-5fa31107.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,29 @@
import { c as create_ssr_component, v as validate_component, a as each, e as escape, b as add_attribute } from './ssr-3ed108ea.js';
import Markdoc from '@markdoc/markdoc';
import { C as Card, a as Card_content } from './card-content-bc70344f.js';
import 'clsx';
import 'tailwind-merge';
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
const ast = Markdoc.parse(data.md);
const content = Markdoc.transform(ast);
let html = Markdoc.renderers.html(content);
let sideBar = [];
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<section class="mx-auto container rounded-3xl mt-8">${validate_component(Card, "Card.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Card_content, "Card.Content").$$render($$result, {}, {}, {
default: () => {
return `<div class="grid grid-cols-5 gap-4"><div class="col-span-5 md:col-span-1 pt-2 hidden md:block border-r-2 border-secondary"><ul class="w-full text-sm font-medium sticky top-0 overflow-y-auto max-h-screen">${each(sideBar, (item) => {
return `<li class="w-full py-2"><a href="${"#" + escape(item.id, true)}"${add_attribute("class", item.type == "h2" ? "pl-5" : "", 0)}>${escape(item.text)}</a> </li>`;
})}</ul></div> <div class="col-span-5 md:col-span-4"><div class="pt-6 p-0 md:p-10"><article id="markdown" class="prose prose-stone max-w-none dark:prose-invert dark:prose-pre:bg-neutral-900 prose-code:px-[0.3rem] dark:prose-code:bg-yellow-100 dark:prose-code:text-primary-foreground prose-code:py-[0.2rem] prose-code:font-normal prose-code:font-mono prose-code:text-sm prose-code:rounded"><!-- HTML_TAG_START -->${html}<!-- HTML_TAG_END --></article></div></div></div>`;
}
})}`;
}
})}</section>`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-7ccd3c5c.js.map
@@ -0,0 +1 @@
{"version":3,"file":"_page.svelte-7ccd3c5c.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/docs/_page.svelte.js"],"sourcesContent":["import { c as create_ssr_component, v as validate_component, b as each, e as escape, a as add_attribute } from \"../../../chunks/ssr.js\";\nimport Markdoc from \"@markdoc/markdoc\";\nimport { C as Card, a as Card_content } from \"../../../chunks/card-content.js\";\nimport \"clsx\";\nconst Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let { data } = $$props;\n const ast = Markdoc.parse(data.md);\n const content = Markdoc.transform(ast);\n let html = Markdoc.renderers.html(content);\n let sideBar = [];\n if ($$props.data === void 0 && $$bindings.data && data !== void 0)\n $$bindings.data(data);\n return `<section class=\"mx-auto container rounded-3xl mt-8\">${validate_component(Card, \"Card.Root\").$$render($$result, {}, {}, {\n default: () => {\n return `${validate_component(Card_content, \"Card.Content\").$$render($$result, {}, {}, {\n default: () => {\n return `<div class=\"grid grid-cols-5 gap-4\"><div class=\"col-span-5 md:col-span-1 pt-2 hidden md:block border-r-2 border-secondary\"><ul class=\"w-full text-sm font-medium sticky top-0 overflow-y-auto max-h-screen\">${each(sideBar, (item) => {\n return `<li class=\"w-full py-2\"><a href=\"${\"#\" + escape(item.id, true)}\"${add_attribute(\"class\", item.type == \"h2\" ? \"pl-5\" : \"\", 0)}>${escape(item.text)}</a> </li>`;\n })}</ul></div> <div class=\"col-span-5 md:col-span-4\"><div class=\"pt-6 p-0 md:p-10\"><article id=\"markdown\" class=\"prose prose-stone max-w-none dark:prose-invert dark:prose-pre:bg-neutral-900 prose-code:px-[0.3rem] dark:prose-code:bg-yellow-100 dark:prose-code:text-primary-foreground prose-code:py-[0.2rem] prose-code:font-normal prose-code:font-mono prose-code:text-sm prose-code:rounded\"><!-- HTML_TAG_START -->${html}<!-- HTML_TAG_END --></article></div></div></div>`;\n }\n })}`;\n }\n })}</section>`;\n});\nexport {\n Page as default\n};\n"],"names":[],"mappings":";;;;;;AAIK,MAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC5E,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,EAAE,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACzC,EAAE,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;AACnB,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC;AACnE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,EAAE,OAAO,CAAC,oDAAoD,EAAE,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;AACjI,IAAI,OAAO,EAAE,MAAM;AACnB,MAAM,OAAO,CAAC,EAAE,kBAAkB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;AAC5F,QAAQ,OAAO,EAAE,MAAM;AACvB,UAAU,OAAO,CAAC,4MAA4M,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK;AACxP,YAAY,OAAO,CAAC,iCAAiC,EAAE,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;AAClL,WAAW,CAAC,CAAC,yZAAyZ,EAAE,IAAI,CAAC,iDAAiD,CAAC,CAAC;AAChe,SAAS;AACT,OAAO,CAAC,CAAC,CAAC,CAAC;AACX,KAAK;AACL,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACjB,CAAC;;;;"}
@@ -0,0 +1,109 @@
import { c as create_ssr_component, e as escape, v as validate_component, a as each, h as compute_rest_props, d as validate_store, f as subscribe, i as spread, j as escape_object } from './ssr-3ed108ea.js';
import 'clsx';
import { B as Badge, I as Incident } from './incident-3b230fb3.js';
import { s as setCtx, g as getAttrs } from './index3-cffb6b6f.js';
import { c as cn } from './card-content-bc70344f.js';
import 'moment';
import './index2-d2b6b2d2.js';
import './helpers-fc56b344.js';
import 'tailwind-variants';
import 'tailwind-merge';
const Separator$1 = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["orientation", "decorative", "asChild"]);
let $root, $$unsubscribe_root;
let { orientation = "horizontal" } = $$props;
let { decorative = true } = $$props;
let { asChild = false } = $$props;
const { elements: { root }, updateOption } = setCtx({ orientation, decorative });
validate_store(root, "root");
$$unsubscribe_root = subscribe(root, (value) => $root = value);
const attrs = getAttrs("root");
if ($$props.orientation === void 0 && $$bindings.orientation && orientation !== void 0)
$$bindings.orientation(orientation);
if ($$props.decorative === void 0 && $$bindings.decorative && decorative !== void 0)
$$bindings.decorative(decorative);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
{
updateOption("orientation", orientation);
}
{
updateOption("decorative", decorative);
}
builder = $root;
$$unsubscribe_root();
return `${asChild ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}></div>`}`;
});
const Separator = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "orientation", "decorative"]);
let { class: className = void 0 } = $$props;
let { orientation = "horizontal" } = $$props;
let { decorative = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.orientation === void 0 && $$bindings.orientation && orientation !== void 0)
$$bindings.orientation(orientation);
if ($$props.decorative === void 0 && $$bindings.decorative && decorative !== void 0)
$$bindings.decorative(decorative);
return `${validate_component(Separator$1, "SeparatorPrimitive.Root").$$render(
$$result,
Object.assign(
{},
{
class: cn(
"shrink-0 bg-border",
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
className
)
},
{ orientation },
{ decorative },
$$restProps
),
{},
{}
)}`;
});
const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { data } = $$props;
if ($$props.data === void 0 && $$bindings.data && data !== void 0)
$$bindings.data(data);
return `<section class="mx-auto flex w-full max-w-4xl flex-1 flex-col items-start justify-center"><div class="mx-auto max-w-screen-xl px-4 pt-32 pb-16 lg:flex lg:items-center"><div class="mx-auto max-w-3xl text-center blurry-bg"><h1 class="bg-gradient-to-r from-green-300 via-blue-500 to-purple-600 bg-clip-text text-5xl font-extrabold text-transparent leading-snug">${escape(data.monitor.name)}</h1> <p class="mx-auto mt-4 max-w-xl sm:text-xl">${escape(data.monitor.description)}</p></div></div></section> <section class="mx-auto flex-1 mt-8 flex-col mb-4 flex w-full" id="active_incident"><div class="container"><h1 class="mb-4 text-2xl font-bold leading-none">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline text-2xl bg-red-500" }, {}, {
default: () => {
return `Active Incidents`;
}
})}</h1> ${data.activeIncidents.length > 0 ? `${each(data.activeIncidents, (incident, i) => {
return `${validate_component(Incident, "Incident").$$render(
$$result,
{
incident,
state: i == 0 ? "open" : "close",
variant: "title+body+comments",
monitor: data.monitor
},
{},
{}
)}`;
})}` : `<div class="flex items-center justify-left"><p class="text-xl" data-svelte-h="svelte-18j567b">No active incidents</p></div>`}</div></section> ${validate_component(Separator, "Separator").$$render($$result, { class: "container mb-4 w-[400px]" }, {}, {})} <section class="mx-auto flex-1 mt-8 flex-col mb-4 flex w-full" id="active_incident"><div class="container"><h1 class="mb-4 text-2xl font-bold leading-none">${validate_component(Badge, "Badge").$$render($$result, { variant: "outline text-2xl bg-red-500" }, {}, {
default: () => {
return `Recent Incidents`;
}
})}</h1> ${data.pastIncidents.length > 0 ? `${each(data.pastIncidents, (incident) => {
return `${validate_component(Incident, "Incident").$$render(
$$result,
{
incident,
state: "close",
variant: "title+body+comments",
monitor: data.monitor
},
{},
{}
)}`;
})}` : `<div class="flex items-center justify-left"><p class="text-xl" data-svelte-h="svelte-1q310fe">No recent incidents</p></div>`}</div></section>`;
});
export { Page as default };
//# sourceMappingURL=_page.svelte-9a970c64.js.map
File diff suppressed because one or more lines are too long
@@ -11,6 +11,8 @@ let statusObj = {
function parseUptime(up, all) {
if (all === 0)
return String("-");
if (up == 0)
return String("0");
if (up == all) {
return String((up / all * parseFloat(100)).toFixed(0));
}
@@ -135,4 +137,4 @@ async function POST({ request }) {
}
export { POST };
//# sourceMappingURL=_server-f49f614c.js.map
//# sourceMappingURL=_server-22de44cc.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,11 +1,26 @@
import { j as json } from './index-2b68e648.js';
import fs from 'fs-extra';
import { p as public_env } from './shared-server-58a5f352.js';
import moment from 'moment';
import 'moment';
import { a as GetNowTimestampUTC, b as GetMinuteStartTimestampUTC, G as GetMinuteStartNowTimestampUTC } from './tool-5bef1c33.js';
import Randomstring from 'randomstring';
const API_TOKEN = process.env.API_TOKEN;
const API_IP = process.env.API_IP;
const checkIfValidTag = function(tag) {
let tags = [];
let monitors = [];
try {
monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
tags = monitors.map((monitor) => monitor.tag);
if (tags.indexOf(tag) == -1) {
throw new Error("not a valid tag");
}
} catch (err) {
return false;
}
return true;
};
const store = function(data, authHeader, ip) {
const tag = data.tag;
const authToken = authHeader.replace("Bearer ", "");
@@ -26,40 +41,32 @@ const store = function(data, authHeader, ip) {
return { error: "timestampInSeconds not a number", status: 400 };
}
if (data.timestampInSeconds === void 0) {
data.timestampInSeconds = Math.floor(Date.now() / 1e3);
data.timestampInSeconds = GetNowTimestampUTC();
}
data.timestampInSeconds = GetMinuteStartTimestampUTC(data.timestampInSeconds);
resp.status = data.status;
resp.latency = data.latency;
resp.type = "webhook";
let timestampISO = moment().toISOString();
let timestamp = GetMinuteStartNowTimestampUTC();
try {
timestampISO = moment.unix(data.timestampInSeconds).toISOString();
if (moment(timestampISO).isAfter(moment().add(1, "minute"))) {
if (data.timestampInSeconds > timestamp) {
throw new Error("timestampInSeconds is in future");
}
if (moment(timestampISO).isBefore(moment().subtract(90, "days"))) {
if (timestamp - data.timestampInSeconds > 90 * 24 * 60 * 60) {
throw new Error("timestampInSeconds is older than 90days");
}
} catch (err) {
return { error: err.message, status: 400 };
}
let tags = [];
let monitors = [];
try {
monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
tags = monitors.map((monitor2) => monitor2.tag);
if (tags.indexOf(tag) == -1) {
throw new Error("not a valid tag");
}
} catch (err) {
return { error: err.message, status: 400 };
if (!checkIfValidTag(tag)) {
return { error: "invalid tag", status: 400 };
}
let monitors = JSON.parse(fs.readFileSync(public_env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const monitor = monitors.find((monitor2) => monitor2.tag === tag);
let day0 = {};
let timeStampISOMinute = moment(timestampISO).startOf("minute").toISOString();
day0[timeStampISOMinute] = resp;
day0[data.timestampInSeconds] = resp;
fs.writeFileSync(public_env.PUBLIC_KENER_FOLDER + `/${monitor.folderName}.webhook.${Randomstring.generate()}.json`, JSON.stringify(day0, null, 2));
return { status: 200, message: "success at " + timeStampISOMinute };
return { status: 200, message: "success at " + data.timestampInSeconds };
};
async function POST({ request }) {
const payload = await request.json();
@@ -77,4 +84,4 @@ async function POST({ request }) {
}
export { POST };
//# sourceMappingURL=_server-315e3406.js.map
//# sourceMappingURL=_server-c18b5fdd.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,20 +1,7 @@
import { c as create_ssr_component, h as compute_rest_props, i as spread, j as escape_attribute_value, k as escape_object, l as createEventDispatcher } from './ssr-72fe14f2.js';
import { c as create_ssr_component, h as compute_rest_props, i as spread, k as escape_attribute_value, j as escape_object } from './ssr-3ed108ea.js';
import { clsx } from 'clsx';
import { twMerge } from 'tailwind-merge';
import { tv } from 'tailwind-variants';
function createDispatcher() {
const dispatch = createEventDispatcher();
return (e) => {
const { originalEvent } = e.detail;
const { cancelable } = e;
const type = originalEvent.type;
const shouldContinue = dispatch(type, { originalEvent, currentTarget: originalEvent.currentTarget }, { cancelable });
if (!shouldContinue) {
e.preventDefault();
}
};
}
function cubicOut(t) {
const f = t - 1;
return f * f * f + 1;
@@ -84,20 +71,6 @@ const Card_content = create_ssr_component(($$result, $$props, $$bindings, slots)
{}
)}>${slots.default ? slots.default({}) : ``}</div>`;
});
const badgeVariants = tv({
base: "inline-flex items-center border rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none select-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
variants: {
variant: {
default: "bg-primary hover:bg-primary/80 border-transparent text-primary-foreground",
secondary: "bg-secondary hover:bg-secondary/80 border-transparent text-secondary-foreground",
destructive: "bg-destructive hover:bg-destructive/80 border-transparent text-destructive-foreground",
outline: "text-foreground"
}
},
defaultVariants: {
variant: "default"
}
});
export { Card as C, Card_content as a, createDispatcher as b, cn as c, badgeVariants as d, cubicOut as e, flyAndScale as f };
//# sourceMappingURL=index4-353b5e33.js.map
export { Card as C, Card_content as a, cn as c, flyAndScale as f };
//# sourceMappingURL=card-content-bc70344f.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
import { c as create_ssr_component, d as validate_store, f as subscribe, e as escape, g as getContext } from './ssr-72fe14f2.js';
import { c as create_ssr_component, d as validate_store, f as subscribe, e as escape, g as getContext } from './ssr-3ed108ea.js';
const getStores = () => {
const stores = getContext("__svelte__");
@@ -30,4 +30,4 @@ const Error$1 = create_ssr_component(($$result, $$props, $$bindings, slots) => {
});
export { Error$1 as default };
//# sourceMappingURL=error.svelte-c2f5f995.js.map
//# sourceMappingURL=error.svelte-f1948e50.js.map
@@ -1 +1 @@
{"version":3,"file":"error.svelte-c2f5f995.js","sources":["../../../.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { g as getContext, c as create_ssr_component, v as validate_store, d as subscribe, a as escape } from \"../../chunks/ssr.js\";\nconst getStores = () => {\n const stores = getContext(\"__svelte__\");\n return {\n /** @type {typeof page} */\n page: {\n subscribe: stores.page.subscribe\n },\n /** @type {typeof navigating} */\n navigating: {\n subscribe: stores.navigating.subscribe\n },\n /** @type {typeof updated} */\n updated: stores.updated\n };\n};\nconst page = {\n subscribe(fn) {\n const store = getStores().page;\n return store.subscribe(fn);\n }\n};\nconst Error$1 = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let $page, $$unsubscribe_page;\n validate_store(page, \"page\");\n $$unsubscribe_page = subscribe(page, (value) => $page = value);\n $$unsubscribe_page();\n return `<h1>${escape($page.status)}</h1> <p>${escape($page.error?.message)}</p>`;\n});\nexport {\n Error$1 as default\n};\n"],"names":[],"mappings":";;AACA,MAAM,SAAS,GAAG,MAAM;AACxB,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1C,EAAE,OAAO;AACT;AACA,IAAI,IAAI,EAAE;AACV,MAAM,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;AACtC,KAAK;AACL;AACA,IAAI,UAAU,EAAE;AAChB,MAAM,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC5C,KAAK;AACL;AACA,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO;AAC3B,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,IAAI,GAAG;AACb,EAAE,SAAS,CAAC,EAAE,EAAE;AAChB,IAAI,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC;AACnC,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,CAAC,CAAC;AACG,MAAC,OAAO,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC/E,EAAE,IAAI,KAAK,EAAE,kBAAkB,CAAC;AAChC,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/B,EAAE,kBAAkB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;AACjE,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC;;;;"}
{"version":3,"file":"error.svelte-f1948e50.js","sources":["../../../.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { g as getContext, c as create_ssr_component, d as validate_store, f as subscribe, e as escape } from \"../../chunks/ssr.js\";\nconst getStores = () => {\n const stores = getContext(\"__svelte__\");\n return {\n /** @type {typeof page} */\n page: {\n subscribe: stores.page.subscribe\n },\n /** @type {typeof navigating} */\n navigating: {\n subscribe: stores.navigating.subscribe\n },\n /** @type {typeof updated} */\n updated: stores.updated\n };\n};\nconst page = {\n subscribe(fn) {\n const store = getStores().page;\n return store.subscribe(fn);\n }\n};\nconst Error$1 = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let $page, $$unsubscribe_page;\n validate_store(page, \"page\");\n $$unsubscribe_page = subscribe(page, (value) => $page = value);\n $$unsubscribe_page();\n return `<h1>${escape($page.status)}</h1> <p>${escape($page.error?.message)}</p>`;\n});\nexport {\n Error$1 as default\n};\n"],"names":[],"mappings":";;AACA,MAAM,SAAS,GAAG,MAAM;AACxB,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1C,EAAE,OAAO;AACT;AACA,IAAI,IAAI,EAAE;AACV,MAAM,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;AACtC,KAAK;AACL;AACA,IAAI,UAAU,EAAE;AAChB,MAAM,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC5C,KAAK;AACL;AACA,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO;AAC3B,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,IAAI,GAAG;AACb,EAAE,SAAS,CAAC,EAAE,EAAE;AAChB,IAAI,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC;AACnC,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH,CAAC,CAAC;AACG,MAAC,OAAO,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC/E,EAAE,IAAI,KAAK,EAAE,kBAAkB,CAAC;AAChC,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/B,EAAE,kBAAkB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;AACjE,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC;;;;"}
+114
View File
@@ -0,0 +1,114 @@
import axios from 'axios';
import { G as GetMinuteStartNowTimestampUTC } from './tool-5bef1c33.js';
import Markdoc from '@markdoc/markdoc';
const GH_TOKEN = process.env.GH_TOKEN;
function getAxiosOptions(url) {
const options = {
url,
method: "GET",
headers: {
Accept: "application/vnd.github+json",
Authorization: "Bearer " + GH_TOKEN,
"X-GitHub-Api-Version": "2022-11-28"
}
};
return options;
}
const GetStartTimeFromBody = function(text) {
const pattern = /\[start_datetime:(\d+)\]/;
const matches = pattern.exec(text);
if (matches) {
const timestamp = matches[1];
return parseInt(timestamp);
}
return null;
};
const GetEndTimeFromBody = function(text) {
const pattern = /\[end_datetime:(\d+)\]/;
const matches = pattern.exec(text);
if (matches) {
const timestamp = matches[1];
return parseInt(timestamp);
}
return null;
};
const GetIncidents = async function(tagName, githubConfig, state = "all") {
if (tagName === void 0) {
return [];
}
if (githubConfig === void 0) {
return [];
}
const since = GetMinuteStartNowTimestampUTC() - githubConfig.incidentSince * 60 * 60;
const sinceISO = new Date(since * 1e3).toISOString();
const url = `https://api.github.com/repos/${githubConfig.owner}/${githubConfig.repo}/issues?state=${state}&labels=${tagName},incident&sort=created&direction=desc&since=${sinceISO}`;
const options = getAxiosOptions(url);
try {
const response = await axios.request(options);
let issues = response.data;
issues = issues.filter((issue) => {
return new Date(issue.created_at) >= new Date(sinceISO);
});
return issues;
} catch (error) {
return [];
}
};
async function Mapper(issue) {
const ast = Markdoc.parse(issue.body);
const content = Markdoc.transform(ast);
const html = Markdoc.renderers.html(content);
const comments = await GetCommentsForIssue(issue.number, this.github);
const issueCreatedAt = new Date(issue.created_at);
const issueCreatedAtTimestamp = issueCreatedAt.getTime() / 1e3;
let issueClosedAtTimestamp = null;
if (issue.closed_at !== null) {
const issueClosedAt = new Date(issue.closed_at);
issueClosedAtTimestamp = issueClosedAt.getTime() / 1e3;
}
return {
title: issue.title,
incident_start_time: GetStartTimeFromBody(issue.body) || issueCreatedAtTimestamp,
incident_end_time: GetEndTimeFromBody(issue.body) || issueClosedAtTimestamp,
number: issue.number,
body: html,
created_at: issue.created_at,
updated_at: issue.updated_at,
collapsed: true,
comments: issue.comments,
// @ts-ignore
state: issue.state,
closed_at: issue.closed_at,
// @ts-ignore
labels: issue.labels.map(function(label) {
return label.name;
}),
html_url: issue.html_url,
// @ts-ignore
comments: comments.map((comment) => {
const ast2 = Markdoc.parse(comment.body);
const content2 = Markdoc.transform(ast2);
const html2 = Markdoc.renderers.html(content2);
return {
body: html2,
created_at: comment.created_at,
updated_at: comment.updated_at,
html_url: comment.html_url
};
})
};
}
async function GetCommentsForIssue(issueID, githubConfig) {
const url = `https://api.github.com/repos/${githubConfig.owner}/${githubConfig.repo}/issues/${issueID}/comments`;
try {
const response = await axios.request(getAxiosOptions(url));
return response.data;
} catch (error) {
console.log(error.response.data);
return [];
}
}
export { GetIncidents as G, Mapper as M };
//# sourceMappingURL=github-3ae10cb0.js.map
File diff suppressed because one or more lines are too long
+9
View File
@@ -0,0 +1,9 @@
const StatusObj = {
UP: "api-up",
DEGRADED: "api-degraded",
DOWN: "api-down",
NO_DATA: "api-nodata"
};
export { StatusObj as S };
//# sourceMappingURL=helpers-fc56b344.js.map
@@ -0,0 +1 @@
{"version":3,"file":"helpers-fc56b344.js","sources":["../../../.svelte-kit/adapter-node/chunks/helpers.js"],"sourcesContent":["const StatusObj = {\n UP: \"api-up\",\n DEGRADED: \"api-degraded\",\n DOWN: \"api-down\",\n NO_DATA: \"api-nodata\"\n};\nexport {\n StatusObj as S\n};\n"],"names":[],"mappings":"AAAK,MAAC,SAAS,GAAG;AAClB,EAAE,EAAE,EAAE,QAAQ;AACd,EAAE,QAAQ,EAAE,cAAc;AAC1B,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,OAAO,EAAE,YAAY;AACvB;;;;"}
+621
View File
@@ -0,0 +1,621 @@
import { c as create_ssr_component, h as compute_rest_props, i as spread, k as escape_attribute_value, j as escape_object, v as validate_component, b as add_attribute, e as escape, a as each, d as validate_store, f as subscribe, l as createEventDispatcher } from './ssr-3ed108ea.js';
import { c as cn, C as Card, a as Card_content, f as flyAndScale } from './card-content-bc70344f.js';
import 'clsx';
import { b as buttonVariants, a as setCtx$1, c as getCtx, d as getAttrs$1 } from './index3-cffb6b6f.js';
import { d as derived } from './index2-d2b6b2d2.js';
import { S as StatusObj } from './helpers-fc56b344.js';
import moment from 'moment';
import { tv } from 'tailwind-variants';
const void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;
function is_void(name) {
return void_element_names.test(name) || name.toLowerCase() === "!doctype";
}
function validate_dynamic_element(tag) {
const is_string = typeof tag === "string";
if (tag && !is_string) {
throw new Error('<svelte:element> expects "this" attribute to be a string.');
}
}
function validate_void_dynamic_element(tag) {
if (tag && is_void(tag)) {
console.warn(`<svelte:element this="${tag}"> is self-closing and cannot have content.`);
}
}
function createDispatcher() {
const dispatch = createEventDispatcher();
return (e) => {
const { originalEvent } = e.detail;
const { cancelable } = e;
const type = originalEvent.type;
const shouldContinue = dispatch(type, { originalEvent, currentTarget: originalEvent.currentTarget }, { cancelable });
if (!shouldContinue) {
e.preventDefault();
}
};
}
function getAttrs(builders) {
const attrs = {};
builders.forEach((builder) => {
Object.keys(builder).forEach((key) => {
if (key !== "action") {
attrs[key] = builder[key];
}
});
});
return attrs;
}
const Button$1 = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["href", "type", "builders"]);
let { href = void 0 } = $$props;
let { type = void 0 } = $$props;
let { builders = [] } = $$props;
const attrs = { "data-bits-button-root": "" };
if ($$props.href === void 0 && $$bindings.href && href !== void 0)
$$bindings.href(href);
if ($$props.type === void 0 && $$bindings.type && type !== void 0)
$$bindings.type(type);
if ($$props.builders === void 0 && $$bindings.builders && builders !== void 0)
$$bindings.builders(builders);
return `${builders && builders.length ? ` ${((tag) => {
validate_dynamic_element(tag);
return tag ? (() => {
validate_void_dynamic_element(tag);
return `<${href ? "a" : "button"}${spread(
[
{
type: escape_attribute_value(href ? void 0 : type)
},
{ href: escape_attribute_value(href) },
{ tabindex: "0" },
escape_object(getAttrs(builders)),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${is_void(tag) ? "" : `${slots.default ? slots.default({}) : ``}`}${is_void(tag) ? "" : `</${tag}>`}`;
})() : "";
})(href ? "a" : "button")}` : ` ${((tag) => {
validate_dynamic_element(tag);
return tag ? (() => {
validate_void_dynamic_element(tag);
return `<${href ? "a" : "button"}${spread(
[
{
type: escape_attribute_value(href ? void 0 : type)
},
{ href: escape_attribute_value(href) },
{ tabindex: "0" },
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${is_void(tag) ? "" : `${slots.default ? slots.default({}) : ``}`}${is_void(tag) ? "" : `</${tag}>`}`;
})() : "";
})(href ? "a" : "button")}`}`;
});
const LinkPreview = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $idValues, $$unsubscribe_idValues;
let { positioning = void 0 } = $$props;
let { open = void 0 } = $$props;
let { onOpenChange = void 0 } = $$props;
let { openDelay = 700 } = $$props;
let { closeDelay = 300 } = $$props;
let { closeOnOutsideClick = void 0 } = $$props;
let { closeOnEscape = void 0 } = $$props;
let { arrowSize = void 0 } = $$props;
let { portal = void 0 } = $$props;
const { states: { open: localOpen }, updateOption, ids } = setCtx$1({
defaultOpen: open,
positioning,
openDelay,
closeDelay,
closeOnOutsideClick,
closeOnEscape,
arrowSize,
portal,
onOpenChange: ({ next }) => {
if (open !== next) {
onOpenChange?.(next);
open = next;
}
return next;
}
});
const idValues = derived([ids.content, ids.trigger], ([$contentId, $triggerId]) => ({ content: $contentId, trigger: $triggerId }));
validate_store(idValues, "idValues");
$$unsubscribe_idValues = subscribe(idValues, (value) => $idValues = value);
if ($$props.positioning === void 0 && $$bindings.positioning && positioning !== void 0)
$$bindings.positioning(positioning);
if ($$props.open === void 0 && $$bindings.open && open !== void 0)
$$bindings.open(open);
if ($$props.onOpenChange === void 0 && $$bindings.onOpenChange && onOpenChange !== void 0)
$$bindings.onOpenChange(onOpenChange);
if ($$props.openDelay === void 0 && $$bindings.openDelay && openDelay !== void 0)
$$bindings.openDelay(openDelay);
if ($$props.closeDelay === void 0 && $$bindings.closeDelay && closeDelay !== void 0)
$$bindings.closeDelay(closeDelay);
if ($$props.closeOnOutsideClick === void 0 && $$bindings.closeOnOutsideClick && closeOnOutsideClick !== void 0)
$$bindings.closeOnOutsideClick(closeOnOutsideClick);
if ($$props.closeOnEscape === void 0 && $$bindings.closeOnEscape && closeOnEscape !== void 0)
$$bindings.closeOnEscape(closeOnEscape);
if ($$props.arrowSize === void 0 && $$bindings.arrowSize && arrowSize !== void 0)
$$bindings.arrowSize(arrowSize);
if ($$props.portal === void 0 && $$bindings.portal && portal !== void 0)
$$bindings.portal(portal);
open !== void 0 && localOpen.set(open);
{
updateOption("positioning", positioning);
}
{
updateOption("openDelay", openDelay);
}
{
updateOption("closeDelay", closeDelay);
}
{
updateOption("closeOnOutsideClick", closeOnOutsideClick);
}
{
updateOption("closeOnEscape", closeOnEscape);
}
{
updateOption("arrowSize", arrowSize);
}
{
updateOption("portal", portal);
}
$$unsubscribe_idValues();
return `${slots.default ? slots.default({ ids: $idValues }) : ``}`;
});
const LinkPreviewContent = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, [
"transition",
"transitionConfig",
"inTransition",
"inTransitionConfig",
"outTransition",
"outTransitionConfig",
"asChild",
"id"
]);
let $content, $$unsubscribe_content;
let $open, $$unsubscribe_open;
let { transition = void 0 } = $$props;
let { transitionConfig = void 0 } = $$props;
let { inTransition = void 0 } = $$props;
let { inTransitionConfig = void 0 } = $$props;
let { outTransition = void 0 } = $$props;
let { outTransitionConfig = void 0 } = $$props;
let { asChild = false } = $$props;
let { id = void 0 } = $$props;
const { elements: { content }, states: { open }, ids } = getCtx();
validate_store(content, "content");
$$unsubscribe_content = subscribe(content, (value) => $content = value);
validate_store(open, "open");
$$unsubscribe_open = subscribe(open, (value) => $open = value);
const attrs = getAttrs$1("content");
createDispatcher();
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
if ($$props.inTransition === void 0 && $$bindings.inTransition && inTransition !== void 0)
$$bindings.inTransition(inTransition);
if ($$props.inTransitionConfig === void 0 && $$bindings.inTransitionConfig && inTransitionConfig !== void 0)
$$bindings.inTransitionConfig(inTransitionConfig);
if ($$props.outTransition === void 0 && $$bindings.outTransition && outTransition !== void 0)
$$bindings.outTransition(outTransition);
if ($$props.outTransitionConfig === void 0 && $$bindings.outTransitionConfig && outTransitionConfig !== void 0)
$$bindings.outTransitionConfig(outTransitionConfig);
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.id === void 0 && $$bindings.id && id !== void 0)
$$bindings.id(id);
{
if (id) {
ids.content.set(id);
}
}
builder = $content;
$$unsubscribe_content();
$$unsubscribe_open();
return ` ${asChild && $open ? `${slots.default ? slots.default({ builder, attrs }) : ``}` : `${transition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${inTransition && outTransition && $open ? `<div${spread([escape_object(builder), escape_object($$restProps), escape_object(attrs)], {})}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${inTransition && $open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${outTransition && $open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : `${$open ? `<div${spread(
[
escape_object(builder),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${slots.default ? slots.default({ builder, attrs }) : ``}</div>` : ``}`}`}`}`}`}`;
});
const LinkPreviewTrigger = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let builder;
let $$restProps = compute_rest_props($$props, ["asChild", "id"]);
let $trigger, $$unsubscribe_trigger;
let { asChild = false } = $$props;
let { id = void 0 } = $$props;
const { elements: { trigger }, ids } = getCtx();
validate_store(trigger, "trigger");
$$unsubscribe_trigger = subscribe(trigger, (value) => $trigger = value);
createDispatcher();
const attrs = getAttrs$1("trigger");
if ($$props.asChild === void 0 && $$bindings.asChild && asChild !== void 0)
$$bindings.asChild(asChild);
if ($$props.id === void 0 && $$bindings.id && id !== void 0)
$$bindings.id(id);
{
if (id) {
ids.trigger.set(id);
}
}
builder = $trigger;
$$unsubscribe_trigger();
return `${asChild ? `${slots.default ? slots.default({ attrs, builder }) : ``}` : (() => {
let builder2 = $trigger;
return ` ${((tag) => {
validate_dynamic_element(tag);
return tag ? (() => {
validate_void_dynamic_element(tag);
return `<a${spread(
[
escape_object(builder2),
escape_object($$restProps),
escape_object(attrs)
],
{}
)}>${is_void(tag) ? "" : `${slots.default ? slots.default({ builder: builder2, attrs }) : ``}`}</a>`;
})() : "";
})("a")}`;
})()}`;
});
const Button = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "variant", "size", "builders"]);
let { class: className = void 0 } = $$props;
let { variant = "default" } = $$props;
let { size = "default" } = $$props;
let { builders = [] } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.variant === void 0 && $$bindings.variant && variant !== void 0)
$$bindings.variant(variant);
if ($$props.size === void 0 && $$bindings.size && size !== void 0)
$$bindings.size(size);
if ($$props.builders === void 0 && $$bindings.builders && builders !== void 0)
$$bindings.builders(builders);
return `${validate_component(Button$1, "ButtonPrimitive.Root").$$render(
$$result,
Object.assign(
{},
{ builders },
{
class: cn(buttonVariants({ variant, size, className }))
},
{ type: "button" },
$$restProps
),
{},
{
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
}
)}`;
});
const Card_description = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class"]);
let { class: className = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
return `<p${spread(
[
{
class: escape_attribute_value(cn("text-sm text-muted-foreground", className))
},
escape_object($$restProps)
],
{}
)}>${slots.default ? slots.default({}) : ``}</p>`;
});
const Card_header = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class"]);
let { class: className = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
return `<div${spread(
[
{
class: escape_attribute_value(cn("flex flex-col space-y-1.5 p-6", className))
},
escape_object($$restProps)
],
{}
)}>${slots.default ? slots.default({}) : ``}</div>`;
});
const Card_title = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "tag"]);
let { class: className = void 0 } = $$props;
let { tag = "h3" } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.tag === void 0 && $$bindings.tag && tag !== void 0)
$$bindings.tag(tag);
return `${((tag$1) => {
validate_dynamic_element(tag$1);
return tag$1 ? (() => {
validate_void_dynamic_element(tag$1);
return `<${tag}${spread(
[
{
class: escape_attribute_value(cn("text-lg font-semibold leading-none tracking-tight", className))
},
escape_object($$restProps)
],
{}
)}>${is_void(tag$1) ? "" : `${slots.default ? slots.default({}) : ``}`}${is_void(tag$1) ? "" : `</${tag$1}>`}`;
})() : "";
})(tag)}`;
});
const Badge = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "href", "variant"]);
let { class: className = void 0 } = $$props;
let { href = void 0 } = $$props;
let { variant = "default" } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.href === void 0 && $$bindings.href && href !== void 0)
$$bindings.href(href);
if ($$props.variant === void 0 && $$bindings.variant && variant !== void 0)
$$bindings.variant(variant);
return `${((tag) => {
validate_dynamic_element(tag);
return tag ? (() => {
validate_void_dynamic_element(tag);
return `<${href ? "a" : "span"}${spread(
[
{ href: escape_attribute_value(href) },
{
class: escape_attribute_value(cn(badgeVariants({ variant, className })))
},
escape_object($$restProps)
],
{}
)}>${is_void(tag) ? "" : `${slots.default ? slots.default({}) : ``}`}${is_void(tag) ? "" : `</${tag}>`}`;
})() : "";
})(href ? "a" : "span")}`;
});
const badgeVariants = tv({
base: "inline-flex items-center border rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none select-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
variants: {
variant: {
default: "bg-primary hover:bg-primary/80 border-transparent text-primary-foreground",
secondary: "bg-secondary hover:bg-secondary/80 border-transparent text-secondary-foreground",
destructive: "bg-destructive hover:bg-destructive/80 border-transparent text-destructive-foreground",
outline: "text-foreground"
}
},
defaultVariants: {
variant: "default"
}
});
const Hover_card_content = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["class", "transition", "transitionConfig"]);
let { class: className = void 0 } = $$props;
let { transition = flyAndScale } = $$props;
let { transitionConfig = void 0 } = $$props;
if ($$props.class === void 0 && $$bindings.class && className !== void 0)
$$bindings.class(className);
if ($$props.transition === void 0 && $$bindings.transition && transition !== void 0)
$$bindings.transition(transition);
if ($$props.transitionConfig === void 0 && $$bindings.transitionConfig && transitionConfig !== void 0)
$$bindings.transitionConfig(transitionConfig);
return `${validate_component(LinkPreviewContent, "HoverCardPrimitive.Content").$$render(
$$result,
Object.assign(
{},
{ transition },
{ transitionConfig },
{
class: cn("z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none mt-3", className)
},
$$restProps
),
{},
{
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
}
)}`;
});
const Root = LinkPreview;
const Trigger = LinkPreviewTrigger;
const defaultAttributes = {
xmlns: "http://www.w3.org/2000/svg",
width: 24,
height: 24,
viewBox: "0 0 24 24",
fill: "none",
stroke: "currentColor",
"stroke-width": 2,
"stroke-linecap": "round",
"stroke-linejoin": "round"
};
const Icon = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let $$restProps = compute_rest_props($$props, ["name", "color", "size", "strokeWidth", "absoluteStrokeWidth", "iconNode"]);
let { name } = $$props;
let { color = "currentColor" } = $$props;
let { size = 24 } = $$props;
let { strokeWidth = 2 } = $$props;
let { absoluteStrokeWidth = false } = $$props;
let { iconNode } = $$props;
if ($$props.name === void 0 && $$bindings.name && name !== void 0)
$$bindings.name(name);
if ($$props.color === void 0 && $$bindings.color && color !== void 0)
$$bindings.color(color);
if ($$props.size === void 0 && $$bindings.size && size !== void 0)
$$bindings.size(size);
if ($$props.strokeWidth === void 0 && $$bindings.strokeWidth && strokeWidth !== void 0)
$$bindings.strokeWidth(strokeWidth);
if ($$props.absoluteStrokeWidth === void 0 && $$bindings.absoluteStrokeWidth && absoluteStrokeWidth !== void 0)
$$bindings.absoluteStrokeWidth(absoluteStrokeWidth);
if ($$props.iconNode === void 0 && $$bindings.iconNode && iconNode !== void 0)
$$bindings.iconNode(iconNode);
return `<svg${spread(
[
escape_object(defaultAttributes),
escape_object($$restProps),
{ width: escape_attribute_value(size) },
{ height: escape_attribute_value(size) },
{ stroke: escape_attribute_value(color) },
{
"stroke-width": escape_attribute_value(absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth)
},
{
class: escape_attribute_value(`lucide-icon lucide lucide-${name} ${$$props.class ?? ""}`)
}
],
{}
)}>${each(iconNode, ([tag, attrs]) => {
return `${((tag$1) => {
validate_dynamic_element(tag$1);
return tag$1 ? `<${tag}${spread([escape_object(attrs)], {})}>${is_void(tag$1) ? "" : ``}${is_void(tag$1) ? "" : `</${tag$1}>`}` : "";
})(tag)}`;
})}${slots.default ? slots.default({}) : ``}</svg>`;
});
const Icon$1 = Icon;
const Chevron_down = create_ssr_component(($$result, $$props, $$bindings, slots) => {
const iconNode = [["path", { "d": "m6 9 6 6 6-6" }]];
return `${validate_component(Icon$1, "Icon").$$render($$result, Object.assign({}, { name: "chevron-down" }, $$props, { iconNode }), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const ChevronDown = Chevron_down;
const Chevron_up = create_ssr_component(($$result, $$props, $$bindings, slots) => {
const iconNode = [["path", { "d": "m18 15-6-6-6 6" }]];
return `${validate_component(Icon$1, "Icon").$$render($$result, Object.assign({}, { name: "chevron-up" }, $$props, { iconNode }), {}, {
default: () => {
return `${slots.default ? slots.default({}) : ``}`;
}
})}`;
});
const ChevronUp = Chevron_up;
const Incident = create_ssr_component(($$result, $$props, $$bindings, slots) => {
let { incident } = $$props;
let { variant = "title+body+comments+monitor" } = $$props;
let { state = "open" } = $$props;
let { monitor } = $$props;
let blinker = "bg-transparent";
let incidentPriority = "";
if (incident.labels.includes("incident-down")) {
blinker = "bg-red-500";
incidentPriority = "DOWN";
} else if (incident.labels.includes("incident-degraded")) {
blinker = "bg-yellow-500";
incidentPriority = "DEGRADED";
}
let incidentState = incident.state;
let incidentClosedAt = incident.incident_end_time;
let incidentCreatedAt = incident.incident_start_time;
let incidentMessage = "";
if (!!incidentClosedAt && !!incidentCreatedAt) {
let diff = moment(incidentClosedAt * 1e3).diff(moment(incidentCreatedAt * 1e3), "minutes");
if (diff > 0) {
incidentMessage = `. Was <span class="text-${StatusObj[incidentPriority]}">${incidentPriority}</span> for ${diff} minutes`;
}
} else if (!!incidentCreatedAt) {
let diff = moment().diff(moment(incidentCreatedAt * 1e3), "minutes");
incidentMessage = `. Has been <span class="text-${StatusObj[incidentPriority]}">${incidentPriority}</span> for ${diff} minutes`;
}
incident.body = incident.body.replace(/\[start_datetime:(\d+)\]/g, "");
incident.body = incident.body.replace(/\[end_datetime:(\d+)\]/g, "");
if ($$props.incident === void 0 && $$bindings.incident && incident !== void 0)
$$bindings.incident(incident);
if ($$props.variant === void 0 && $$bindings.variant && variant !== void 0)
$$bindings.variant(variant);
if ($$props.state === void 0 && $$bindings.state && state !== void 0)
$$bindings.state(state);
if ($$props.monitor === void 0 && $$bindings.monitor && monitor !== void 0)
$$bindings.monitor(monitor);
return `<div class="grid grid-cols-3 gap-4 mb-4 w-full"><div class="col-span-3">${validate_component(Card, "Card.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Card_header, "Card.Header").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Card_title, "Card.Title").$$render($$result, { class: "relative" }, {}, {
default: () => {
return `${variant.includes("monitor") ? `<div class="pb-4"><div class="scroll-m-20 text-2xl font-semibold tracking-tight">${monitor.image ? `<img${add_attribute("src", monitor.image, 0)} class="w-6 h-6 inline" alt="" srcset="">` : ``} ${escape(monitor.name)} ${monitor.description ? `${validate_component(Root, "HoverCard.Root").$$render($$result, {}, {}, {
default: () => {
return `${validate_component(Trigger, "HoverCard.Trigger").$$render($$result, {}, {}, {
default: () => {
return `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide inline lucide-info"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>`;
}
})} ${validate_component(Hover_card_content, "HoverCard.Content").$$render($$result, { class: "dark:invert" }, {}, {
default: () => {
return `${escape(monitor.description)}`;
}
})}`;
}
})}` : ``}</div></div>` : ``} ${variant.includes("title") ? `${escape(incident.title)}` : ``} ${incidentState == "open" ? `<span class="${"animate-ping absolute -left-[24px] -top-[24px] w-[8px] h-[8px] inline-flex rounded-full " + escape(blinker, true) + " opacity-75"}"></span>` : ``} ${variant.includes("body") || variant.includes("comments") ? `${state == "close" ? `${validate_component(Button, "Button").$$render(
$$result,
{
variant: "outline",
class: "absolute right-0",
size: "icon"
},
{},
{
default: () => {
return `${validate_component(ChevronDown, "ChevronDown").$$render($$result, { class: "", size: 32 }, {}, {})}`;
}
}
)}` : `${validate_component(Button, "Button").$$render(
$$result,
{
variant: "outline",
class: "absolute right-0",
size: "icon"
},
{},
{
default: () => {
return `${validate_component(ChevronUp, "ChevronUp").$$render($$result, { class: "", size: 32 }, {}, {})}`;
}
}
)}`}` : ``}`;
}
})} ${validate_component(Card_description, "Card.Description").$$render($$result, {}, {}, {
default: () => {
return `${escape(moment(incident.created_at).format("MMMM Do YYYY, h:mm:ss a"))} <!-- HTML_TAG_START -->${incidentMessage}<!-- HTML_TAG_END -->`;
}
})}`;
}
})} ${(variant.includes("body") || variant.includes("comments")) && state == "open" ? `${validate_component(Card_content, "Card.Content").$$render($$result, {}, {}, {
default: () => {
return `${variant.includes("body") ? `<div class="prose prose-stone dark:prose-invert max-w-none prose-code:px-[0.3rem] prose-code:py-[0.2rem] prose-code:font-mono prose-code:text-sm prose-code:rounded"><!-- HTML_TAG_START -->${incident.body}<!-- HTML_TAG_END --></div>` : ``} ${variant.includes("comments") && incident.comments.length > 0 ? `<div class="ml-4 mt-8"><ol class="relative border-s border-secondary">${each(incident.comments, (comment) => {
return `<li class="mb-10 ms-4"><div class="absolute w-3 h-3 rounded-full mt-1.5 -start-1.5 border bg-secondary border-secondary"></div> <time class="mb-1 text-sm font-normal leading-none text-muted-foreground">${escape(moment(comment.created_at).format("MMMM Do YYYY, h:mm:ss a"))}</time> <div class="mb-4 text-base font-normal wysiwyg dark:prose-invert prose prose-stone max-w-none prose-code:px-[0.3rem] prose-code:py-[0.2rem] prose-code:font-mono prose-code:text-sm prose-code:rounded"><!-- HTML_TAG_START -->${comment.body}<!-- HTML_TAG_END --></div> </li>`;
})}</ol></div>` : ``}`;
}
})}` : ``}`;
}
})}</div></div>`;
});
export { Badge as B, Hover_card_content as H, Incident as I, Root as R, Trigger as T, Icon$1 as a };
//# sourceMappingURL=incident-3b230fb3.js.map
File diff suppressed because one or more lines are too long
-58
View File
@@ -1,58 +0,0 @@
import axios from 'axios';
const GH_TOKEN = process.env.GH_TOKEN;
function getAxiosOptions(url) {
const options = {
url,
method: "GET",
headers: {
Accept: "application/vnd.github+json",
Authorization: "Bearer " + GH_TOKEN,
"X-GitHub-Api-Version": "2022-11-28"
}
};
return options;
}
async function activeIncident(tagName, githubConfig) {
const url = `https://api.github.com/repos/${githubConfig.owner}/${githubConfig.repo}/issues?labels=${tagName},status&state=open&sort=created&direction=desc`;
try {
const response = await axios.request(getAxiosOptions(url));
return response.data;
} catch (error) {
console.log(error.response.data);
return [];
}
}
async function pastIncident(tagName, githubConfig) {
const url = `https://api.github.com/repos/${githubConfig.owner}/${githubConfig.repo}/issues?labels=${tagName},status&state=closed&sort=created&direction=desc`;
try {
const response = await axios.request(getAxiosOptions(url));
return response.data;
} catch (error) {
console.log(error.response.data);
return [];
}
}
async function hasActiveIncident(tagName, githubConfig) {
const url = `https://api.github.com/repos/${githubConfig.owner}/${githubConfig.repo}/issues?labels=${tagName},status&state=open&sort=created&direction=desc&per_page=1`;
try {
const response = await axios.request(getAxiosOptions(url));
return response.data.length > 0;
} catch (error) {
console.log(error.response.data);
return false;
}
}
async function getCommentsForIssue(issueID, githubConfig) {
const url = `https://api.github.com/repos/${githubConfig.owner}/${githubConfig.repo}/issues/${issueID}/comments`;
try {
const response = await axios.request(getAxiosOptions(url));
return response.data;
} catch (error) {
console.log(error.response.data);
return [];
}
}
export { activeIncident as a, getCommentsForIssue as g, hasActiveIncident as h, pastIncident as p };
//# sourceMappingURL=incident-f316d011.js.map
@@ -1 +0,0 @@
{"version":3,"file":"incident-f316d011.js","sources":["../../../.svelte-kit/adapter-node/chunks/incident.js"],"sourcesContent":["import axios from \"axios\";\nconst GH_TOKEN = process.env.GH_TOKEN;\nfunction getAxiosOptions(url) {\n const options = {\n url,\n method: \"GET\",\n headers: {\n Accept: \"application/vnd.github+json\",\n Authorization: \"Bearer \" + GH_TOKEN,\n \"X-GitHub-Api-Version\": \"2022-11-28\"\n }\n };\n return options;\n}\nasync function activeIncident(tagName, githubConfig) {\n const url = `https://api.github.com/repos/${githubConfig.owner}/${githubConfig.repo}/issues?labels=${tagName},status&state=open&sort=created&direction=desc`;\n try {\n const response = await axios.request(getAxiosOptions(url));\n return response.data;\n } catch (error) {\n console.log(error.response.data);\n return [];\n }\n}\nasync function pastIncident(tagName, githubConfig) {\n const url = `https://api.github.com/repos/${githubConfig.owner}/${githubConfig.repo}/issues?labels=${tagName},status&state=closed&sort=created&direction=desc`;\n try {\n const response = await axios.request(getAxiosOptions(url));\n return response.data;\n } catch (error) {\n console.log(error.response.data);\n return [];\n }\n}\nasync function hasActiveIncident(tagName, githubConfig) {\n const url = `https://api.github.com/repos/${githubConfig.owner}/${githubConfig.repo}/issues?labels=${tagName},status&state=open&sort=created&direction=desc&per_page=1`;\n try {\n const response = await axios.request(getAxiosOptions(url));\n return response.data.length > 0;\n } catch (error) {\n console.log(error.response.data);\n return false;\n }\n}\nasync function getCommentsForIssue(issueID, githubConfig) {\n const url = `https://api.github.com/repos/${githubConfig.owner}/${githubConfig.repo}/issues/${issueID}/comments`;\n try {\n const response = await axios.request(getAxiosOptions(url));\n return response.data;\n } catch (error) {\n console.log(error.response.data);\n return [];\n }\n}\nexport {\n activeIncident as a,\n getCommentsForIssue as g,\n hasActiveIncident as h,\n pastIncident as p\n};\n"],"names":[],"mappings":";;AACA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtC,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,EAAE,MAAM,OAAO,GAAG;AAClB,IAAI,GAAG;AACP,IAAI,MAAM,EAAE,KAAK;AACjB,IAAI,OAAO,EAAE;AACb,MAAM,MAAM,EAAE,6BAA6B;AAC3C,MAAM,aAAa,EAAE,SAAS,GAAG,QAAQ;AACzC,MAAM,sBAAsB,EAAE,YAAY;AAC1C,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,eAAe,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE;AACrD,EAAE,MAAM,GAAG,GAAG,CAAC,6BAA6B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,8CAA8C,CAAC,CAAC;AAC/J,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,CAAC;AACD,eAAe,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE;AACnD,EAAE,MAAM,GAAG,GAAG,CAAC,6BAA6B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,gDAAgD,CAAC,CAAC;AACjK,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,CAAC;AACD,eAAe,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE;AACxD,EAAE,MAAM,GAAG,GAAG,CAAC,6BAA6B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,yDAAyD,CAAC,CAAC;AAC1K,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACpC,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,CAAC;AACD,eAAe,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE;AAC1D,EAAE,MAAM,GAAG,GAAG,CAAC,6BAA6B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AACnH,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,GAAG,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH;;;;"}
-30
View File
@@ -1,30 +0,0 @@
import './ctx-ae09ff2a.js';
import 'clsx';
import { tv } from 'tailwind-variants';
const buttonVariants = tv({
base: "inline-flex items-center justify-center rounded-md text-sm font-medium whitespace-nowrap ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
variants: {
variant: {
default: "bg-primary text-primary-foreground hover:bg-primary/90",
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
ghost: "hover:bg-accent hover:text-accent-foreground",
link: "text-primary underline-offset-4 hover:underline"
},
size: {
default: "h-10 px-4 py-2",
sm: "h-9 rounded-md px-3",
lg: "h-11 rounded-md px-8",
icon: "h-10 w-10"
}
},
defaultVariants: {
variant: "default",
size: "default"
}
});
export { buttonVariants as b };
//# sourceMappingURL=index2-39686446.js.map
@@ -1 +0,0 @@
{"version":3,"file":"index2-39686446.js","sources":["../../../.svelte-kit/adapter-node/chunks/index2.js"],"sourcesContent":["import \"dequal\";\nimport \"./ctx.js\";\nimport \"clsx\";\nimport { tv } from \"tailwind-variants\";\nconst buttonVariants = tv({\n base: \"inline-flex items-center justify-center rounded-md text-sm font-medium whitespace-nowrap ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground 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-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n});\nexport {\n buttonVariants as b\n};\n"],"names":[],"mappings":";;;;AAIK,MAAC,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,IAAI,EAAE,wRAAwR;AAChS,EAAE,QAAQ,EAAE;AACZ,IAAI,OAAO,EAAE;AACb,MAAM,OAAO,EAAE,wDAAwD;AACvE,MAAM,WAAW,EAAE,oEAAoE;AACvF,MAAM,OAAO,EAAE,gFAAgF;AAC/F,MAAM,SAAS,EAAE,8DAA8D;AAC/E,MAAM,KAAK,EAAE,8CAA8C;AAC3D,MAAM,IAAI,EAAE,iDAAiD;AAC7D,KAAK;AACL,IAAI,IAAI,EAAE;AACV,MAAM,OAAO,EAAE,gBAAgB;AAC/B,MAAM,EAAE,EAAE,qBAAqB;AAC/B,MAAM,EAAE,EAAE,sBAAsB;AAChC,MAAM,IAAI,EAAE,WAAW;AACvB,KAAK;AACL,GAAG;AACH,EAAE,eAAe,EAAE;AACnB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,IAAI,EAAE,SAAS;AACnB,GAAG;AACH,CAAC;;;;"}
@@ -1,4 +1,4 @@
import { t as noop, u as safe_not_equal, f as subscribe, r as run_all, w as is_function } from './ssr-72fe14f2.js';
import { t as noop, u as safe_not_equal, f as subscribe, r as run_all, w as is_function } from './ssr-3ed108ea.js';
const subscriber_queue = [];
function readable(value, start) {
@@ -102,4 +102,4 @@ function readonly(store) {
}
export { readonly as a, derived as d, readable as r, writable as w };
//# sourceMappingURL=index3-1a2d4d4c.js.map
//# sourceMappingURL=index2-d2b6b2d2.js.map
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More