@typicalday/firegraph 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/editor/client/assets/index-BIwgcRWJ.js +411 -0
- package/dist/editor/client/assets/index-CJ4m_EOL.css +1 -0
- package/dist/editor/client/index.html +2 -2
- package/dist/editor/server/index.mjs +353 -10
- package/dist/index.cjs +20 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +20 -9
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/dist/editor/client/assets/index-B1nKCPMa.js +0 -411
- package/dist/editor/client/assets/index-CJJR5qe5.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Fira Code,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#475569}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-1\.5{left:.375rem}.right-0{right:0}.top-0{top:0}.top-full{top:100%}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[4\.5rem\]{margin-left:4.5rem}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[2px\]{height:2px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[420px\]{width:420px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-\[480px\]{min-width:480px}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[700px\]{max-width:700px}.max-w-\[80\%\]{max-width:80%}.max-w-\[85\%\]{max-width:85%}.max-w-\[90\%\]{max-width:90%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[slide-in-right_0\.2s_ease-out\]{animation:slide-in-right .2s ease-out}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-0\.5{row-gap:.125rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-slate-800\/50>:not([hidden])~:not([hidden]){border-color:#1e293b80}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-400{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/30{border-color:#f59e0b4d}.border-indigo-400{--tw-border-opacity: 1;border-color:rgb(129 140 248 / var(--tw-border-opacity, 1))}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.border-indigo-500\/20{border-color:#6366f133}.border-indigo-500\/30{border-color:#6366f14d}.border-indigo-500\/40{border-color:#6366f166}.border-indigo-500\/50{border-color:#6366f180}.border-indigo-500\/60{border-color:#6366f199}.border-red-500\/20{border-color:#ef444433}.border-red-500\/30{border-color:#ef44444d}.border-red-500\/50{border-color:#ef444480}.border-slate-400{--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity, 1))}.border-slate-500{--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity, 1))}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-slate-700\/40{border-color:#33415566}.border-slate-700\/50{border-color:#33415580}.border-slate-700\/60{border-color:#33415599}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.border-slate-800\/50{border-color:#1e293b80}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/20{background-color:#f59e0b33}.bg-amber-950\/30{background-color:#451a034d}.bg-black\/60{background-color:#0009}.bg-black\/70{background-color:#000000b3}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/15{background-color:#3b82f626}.bg-cyan-500{--tw-bg-opacity: 1;background-color:rgb(6 182 212 / var(--tw-bg-opacity, 1))}.bg-cyan-500\/15{background-color:#06b6d426}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/15{background-color:#10b98126}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-indigo-400{--tw-bg-opacity: 1;background-color:rgb(129 140 248 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo-500\/15{background-color:#6366f126}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-indigo-600\/20{background-color:#4f46e533}.bg-indigo-600\/30{background-color:#4f46e54d}.bg-indigo-950\/40{background-color:#1e1b4b66}.bg-indigo-950\/50{background-color:#1e1b4b80}.bg-lime-500{--tw-bg-opacity: 1;background-color:rgb(132 204 22 / var(--tw-bg-opacity, 1))}.bg-lime-500\/15{background-color:#84cc1626}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-orange-500\/15{background-color:#f9731626}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-pink-500\/15{background-color:#ec489926}.bg-red-500\/10{background-color:#ef44441a}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-red-600\/20{background-color:#dc262633}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-rose-500\/15{background-color:#f43f5e26}.bg-slate-500\/15{background-color:#64748b26}.bg-slate-600{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-700\/50{background-color:#33415580}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-800\/40{background-color:#1e293b66}.bg-slate-800\/50{background-color:#1e293b80}.bg-slate-800\/60{background-color:#1e293b99}.bg-slate-800\/80{background-color:#1e293bcc}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-900\/80{background-color:#0f172acc}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.bg-slate-950\/90{background-color:#020617e6}.bg-teal-500{--tw-bg-opacity: 1;background-color:rgb(20 184 166 / var(--tw-bg-opacity, 1))}.bg-teal-500\/15{background-color:#14b8a626}.bg-violet-500{--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity, 1))}.bg-violet-500\/15{background-color:#8b5cf626}.bg-violet-500\/20{background-color:#8b5cf633}.bg-violet-600\/20{background-color:#7c3aed33}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-5{padding-bottom:1.25rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-1\.5{padding-right:.375rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-text-bottom{vertical-align:text-bottom}.font-\[\'Inter\'\]{font-family:Inter}.font-mono{font-family:JetBrains Mono,Fira Code,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-wider{letter-spacing:.05em}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.text-amber-300\/80{color:#fcd34dcc}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-400\/40{color:#fbbf2466}.text-amber-400\/50{color:#fbbf2480}.text-amber-400\/60{color:#fbbf2499}.text-amber-400\/70{color:#fbbf24b3}.text-amber-400\/80{color:#fbbf24cc}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-500\/60{color:#f59e0b99}.text-amber-500\/70{color:#f59e0bb3}.text-amber-500\/80{color:#f59e0bcc}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-indigo-200{--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity, 1))}.text-indigo-300{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-indigo-400\/80{color:#818cf8cc}.text-indigo-500\/60{color:#6366f199}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-lime-400{--tw-text-opacity: 1;color:rgb(163 230 53 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-pink-400{--tw-text-opacity: 1;color:rgb(244 114 182 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-400\/60{color:#f8717199}.text-rose-400{--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.text-violet-300{--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-50{opacity:.5}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/50{--tw-shadow-color: rgb(0 0 0 / .5);--tw-shadow: var(--tw-shadow-colored)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-indigo-500\/30{--tw-ring-color: rgb(99 102 241 / .3)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.drill-perspective{perspective:1200px;perspective-origin:center center;position:relative;overflow:hidden}.drill-frame{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .25s cubic-bezier(.4,0,.2,1),filter .25s cubic-bezier(.4,0,.2,1);will-change:transform,opacity,filter;transform-style:preserve-3d;backface-visibility:hidden}.drill-frame--active{transform:translateZ(0);opacity:1;filter:blur(0);z-index:10}.drill-frame--behind{transform:translateZ(-100px) scale(.95);opacity:.2;filter:blur(4px);z-index:5;pointer-events:none}.drill-frame--entering{transform:translateZ(-200px) scale(.9);opacity:0}.drill-frame--hidden{transform:translateZ(-200px) scale(.85);opacity:0;z-index:0;pointer-events:none}@media(max-width:768px){.drill-perspective{perspective:800px}.drill-frame--behind{transform:translateZ(-50px) scale(.97);opacity:.08;filter:blur(3px)}}@media(prefers-reduced-motion:reduce){.drill-frame{transition:opacity .15s ease;transform:none!important}.drill-frame--behind{opacity:.05}}@keyframes slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes chat-breathe{0%,to{opacity:.35;box-shadow:0 0 8px 1px #34d3994d}50%{opacity:.7;box-shadow:0 0 16px 3px #34d39980}}@keyframes chat-overlay-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.chat-breathe-line{animation:none!important;opacity:.5}}.placeholder\:text-slate-500::-moz-placeholder{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.placeholder\:text-slate-500::placeholder{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.placeholder\:text-slate-600::-moz-placeholder{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.placeholder\:text-slate-600::placeholder{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.hover\:border-amber-400\/40:hover{border-color:#fbbf2466}.hover\:border-amber-500\/30:hover{border-color:#f59e0b4d}.hover\:border-indigo-400\/50:hover{border-color:#818cf880}.hover\:border-indigo-500\/40:hover{border-color:#6366f166}.hover\:border-indigo-500\/50:hover{border-color:#6366f180}.hover\:border-red-500\/50:hover{border-color:#ef444480}.hover\:bg-amber-900\/40:hover{background-color:#78350f66}.hover\:bg-emerald-500:hover{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-600\/10:hover{background-color:#4f46e51a}.hover\:bg-indigo-600\/30:hover{background-color:#4f46e54d}.hover\:bg-indigo-600\/40:hover{background-color:#4f46e566}.hover\:bg-indigo-900\/50:hover{background-color:#312e8180}.hover\:bg-red-500:hover{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600\/30:hover{background-color:#dc26264d}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-700\/60:hover{background-color:#33415599}.hover\:bg-slate-700\/80:hover{background-color:#334155cc}.hover\:bg-slate-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-800\/30:hover{background-color:#1e293b4d}.hover\:bg-slate-800\/50:hover{background-color:#1e293b80}.hover\:bg-slate-800\/60:hover{background-color:#1e293b99}.hover\:bg-violet-600\/30:hover{background-color:#7c3aed4d}.hover\:text-amber-300:hover{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.hover\:text-amber-400\/70:hover{color:#fbbf24b3}.hover\:text-indigo-200:hover{--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity, 1))}.hover\:text-indigo-300:hover{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-slate-200:hover{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.hover\:text-slate-300:hover{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.hover\:text-slate-400:hover{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.hover\:opacity-80:hover{opacity:.8}.focus\:border-emerald-500\/50:focus{border-color:#10b98180}.focus\:border-indigo-500:focus{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.focus\:border-red-500\/50:focus{border-color:#ef444480}.focus\:border-slate-500:focus{--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-emerald-500\/20:focus{--tw-ring-color: rgb(16 185 129 / .2)}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-indigo-300{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
8
8
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
9
9
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
|
|
10
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
10
|
+
<script type="module" crossorigin src="/assets/index-BIwgcRWJ.js"></script>
|
|
11
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CJ4m_EOL.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body class="bg-slate-950 text-slate-100 font-['Inter'] antialiased">
|
|
14
14
|
<div id="root"></div>
|
|
@@ -29316,6 +29316,323 @@ var require_ajv = __commonJS({
|
|
|
29316
29316
|
}
|
|
29317
29317
|
});
|
|
29318
29318
|
|
|
29319
|
+
// node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/formats.js
|
|
29320
|
+
var require_formats2 = __commonJS({
|
|
29321
|
+
"node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/formats.js"(exports) {
|
|
29322
|
+
"use strict";
|
|
29323
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29324
|
+
exports.formatNames = exports.fastFormats = exports.fullFormats = void 0;
|
|
29325
|
+
function fmtDef(validate, compare) {
|
|
29326
|
+
return { validate, compare };
|
|
29327
|
+
}
|
|
29328
|
+
exports.fullFormats = {
|
|
29329
|
+
// date: http://tools.ietf.org/html/rfc3339#section-5.6
|
|
29330
|
+
date: fmtDef(date5, compareDate),
|
|
29331
|
+
// date-time: http://tools.ietf.org/html/rfc3339#section-5.6
|
|
29332
|
+
time: fmtDef(getTime(true), compareTime),
|
|
29333
|
+
"date-time": fmtDef(getDateTime(true), compareDateTime),
|
|
29334
|
+
"iso-time": fmtDef(getTime(), compareIsoTime),
|
|
29335
|
+
"iso-date-time": fmtDef(getDateTime(), compareIsoDateTime),
|
|
29336
|
+
// duration: https://tools.ietf.org/html/rfc3339#appendix-A
|
|
29337
|
+
duration: /^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,
|
|
29338
|
+
uri,
|
|
29339
|
+
"uri-reference": /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,
|
|
29340
|
+
// uri-template: https://tools.ietf.org/html/rfc6570
|
|
29341
|
+
"uri-template": /^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,
|
|
29342
|
+
// For the source: https://gist.github.com/dperini/729294
|
|
29343
|
+
// For test cases: https://mathiasbynens.be/demo/url-regex
|
|
29344
|
+
url: /^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,
|
|
29345
|
+
email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
|
|
29346
|
+
hostname: /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,
|
|
29347
|
+
// optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
|
|
29348
|
+
ipv4: /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,
|
|
29349
|
+
ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,
|
|
29350
|
+
regex,
|
|
29351
|
+
// uuid: http://tools.ietf.org/html/rfc4122
|
|
29352
|
+
uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,
|
|
29353
|
+
// JSON-pointer: https://tools.ietf.org/html/rfc6901
|
|
29354
|
+
// uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A
|
|
29355
|
+
"json-pointer": /^(?:\/(?:[^~/]|~0|~1)*)*$/,
|
|
29356
|
+
"json-pointer-uri-fragment": /^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,
|
|
29357
|
+
// relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00
|
|
29358
|
+
"relative-json-pointer": /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,
|
|
29359
|
+
// the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types
|
|
29360
|
+
// byte: https://github.com/miguelmota/is-base64
|
|
29361
|
+
byte,
|
|
29362
|
+
// signed 32 bit integer
|
|
29363
|
+
int32: { type: "number", validate: validateInt32 },
|
|
29364
|
+
// signed 64 bit integer
|
|
29365
|
+
int64: { type: "number", validate: validateInt64 },
|
|
29366
|
+
// C-type float
|
|
29367
|
+
float: { type: "number", validate: validateNumber },
|
|
29368
|
+
// C-type double
|
|
29369
|
+
double: { type: "number", validate: validateNumber },
|
|
29370
|
+
// hint to the UI to hide input strings
|
|
29371
|
+
password: true,
|
|
29372
|
+
// unchecked string payload
|
|
29373
|
+
binary: true
|
|
29374
|
+
};
|
|
29375
|
+
exports.fastFormats = {
|
|
29376
|
+
...exports.fullFormats,
|
|
29377
|
+
date: fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d$/, compareDate),
|
|
29378
|
+
time: fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareTime),
|
|
29379
|
+
"date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, compareDateTime),
|
|
29380
|
+
"iso-time": fmtDef(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareIsoTime),
|
|
29381
|
+
"iso-date-time": fmtDef(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, compareIsoDateTime),
|
|
29382
|
+
// uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js
|
|
29383
|
+
uri: /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,
|
|
29384
|
+
"uri-reference": /^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,
|
|
29385
|
+
// email (sources from jsen validator):
|
|
29386
|
+
// http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363
|
|
29387
|
+
// http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')
|
|
29388
|
+
email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i
|
|
29389
|
+
};
|
|
29390
|
+
exports.formatNames = Object.keys(exports.fullFormats);
|
|
29391
|
+
function isLeapYear(year) {
|
|
29392
|
+
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
29393
|
+
}
|
|
29394
|
+
var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
|
|
29395
|
+
var DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
29396
|
+
function date5(str) {
|
|
29397
|
+
const matches = DATE.exec(str);
|
|
29398
|
+
if (!matches)
|
|
29399
|
+
return false;
|
|
29400
|
+
const year = +matches[1];
|
|
29401
|
+
const month = +matches[2];
|
|
29402
|
+
const day = +matches[3];
|
|
29403
|
+
return month >= 1 && month <= 12 && day >= 1 && day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]);
|
|
29404
|
+
}
|
|
29405
|
+
function compareDate(d1, d2) {
|
|
29406
|
+
if (!(d1 && d2))
|
|
29407
|
+
return void 0;
|
|
29408
|
+
if (d1 > d2)
|
|
29409
|
+
return 1;
|
|
29410
|
+
if (d1 < d2)
|
|
29411
|
+
return -1;
|
|
29412
|
+
return 0;
|
|
29413
|
+
}
|
|
29414
|
+
var TIME = /^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;
|
|
29415
|
+
function getTime(strictTimeZone) {
|
|
29416
|
+
return function time3(str) {
|
|
29417
|
+
const matches = TIME.exec(str);
|
|
29418
|
+
if (!matches)
|
|
29419
|
+
return false;
|
|
29420
|
+
const hr = +matches[1];
|
|
29421
|
+
const min = +matches[2];
|
|
29422
|
+
const sec = +matches[3];
|
|
29423
|
+
const tz = matches[4];
|
|
29424
|
+
const tzSign = matches[5] === "-" ? -1 : 1;
|
|
29425
|
+
const tzH = +(matches[6] || 0);
|
|
29426
|
+
const tzM = +(matches[7] || 0);
|
|
29427
|
+
if (tzH > 23 || tzM > 59 || strictTimeZone && !tz)
|
|
29428
|
+
return false;
|
|
29429
|
+
if (hr <= 23 && min <= 59 && sec < 60)
|
|
29430
|
+
return true;
|
|
29431
|
+
const utcMin = min - tzM * tzSign;
|
|
29432
|
+
const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0);
|
|
29433
|
+
return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61;
|
|
29434
|
+
};
|
|
29435
|
+
}
|
|
29436
|
+
function compareTime(s1, s2) {
|
|
29437
|
+
if (!(s1 && s2))
|
|
29438
|
+
return void 0;
|
|
29439
|
+
const t1 = (/* @__PURE__ */ new Date("2020-01-01T" + s1)).valueOf();
|
|
29440
|
+
const t2 = (/* @__PURE__ */ new Date("2020-01-01T" + s2)).valueOf();
|
|
29441
|
+
if (!(t1 && t2))
|
|
29442
|
+
return void 0;
|
|
29443
|
+
return t1 - t2;
|
|
29444
|
+
}
|
|
29445
|
+
function compareIsoTime(t1, t2) {
|
|
29446
|
+
if (!(t1 && t2))
|
|
29447
|
+
return void 0;
|
|
29448
|
+
const a1 = TIME.exec(t1);
|
|
29449
|
+
const a2 = TIME.exec(t2);
|
|
29450
|
+
if (!(a1 && a2))
|
|
29451
|
+
return void 0;
|
|
29452
|
+
t1 = a1[1] + a1[2] + a1[3];
|
|
29453
|
+
t2 = a2[1] + a2[2] + a2[3];
|
|
29454
|
+
if (t1 > t2)
|
|
29455
|
+
return 1;
|
|
29456
|
+
if (t1 < t2)
|
|
29457
|
+
return -1;
|
|
29458
|
+
return 0;
|
|
29459
|
+
}
|
|
29460
|
+
var DATE_TIME_SEPARATOR = /t|\s/i;
|
|
29461
|
+
function getDateTime(strictTimeZone) {
|
|
29462
|
+
const time3 = getTime(strictTimeZone);
|
|
29463
|
+
return function date_time(str) {
|
|
29464
|
+
const dateTime = str.split(DATE_TIME_SEPARATOR);
|
|
29465
|
+
return dateTime.length === 2 && date5(dateTime[0]) && time3(dateTime[1]);
|
|
29466
|
+
};
|
|
29467
|
+
}
|
|
29468
|
+
function compareDateTime(dt1, dt2) {
|
|
29469
|
+
if (!(dt1 && dt2))
|
|
29470
|
+
return void 0;
|
|
29471
|
+
const d1 = new Date(dt1).valueOf();
|
|
29472
|
+
const d2 = new Date(dt2).valueOf();
|
|
29473
|
+
if (!(d1 && d2))
|
|
29474
|
+
return void 0;
|
|
29475
|
+
return d1 - d2;
|
|
29476
|
+
}
|
|
29477
|
+
function compareIsoDateTime(dt1, dt2) {
|
|
29478
|
+
if (!(dt1 && dt2))
|
|
29479
|
+
return void 0;
|
|
29480
|
+
const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);
|
|
29481
|
+
const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);
|
|
29482
|
+
const res = compareDate(d1, d2);
|
|
29483
|
+
if (res === void 0)
|
|
29484
|
+
return void 0;
|
|
29485
|
+
return res || compareTime(t1, t2);
|
|
29486
|
+
}
|
|
29487
|
+
var NOT_URI_FRAGMENT = /\/|:/;
|
|
29488
|
+
var URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;
|
|
29489
|
+
function uri(str) {
|
|
29490
|
+
return NOT_URI_FRAGMENT.test(str) && URI.test(str);
|
|
29491
|
+
}
|
|
29492
|
+
var BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;
|
|
29493
|
+
function byte(str) {
|
|
29494
|
+
BYTE.lastIndex = 0;
|
|
29495
|
+
return BYTE.test(str);
|
|
29496
|
+
}
|
|
29497
|
+
var MIN_INT32 = -(2 ** 31);
|
|
29498
|
+
var MAX_INT32 = 2 ** 31 - 1;
|
|
29499
|
+
function validateInt32(value) {
|
|
29500
|
+
return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;
|
|
29501
|
+
}
|
|
29502
|
+
function validateInt64(value) {
|
|
29503
|
+
return Number.isInteger(value);
|
|
29504
|
+
}
|
|
29505
|
+
function validateNumber() {
|
|
29506
|
+
return true;
|
|
29507
|
+
}
|
|
29508
|
+
var Z_ANCHOR = /[^\\]\\Z/;
|
|
29509
|
+
function regex(str) {
|
|
29510
|
+
if (Z_ANCHOR.test(str))
|
|
29511
|
+
return false;
|
|
29512
|
+
try {
|
|
29513
|
+
new RegExp(str);
|
|
29514
|
+
return true;
|
|
29515
|
+
} catch (e) {
|
|
29516
|
+
return false;
|
|
29517
|
+
}
|
|
29518
|
+
}
|
|
29519
|
+
}
|
|
29520
|
+
});
|
|
29521
|
+
|
|
29522
|
+
// node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/limit.js
|
|
29523
|
+
var require_limit = __commonJS({
|
|
29524
|
+
"node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/limit.js"(exports) {
|
|
29525
|
+
"use strict";
|
|
29526
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29527
|
+
exports.formatLimitDefinition = void 0;
|
|
29528
|
+
var ajv_1 = require_ajv();
|
|
29529
|
+
var codegen_1 = require_codegen();
|
|
29530
|
+
var ops = codegen_1.operators;
|
|
29531
|
+
var KWDs = {
|
|
29532
|
+
formatMaximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT },
|
|
29533
|
+
formatMinimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT },
|
|
29534
|
+
formatExclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE },
|
|
29535
|
+
formatExclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE }
|
|
29536
|
+
};
|
|
29537
|
+
var error48 = {
|
|
29538
|
+
message: ({ keyword, schemaCode }) => (0, codegen_1.str)`should be ${KWDs[keyword].okStr} ${schemaCode}`,
|
|
29539
|
+
params: ({ keyword, schemaCode }) => (0, codegen_1._)`{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`
|
|
29540
|
+
};
|
|
29541
|
+
exports.formatLimitDefinition = {
|
|
29542
|
+
keyword: Object.keys(KWDs),
|
|
29543
|
+
type: "string",
|
|
29544
|
+
schemaType: "string",
|
|
29545
|
+
$data: true,
|
|
29546
|
+
error: error48,
|
|
29547
|
+
code(cxt) {
|
|
29548
|
+
const { gen, data, schemaCode, keyword, it } = cxt;
|
|
29549
|
+
const { opts, self } = it;
|
|
29550
|
+
if (!opts.validateFormats)
|
|
29551
|
+
return;
|
|
29552
|
+
const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, "format");
|
|
29553
|
+
if (fCxt.$data)
|
|
29554
|
+
validate$DataFormat();
|
|
29555
|
+
else
|
|
29556
|
+
validateFormat();
|
|
29557
|
+
function validate$DataFormat() {
|
|
29558
|
+
const fmts = gen.scopeValue("formats", {
|
|
29559
|
+
ref: self.formats,
|
|
29560
|
+
code: opts.code.formats
|
|
29561
|
+
});
|
|
29562
|
+
const fmt = gen.const("fmt", (0, codegen_1._)`${fmts}[${fCxt.schemaCode}]`);
|
|
29563
|
+
cxt.fail$data((0, codegen_1.or)((0, codegen_1._)`typeof ${fmt} != "object"`, (0, codegen_1._)`${fmt} instanceof RegExp`, (0, codegen_1._)`typeof ${fmt}.compare != "function"`, compareCode(fmt)));
|
|
29564
|
+
}
|
|
29565
|
+
function validateFormat() {
|
|
29566
|
+
const format = fCxt.schema;
|
|
29567
|
+
const fmtDef = self.formats[format];
|
|
29568
|
+
if (!fmtDef || fmtDef === true)
|
|
29569
|
+
return;
|
|
29570
|
+
if (typeof fmtDef != "object" || fmtDef instanceof RegExp || typeof fmtDef.compare != "function") {
|
|
29571
|
+
throw new Error(`"${keyword}": format "${format}" does not define "compare" function`);
|
|
29572
|
+
}
|
|
29573
|
+
const fmt = gen.scopeValue("formats", {
|
|
29574
|
+
key: format,
|
|
29575
|
+
ref: fmtDef,
|
|
29576
|
+
code: opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(format)}` : void 0
|
|
29577
|
+
});
|
|
29578
|
+
cxt.fail$data(compareCode(fmt));
|
|
29579
|
+
}
|
|
29580
|
+
function compareCode(fmt) {
|
|
29581
|
+
return (0, codegen_1._)`${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;
|
|
29582
|
+
}
|
|
29583
|
+
},
|
|
29584
|
+
dependencies: ["format"]
|
|
29585
|
+
};
|
|
29586
|
+
var formatLimitPlugin = (ajv2) => {
|
|
29587
|
+
ajv2.addKeyword(exports.formatLimitDefinition);
|
|
29588
|
+
return ajv2;
|
|
29589
|
+
};
|
|
29590
|
+
exports.default = formatLimitPlugin;
|
|
29591
|
+
}
|
|
29592
|
+
});
|
|
29593
|
+
|
|
29594
|
+
// node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/index.js
|
|
29595
|
+
var require_dist = __commonJS({
|
|
29596
|
+
"node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.18.0/node_modules/ajv-formats/dist/index.js"(exports, module) {
|
|
29597
|
+
"use strict";
|
|
29598
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29599
|
+
var formats_1 = require_formats2();
|
|
29600
|
+
var limit_1 = require_limit();
|
|
29601
|
+
var codegen_1 = require_codegen();
|
|
29602
|
+
var fullName = new codegen_1.Name("fullFormats");
|
|
29603
|
+
var fastName = new codegen_1.Name("fastFormats");
|
|
29604
|
+
var formatsPlugin = (ajv2, opts = { keywords: true }) => {
|
|
29605
|
+
if (Array.isArray(opts)) {
|
|
29606
|
+
addFormats2(ajv2, opts, formats_1.fullFormats, fullName);
|
|
29607
|
+
return ajv2;
|
|
29608
|
+
}
|
|
29609
|
+
const [formats, exportName] = opts.mode === "fast" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];
|
|
29610
|
+
const list = opts.formats || formats_1.formatNames;
|
|
29611
|
+
addFormats2(ajv2, list, formats, exportName);
|
|
29612
|
+
if (opts.keywords)
|
|
29613
|
+
(0, limit_1.default)(ajv2);
|
|
29614
|
+
return ajv2;
|
|
29615
|
+
};
|
|
29616
|
+
formatsPlugin.get = (name, mode = "full") => {
|
|
29617
|
+
const formats = mode === "fast" ? formats_1.fastFormats : formats_1.fullFormats;
|
|
29618
|
+
const f = formats[name];
|
|
29619
|
+
if (!f)
|
|
29620
|
+
throw new Error(`Unknown format "${name}"`);
|
|
29621
|
+
return f;
|
|
29622
|
+
};
|
|
29623
|
+
function addFormats2(ajv2, list, fs3, exportName) {
|
|
29624
|
+
var _a2;
|
|
29625
|
+
var _b;
|
|
29626
|
+
(_a2 = (_b = ajv2.opts.code).formats) !== null && _a2 !== void 0 ? _a2 : _b.formats = (0, codegen_1._)`require("ajv-formats/dist/formats").${exportName}`;
|
|
29627
|
+
for (const f of list)
|
|
29628
|
+
ajv2.addFormat(f, fs3[f]);
|
|
29629
|
+
}
|
|
29630
|
+
module.exports = exports = formatsPlugin;
|
|
29631
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29632
|
+
exports.default = formatsPlugin;
|
|
29633
|
+
}
|
|
29634
|
+
});
|
|
29635
|
+
|
|
29319
29636
|
// editor/server/index.ts
|
|
29320
29637
|
var import_express = __toESM(require_express2(), 1);
|
|
29321
29638
|
var import_cors = __toESM(require_lib3(), 1);
|
|
@@ -30005,10 +30322,13 @@ var GraphTransactionImpl = class {
|
|
|
30005
30322
|
}
|
|
30006
30323
|
async updateNode(uid, data) {
|
|
30007
30324
|
const docId = computeNodeDocId(uid);
|
|
30008
|
-
|
|
30009
|
-
...data,
|
|
30325
|
+
const update = {
|
|
30010
30326
|
updatedAt: FieldValue3.serverTimestamp()
|
|
30011
|
-
}
|
|
30327
|
+
};
|
|
30328
|
+
for (const [k, v] of Object.entries(data)) {
|
|
30329
|
+
update[`data.${k}`] = v;
|
|
30330
|
+
}
|
|
30331
|
+
this.adapter.updateDoc(docId, update);
|
|
30012
30332
|
}
|
|
30013
30333
|
async removeNode(uid) {
|
|
30014
30334
|
const docId = computeNodeDocId(uid);
|
|
@@ -30058,10 +30378,13 @@ var GraphBatchImpl = class {
|
|
|
30058
30378
|
}
|
|
30059
30379
|
async updateNode(uid, data) {
|
|
30060
30380
|
const docId = computeNodeDocId(uid);
|
|
30061
|
-
|
|
30062
|
-
...data,
|
|
30381
|
+
const update = {
|
|
30063
30382
|
updatedAt: FieldValue4.serverTimestamp()
|
|
30064
|
-
}
|
|
30383
|
+
};
|
|
30384
|
+
for (const [k, v] of Object.entries(data)) {
|
|
30385
|
+
update[`data.${k}`] = v;
|
|
30386
|
+
}
|
|
30387
|
+
this.adapter.updateDoc(docId, update);
|
|
30065
30388
|
}
|
|
30066
30389
|
async removeNode(uid) {
|
|
30067
30390
|
const docId = computeNodeDocId(uid);
|
|
@@ -30223,7 +30546,9 @@ import { createHash as createHash3 } from "node:crypto";
|
|
|
30223
30546
|
|
|
30224
30547
|
// src/json-schema.ts
|
|
30225
30548
|
var import_ajv = __toESM(require_ajv(), 1);
|
|
30549
|
+
var import_ajv_formats = __toESM(require_dist(), 1);
|
|
30226
30550
|
var ajv = new import_ajv.default({ allErrors: true, strict: false });
|
|
30551
|
+
(0, import_ajv_formats.default)(ajv);
|
|
30227
30552
|
function compileSchema(schema, label) {
|
|
30228
30553
|
const validate = ajv.compile(schema);
|
|
30229
30554
|
return (data) => {
|
|
@@ -31174,10 +31499,13 @@ var GraphClientImpl = class _GraphClientImpl {
|
|
|
31174
31499
|
}
|
|
31175
31500
|
async updateNode(uid, data) {
|
|
31176
31501
|
const docId = computeNodeDocId(uid);
|
|
31177
|
-
|
|
31178
|
-
...data,
|
|
31502
|
+
const update = {
|
|
31179
31503
|
updatedAt: FieldValue5.serverTimestamp()
|
|
31180
|
-
}
|
|
31504
|
+
};
|
|
31505
|
+
for (const [k, v] of Object.entries(data)) {
|
|
31506
|
+
update[`data.${k}`] = v;
|
|
31507
|
+
}
|
|
31508
|
+
await this.adapter.updateDoc(docId, update);
|
|
31181
31509
|
}
|
|
31182
31510
|
async removeNode(uid) {
|
|
31183
31511
|
const docId = computeNodeDocId(uid);
|
|
@@ -49598,15 +49926,30 @@ var appRouter = t.router({
|
|
|
49598
49926
|
collectionName: external_exports.string(),
|
|
49599
49927
|
params: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
49600
49928
|
cursor: external_exports.string().optional(),
|
|
49601
|
-
limit: external_exports.number().int().min(1).max(100).default(50)
|
|
49929
|
+
limit: external_exports.number().int().min(1).max(100).default(50),
|
|
49930
|
+
where: external_exports.array(external_exports.object({
|
|
49931
|
+
field: external_exports.string(),
|
|
49932
|
+
op: external_exports.string(),
|
|
49933
|
+
value: external_exports.union([external_exports.string(), external_exports.number(), external_exports.boolean()])
|
|
49934
|
+
})).optional()
|
|
49602
49935
|
})).query(async ({ ctx, input }) => {
|
|
49603
49936
|
const def = getCollectionDef(ctx, input.collectionName);
|
|
49604
49937
|
const colPath = substitutePathTemplate(def.path, input.params ?? {});
|
|
49605
49938
|
const col = ctx.db.collection(colPath);
|
|
49939
|
+
const allowedOps = ["==", "!=", "<", "<=", ">", ">="];
|
|
49940
|
+
const schemaFieldNames = def.fields.length > 0 ? new Set(def.fields.map((f) => f.name)) : null;
|
|
49941
|
+
const safeFieldNameRe = /^[a-zA-Z_][a-zA-Z0-9_.]*$/;
|
|
49606
49942
|
let query = col;
|
|
49607
49943
|
if (def.typeField && def.typeValue !== void 0) {
|
|
49608
49944
|
query = query.where(def.typeField, "==", def.typeValue);
|
|
49609
49945
|
}
|
|
49946
|
+
if (input.where?.length) {
|
|
49947
|
+
for (const clause of input.where) {
|
|
49948
|
+
if (!allowedOps.includes(clause.op)) continue;
|
|
49949
|
+
if (schemaFieldNames ? !schemaFieldNames.has(clause.field) : !safeFieldNameRe.test(clause.field)) continue;
|
|
49950
|
+
query = query.where(clause.field, clause.op, clause.value);
|
|
49951
|
+
}
|
|
49952
|
+
}
|
|
49610
49953
|
if (def.defaultOrderBy) {
|
|
49611
49954
|
query = query.orderBy(def.defaultOrderBy.field, def.defaultOrderBy.direction);
|
|
49612
49955
|
} else {
|
package/dist/index.cjs
CHANGED
|
@@ -793,10 +793,13 @@ var GraphTransactionImpl = class {
|
|
|
793
793
|
}
|
|
794
794
|
async updateNode(uid, data) {
|
|
795
795
|
const docId = computeNodeDocId(uid);
|
|
796
|
-
|
|
797
|
-
...data,
|
|
796
|
+
const update = {
|
|
798
797
|
updatedAt: import_firestore3.FieldValue.serverTimestamp()
|
|
799
|
-
}
|
|
798
|
+
};
|
|
799
|
+
for (const [k, v] of Object.entries(data)) {
|
|
800
|
+
update[`data.${k}`] = v;
|
|
801
|
+
}
|
|
802
|
+
this.adapter.updateDoc(docId, update);
|
|
800
803
|
}
|
|
801
804
|
async removeNode(uid) {
|
|
802
805
|
const docId = computeNodeDocId(uid);
|
|
@@ -846,10 +849,13 @@ var GraphBatchImpl = class {
|
|
|
846
849
|
}
|
|
847
850
|
async updateNode(uid, data) {
|
|
848
851
|
const docId = computeNodeDocId(uid);
|
|
849
|
-
|
|
850
|
-
...data,
|
|
852
|
+
const update = {
|
|
851
853
|
updatedAt: import_firestore4.FieldValue.serverTimestamp()
|
|
852
|
-
}
|
|
854
|
+
};
|
|
855
|
+
for (const [k, v] of Object.entries(data)) {
|
|
856
|
+
update[`data.${k}`] = v;
|
|
857
|
+
}
|
|
858
|
+
this.adapter.updateDoc(docId, update);
|
|
853
859
|
}
|
|
854
860
|
async removeNode(uid) {
|
|
855
861
|
const docId = computeNodeDocId(uid);
|
|
@@ -1011,7 +1017,9 @@ var import_node_crypto3 = require("crypto");
|
|
|
1011
1017
|
|
|
1012
1018
|
// src/json-schema.ts
|
|
1013
1019
|
var import_ajv = __toESM(require("ajv"), 1);
|
|
1020
|
+
var import_ajv_formats = __toESM(require("ajv-formats"), 1);
|
|
1014
1021
|
var ajv = new import_ajv.default({ allErrors: true, strict: false });
|
|
1022
|
+
(0, import_ajv_formats.default)(ajv);
|
|
1015
1023
|
function compileSchema(schema, label) {
|
|
1016
1024
|
const validate = ajv.compile(schema);
|
|
1017
1025
|
return (data) => {
|
|
@@ -1973,10 +1981,13 @@ var GraphClientImpl = class _GraphClientImpl {
|
|
|
1973
1981
|
}
|
|
1974
1982
|
async updateNode(uid, data) {
|
|
1975
1983
|
const docId = computeNodeDocId(uid);
|
|
1976
|
-
|
|
1977
|
-
...data,
|
|
1984
|
+
const update = {
|
|
1978
1985
|
updatedAt: import_firestore5.FieldValue.serverTimestamp()
|
|
1979
|
-
}
|
|
1986
|
+
};
|
|
1987
|
+
for (const [k, v] of Object.entries(data)) {
|
|
1988
|
+
update[`data.${k}`] = v;
|
|
1989
|
+
}
|
|
1990
|
+
await this.adapter.updateDoc(docId, update);
|
|
1980
1991
|
}
|
|
1981
1992
|
async removeNode(uid) {
|
|
1982
1993
|
const docId = computeNodeDocId(uid);
|