diff --git a/.vsls.json b/.vsls.json new file mode 100644 index 0000000..ef6c53d --- /dev/null +++ b/.vsls.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json.schemastore.org/vsls.json", + "excludeFiles": [ + "nuxt-web" + ] +} diff --git a/nuxt-web/.gitignore b/nuxt-web/.gitignore new file mode 100644 index 0000000..4a7f73a --- /dev/null +++ b/nuxt-web/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/nuxt-web/BOOTSTRAP_NOTES.md b/nuxt-web/BOOTSTRAP_NOTES.md new file mode 100644 index 0000000..518ee48 --- /dev/null +++ b/nuxt-web/BOOTSTRAP_NOTES.md @@ -0,0 +1,31 @@ +# Bootstrap Notes + +Use this file as the short operational companion to the planning docs when initializing `nuxt-web/`. + +## Preconditions + +- Branch: `feat/nuxt-migration` +- Planning docs under `../docs/plan-nuxt-migration/` have been reviewed +- Root-level static files remain untouched + +## Bootstrap Order + +1. Create the Nuxt seed in `/tmp/agweb-nuxt-seed` +2. Copy only the framework baseline into `nuxt-web/` +3. Rewrite dependencies for AgWeb +4. Install packages inside `nuxt-web/` +5. Add the minimal app shell +6. Verify: + - `cd nuxt-web && npm run dev` + - `cd nuxt-web && npm run generate` + +## Do Not + +- Do not copy `node_modules/` or `.output/` from the seed +- Do not modify root-level legacy HTML, CSS, JS, or images +- Do not start page migration before bootstrap verification passes + +## Script Entry Points + +- `./scripts/init-nuxt-foundation.sh` +- `./scripts/verify-generated-site.sh` diff --git a/nuxt-web/README.md b/nuxt-web/README.md new file mode 100644 index 0000000..32fe8de --- /dev/null +++ b/nuxt-web/README.md @@ -0,0 +1,48 @@ +# nuxt-web + +This directory is the new Nuxt 3 application for the AgWeb migration. + +## Boundary + +- Write all new application code here. +- Do not modify the legacy root-level static site files during migration. +- Use the root-level static files as read-only reference sources. + +## Purpose + +`nuxt-web/` will eventually contain: + +- Nuxt application config +- pages +- layouts +- components +- composables +- content collections +- public assets +- verification scripts + +## Bootstrap Entry Points + +Planning references: + +- `../docs/plan-nuxt-migration/task-2-bootstrap-steps.md` +- `../docs/plan-nuxt-migration/source-reference-workflow.md` +- `../docs/plan-nuxt-migration/verification-matrix.md` + +Scripts: + +- `scripts/init-nuxt-foundation.sh` +- `scripts/verify-generated-site.sh` + +## Expected Workflow + +1. Bootstrap the Nuxt foundation in this directory. +2. Add shared assets and shared shell components. +3. Migrate content collections. +4. Migrate page batches. +5. Wire SEO, prerender, and redirects. +6. Run generated-site smoke tests. + +## Current Status + +This directory is intentionally minimal and is being prepared before the first real framework bootstrap. diff --git a/nuxt-web/app.vue b/nuxt-web/app.vue new file mode 100644 index 0000000..f8eacfa --- /dev/null +++ b/nuxt-web/app.vue @@ -0,0 +1,5 @@ + diff --git a/nuxt-web/assets/fonts b/nuxt-web/assets/fonts new file mode 120000 index 0000000..18e2e13 --- /dev/null +++ b/nuxt-web/assets/fonts @@ -0,0 +1 @@ +../public/fonts \ No newline at end of file diff --git a/nuxt-web/assets/images b/nuxt-web/assets/images new file mode 120000 index 0000000..8a455fe --- /dev/null +++ b/nuxt-web/assets/images @@ -0,0 +1 @@ +../public/images \ No newline at end of file diff --git a/nuxt-web/assets/styles/base/about.css b/nuxt-web/assets/styles/base/about.css new file mode 100644 index 0000000..2417215 --- /dev/null +++ b/nuxt-web/assets/styles/base/about.css @@ -0,0 +1,119 @@ +/*= Reset =*/ +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,p,blockquote,th,td,figure{margin:0;padding:0;} +article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;} +table{border-collapse:collapse;border-spacing:0;} +caption,th{font-weight:normal;text-align:left;} +fieldset,img{border:0;} +ul li{list-style:none;} +h1,h2,h3,h4,h5,h6{font-size:100%;} +h5{font-size:18px;margin-bottom:20px;color:#666;} +h5 span{font-size:12px;color:#ccc;font-weight:normal;} +blockquote:before,blockquote:after,q:before,q:after{content:"";} +html{-webkit-text-size-adjust:none;-ms-text-size-adjust:none;} +body{font:normal 14px/24px "Helvetica Neue",Helvetica,STheiti,"Microsoft Yahei","冬青黑体简体中文 w3",宋体,Arial,Tahoma,sans-serif,serif;word-wrap:break-word;background: #F0F0F0;} +input,button,textarea,select,option,optiongroup{font-family:inherit;font-size:inherit;} +code,pre{font-family:"Microsoft YaHei",Consolas,"Courier New",monospace;} +.bw0{border: none !important;} +*:focus{outline:0;} +legend{color:#000;} +input,select{vertical-align:middle;} +button{overflow:visible;} +input.button,button{cursor:pointer;} +button,input,select,textarea{margin:0;} +textarea{overflow:auto;resize:none;} +label[for],input[type="button"],input[type="submit"],input[type="reset"]{cursor:pointer;} +input[type="button"]::-moz-focus-inner,input[type="submit"]::-moz-focus-inner,input[type="reset"]::-moz-focus-inner,button::-moz-focus-inner{border:0;padding:0;} +a { text-decoration:none;color:#1C3D72 } +img{-ms-interpolation-mode:bicubic;} +/* new clearfix */ +.clearfix:after { +visibility: hidden; +display: block; +font-size: 0; +content: " "; +clear: both; +height: 0; +} +* html .clearfix { zoom: 1; } /* IE6 */ +*:first-child+html .clearfix { zoom: 1; } /* IE7 */ +.hidden{display:none;} +.last{border-bottom:none !important;} +blockquote{background:#f9f9f9;padding:8px 20px;border:1px solid #ccc;} +.page { display:table;margin:0 auto;background:#fff;-moz-box-shadow: 0 5px 20px #CCCCCC;-webkit-box-shadow: 0 5px 20px #CCCCCC;box-shadow: 0 5px 20px #CCCCCC;} +.about { box-shadow:0;-webkit-box-shadow:0;-moz-box-shadow:0; } +.header { width:940px;height:90px;margin:0 auto;z-index:8; } +.logo { margin:22px 0 0 0;float:left;display:inline; } +.link { margin-top:30px;float:right;text-align:right; _width:718px; } +.link li { float:left;display:inline;margin-left:60px; } +.link li a{color:#4F4E4E;font-size:16px;font-weight:500;padding-bottom:6px;display:block;} +.link li.active{border-bottom:2px solid #0066ff;} +.link li.active a{color:#0066FF } +.link li:hover { border-bottom:2px solid #0066ff;color:#0066FF } +.link li a:hover{color:#0066FF } +.adlist{padding:20px;} +.adlist li{float:left;display:inline;margin-left:30px;margin-bottom:20px;width:110px;} + +.main { width:100%;margin:40px auto 10px auto;font-size:14px;display:table;padding-bottom:10px; border-bottom:1px solid #EEEEEE} +.info { width:300px;float:left;margin-right:20px; } +.info h3 { width:300px;height:26px;background:url('../../images/ictb.png') no-repeat;font-size:0;margin-bottom:8px; } +.info ul{margin-left:-10px;} +.info ul li{list-style:none;float:left;width:140px;padding-left:0;background:none;margin-left:10px;} +.info ul{margin-left:-10px;} +.b2 h3 { background-position:0 -26px; } +.b3 { margin:0;position:relative; } +.b3 span{position:absolute;right:10px;top:0;background:url('../../images/morelink.gif') no-repeat left center;padding-left:12px;} +.b3 span a{color:#8C8C8C;font-weight:600} +.b3 h3 { background-position:0 -52px; } +.info li { padding:3px 0 3px 12px;background:url('../../images/dian.png') 2px center no-repeat; } +.info li a { color:#8c8c8c; } +.info p { color:#8c8c8c; } +.info p img { display:table;margin:10px 0; } +.morelink{padding-top:20px;} +.morelink li{float:left;width:180px;} + +.box { width:940px;margin:18px auto 0 auto; } +.left { width:140px;border-bottom:2px solid #DDD;background:#FFF;float:left; } +.left li:hover { border-left:3px solid #0066ff; } +.left li a { height:40px;line-height:40px;display:block;color:#333 } +.left li a:hover,.left li.active a{color:#0066FF} +.left li.active{border-left:3px solid #0066ff;} +.left li { + border-left:3px solid #fff; + border-bottom: 1px solid #EEEEEE; + font-size: 14px; + height: 40px; + margin-bottom: 1px; + overflow: hidden; + padding-left: 25px; +} + +.event_year { width:60px;border-bottom:2px solid #DDD;text-align:center;float:left;margin-top:10px; } +.event_year li { height:40px;line-height:40px;background:#FFF;margin-bottom:1px;font-size:18px;color:#828282;cursor:pointer; } +.event_year li.current { width:61px;background:#0066ff url('../../images/jian.png') 60px 0 no-repeat;color:#FFF;text-align:left;padding-left:9px; } +.event_list { width:850px;float:right;background:url('../../images/dian3.png') 139px 0 repeat-y;margin:10px 0 20px 0; } +.event_list h3 { margin:0 0 10px 132px;font-size:24px;font-family:Georgia;color:#0066ff;padding-left:25px;background:url('../../images/jian.png') 0 -45px no-repeat;height:38px;line-height:30px;font-style:italic; } +.event_list li { background:url('../../images/jian.png') 136px -80px no-repeat; } +.event_list li span { width:127px;text-align:right;display:block;float:left;margin-top:10px; } +.event_list li p { width:680px;margin-left:24px;display:inline-block;padding-left:10px;background:url('../../images/jian.png') -21px 0 no-repeat;line-height:25px;_float:left; } +.event_list li p span { width:650px;text-align:left;border-bottom:2px solid #DDD;padding:10px 15px;background:#FFF;margin:0; } + +.titlelist{line-height:24px;color: #8C8C8C;padding-bottom:20px;} +.titlelist dt { font-weight: bold;color:#666;white-space: nowrap;margin:10px;} +.titlelist dd {padding-left: 13px;} +h1 { + font-family: Tahoma,Arial,sans-serif; + font-size: 14px; + margin-bottom: 15px; + padding-bottom: 12px; +} +.hr { + border-top: 1px solid #CCD5DE; + font-size: 0; + height: 0; + line-height: 0; + margin: 15px 0; +} +.red { + color: #0065CB; + font-size:15px; +} diff --git a/nuxt-web/assets/styles/base/component.css b/nuxt-web/assets/styles/base/component.css new file mode 100644 index 0000000..339af8b --- /dev/null +++ b/nuxt-web/assets/styles/base/component.css @@ -0,0 +1,189 @@ +@font-face { + font-family: 'ecoico'; + src:url('/fonts/timelineicons/ecoico.eot'); + src:url('/fonts/timelineicons/ecoico.eot?#iefix') format('embedded-opentype'), + url('/fonts/timelineicons/ecoico.woff') format('woff'), + url('/fonts/timelineicons/ecoico.ttf') format('truetype'), + url('/fonts/timelineicons/ecoico.svg#ecoico') format('svg'); + font-weight: normal; + font-style: normal; +} /* Made with http://icomoon.io/ */ + +.cbp_tmtimeline { + margin: 30px 0 0 0; + padding: 0; + list-style: none; + position: relative; +} + +/* The line */ +.cbp_tmtimeline:before { + content: ''; + position: absolute; + top: 0; + bottom: 0; + width: 5px; + background: #afdcf8; + left: 12.3%; + margin-left: -10px; +} + +/* The date/time */ +.cbp_tmtimeline > li .cbp_tmtime { + display: block; + width: ; + padding-right: 100px; + position: absolute; +} + +.cbp_tmtimeline > li .cbp_tmtime span { + display: block; + text-align: right; +} + +.cbp_tmtimeline > li .cbp_tmtime span:first-child { + font-size: 0.9em; + color: #bdd0db; +} + +.cbp_tmtimeline > li .cbp_tmtime span:last-child { + font-size: 1.9em; + color: #3594cb; +} + +.cbp_tmtimeline > li:nth-child(odd) .cbp_tmtime span:last-child { + color: #6cbfee; +} + +/* Right content */ +.cbp_tmtimeline > li .cbp_tmlabel { + margin: 0 0 15px 17%; + background: #3594cb; + color: #fff; + padding: .5em; + font-size: 14px; + font-weight: 300; + line-height: 1.4; + position: relative; + border-radius: 5px; +} + +.cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel { + background: #6cbfee; +} + +.cbp_tmtimeline > li .cbp_tmlabel h2 { + margin-top: 0px; + padding: 0 0 10px 0; + border-bottom: 1px solid rgba(255,255,255,0.4); +} + +/* The triangle */ +.cbp_tmtimeline > li .cbp_tmlabel:after { + right: 100%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-right-color: #3594cb; + border-width: 10px; + top: 10px; +} + +.cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel:after { + border-right-color: #6cbfee; +} + +/* The icons */ +.cbp_tmtimeline > li .cbp_tmicon { + width: 40px; + height: 40px; + font-family: 'ecoico'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + font-size: 1.4em; + line-height: 40px; + -webkit-font-smoothing: antialiased; + position: absolute; + color: #fff; + background: #46a4da; + border-radius: 50%; + box-shadow: 0 0 0 8px #afdcf8; + text-align: center; + left: 12%; + top: 0; + margin: 0 0 0 -25px; +} + +.cbp_tmicon-phone:before { + content: "\e000"; +} + +.cbp_tmicon-screen:before { + content: "\e001"; +} + +.cbp_tmicon-mail:before { + content: "\e002"; +} + +.cbp_tmicon-earth:before { + content: "\e003"; +} + +/* Example Media Queries */ +@media screen and (max-width: 65.375em) { + + .cbp_tmtimeline > li .cbp_tmtime span:last-child { + font-size: 1.5em; + } +} + +@media screen and (max-width: 47.2em) { + .cbp_tmtimeline:before { + display: none; + } + + .cbp_tmtimeline > li .cbp_tmtime { + width: 100%; + position: relative; + padding: 0 0 20px 0; + } + + .cbp_tmtimeline > li .cbp_tmtime span { + text-align: left; + } + + .cbp_tmtimeline > li .cbp_tmlabel { + margin: 0 0 30px 0; + padding: 1em; + font-weight: 400; + font-size: 95%; + } + + .cbp_tmtimeline > li .cbp_tmlabel:after { + right: auto; + left: 20px; + border-right-color: transparent; + border-bottom-color: #3594cb; + top: -20px; + } + + .cbp_tmtimeline > li:nth-child(odd) .cbp_tmlabel:after { + border-right-color: transparent; + border-bottom-color: #6cbfee; + } + + .cbp_tmtimeline > li .cbp_tmicon { + position: relative; + float: right; + left: auto; + margin: -55px 5px 0 0px; + } +} + diff --git a/nuxt-web/assets/styles/base/css.css b/nuxt-web/assets/styles/base/css.css new file mode 100644 index 0000000..0ab5227 --- /dev/null +++ b/nuxt-web/assets/styles/base/css.css @@ -0,0 +1,253 @@ +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0; padding:0;} +fieldset,img{border:0;} +table{border-collapse:collapse; border-spacing:0;} +ol,ul{list-style:none;} +address,caption,cite,code,dfn,em,strong,th,var{font-weight:normal; font-style:normal;} +caption,th{text-align:left;} +h1,h2,h3,h4,h5,h6{font-weight:normal; font-size:100%;} +q:before,q:after{content:'';} +abbr,acronym{border:0;} +/*--clearfix--*/ +.clearfix:after{content:"."; display:block; height:0; clear:both; visibility:hidden;} +.clearfix{display:inline-block;} +/*--Hides from IE-mac--*/ +* html .clearfix{height:1%;} +.clearfix{display:block;} + + body { + font:14px '微软雅黑',sans-serif; + color:#333!important +} +a { + text-decoration:none; + color:#5a5a5a; + outline:0; + blr:expression(this.onFocus=this.blur()) +} +.fl { + float:left +} +.fr { + float:right +} + +/* history */ +.history { + width:100%; + height:1100px; + position:relative; + background:url("/images/history_bg.webp") center no-repeat +} +.start-history { + width:100%; + height:1200px; + /*margin:30px auto;*/ + text-align:center; + background:url("/images/history_start.png") no-repeat top center; + display:block +} +.cc_history { + color:#2b2b2b; + font-size:33px; + line-height: 34px; + font-weight:400; + display:block; + padding-top:0px +} +.next_history { + color:#bbb; + font-size:16px; + line-height: 30px; + width:160px; + margin:0 auto; + /*border-bottom:1px solid #d1d1d1*/ +} +.history-img { + height:2050px; + width:10%; + overflow:hidden; + float:left; + margin-top:24px; + margin-left:8px +} +.history_mid { + width:100%; + height:auto; + margin:0 auto; + background:0 +} +.history_left { + width:43%; + height:2050px; + float:left; + clear:left; + position:relative; + overflow:hidden +} +.tech_left{ + width:100%; + margin:30px auto; + clear:left; + position:relative; + overflow:hidden +} +.history_right { + width:43%; + height:2050px; + float:left; + position:relative; + overflow:hidden +} +.history_R { + width:100%; + height:100px; + margin-left:500px +} +.history_L { + width:100%; + height:100px; + float:right; + margin-right:500px +} +.history_r_2005 { + margin-top:120px +} +.history_2007 { + width:41%; + height:100px; + background:#FFF; + margin-top:73px +} +.history_2005_span { + float:left; + line-height:24px; + font-size:18px; + color:#0169d7 +} +.history_2005_b { + float:left; + width:80%; + /*height:58px;*/ + padding: 5px 5px 5px; + margin-left:15px; + background: #0070d2; + border-radius: 4px; + background-position:0 -1300px +} +.history_r_month { + float:left; + color:#FFF; + display:block; + width:30px; + line-height:25px; + height:58px; + border-right:1px solid #FFF; + margin-left:25px +} +.history_r_text { + float:left; + font-size:14px; + color:#FFF; + display:block; + line-height:25px; + padding-left:5px; + text-align:left +} +.year2006 { + margin-top:175px +} +.year2009 { + margin-top:65px +} +.year2011 { + margin-top:53px +} +.year211 { + margin-top:43px +} +.year2013 { + margin-top:62px +} +.yearalmost { + margin-top:5px +} +.yearalmostr { + margin-top:12px +} +.history_2008 { + width:41%; + height:100px; + background:#FFF; + margin-top:73px; + float:right +} +.history_2011 { + width:41%; + height:100px; + background:#FFF; + margin-top:43px; + float:right +} +.history_2006_span { + float:right; + line-height:24px; + font-size:18px; + color:#0169d7 +} +.history_2006_b { + width:80%; + /*height:58px;*/ + float:right; + padding: 5px 5px 5px; + margin-right:15px; + background:#0070d2; + border-radius: 4px; + /*background:url("/images/sprites.png") center;*/ + background-position:0 -1200px +} +.blue { + background-position:0 -1400px!important +} +.blue_R { + background-position:0 -1500px!important +} +.yellow { + background-position:0 -1600px!important +} +.yellow_R { + background-position:0 -1700px!important +} +.history_l_month { + float:right; + color:#FFF; + display:block; + width:30px; + line-height:25px; + /*height:58px;*/ + border-left:1px solid #FFF; + margin-right:37px +} +span.blue { + color:#0169d7 +} +span.yellow { + color:#f76d02 +} +.history_l_text { + float:right; + font-size:14px; + color:#FFF; + display:block; + /*height:58px;*/ + line-height:25px; + padding-top:3px; + text-align:right; + padding-right:5px +} +.smalltext { + font-size:14px; + line-height:18px +} +.smalltxt { + font-size:14px +} \ No newline at end of file diff --git a/nuxt-web/assets/styles/base/default.css b/nuxt-web/assets/styles/base/default.css new file mode 100644 index 0000000..360d527 --- /dev/null +++ b/nuxt-web/assets/styles/base/default.css @@ -0,0 +1,64 @@ +/* General Blueprint Style */ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,400,600&subset=latin,latin-ext); +@font-face { + font-family: 'fontawesome'; + src:url('/fonts/fontawesome.eot'); + src:url('/fonts/fontawesome.eot?#iefix') format('embedded-opentype'), + url('/fonts/fontawesome.svg#fontawesome') format('svg'), + url('/fonts/fontawesome.woff') format('woff'), + url('/fonts/fontawesome.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +*, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } +body, html { font-size: 100%; padding: 0; margin: 0;} + +/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */ +.clearfix:before, .clearfix:after { content: " "; display: table; } +.clearfix:after { clear: both; } + +body { + font-family: 'Lato', Calibri, Arial, sans-serif; + color: #47a3da; +} + +a { + color: #f0f0f0; + text-decoration: none; +} + +a:hover { + color: #000; +} + + +.icon-drop:before, +.icon-arrow-left:before { + font-family: 'fontawesome'; + position: absolute; + top: 0; + width: 100%; + height: 100%; + speak: none; + font-style: normal; + font-weight: normal; + line-height: 2; + text-align: center; + color: #47a3da; + -webkit-font-smoothing: antialiased; + text-indent: 8000px; + padding-left: 8px; +} + +.container > header nav a:hover:before { + color: #fff; +} + +.icon-drop:before { + content: "\e000"; +} + +.icon-arrow-left:before { + content: "\f060"; +} \ No newline at end of file diff --git a/nuxt-web/assets/styles/base/history.css b/nuxt-web/assets/styles/base/history.css new file mode 100644 index 0000000..0f9087a --- /dev/null +++ b/nuxt-web/assets/styles/base/history.css @@ -0,0 +1,96 @@ +*{margin:0;padding:0;list-style-type:none;} +a,img{border:0;} +body{_background-image:url(about:blank);/*用浏览器空白页面作为背景*/_background-attachment:fixed; /* prevent screen flash in IE6 确保滚动条滚动时,元素不闪动*/ } +body{color:#535353;font-size:12px;font-family: "arial","微软雅黑";background:#f0f1f1;} +.clear{clear:both;display:block;height:0;overflow:hidden;} + +/* history */ +#history{width:880px;height:450px;position:relative;margin:50px auto 0 auto;} +.title{height:95px;line-height:95px;text-indent:280px;} +.title h2{color:#7c7c7c;font-size:18px;font-weight:500;} +#circle{ + width:83px;height:83px;position:absolute;top:0;left:390px;border:6px solid rgba(0,0,0,0.15);border-radius:95px;text-indent:0;text-align:center; + -webkit-transition:all 0.3s linear; + -moz-transition:all 0.3s linear; + -o-transition:all 0.3s linear; + transition:all 0.3s linear; +} +#circle .cmsk{height:83px;position:absolute;width:83px;top:0;left:0;} +#circle:hover{ + transform:rotate(360deg); + -ms-transform:rotate(360deg); + -moz-transform:rotate(360deg); + -webkit-transform:rotate(360deg); + -o-transform:rotate(360deg); + border-color:rgba(0,0,0,0); +} +.clock{display:block;} +#circle:hover {border-color:rgba(255,255,255,0.6);background-color:#6bc30d;} +#circle:hover .clock{display:block;} +#circle:hover .circlecontent{display:none;} +#circle span{font-size:18px;color:#b0b0b0;} +#circle .clock{ + background:url(/images/clock.png) no-repeat 0 0;width:83px;height:83px;position:absolute;top:0;left:0;display:none; + -webkit-transition:all 0.5s linear; + -moz-transition:all 0.5s linear; + -o-transition:all 0.5s linear; + transition:all 0.5s linear; + border-radius:0; +} +#circle:hover .clock{border-radius:83px;} +.timeyear{color:#b0b0b0;font-size:18px;line-height:20px;} +.timeblock{height:28px;margin-top:22px;margin-left:5px;} +.timeblock span{display:block;height:24px;width:18px;background:url(/images/date.png) no-repeat 0 0;float:left;} +.timeblock .numf{background-position:0px -48px;} +.timeblock .nums{background-position:0px 0px;} +.timeblock .numt{background-position:0px -24px;} +.timeblock .numfo{background-position:0px -72px;} +#content{height:355px;width:880px;overflow:hidden;background:url(/images/vertical.png) no-repeat 134px 2px;padding-top:10px;} +.list{overflow:hidden;position:relative;} +.list li{height:110px;vertical-align:bottom;overflow:hidden;position:relative;} +.liwrap{height:55px;margin-top:28px;} +.lileft{position:absolute;top:0;left:0px;height:55px;width:100px;line-height:55px;text-align:right;} +.liright{position:absolute;top:0;left:180px;height:55px;} +.histt{height:35px;line-height:35px;} +.hisct{font-size:14px;color:#6e6e6e;} +.md{font-size:18px;color:#AEAEAE;} +.year{font-size:12px;color:#AEAEAE;margin-right:10px;} +.point{width:55px;height:55px;position:absolute;top:0;left:109px;background:url(/images/point.png) no-repeat 0px 18px;overflow:hidden;} +.point b{ + height:16px;width:16px;background:#fff;display:block;margin:17px 0 0 19px;border-radius:18px;border:2px solid #6bc30d; + -webkit-transition:all 0.1s linear; + -moz-transition:all 0.1s linear; + -o-transition:all 0.1s linear; + transition:all 0.1s linear; + position:absolute; + top:0;left:0; +} +.thiscur .point b{border:7px solid rgba(107,195,13,0.6);margin:12px 0px 0px 14px;border-radius:52px;} +.thiscur .histt a{color:#6bc30d;} +.histt a{ + font-size:24px;color:#747474; + -webkit-transition:all 0.3s linear; + -moz-transition:all 0.3s linear; + -o-transition:all 0.3s linear; + transition:all 0.3s linear; +} +#arrow{position:fixed;top:50%;right:30px;} +*html #arrow{position:absolute;top:expression(eval(document.documentElement.scrollTop));margin-top:350px;} + +#arrow ul li{ + display:block;height:20px;width:20px;background:url(/images/icons.png) no-repeat 0 0;cursor:pointer; + -webkit-transition:all 0.2s ease-out; + -moz-transition:all 0.2s ease-out; + -o-transition:all 0.2s ease-out; + transition:all 0.2s ease-out; +} +#arrow ul li:active{background-color:#000;} +#arrow ul .arrow_active{ + background-color:#000; + -webkit-transition:all 0.1s ease-in; + -moz-transition:all 0.1s ease-in; + -o-transition:all 0.1s ease-in; + transition:all 0.1s ease-in; +} +#arrow ul .arrowup{background-position:0px -26px;margin-bottom:10px;} +#arrow ul .arrowdown{background-position:0px 0px;} \ No newline at end of file diff --git a/nuxt-web/assets/styles/base/navigation2.css b/nuxt-web/assets/styles/base/navigation2.css new file mode 100644 index 0000000..90a10ab --- /dev/null +++ b/nuxt-web/assets/styles/base/navigation2.css @@ -0,0 +1,492 @@ + +.fl { + float: left; +} + +.fr { + float: right; +} + +.of { + overflow: hidden; +} + +.cl { + clear: both; +} + +.fixDiv{ + position:fixed !important; + top:0; + left:0; + z-index: 9999 !important; +} + +.header-b { + background: url("/images/bg.jpg"); + height: 60px; + background-size: 100% 100%; + /* overflow: hidden; */ + line-height: 60px; + z-index: 51; + width: 100%; + position: relative; + left: 0; + top: 0; +} + +.header-b .logo img { + max-width: 300px; + width: 80%; + margin-right: 20px; +} + +.header-b ul { + margin-right: 30px; + float: left; +} + +.header-b ul li { + float: left; + font-size: 16px; + padding: 0 10px; + line-height: 57px; + width: 100px; +} + +.header-b ul li a img { + height: 36px; + line-height: 20px; + display: inline-block; + margin-top: -20px; +} + +.header-b ul li a p { + line-height: 16px; + color: #fff; + margin-top: -24px; + font-size: 13px; +} + +.header-w { + background-color: #0095ff; + height: 60px; + /* overflow: hidden; */ + line-height: 60px; + z-index: 51; + width: 100%; + position: relative; + left: 0; + top: 0; +} + +.header-w .logo { + height: 60px; +} + +.header-w .logo img { + max-width: 300px; + width: 80%; + margin-top: 6px; + margin-right: 20px; +} + +.header-w ul { + margin-right: 30px; + float: left; +} + +.header-w ul li { + float: left; + font-size: 16px; + padding: 0 30px; + line-height: 57px; +} + +.header { + background-color: #fff; + height: 60px; + /* overflow: hidden; */ + line-height: 60px; + z-index: 51; + width: 100%; + position: relative; + left: 0; + top: 0; + box-shadow: 0 0 5px 2px rgba(0, 0, 0, .1); + /*-webkit-transition: all 0.2s ease;*/ + /*transition: all 0.2s ease;*/ +} + +.header .logo { + height: 60px; +} + +.header .logo img { + margin-top: -3px; + max-width: 300px; + width: 80%; + margin-right: 20px; +} + +.header ul { + margin-right: 30px; + float: left; +} + +.header ul li { + float: left; + font-size: 16px; + padding: 0 30px; + + line-height: 57px; +} + +.header_right { + height: 60px; + /*margin-right: 100px;*/ +} + +.head-cur { + /*background: #0077e6;*/ + /*color: #FFFFFF ;*/ + height: 58px; + color: #0077e6 !important; + border-bottom: 2px solid #0077e6; + /*margin-top: -2px;*/ +} + +.head-cur a { + color: #0077e6; +} + +.header ul li a { + padding: 0; + display: block; + line-height: 57px; + cursor: pointer; +} + +.login_btn { + float: left; + color: #0077e6; + font-size: 16px; + font-weight: normal; + padding: 0 8px; + height: 16px; + margin-top: 22px; + line-height: 16px; +} + +.login_btn2 { + float: left; + color: #0077e6; + font-size: 16px; + font-weight: normal; + padding: 0 8px; + height: 16px; + margin-top: 22px; + border-left: 1.5px solid #0077e6; + line-height: 16px; +} + +/*.header ul li a:hover {*/ +/*border-bottom: 3px solid #001c77;*/ +/*}*/ + +.header .right a { + color: #1034aa; + padding: 6px 25px; + font-size: 16px; + border: 1px solid #1034aa; + line-height: 36px; + height: 36px; + border-radius: 26px; +} + +.head-nav { + /*position: relative;*/ + width: 1280px; + /*z-index: 9999;*/ + margin: 0 auto; +} + +.head-nav-con { + width: 1280px; + margin: auto; + /*position: absolute;*/ +} + +.head-nav-con ul li { + /*width: 100px;*/ + float: left; + font-size: 16px; + text-align: center; + line-height: 57px; +} + +.nav > ul { + *zoom: 1; + *clear: both; +} + +.nav > ul:before, .nav > ul:after { + display: table; + clear: both; + content: ''; +} + +.nav > ul > li { + /*width: 13%;*/ + /*float: left;*/ + /*margin-left: 1%;*/ + position: relative; +} + +.nav > ul > li > a { + display: block; + white-space: nowrap; + font-size: 16px; + text-align: center; + line-height: 60px; + height: 60px; + position: relative; + /* font-weight: bold; */ + /*color: #313131;*/ +} + +.nav > ul > li > a:after { + content: ''; + /*display: block;*/ + width: 0; + height: 2px; + background-color: #117be5; + overflow: hidden; + position: absolute; + left: 50%; + bottom: 0; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + display: none; +} + +.nav > ul > li.cur > a:after, .nav > ul > li:hover > a:after { + width: 100%; + left: 0; +} + +.nav > ul > li.cur > a, .nav > ul > li:hover > a { + /*color: #001c77;*/ + color: #0077e6; +} + +.nav > ul ul { + width: 170px; + /*border: #ccc 1px solid;*/ + /*border-top: #001c77 2px solid;*/ + background-color:#134a95; + position: absolute; + color: #fff; + padding: 10px 0; + /*left: 0;*/ + top: 60px; + opacity: 0; + visibility: hidden; + left: 50%; + margin-left: -75px; /* box-shadow:0 0 5px #333; */ + /*transition: all 0.25s ease 0s;*/ + /*-webkit-transform: translate(0, 20px);*/ + /*-moz-transform: translate(0, 20px);*/ + /*-ms-transform: translate(0, 20px);*/ + /*-o-transform: translate(0, 20px);*/ + /*-webkit-transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ + /*-moz-transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ + /*-o-transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ + /*transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ +} + + +.list { + width: 1100px; + background-color: #134a95; + padding: 0 30px; + color: #fff; + position: absolute; + left: 0; + top: 60px; + opacity: 0; + overflow: hidden; + visibility: hidden; + left: 50%; + margin-left: -600px; /* box-shadow:0 0 5px #333; */ + /*transition: all 0.25s ease 0s;*/ + /*-webkit-transform: translate(0, 20px);*/ + /*-moz-transform: translate(0, 20px);*/ + /*-ms-transform: translate(0, 20px);*/ + /*-o-transform: translate(0, 20px);*/ + /*-webkit-transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ + /*-moz-transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ + /*-o-transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ + /*transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ +} +.list .pd { + float: left; + width: 190px; + overflow: hidden; + margin: 10px 10px; +} + +.list h2{ +font-size: 14px; +color: rgba(187, 208, 239, 0.96); +line-height: 35px; +float: left; +padding-left: 30px; +font-weight: 500; +} + +.list .pd li { + width: 250px; + padding-left: 0; + position: relative; +} + + +.list .pd ul{ +position: static; +opacity: 1; +margin-left: 0; +border: none; +border-top: none; +width: 250px;} + +.nav > ul ul li { + width: 240px; + padding-left: 0; + position: relative; +} + +.nav > ul ul a { + display: block; + line-height: 22px; + padding: 4px 30px; + font-size: 13px; + color: #fff; + float: left; + position: relative; +} + +.nav > ul ul a:after { + content: ''; + display: block; + width: 10px; + height: 5px; + overflow: hidden; + background: url("/images/nav_arr.png") -10px 0 no-repeat; + position: absolute; + right: -15px; + top: 12px; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.nav > ul ul a:hover { + /*background-color: #f9f9f9;*/ + color:#010e22; +} + +.nav > ul ul a:hover:after { + background-position: 0 0; +} + +.nav > ul > li:hover ul { + opacity: 1; + visibility: visible; + /*-webkit-transform: translate(0, 0);*/ + /*-moz-transform: translate(0, 0);*/ + /*-ms-transform: translate(0, 0);*/ + /*-o-transform: translate(0, 0);*/ +} +.nav > ul > li:hover .list { + opacity: 1; + visibility: visible; + /*-webkit-transform: translate(0, 0);*/ + /*-moz-transform: translate(0, 0);*/ + /*-ms-transform: translate(0, 0);*/ + /*-o-transform: translate(0, 0);*/ +} +.nav .nav_svc .prd_svc { + float: left; + width: 225px; + /* border-left: 1px solid #eee; */ + margin: 10px 10px; +} + +.nav .nav_svc .prd_svc h2 { + font-size: 14px; + color: rgba(187, 208, 239, 0.96); + line-height: 35px; + float: left; + padding-left: 35px; + font-weight: 500; + /*padding-left: 32px;*/ + /*margin-top: -10px*/ +} + +.nav .nav_svc { + width: 1000px; + /* border: #ccc 1px solid; */ + /* border-top: #001c77 2px solid; */ + background-color: #0156c4; + padding: 0 30px; + color: #fff; + position: absolute; + /* left: 0; */ + top: 80px; + opacity: 0; + visibility: hidden; + /* left: 50%; */ + margin-left: -600px; + /* box-shadow:0 0 5px #333; */ + /*-webkit-transform: translate(0, 20px);*/ + /*-moz-transform: translate(0, 20px);*/ + /*-ms-transform: translate(0, 20px);*/ + /*-o-transform: translate(0, 20px);*/ + /*-webkit-transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ + /*-moz-transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ + /*-o-transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ + /*transition: all 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);*/ +} + +.nav .nav_svc .prd_svc ul { + position: static; + opacity: 1; + margin-left: 0; + border: none; + border-top: none; + width: 225px; +} + +.nav .nav_svc .prd_svc ul li { + width: 225px; +} + +.nav > ul > li:hover .nav_svc { + opacity: 1; + visibility: visible; + -webkit-transform: translate(0, 0); + -moz-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); +} + +.fix { + *zoom: 1; + *clear: both; +} + +.fix:before, .fix:after { + display: table; + clear: both; + content: ''; +} diff --git a/nuxt-web/assets/styles/base/pro.css b/nuxt-web/assets/styles/base/pro.css new file mode 100644 index 0000000..452948d --- /dev/null +++ b/nuxt-web/assets/styles/base/pro.css @@ -0,0 +1,1140 @@ +/* CSS Document */ +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, section, article, aside, header, footer, nav, p, dialog, figure, menu, hgroup, iframe { + margin: 0; + padding: 0; + border: 0; + font-weight: normal; +} + +body { + font-family: 'Noto Sans S Chinese Regular', 'Helvetica Neue', 'Arial'; + font-size: 15px; + line-height: 28px; + background: #fff; + color: #333; +} + +input, textarea { + resize: none; + font-family: "Microsoft YaHei"; + background: #fff; + border: 0; +} + +img { + border: none; + vertical-align: middle; +} + +ul, li { + list-style: none; +} + +a { + text-decoration: none; + color: #555; + outline: none; +} + +a:hover { + color: #019dfa; +} + +input:focus, textarea:focus { + outline: none; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +.of { + overflow: hidden; +} + +.cl { + clear: both; +} + +.wrapper { + width: 1100px; +} + +#menu { + position: relative; +} + +#list { + position: absolute; + top: 80px; + z-index: 2000; +} + +#list ul { + background: #666; +} + +#list li { + float: left; + width: 300px; + display: inline-block; + margin-right: 30px; +} + +.banner_top_pro { + width: 1200px; + position: relative; +} + +.text_top { + position: absolute; + left: 50%; + margin-left: -580px; +} + +.banner_top_pro h1 { + font-size: 32px; + font-weight: 500; + color: #fff; + padding-top: 130px; +} + +.banner_top_pro p { + width: 600px; + font-size: 17px; + color: #fff; + padding-top: 30px; +} + +.banner_top_pro1 h1 { + font-size: 32px; + font-weight: 500; + color: #fff; + padding-top: 130px; +} + +.banner_top_pro1 p { + width: 500px; + font-size: 17px; + color: #fff; + padding-top: 30px; +} + +.bg_hui { + /*overflow: hidden;*/ + /*background:#fafafa;*/ + /*padding: 40px 0 30px 0;*/ +} +/*.bg_hui_2{padding: 40px 0 30px 0;}*/ +.bg_white { + background: #fff; + /*padding: 40px 0 40px 0;*/ +} + +.part_1, .part_2, .part_3, .part_4, .part_5, .part_6, .part_7, .part_8, +.part2_1, .part2_2, .part2_5, .part3_5, .part3_2, .part3_7, .part3_4, .part4_4 { + width: 100%; + /*margin: 0 auto;*/ +} + +.part_1 h1, .part_2 h1, .part_3 h1, .part_4 h1, .part_5 h1, .part_6 h1, .part_7 h1, .part_8 h1, +.part2_1 h1, .part2_2 h1, .part2_5 h1, .part3_5 h1, .part3_2 h1, .part3_7 h1, .part3_4 h1, .part4_4 h1 { + margin-top: 40px; + font-size: 24px; + color: #102541; + padding: 0 0 20px 10px; + position: relative; + text-align: left; +} + +.part_1 h1:before, .part_2 h1:before, .part_3 h1:before, .part_4 h1:before, .part_5 h1:before, .part_6 h1:before, .part_7 h1:before, .part_8 h1:before, +.part2_1 h1:before, .part2_2 h1:before, .part2_5 h1:before, .part3_5 h1:before, .part3_2 h1:before, .part3_7 h1:before, .part3_4 h1:before, .part4_4 h1:before { + content: ""; + display: block; + width: 4px; + height: 26px; + background: #019dfa; + position: absolute; + left: 0; + top: 0; +} + +.part2_1 p { + margin-bottom: 10px; +} + +.tab { + height: 50px; + border-bottom: 1px solid #e8e8e8; +} + +.tab .box_tab { + + overflow: hidden; + margin: 0 auto; +} + +.tab .box_tab ul { + width: 100%; + text-align: center; + margin: 0 auto; + overflow: hidden; +} + +.tab li { + display: inline; + text-align: center; + cursor: pointer; + line-height: 49px; + margin: 0 70px; +} + +.tab li:hover { + color: #019dfa; +} + +.pro3 li { + margin-right: 80px; +} + +.m2 { + width: 1200px; + margin: 10px auto; + overflow: hidden; +} + +.m2 .left { + border: 1px solid #e2e5e3; + width: 588px; + float: left; + height: 570px; +} + +.m2 .cus { + background: #f6f7f7; + height: 80px; + border-bottom: 1px solid #e2e5e3; + padding: 15px 20px; +} + +.m2 h1 { + font-size: 20px; + line-height: 40px; +} + +.m2 p { + font-size: 14px; + line-height: 36px; +} + +.m2 ul { + margin: 20px 0; +} + +.m2 ul li { + margin: 0 0 35px 30px; + font-size: 14px; + line-height: 36px; + display: block; + overflow: hidden; +} + +.m2 ul li p { + color: #666; + float: left; + display: inline-block; + line-height: 26px; + margin: 0 0 0 20px; +} + +.m2 ul li img { + margin-top: 5px; + width: 50px; + display: inline-block; + float: left; +} + +.m2 ul li span { + color: #333; + font-size: 16px; + font-weight: 400; + display: block; + line-height: 30px; +} + +.part2_2 { + padding-bottom: 20px; +} + +.selected { + background: #C5A069; + color: #fff; +} + +.part_3 .tab_part3 { + background: #fff; + border: 1px solid #e8e8e8; + overflow: hidden; +} + +.part_3 .tab_part3 li { + line-height: 50px; + float: left; + display: inline-block; + width: 49%; + text-align: center; + cursor: pointer; +} + +.part_3 .tab_part3 li:hover { + color: #019dfa;; +} + +.part_3 .jiagou_main { + background: #fff; + border: 1px solid #e8e8e8; +} + +.part_3 .jiagou_box { + margin: 10px 0 30px 0; +} + +.part_3 .jiagou_main img { + width: 90%; + height: 90%; + display: block; + margin: 0 auto; +} + +.part3_4 .jiagou_main { + width: 100%; + margin: 10px auto; + background: #fff; + margin-bottom: 30px; +} + +.part3_4 .jiagou_main img { + width: 90%; + margin: 0 auto; +} + +.part2_5 li { + border: 1px solid rgba(5, 151, 229, 0.35); + padding: 20px 0 20px 20px; + margin: 0 20px 20px 0; + background:#f5f8f9; + float: left; + display: block; + width: 566px; + text-align: left; + cursor: pointer; + overflow: hidden; +} + +.part2_5 li:nth-child(2n) { + margin: 0 0 20px 0; +} + +.part2_5 ul li p { + width: 80%; + height: 80px; + color: #666; + float: left; + display: inline-block; + line-height: 26px; + margin: 0 0 0 20px; + font-size: 13px; +} + +.part2_5 i { + width: 64px; + display: inline-block; + float: left; +} + +.part2_5 ul li img { + margin-top: 5px; + height: 50px; + display: inline-block; + float: left; +} + +.part2_5 ul li span { + color: #333; + font-size: 16px; + font-weight: 500; + display: block; + line-height: 30px; +} + +.part2_5 .gongneng { + overflow: hidden; + margin: 10px 0 0 0; +} + +.part3_5 li { + height: 140px; + border: 1px solid rgba(5, 151, 229, 0.35); + padding: 20px 0 10px 20px; + margin: 0 20px 20px 0; + background: #fff; + float: left; + display: block; + width: 566px; + text-align: left; + cursor: pointer; + overflow: hidden; +} + +.part3_5 li:nth-child(2n) { + margin: 0 0 20px 0; +} + +.part3_5 ul li p { + width: 80%; + height: 80px; + color: #666; + float: left; + display: inline-block; + line-height: 26px; + margin: 0 0 0 20px; + font-size: 13px; +} + +.part3_5 i { + width: 64px; + display: inline-block; + float: left; +} + +.part3_5 ul li img { + margin-top: 5px; + height: 50px; + display: inline-block; + float: left; +} + +.part3_5 ul li span { + color: #333; + font-size: 16px; + font-weight: 500; + display: block; + line-height: 30px; +} + +.part3_5 .gongneng { + overflow: hidden; + margin: 10px 0 0 0; +} + +.part4_4 .jiagou_main { + width: 100%; + margin: 10px auto; + background: #fff; + margin-bottom: 20px; +} + +.part4_4 .jiagou_main img { + width: 100%; + margin: 0 auto; +} + +.part_4 .jiagou_main { + width: 100%; + margin: 10px auto; + background: #fff; +} + +.part_4 .jiagou_main img { + width: 90%; + margin: 0 auto; +} + +.part_5 .gongneng { + /*overflow: hidden;*/ + margin: 10px 0 0 0; +} + +.part_5 li { + border: 1px solid rgba(5, 151, 229, 0.35); + background: #f5f8f9; + box-sizing: border-box; + padding: 20px 0 15px 20px; + margin: 0 20px 20px 0; + + float: left; + display: block; + width: 570px; + text-align: left; + cursor: pointer; + overflow: hidden; +} + +.part_5 li:nth-child(2n) { + margin: 0 0 20px 0; +} + +.part_5 ul li p { + width: 80%; + height: 110px; + color: #666; + float: left; + display: inline-block; + line-height: 26px; + margin: 0 0 0 20px; + font-size: 13px; +} + +.part_5 ul li img { + margin-top: 5px; + width: 50px; + display: inline-block; + float: left; +} + +.part_5 ul li span { + color: #333; + font-size: 16px; + font-weight: 500; + display: block; + line-height: 30px; +} + +.good { + overflow: hidden; + margin: 10px 0 0 0; +} + +.good li { + padding-top: 20px; + margin: 0 20px 20px 0; + background: #fff; + float: left; + display: block; + width: 570px; + text-align: left; + cursor: pointer; + overflow: hidden; +} + +.good li:nth-child(2n) { + margin: 0 0 20px 0; +} + +.good ul li p { + font-size: 13px; + width: 80%; + height: 100px; + color: #666; + float: left; + display: inline-block; + line-height: 26px; + margin: 0 0 0 20px; +} + +.good ul li img { + margin: 0 0 0 20px; + width: 60px; + display: inline-block; + float: left; +} + +.good ul li span { + color: #333; + font-size: 16px; + font-weight: 400; + display: block; + line-height: 30px; +} + +.good2 { + overflow: hidden; + margin: 10px 0 0 0; +} + +.good2 li { + padding-top: 20px; + margin: 0 20px 20px 0; + background: #fff; + float: left; + display: block; + width: 570px; + text-align: left; + cursor: pointer; + overflow: hidden; +} + +.good2 li:nth-child(2n) { + margin: 0 0 20px 0; +} + +.good2 ul li p { + font-size: 13px; + width: 78%; + height: 150px; + color: #666; + float: left; + display: inline-block; + line-height: 26px; + margin: 0 0 0 20px; +} + +.good2 ul li img { + margin: 0 0 0 20px; + width: 60px; + display: inline-block; + float: left; +} + +.good2 ul li span { + color: #333; + font-size: 16px; + font-weight: 400; + display: block; + line-height: 30px; +} + +.good3 { + overflow: hidden; + margin: 10px 0 0 0; +} + +.good3 li { + padding-top: 20px; + margin: 0 20px 20px 0; + background: #fff; + float: left; + display: block; + width: 570px; + text-align: left; + cursor: pointer; + overflow: hidden; +} + +.good3 li:nth-child(2n) { + margin: 0 0 20px 0; +} + +.good3 ul li p { + font-size: 13px; + width: 78%; + height: 100px; + color: #666; + float: left; + display: inline-block; + line-height: 26px; + margin: 0 0 0 20px; +} + +.good3 ul li img { + margin: 0 0 0 20px; + width: 60px; + display: inline-block; + float: left; +} + +.good3 ul li span { + color: #333; + font-size: 16px; + font-weight: 400; + display: block; + line-height: 30px; +} + +.part_7 .case { + overflow: hidden; + margin: 10px 0 20px 0; +} + +.part_7 .case li { + /*border: 1px solid #e5e5e5;*/ + margin-right: 10px; + margin-bottom: 15px; + background: #f1f1f1; + float: left; + display: block; + width: 24.1%; + text-align: center; + cursor: pointer; + overflow: hidden; + box-sizing: border-box; +} + +.part_7 .case ul li p { + color: #333; + font-size: 16px; + width: 100%; + float: left; + display: inline-block; + line-height: 26px; + margin: 20px 0; +} + +.part_7 .case ul li img { + /*width: 200px;*/ + display: inline-block; +} + +.part_7 .case ul li i { + /*width: 250px;*/ + display: block; + /*height: 60px;*/ + margin: 0 auto; + /*padding: 30px 0;*/ +} + +.part_6 .case { + overflow: hidden; + margin: 30px 0 0 0;} + +.part_6 .case dl { + height: 230px; + margin-right: 20px; + margin-bottom:20px; + background:#f7f9fa; + float: left; + display: block; + width: 270px; + text-align: center; + cursor: pointer; + overflow: hidden; +} + +.part_6 .case dl:nth-child(4n) { + margin-right: 0; +} + +.part_6 .case dl dt { + font-size: 14px; + color: #666; + margin: 0 20px; +} + +.part_6 .case dl .tit_2 { + font-size: 16px; + font-weight: 500; + line-height: 40px; + color: #333; +} + +.part_6 .case dl dd img { + margin: 10px auto; + height: 50px; + display: block; + width: 50px; + margin-top: 25px; +} + +.part_6 .case1 ul li p { + color: #333; + font-size: 16px; + width: 100%; + float: left; + display: inline-block; + line-height: 26px; + margin: 20px 0; +} + +.part_6 .case1 ul li span { + width: 200px; + display: block; +} + +.part_6 .case1 ul li i { + width: 250px; + display: block; + height: 90px; + margin: 0 auto; + padding-top: 30px; +} + +.part_6 .case1 { + overflow: hidden; + margin: 30px 0 0 0;} + +.part_6 .case1 dl { + height: 230px; + margin-right: 20px; + margin-bottom:20px; + background:#fff; + border:1px solid #f4f4f4; + float: left; + display: block; + width: 32.1%;; + text-align: center; + cursor: pointer; + overflow: hidden; +} + +.part_6 .case1 dl:nth-child(3n) { + margin-right: 0; +} + +.part_6 .case1 dl p { + font-size: 14px; + font-family: "Muli", sans-serif; + color:#57667e; + margin: 0 20px; +} + +.part_6 .case1 dl .tit_2 { + font-size: 16px; + /*font-weight: 500;*/ + line-height: 40px; + color:#353e4d; +} + +.part_6 .case1 dl dd img { + margin: 10px auto; + height: 60px; + display: block; + width: 60px; + margin-top: 25px; +} + +.part_6 .case ul li p { + color: #333; + font-size: 16px; + width: 100%; + float: left; + display: inline-block; + line-height: 26px; + margin: 20px 0; +} + +.part_6 .case ul li span { + width: 200px; + display: block; +} + +.part_6 .case ul li i { + width: 250px; + display: block; + height: 90px; + margin: 0 auto; + padding-top: 30px; +} + + + +.part2_1 .case { + overflow: hidden; + margin: 50px 0 0 0;} + +.part2_1 .case dl { + height: 270px; + margin-right: 20px; + /*background: #f6faff;*/ + float: left; + display: block; + width: 283px; + text-align: center; + cursor: pointer; + overflow: hidden; +} + +.part2_1 .case dl:nth-child(4) { + margin-right: 0; +} + +.part2_1 .case dl dt { + font-size: 14px; + color: #666; + margin: 0 20px; +} + +.part2_1 .case dl .tit_2 { + font-size: 16px; + font-weight: 500; + line-height: 40px; + color: #333; +} + +.part2_1 .case dl dd img { + margin: 0 auto; + display: block; + width: 80px; + margin-top: 15px; +} + +.part2_1 .case ul li p { + color: #333; + font-size: 16px; + width: 100%; + float: left; + display: inline-block; + line-height: 26px; + margin: 20px 0; +} + +.part2_1 .case ul li span { + width: 200px; + display: block; +} + +.part2_1 .case ul li i { + width: 250px; + display: block; + height: 90px; + margin: 0 auto; + padding-top: 30px; +} + + + + + + + +.product { + overflow: hidden; + margin: 10px 0 0 0; +} + +.product .pb { + /*height: 150px;*/ + transition: background-color .2s ease-in-out; + width: 568px; + border: 1px solid #e5e5e5; + margin: 0 20px 20px 0; + padding: 20px 0 0 20px; + background: #fff; + float: left; + display: inline-block; + text-align: left; + cursor: pointer; +} + +.product .pb:hover { + border: 1px solid #e5e5e5; + background: #f7f7f7; +} + +.product p { + font-size: 13px; + width: 80%; + /*height: 100px;*/ + color: #666; + float: left; + display: inline-block; + margin-left: 20px; +} + +.product a img { + width: 70px; + display: inline-block; + float: left; +} + +.product a span { + color: #102541; + font-size: 16px; + font-weight:500; + display: block; + line-height: 30px; +} + + +.product .bx .bt { + line-height: 30px; + border: 1px solid #e5e5e5; + display: block; + padding: 0 20px; + width: 100px; + text-align: center; + margin: 15px 0; +} + +.product .bx .bt:hover { + line-height: 30px; + background: #019dfa; + border: 1px solid #019dfa; + color: #fff; +} + +.product2 { + overflow: hidden; + margin: 10px 0 0 0; +} + +.product2 .pb { + height: 150px; + transition: background-color .2s ease-in-out; + width: 568px; + border: 1px solid #e5e5e5; + margin: 0 20px 20px 0; + padding: 20px 0 0 20px; + background: #fff; + float: left; + display: inline-block; + text-align: left; + cursor: pointer; +} + +.product2 .pb:hover { + background: #fcfcfc; + border: 1px solid #e5e5e5; + /*background: #f7f7f7;*/ +} + +.product2 p { + font-size: 13px; + width: 80%; + height: 100px; + color: #666; + float: left; + display: inline-block; + margin-left: 20px; +} + +.product2 a img { + width: 70px; + display: inline-block; + float: left; +} + +.product2 a span { + color: #333; + font-size: 16px; + font-weight: 400; + display: block; + line-height: 30px; +} + +.good ul li span { + color: #333; + font-size: 16px; + font-weight: 400; + display: block; + line-height: 30px; +} + +.product2 .bx .bt { + line-height: 30px; + border: 1px solid #e5e5e5; + display: block; + padding: 0 20px; + width: 70px; + text-align: center; + margin-top: 15px; +} + +.product2 .bx .bt:hover { + line-height: 30px; + background: #019dfa; + border: 1px solid #019dfa; + color: #fff; +} + +.part2_2 table, .part2_2 table tr th, .part2_2 table tr td { + border: 1px solid #ebebeb; +} + +.part2_2 table, .part2_2 table tr td { + padding: 20px; + font-size: 14px; +} + +.part2_2 table tr th { + border: 1px solid #0181cd; + padding: 10px 0; + background: #019dfa; + color: #fff; + font-size: 18px; + text-align: center; +} + +.part2_2 .table_pro2 .xuqiu { + display: block; + border-collapse: collapse; +} + +.part2_2 table tr td { + vertical-align: top; + background: #fff; +} + +.part2_2 p { + width: 100%; + overflow: hidden; + display: block; + margin-bottom: 10px; +} + +.part2_2 i { + margin-top: 10px; + float: left; + margin-right: 10px; + width: 8px; + height: 8px; + display: inline-block; + border-radius: 8px; + background: rgba(140, 151, 179, 0.62); +} + +.part3_2 table, .part2_2 table tr th, .part2_2 table tr td { + border: 1px solid rgba(66, 153, 235, 0.41); +} + +.part3_2 table, .part2_2 table tr td { + padding: 20px; + font-size: 14px; +} + +.part3_2 table tr th { + border: 1px solid #0181cd; + padding: 10px 80px 10px 30px; + background: #019dfa; + color: #fff; + font-size: 18px; + text-align: left; +} + +.part3_2 .table_pro2 { + margin: 10px 0 30px 0; +} + +.part3_2 .table_pro2 .xuqiu { + display: block; + border-collapse: collapse; +} + +.part3_2 table tr td:nth-child(1) { + vertical-align: middle; + font-weight: 500; +} + +.part3_2 table tr:nth-child(even) { + background: rgba(108, 170, 244, 0.04); +} + +.part3_2 table tr td { + vertical-align: top; + background: #fff; + border: 1px solid #e5e5e5; + padding: 10px 0 10px 30px; +} + +.part3_2 p { + width: 100%; + overflow: hidden; + display: inline-block; + font-size: 14px; +} + +.part3_2 i { + margin-top: 10px; + float: left; + margin-right: 10px; + width: 8px; + height: 8px; + display: inline-block; + border-radius: 8px; + background: rgba(140, 151, 179, 0.62); +} + + diff --git a/nuxt-web/assets/styles/base/product.css b/nuxt-web/assets/styles/base/product.css new file mode 100644 index 0000000..e7cddba --- /dev/null +++ b/nuxt-web/assets/styles/base/product.css @@ -0,0 +1,537 @@ +:root { + --product-section-heading-gap: 48px; + --product-section-heading-inner-gap: 14px; +} + +.cargo-platform-content { + display: flex; + flex-wrap: wrap; +} + +.cargo-info-left { + width: 540px; + flex: 0 0 540px; + padding-right: 30px; + box-sizing: border-box; + text-align: left; +} + +.cargo-info-left--compact { + flex-basis: 540px; +} + +.cargo-info-left h2, +.cargo-info-left p { + text-align: left; +} + +.cargo-info-right { + flex: 1; + min-width: 0; + box-sizing: border-box; +} + +.product-hero-container { + padding-top: 0; +} + +@media screen and (min-width: 992px) { + .page-title.page-title-cargo-platform .container.product-hero-container, + .page-title.page-title-cargo-platform1 .container.product-hero-container, + .page-title.page-title-cargo-platform2 .container.product-hero-container, + .page-title.page-title-cargo-platform3 .container.product-hero-container { + padding-top: 0; + } +} + +.product-hero-title { + margin-bottom: 20px; +} + +.product-hero-description { + font-size: 16px; + line-height: 1.8; +} + +.page-title-cargo-platform .product-hero-title, +.page-title-cargo-platform .product-hero-description, +.page-title-cargo-platform2 .product-hero-title, +.page-title-cargo-platform2 .product-hero-description, +.page-title-cargo-platform3 .product-hero-title, +.page-title-cargo-platform3 .product-hero-description { + color: #021c3e; +} + +.page-title-cargo-platform1 .product-hero-title { + color: #021c3e; +} + +.page-title-cargo-platform1 .product-hero-description { + color: #012e67; +} + +.main2 { + display: flex; + justify-content: center; + width: 100%; +} + +.product-architecture-section { + padding: 30px 0; + background: linear-gradient(135deg, #d2e5fa 0%, #f0f7ff 30%, #f5f9ff 70%, #d2e7fd 100%); +} + +.product-architecture-section .text-center > p { + margin: 0 0 20px; +} + +.product-architecture-section img { + max-width: 80%; +} + +.product-architecture-container { + padding: 20px; +} + +.product-architecture-title { + margin: 40px 0 var(--product-section-heading-inner-gap); +} + +.product-architecture-title--compact { + margin-bottom: var(--product-section-heading-inner-gap); +} + +.product-advantages-header { + padding-top: 60px; + margin-bottom: 10px; + text-align: center; +} + +.product-advantages-header--compact { + padding-top: 50px; +} + +.product-advantages-title { + margin-bottom: var(--product-section-heading-inner-gap); +} + +.product-advantages-title--spacious { + margin-bottom: var(--product-section-heading-inner-gap); +} + +.product-advantages-header p { + margin: 0; +} + +.product-advantages-section { + padding-bottom: 48px; +} + +.feature-highlight-section { + background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%); + padding-top: 60px; + padding-bottom: 90px; +} + +.feature-highlight-heading { + text-align: center; + margin-bottom: var(--product-section-heading-gap); +} + +.feature-highlight-heading h1 { + margin: 0 0 var(--product-section-heading-inner-gap); + color: #10233f; +} + +.feature-highlight-heading p { + margin: 0; +} + +.feature-highlight-tabs { + display: flex; + flex-wrap: nowrap; + justify-content: space-between; + gap: 10px; + margin: 0; + padding: 0; + list-style: none; + border-bottom: 1px solid #dfe8f3; + width: 100%; +} + +.feature-highlight-tabs li { + flex: 0 0 auto; + min-width: auto; +} + +.feature-highlight-tab { + position: relative; + width: 100%; + padding: 16px 10px 18px; + border: 0; + background: transparent; + color: #4f5f76; + font-size: clamp(16px, 0.95vw, 18px); + font-weight: 600; + line-height: 1.5; + cursor: pointer; + transition: color 0.25s ease; + white-space: nowrap; +} + +.feature-highlight-tab:hover, +.feature-highlight-tab:focus { + color: #1c6de0; + outline: none; +} + +.feature-highlight-tab.active { + color: #006aff; + text-decoration-line: underline; + text-decoration-color: #1b68db; + text-decoration-thickness: 4px; + text-underline-offset: 18px; + text-decoration-skip-ink: none; +} + +.feature-highlight-tab.active:after { + content: none; +} + +.feature-highlight-panel { + display: none; + padding-top: 54px; +} + +.feature-highlight-panel.active { + display: block; +} + +.feature-highlight-detail { + display: flex; + align-items: center; + gap: 56px; +} + +.feature-highlight-copy { + flex: 1 1 52%; + max-width: 520px; + text-align: left; +} + +.feature-highlight-copy h2 { + margin: 0 0 18px; + color: #101820; + font-size: 30px; + font-weight: 700; + line-height: 1.25; +} + +.feature-highlight-copy p { + margin: 0; + color: #4f5f76; + font-size: 18px; + font-weight: 700; + line-height: 1.9; +} + +.feature-highlight-points { + margin: 28px 0 0; + padding: 0; + list-style: none; +} + +.feature-highlight-points li { + position: relative; + margin-bottom: 18px; + padding-left: 22px; + color: #24374f; + font-size: 16px; + line-height: 1.8; +} + +.feature-highlight-points li:before { + content: ""; + position: absolute; + top: 13px; + left: 0; + width: 8px; + height: 8px; + border-radius: 50%; + background: #1c6de0; + box-shadow: 0 0 0 6px rgba(28, 109, 224, 0.12); +} + +.feature-highlight-visual { + flex: 1 1 48%; + display: flex; + justify-content: center; + align-items: center; +} + +.feature-highlight-visual-card { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + max-width: 620px; + min-height: 300px; + padding: 8px 10px; + border: 1px solid rgba(40, 122, 221, 0.08); + border-radius: 20px; + background: linear-gradient(180deg, rgba(247, 251, 255, 0.96) 0%, rgba(255, 255, 255, 0.98) 100%); + box-shadow: 0 10px 24px rgba(22, 72, 140, 0.04); + overflow: hidden; +} + +.feature-highlight-visual-card img { + display: block; + width: 100%; + max-width: 100%; + max-height: none; + object-fit: contain; + filter: drop-shadow(0 8px 14px rgba(30, 88, 165, 0.08)); +} + +@media (max-width: 1199px) { + .feature-highlight-tab { + font-size: 16px; + } + + .feature-highlight-copy h2 { + font-size: 40px; + } +} + +@media (max-width: 991px) { + .feature-highlight-detail { + flex-direction: column; + align-items: stretch; + gap: 34px; + } + + .feature-highlight-copy, + .feature-highlight-visual { + max-width: none; + flex-basis: 100%; + } + + .feature-highlight-copy h2 { + font-size: 36px; + } +} + +@media (max-width: 768px) { + .cargo-platform-content { + flex-direction: column; + } + + .cargo-info-left { + width: 100%; + flex: 1; + padding-right: 0; + margin-bottom: 20px; + } + + .cargo-info-right { + width: 100%; + } +} + +@media (max-width: 767px) { + .feature-highlight-section { + padding-top: 70px; + padding-bottom: 70px; + } + + .feature-highlight-heading p { + font-size: 16px; + } + + .feature-highlight-tabs li { + flex: 0 0 auto; + } + + .feature-highlight-tabs { + justify-content: flex-start; + gap: 8px; + } + + .feature-highlight-tab { + padding: 14px 8px 16px; + font-size: 15px; + } + + .feature-highlight-tab.active { + text-underline-offset: 16px; + } + + .feature-highlight-tabs { + overflow-x: auto; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + } + + .feature-highlight-panel { + padding-top: 32px; + } + + .feature-highlight-copy h2 { + font-size: 30px; + } + + .feature-highlight-copy p, + .feature-highlight-points li { + font-size: 16px; + } + + .feature-highlight-visual-card { + min-height: 210px; + padding: 8px; + } + + .feature-highlight-visual-card img { + width: 100%; + } +} + +.cases-section { + padding: 0px 0 80px 0; + background: #f8fafc; +} + +.cases-section .product-advantages-header, +.cases-section .product-advantages-header > div, +.cases-section .product-advantages-title, +.cases-section .product-advantages-header p { + text-align: center; +} + +.cases-section .product-advantages-header { + width: 100%; +} + +.case-card-link { + display: flex; + width: 100%; + height: 100%; + color: inherit; + text-decoration: none; +} + +.case-card-link:hover, +.case-card-link:focus { + color: inherit; + text-decoration: none; +} + +.cases-section .row + .row { + margin-top: 30px; +} + +.cases-section .row { + display: flex; + flex-wrap: wrap; +} + +.cases-section .col-md-4 { + display: flex; +} + +.case-card { + background: #fff; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06); + border: 1px solid #e2e8f0; + height: 100%; + width: 100%; + display: flex; + flex-direction: column; +} + +.case-card-header { + position: relative; + padding: 28px; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + overflow: hidden; +} + +.case-card-header.blue { + background: linear-gradient(135deg, rgba(0, 60, 180, 1), rgba(0, 100, 255, 1)); +} + +.case-card-header.cyan { + background: linear-gradient(135deg, rgba(0, 80, 200, 1), rgba(0, 120, 255, 1)); +} + +.case-card-header.teal { + background: linear-gradient(135deg, rgba(0, 110, 140, 1), rgba(0, 160, 190, 1)); +} + +.case-card-header.green { + background: linear-gradient(135deg, rgba(0, 120, 90, 1), rgba(40, 180, 120, 1)); +} + +.case-card-header.indigo { + background: linear-gradient(135deg, rgba(30, 60, 180, 1), rgba(50, 100, 255, 1)); +} + +.case-card-header::before { + content: ''; + position: absolute; + top: -50%; + right: -10%; + width: 160px; + height: 160px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.1); +} + +.case-card-header h3 { + position: relative; + font-size: 18px; + font-weight: 700; + color: #fff; + margin: 0; + width: 100%; + text-align: center; +} + +.case-card-body { + padding: 28px; + flex: 1; + display: flex; + align-items: flex-start; +} + +.case-project { + font-size: 14px; + font-weight: 600; + color: rgba(0, 100, 255, 1); + margin-bottom: 12px; +} + +.case-card-body p { + font-size: 14px; + color: #64748b; + line-height: 1.7; + margin: 0; + display: -webkit-box; + overflow: hidden; + -webkit-box-orient: vertical; + -webkit-line-clamp: 5; +} + +@media (max-width: 767px) { + .cases-section .row + .row { + margin-top: 24px; + } + + .cases-section .col-md-4 + .col-md-4 { + margin-top: 24px; + } +} diff --git a/nuxt-web/assets/styles/base/solution.css b/nuxt-web/assets/styles/base/solution.css new file mode 100644 index 0000000..6a70eb6 --- /dev/null +++ b/nuxt-web/assets/styles/base/solution.css @@ -0,0 +1,1109 @@ + /* ========== 主色调覆盖 - rgba(0, 100, 255, 1) ========== */ + :root { + --primary-color: rgba(0, 100, 255, 1); + --primary-color-dark: rgba(0, 80, 200, 1); + --primary-color-light: rgba(0, 100, 255, 0.8); + } + + /* ========== Solution Page Styles ========== */ + + /* Hero Section */ + .solution-hero { + position: relative; + min-height: 50vh; + display: flex; + align-items: center; + padding-top: 110px; /* header高度80px + 最小间距30px */ + overflow: hidden; + background: url("../../images/solution/neihe.png"); + } + + .solution-hero::before { + content: ''; + position: absolute; + top: 0; + right: 0; + width: 60%; + height: 60%; + background: radial-gradient(circle, rgba(0, 100, 255, 0.15) 0%, transparent 70%); + animation: blob 8s ease-in-out infinite; + } + + .solution-hero::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 60%; + height: 60%; + background: radial-gradient(circle, rgba(0, 100, 255, 0.1) 0%, transparent 70%); + animation: blob 8s ease-in-out infinite 2s; + } + + @keyframes blob { + 0%, 100% { transform: translate(0, 0) scale(1); } + 33% { transform: translate(30px, -30px) scale(1.1); } + 66% { transform: translate(-20px, 20px) scale(0.9); } + } + + .hero-content { + position: relative; + z-index: 10; + } + + .hero-badge { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 6px 16px; + border-radius: 50px; + background: #0066ff; + + color: rgb(255, 255, 255); + font-size: 12px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 1px; + margin-top: 24px; + } + + .hero-badge .pulse-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: rgb(255, 255, 255); + animation: pulse 2s ease-in-out infinite; + } + + @keyframes pulse { + 0%, 100% { opacity: 1; transform: scale(1); } + 50% { opacity: 0.5; transform: scale(1.2); } + } + + .hero-title { + font-size: 38px; + font-weight: 700; + color: #fff; + line-height: 1.2; + margin-bottom: 24px; + } + + .hero-title .gradient-text { + background: linear-gradient(90deg, rgba(0, 150, 255, 1), rgba(100, 200, 255, 1)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + } + + .hero-desc { + font-size: 18px; + color: #eef6ff; + line-height: 1.8; + max-width: 520px; + margin-bottom: 32px; + } + + .hero-buttons { + display: flex; + flex-wrap: wrap; + gap: 16px; + } + + .btn-primary-custom { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 14px 28px; + background: rgba(0, 100, 255, 1); + color: #fff; + border-radius: 8px; + font-weight: 500; + text-decoration: none; + transition: all 0.3s ease; + box-shadow: 0 10px 40px -10px rgba(0, 100, 255, 0.5); + } + + .btn-primary-custom:hover { + background: rgba(0, 80, 200, 1); + color: #fff; + transform: translateY(-2px); + } + + .btn-outline-custom { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 14px 28px; + background: transparent; + color: #fff; + border: 1px solid #475569; + border-radius: 8px; + font-weight: 500; + text-decoration: none; + transition: all 0.3s ease; + } + + .btn-outline-custom:hover { + background: rgba(255, 255, 255, 0.05); + color: #fff; + } + + /* Hero Stats Cards */ + .hero-stats { + position: relative; + z-index: 10; + } + + .stats-card-container { + + padding: 24px 24px 48px 24px; + } + + .stats-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 16px; + position: relative; + } + + .stat-item { + background: rgba(0, 50, 128, 0.5); + padding: 30px; + border-radius: 12px; + box-shadow: -1px 3px 6px 0px rgb(8 75 159 / 33%); + height: 130px; + display: flex; + flex-direction: column; + justify-content: center; + } + + .stat-item .stat-icon { + width: 40px; + height: 40px; + margin-bottom: 12px; + } + + /* 覆盖 themify-icons 默认样式 */ + .stat-item .stat-icon[class^="ti-"], + .stat-item .stat-icon[class*=" ti-"] { + font-size: 32px; + line-height: 1; + display: block; + } + + .stat-item .stat-icon.blue { color: rgba(0, 150, 255, 1); } + .stat-item .stat-icon.cyan { color: rgba(0, 180, 255, 1); } + .stat-item .stat-icon.indigo { color: rgba(80, 120, 255, 1); } + .stat-item .stat-icon.green { color: #34d399; } + + .stat-item .stat-number { + font-size: 28px; + font-weight: 700; + color: #fff; + margin-bottom: 4px; + } + + .stat-item .stat-label { + font-size: 12px; + color: #94a3b8; + } + + /* 风车叶片错开效果 - 使用transform不影响间距 */ + .stat-item:nth-child(2), + .stat-item:nth-child(4) { + transform: translateY(24px); + } + + .stats-center-icon { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, calc(-50% + 12px)); + width: 64px; + height: 64px; + background: rgba(0, 100, 255, 1); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 10px 40px -10px rgba(0, 100, 255, 0.5); + border: 4px solid rgba(0, 40, 100, 1); + z-index: 10; + } + + .stats-center-icon i { + font-size: 24px; + color: #fff; + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + line-height: 1; + } + + /* 覆盖 flaticon 默认样式 */ + .stats-center-icon [class^="flaticon-"]:before, + .stats-center-icon [class*=" flaticon-"]:before, + .stats-center-icon [class^="flaticon-"]:after, + .stats-center-icon [class*=" flaticon-"]:after { + font-family: Flaticon; + font-size: 28px; + font-style: normal; + margin-left: 0; + } + + /* Pain Points Section */ + .pain-points-section { + padding: 100px 0; + background: #fff; + } + + .section-header { + text-align: center; + max-width: 700px; + margin: 0 auto 60px; + } + + .section-header h2 { + font-size: 32px; + font-weight: 700; + color: #0f172a; + margin-bottom: 16px; + } + + .section-header p { + font-size: 16px; + color: #64748b; + } + + .pain-point-card { + height: 100%; + padding: 32px; + text-align: center; + background: #f8fafc; + border-radius: 16px; + border: 1px solid #e2e8f0; + transition: all 0.3s ease; + } + + .pain-point-card:hover { + background: #fff; + box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.1); + transform: translateY(-4px); + } + + .pain-point-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 64px; + height: 64px; + background: #fff; + border-radius: 12px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); + margin-bottom: 24px; + transition: transform 0.3s ease; + } + + .pain-point-card:hover .pain-point-icon { + transform: scale(1.1); + } + + .pain-point-icon i { + font-size: 28px; + } + + .pain-point-icon.red i { color: #0a7cff; } + .pain-point-icon.orange i { color: #00751d; } + .pain-point-icon.yellow i { color: #eab308; } + .pain-point-icon.purple i { color: #a855f7; } + + .pain-point-card h3 { + font-size: 20px; + font-weight: 700; + color: #0f172a; + margin-bottom: 12px; + line-height: 1.4; + min-height: 2.8em; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + line-clamp: 2; + box-orient: vertical; + } + + .pain-point-card p { + font-size: 14px; + color: #64748b; + line-height: 1.7; + margin: 0; + } + + /* Solution Architecture Section */ + .architecture-section { + padding: 100px 0; + background: linear-gradient(135deg, #005dc7 0%, rgb(1, 79, 212) 100%); + color: #fff; + overflow: hidden; + } + + .architecture-section > .container > .row { + display: flex; + flex-wrap: wrap; + align-items: center; + } + + .architecture-section > .container > .row > .col-md-6 { + display: flex; + align-items: center; + } + + .arch-step { + display: flex; + align-items: flex-start; + gap: 20px; + margin-bottom: 32px; + } + + .arch-step-number { + flex-shrink: 0; + width: 40px; + height: 40px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 14px; + } + + .arch-step-number.blue { + background: rgba(177, 208, 255, 0.2); + border: 1px solid rgba(0, 100, 255, 0.3); + color: rgb(255, 255, 255); + } + + .arch-step-number.cyan { + background: rgba(177, 208, 255, 0.2); + border: 1px solid rgba(0, 100, 255, 0.3); + color: rgb(255, 255, 255); + } + + .arch-step-number.indigo { + background: rgba(177, 208, 255, 0.2); + border: 1px solid rgba(0, 100, 255, 0.3); + color: rgb(255, 255, 255); + } + + .arch-step-content h4 { + font-size: 18px; + font-weight: 600; + margin-bottom: 8px; + } + + .arch-step-content h4.blue { color: rgb(255, 255, 255); } + .arch-step-content h4.cyan { color: rgb(255, 255, 255); } + .arch-step-content h4.indigo { color: rgb(255, 255, 255); } + + .arch-step-content p { + font-size: 14px; + color: rgba(255, 255, 255, 0.8); + margin: 0; + } + + .arch-visual { + position: relative; + max-width: 400px; + margin: 0 auto; + } + + .arch-visual::before { + content: ''; + position: absolute; + inset: 0; + background: linear-gradient(135deg, rgba(0, 100, 255, 0.2), rgba(0, 150, 255, 0.1)); + border-radius: 50%; + filter: blur(60px); + animation: pulse 4s ease-in-out infinite; + } + + .arch-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 16px; + position: relative; + } + + .arch-grid-item { + background: rgba(30, 41, 59, 0.8); + backdrop-filter: blur(8px); + border: 1px solid rgba(71, 85, 105, 0.5); + border-radius: 16px; + padding: 24px; + text-align: center; + transition: transform 0.3s ease; + } + + .arch-grid-item:hover { + transform: translateY(-8px); + } + + .arch-grid-item:nth-child(2), + .arch-grid-item:nth-child(4) { + margin-top: 32px; + } + + .arch-grid-item i { + font-size: 40px; + margin-bottom: 12px; + } + + .arch-grid-item i.blue { color: rgba(0, 150, 255, 1); } + .arch-grid-item i.cyan { color: rgba(0, 180, 255, 1); } + .arch-grid-item i.indigo { color: rgba(100, 150, 255, 1); } + .arch-grid-item i.green { color: #34d399; } + + .arch-grid-item span { + font-weight: 600; + font-size: 14px; + } + + .arch-center-link { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 56px; + height: 56px; + background: #fff; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 10px 40px rgba(0, 100, 255, 0.3); + z-index: 10; + } + + .arch-center-link i { + font-size: 24px; + color: #003080; + } + + /* Architecture Visual Image Container */ + .arch-visual-container { + position: relative; + width: 100%; + max-width: 700px; + margin: 20px auto; + background: rgba(255, 255, 255, 0.05); + border-radius: 16px; + padding: 10px ; + border: 1px solid rgba(71, 85, 105, 0.5); + backdrop-filter: blur(8px); + box-shadow: 0 20px 60px -20px rgba(0, 0, 0, 0.3); + display: flex; + align-items: center; + justify-content: center; + } + + .arch-visual-container::before { + content: ''; + position: absolute; + inset: -2px; + background: linear-gradient(135deg, rgba(0, 100, 255, 0.3), rgba(0, 150, 255, 0.2)); + border-radius: 18px; + filter: blur(20px); + opacity: 0.5; + z-index: -1; + animation: pulse 4s ease-in-out infinite; + } + + .arch-visual-container img { + width: 100%; + height: auto; + display: block; + border-radius: 8px; + position: relative; + z-index: 1; + } + + /* Add hover effect */ + .arch-visual-container:hover { + transform: translateY(-4px); + transition: transform 0.3s ease; + border-color: rgba(0, 150, 255, 0.6); + } + + /* Responsive adjustments for the image container */ + @media (max-width: 1200px) { + .arch-visual-container { + max-width: 540px; + } + } + + @media (max-width: 991px) { + .arch-visual-container { + max-width: 480px; + } + } + + @media (max-width: 767px) { + .arch-visual-container { + max-width: 100%; + margin: 24px auto 0; + } + } + + /* Product Matrix Section */ + .products-section { + padding: 100px 0; + background: #f8fafc; + } + + .section-header-flex { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: flex-end; + margin-bottom: 48px; + } + + .section-header-left { + max-width: 600px; + } + + .section-label { + font-size: 12px; + font-weight: 700; + color: rgba(0, 100, 255, 1); + text-transform: uppercase; + letter-spacing: 2px; + margin-bottom: 8px; + } + + .section-header-left h2 { + font-size: 32px; + font-weight: 700; + color: #0f172a; + margin-bottom: 12px; + } + + .section-header-left p { + font-size: 16px; + color: #64748b; + margin: 0; + } + + .view-all-link { + display: inline-flex; + align-items: center; + gap: 8px; + color: rgba(0, 100, 255, 1); + font-weight: 600; + text-decoration: none; + transition: color 0.3s ease; + } + + .view-all-link:hover { + color: rgba(0, 80, 200, 1); + } + + /* 让同一行的产品卡片高度一致 */ + .products-section .row { + display: flex; + flex-wrap: wrap; + } + + .products-section .row > [class*="col-"] { + display: flex; + margin-bottom: 24px; + } + + .product-card { + background: #fff; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); + border: 1px solid #e2e8f0; + transition: all 0.3s ease; + height: 100%; + display: flex; + flex-direction: column; + margin-bottom: 0; + width: 100%; + } + + .product-card:hover { + box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.15); + transform: translateY(-4px); + } + + .product-card-bar { + height: 4px; + width: 100%; + } + + .product-card-bar.blue { background: rgba(0, 100, 255, 1); } + .product-card-bar.cyan { background: rgba(0, 120, 255, 1); } + .product-card-bar.indigo { background: rgba(50, 100, 255, 1); } + .product-card-bar.slate { background: rgba(0, 60, 150, 1); } + .product-card-bar.green { background: rgba(0, 80, 200, 1); } + + .product-card-body { + padding: 28px; + flex: 1; + display: flex; + flex-direction: column; + } + + .product-tags { + display: flex; + gap: 8px; + margin-bottom: 16px; + } + + .product-tag { + font-size: 12px; + font-weight: 500; + padding: 4px 10px; + background: #f1f5f9; + color: #475569; + border-radius: 4px; + } + + .product-card-body h3 { + font-size: 18px; + font-weight: 700; + color: #0f172a; + margin-bottom: 12px; + transition: color 0.3s ease; + } + + .product-card:hover h3 { + color: rgba(0, 100, 255, 1); + } + + .product-card-body > p { + font-size: 14px; + color: #64748b; + line-height: 1.7; + flex: 1; + margin-bottom: 20px; + } + + .product-card-footer { + + display: flex; + justify-content: space-between; + align-items: center; + } + + .product-card-footer span { + font-size: 14px; + color: #94a3b8; + transition: color 0.3s ease; + } + + .product-card:hover .product-card-footer span { + color: rgba(0, 100, 255, 1); + } + + .product-card-arrow { + width: 32px; + height: 32px; + border-radius: 50%; + background: #f1f5f9; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.3s ease; + } + + .product-card-arrow i { + font-size: 14px; + color: #64748b; + } + + .product-card:hover .product-card-arrow { + background: rgba(0, 100, 255, 1); + } + + .product-card:hover .product-card-arrow i { + color: #fff; + } + + /* Value Section */ + .value-section { + padding: 70px 0; + background: #fff; + } + + .value-item { + display: flex; + flex-direction: column; + align-items: center; + padding: 28px; + background: #f8fafc; + border-radius: 16px; + transition: all 0.3s ease; + cursor: default; + margin-bottom: 16px; + } + + .value-item:hover { + background: rgba(0, 100, 255, 1); + } + + .value-item:hover *:not(.value-icon i) { + color: #fff !important; + } + + .value-item:hover .value-icon i { + color: #fff; + } + + .value-item:hover .value-icon { + background: rgba(255, 255, 255, 0.2); + box-shadow: none; + } + + .value-icon { + flex-shrink: 0; + width: 64px; + height: 64px; + background: #fff; + border-radius: 16px; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); + margin-bottom: 20px; + transition: all 1.2s ease; + } + + .value-icon i { + font-size: 28px; + color: rgba(0, 100, 255, 1); + transition: color 1.2s ease; + } + + .value-content { + text-align: center; + } + + .value-content h3 { + font-size: 18px; + font-weight: 700; + color: #0f172a; + margin-bottom: 8px; + transition: color 1.2s ease; + } + + .value-content p { + font-size: 14px; + color: #64748b; + line-height: 1.7; + margin: 0; + transition: color 1.2s ease; + } + + @media (min-width: 768px) { + .value-item { + flex-direction: row; + text-align: left; + } + + .value-icon { + margin-bottom: 0; + margin-right: 24px; + } + + .value-content { + text-align: left; + } + } + + /* Advantages Section */ + .advantages-section { + padding: 100px 0; + background: url("../../images/solution/bg.png"); + color: #fff; + position: relative; + overflow: hidden; + } + + .advantages-section .row { + display: flex; + align-items: center; + } + + @media (max-width: 767px) { + .advantages-section .row { + flex-direction: column; + } + + .advantages-section .col-md-6 { + width: 100%; + } + } + + .advantages-section::before { + content: ''; + position: absolute; + top: 0; + right: 0; + width: 50%; + height: 100%; + + } + + .advantage-item { + display: flex; + gap: 16px; + margin-bottom: 32px; + } + + .advantage-check { + flex-shrink: 0; + margin-top: 4px; + } + + .advantage-check i { + font-size: 24px; + color: rgba(0, 150, 255, 1); + } + + .advantage-item h4 { + font-size: 18px; + font-weight: 700; + color: #fff; + margin-bottom: 8px; + } + + .advantage-item p { + font-size: 14px; + color: #94a3b8; + margin: 0; + line-height: 1.7; + } + + .stats-boxes { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 16px; + position: relative; + } + + .stat-box { + background: rgba(0, 40, 100, 0.5); + padding: 28px; + border-radius: 16px; + text-align: center; + border: 1px solid rgba(0, 100, 255, 0.3); + transition: border-color 0.3s ease; + } + + .stat-box:hover { + border-color: rgba(0, 150, 255, 1); + } + + .stat-box.full-width { + grid-column: span 2; + } + + .stat-box .stat-number { + font-size: 36px; + font-weight: 700; + color: rgb(255, 255, 255); + margin-bottom: 8px; + } + + .stat-box .stat-label { + font-size: 14px; + color: #94a3b8; + } + + /* Cases Section */ + .cases-section { + padding: 100px 0; + background: #f8fafc; + } + + .case-card-link { + display: block; + color: inherit; + text-decoration: none; + } + + .case-card-link:hover, + .case-card-link:focus { + color: inherit; + text-decoration: none; + } + + .cases-section .row + .row { + margin-top: 30px; + } + + .case-card { + background: #fff; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06); + border: 1px solid #e2e8f0; + height: 100%; + display: flex; + flex-direction: column; + } + + .case-card-header { + position: relative; + padding: 28px; + display: flex; + align-items: flex-end; + overflow: hidden; + } + + .case-card-header.blue { + background: linear-gradient(135deg, rgba(0, 60, 180, 1), rgba(0, 100, 255, 1)); + } + + .case-card-header.cyan { + background: linear-gradient(135deg, rgba(0, 80, 200, 1), rgba(0, 120, 255, 1)); + } + + .case-card-header.teal { + background: linear-gradient(135deg, rgba(0, 110, 140, 1), rgba(0, 160, 190, 1)); + } + + .case-card-header.green { + background: linear-gradient(135deg, rgba(0, 120, 90, 1), rgba(40, 180, 120, 1)); + } + + .case-card-header.indigo { + background: linear-gradient(135deg, rgba(30, 60, 180, 1), rgba(50, 100, 255, 1)); + } + + .case-card-header::before { + content: ''; + position: absolute; + top: -50%; + right: -10%; + width: 160px; + height: 160px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.1); + } + + .case-card-header h3 { + position: relative; + font-size: 18px; + font-weight: 700; + color: #fff; + margin: 0; + } + + .case-card-body { + padding: 28px; + flex: 1; + } + + .case-project { + font-size: 14px; + font-weight: 600; + color: rgba(0, 100, 255, 1); + margin-bottom: 12px; + } + + .case-card-body p { + font-size: 14px; + color: #64748b; + line-height: 1.7; + margin: 0; + } + + /* Scroll Animation */ + .reveal { + opacity: 0; + transform: translateY(40px); + transition: all 0.8s ease; + } + + .reveal.active { + opacity: 1; + transform: translateY(0); + } + + /* Responsive */ + @media (max-width: 991px) { + .hero-title { + font-size: 36px; + } + + .hero-stats { + margin-top: 48px; + } + } + + @media (max-width: 767px) { + .solution-hero { + min-height: auto; + padding: 110px 0 60px; /* header高度80px + 最小间距30px */ + } + + .hero-title { + font-size: 28px; + } + + .hero-desc { + font-size: 16px; + } + + .section-header h2, + .section-header-left h2 { + font-size: 24px; + } + + .section-header-flex { + flex-direction: column; + align-items: flex-start; + gap: 16px; + } + + .cases-section .row + .row { + margin-top: 24px; + } + + .cases-section .col-md-4 + .col-md-4 { + margin-top: 24px; + } + + .stat-box .stat-number { + font-size: 28px; + } + } + + .value-grid { + display: flex; + flex-wrap: wrap; + margin: 0 -15px; + } + + .value-grid-item { + width: 50%; + padding: 0 15px; + box-sizing: border-box; + display: flex; + } + + .value-grid-item .value-item { + width: 100%; + } + + @media (max-width: 767px) { + .value-grid-item { + width: 100%; + } + } diff --git a/nuxt-web/assets/styles/base/style.css b/nuxt-web/assets/styles/base/style.css new file mode 100644 index 0000000..e0bdb4f --- /dev/null +++ b/nuxt-web/assets/styles/base/style.css @@ -0,0 +1,8195 @@ +/*------------------------------------------------------------------ +[Master Stylesheet] +Theme Name: Mikago - Logistics & Transportation HTML Template +Version: 1.0.0 +Author: blue_design +URL: http://themeforest.net/user/blue_design +-------------------------------------------------------------------*/ +/*-------------------------------------------------------------- +>>> TABLE OF CONTENTS: +---------------------------------------------------------------- +#0.1 Theme Reset Style +#0.2 Global Elements +#0.3 header +#0.4 hero-slider +#0.5 footer +#0.6 features-section +#0.7 about-section +#0.8 services-section +#0.9 track-contact +#1.0 faq-achievement-section +#1.1 testimonials-section +#1.2 fun-fact-section +#1.3 portfolio-section +#1.4 partners-section +#1.5 blog-section +#1.5 cta-section-s2 + + +-------------------------------------------------------------- + #home style 2 +-------------------------------------------------------------- +#2.1 features-section-s2 +#2.2 about-section-s2 +#2.3 services-section-s2 +#2.4 track-contact-s2 +#2.5 testimonials-section-s2 + + +-------------------------------------------------------------- + #home style 3 +-------------------------------------------------------------- +#3.1 features-section-s3 + + +-------------------------------------------------------------- + #about page +-------------------------------------------------------------- +#4.1 mission-vision-section + + +-------------------------------------------------------------- + #contact page +-------------------------------------------------------------- +#5.1 contact-pg-section + + +-------------------------------------------------------------- + #project single page +-------------------------------------------------------------- +#6.1 project-sigle-section + + +-------------------------------------------------------------- + #service single page +-------------------------------------------------------------- +#7.1 service-single-section + + +-------------------------------------------------------------- + #blog page +-------------------------------------------------------------- +#8.1 blog-pg-section + + +-------------------------------------------------------------- + #blog single page +-------------------------------------------------------------- +#9.1 blog-single-section + + +-------------------------------------------------------------- + #404 page +-------------------------------------------------------------- +#10.1 error-404-section + + + +----------------------------------------------------------------*/ +/*--------------------------- + Fonts +----------------------------*/ +@import url("https://fonts.googleapis.com/css?family=Muli:400,400i,600,700,800&display=swap"); +/*-------------------------------------------------------------- +#0.1 Theme Reset Style +--------------------------------------------------------------*/ +html { + font-size: 16px; +} + +body { + font-family: Helvetica, 'Microsoft Yahei', '微软雅黑', Arial, sans-serif; + background-color: #fff; + font-size: 16px; + font-size: 1rem; + -webkit-font-smoothing: antialiased; + overflow-x: hidden; + margin: 0; + padding: 0; +} + +@media (max-width: 767px) { + body { + font-size: 14px; + } +} + +p { + color: #1d2f4b; + + line-height: 2em; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-weight: bold; + color: #102541; +} + +ul { + list-style-type: none; + padding-left: 0; + margin: 0; +} + +a { + text-decoration: none; + color: #011628; + -webkit-transition: all 0.2s; + -moz-transition: all 0.2s; + -o-transition: all 0.2s; + -ms-transition: all 0.2s; + transition: all 0.2s; +} + +a:hover { + text-decoration: none; +} + +img { + max-width: 100%; +} + +/*-------------------------------------------------------------- +#0.2 Global Elements +--------------------------------------------------------------*/ +.page-wrapper { + position: relative; + overflow: hidden; +} + +.wow { + visibility: hidden; +} + +.fi:before { + margin: 0; +} + +.section-padding { + padding: 50px 0; +} + +@media (max-width: 991px) { + .section-padding { + padding: 90px 0; + } +} + +@media (max-width: 767px) { + .section-padding { + padding: 80px 0; + } +} + +#header{z-index: 99;position: fixed} + +/*** contact form error handling ***/ +.contact-validation-active .error-handling-messages { + width: 100% !important; + margin-top: 15px !important; +} + +.contact-validation-active label.error { + color: red; + font-size: 0.875rem; + font-weight: normal; + margin: 5px 0 0 0; + text-align: left; + display: block; +} + +.contact-validation-active #loader { + display: none; + margin-top: 10px; +} + +.contact-validation-active #loader i { + font-size: 30px; + font-size: 1.875rem; + color: #1481ff; + display: inline-block; + -webkit-animation: rotating linear 2s infinite; + animation: rotating linear 2s infinite; +} + +.contact-validation-active #success, +.contact-validation-active #error { + width: 100%; + color: #fff; + padding: 5px 10px; + font-size: 16px; + text-align: center; + display: none; +} + +@media (max-width: 767px) { + .contact-validation-active #success, + .contact-validation-active #error { + font-size: 15px; + } +} + +.contact-validation-active #success { + background-color: #009a00; + border-left: 5px solid green; + margin-bottom: 5px; +} + +.contact-validation-active #error { + background-color: #ff1a1a; + border-left: 5px solid red; +} + +@-webkit-keyframes rotating { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes rotating { + from { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +.rotating { + -webkit-animation: rotating 5s alternate infinite; + animation: rotating 5s alternate infinite; +} + +/** for popup image ***/ +.mfp-wrap { + background-color: rgba(0, 0, 0, 0.9); + z-index: 99999; +} + +.mfp-with-zoom .mfp-container, +.mfp-with-zoom.mfp-bg { + opacity: 0; + -webkit-backface-visibility: hidden; + -webkit-transition: all 0.3s ease-out; + -moz-transition: all 0.3s ease-out; + -o-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} + +.mfp-with-zoom.mfp-ready .mfp-container { + opacity: 1; +} + +.mfp-with-zoom.mfp-ready.mfp-bg { + opacity: 0.8; +} + +.mfp-with-zoom.mfp-removing .mfp-container, +.mfp-with-zoom.mfp-removing.mfp-bg { + opacity: 0; +} + +/*** for fancybox video ***/ +.fancybox-overlay { + background: rgba(0, 0, 0, 0.9); + z-index: 9999 !important; +} + +.fancybox-wrap { + z-index: 99999 !important; +} + +.section-title, .section-title-s2, .section-title-s3 { + margin-bottom: 30px; +} + +@media (max-width: 767px) { + .section-title, .section-title-s2, .section-title-s3 { + margin-bottom: 20px; + } +} + +.section-title > span, .section-title-s2 > span, .section-title-s3 > span { + font-size: 14px; + font-size:1.275rem; + font-weight: bold; + color:#1481ff; + text-transform: uppercase; + display: block; + margin-top: -0.2em; + margin-bottom: 1.5rem; +} + + +.section-title > span, .section-title-s2 > span, .section-title-s4 > span { + font-size: 14px; + font-size:1.275rem; + font-weight: bold; + color:#1481ff; + text-transform: uppercase; + display: block; + margin-bottom: 0.5em; + margin-top: 0rem; +} + +@media (max-width: 767px) { + .section-title > span, .section-title-s2 > span, .section-title-s3 > span { + font-size: 12px; + font-size: 0.75rem; + } + + .section-title > span, .section-title-s2 > span, .section-title-s4 > span { + font-size: 12px; + font-size: 0.75rem; + } +} + +.section-title h2, .section-title-s2 h2, .section-title-s3 h2 { + font-size: 36px; + font-size: 2.25rem; + margin: 0 0 0.5em 0; +} + +.section-title h2, .section-title-s2 h2, .section-title-s4 h2 { + font-size: 36px; + font-size: 2.25rem; + margin: 0.2em 0 1.5em 0; +} + +@media (max-width: 991px) { + .section-title h2, .section-title-s2 h2, .section-title-s3 h2 { + font-size: 30px; + font-size: 1.875rem; + } + + .section-title h2, .section-title-s2 h2, .section-title-s4 h2 { + font-size: 30px; + font-size: 1.875rem; + } +} + +@media (max-width: 767px) { + .section-title h2, .section-title-s2 h2, .section-title-s3 h2 { + font-size: 25px; + font-size: 1.5625rem; + } +} + +.section-title-s2, .section-title-s3 { + margin-bottom: 45px; +} + +@media (max-width: 991px) { + .section-title-s2, .section-title-s3 { + margin-bottom: 30px; + } +} + +.section-title-s3 { + text-align: center; +} + +.section-title-s4 { + text-align: center; +} + +.theme-btn, .theme-btn-s2, .theme-btn-s3 { + background-color: #1481ff; + color: #fff; + font-weight: 600; + padding: 14px 53px 14px 28px; + border-radius: 50px; + display: inline-block; + position: relative; + text-transform: capitalize; +} + +@media (max-width: 991px) { + .theme-btn, .theme-btn-s2, .theme-btn-s3 { + font-size: 14px; + font-size: 0.875rem; + padding: 13px 22px; + } +} + +.theme-btn:after, .theme-btn-s2:after, .theme-btn-s3:after { + font-family: "Themify"; + + content: "\e65d"; + position: absolute; + right: 28px; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} + +@media (max-width: 991px) { + .theme-btn:after, .theme-btn-s2:after, .theme-btn-s3:after { + display: none; + } +} + +.theme-btn:hover, .theme-btn-s2:hover, .theme-btn-s3:hover, .theme-btn:focus, .theme-btn-s2:focus, .theme-btn-s3:focus, .theme-btn:active, .theme-btn-s2:active, .theme-btn-s3:active { + background-color: #005dc8; + color: #fff; + text-decoration: none; +} + +@media (max-width: 767px) { + .theme-btn, .theme-btn-s2, .theme-btn-s3 { + padding: 12px 17px; + } +} + +.theme-btn-s2, .theme-btn-s3 { + padding: 17px 53px 17px 28px; +} + +@media (max-width: 991px) { + .theme-btn-s2, .theme-btn-s3 { + font-size: 14px; + font-size: 0.875rem; + padding: 13px 22px; + } +} + +@media (max-width: 767px) { + .theme-btn-s2, .theme-btn-s3 { + font-size: 13px; + font-size: 0.8125rem; + padding: 12px 17px; + } +} + +.theme-btn-s3 { + background-color: #1481ff; +} + +.theme-btn-s3:hover, .theme-btn-s3:focus, .theme-btn-s3:active { + background-color: #0552af; + color: #fff; + text-decoration: none; +} + +.hero-video-btn { + display: inline-block; + font-size: 16px; + font-size: 1rem; + color: #fff; +} + +.hero-video-btn i { + display: inline-block; + padding-right: 10px; + position: relative; + top: 15px; +} + +@media (max-width: 767px) { + .hero-video-btn i { + top: 12px; + } +} + +.hero-video-btn .fi:before { + font-size: 50px; + font-size: 3.125rem; + color: #fff; +} + +@media (max-width: 767px) { + .hero-video-btn .fi:before { + font-size: 40px; + font-size: 2.5rem; + } +} + +@media (max-width: 991px) { + .hero-video-btn { + font-size: 14px; + font-size: 0.875rem; + } +} + +.hero-video-btn:hover { + color: #fff; +} + +.form input, +.form textarea, +.form select { + border-color: #bfbfbf; + border-radius: 0; + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; + color: #595959; +} + +.form input:focus, +.form textarea:focus, +.form select:focus { + border-color: #1481ff; + -webkit-box-shadow: 0 0 5px 0 #fd8149; + -moz-box-shadow: 0 0 5px 0 #fd8149; + -o-box-shadow: 0 0 5px 0 #fd8149; + -ms-box-shadow: 0 0 5px 0 #fd8149; + box-shadow: 0 0 5px 0 #fd8149; +} + +.form ::-webkit-input-placeholder { + font-style: 14px; + font-style: italic; + color: #595959; +} + +.form :-moz-placeholder { + font-style: 14px; + font-style: italic; + color: #595959; +} + +.form ::-moz-placeholder { + font-style: 14px; + font-style: italic; + color: #595959; +} + +.form :-ms-input-placeholder { + font-style: 14px; + font-style: italic; + color: #595959; +} + +.form select { + font-style: italic; + background: none; + display: inline-block; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + appearance: none; + cursor: pointer; +} + +.form select::-ms-expand { + /* for IE 11 */ + display: none; +} + +.social-links { + overflow: hidden; +} + +.social-links li { + float: left; + width: 35px; + height: 35px; + margin-right: 1px; +} + +.social-links li a { + background-color: #fd8149; + width: 35px; + height: 35px; + line-height: 35px; + display: block; + color: #fff; + text-align: center; +} + +.social-links li a:hover { + background-color: #1481ff; +} + + +.bottom{margin-bottom: 20px;} + + + + + +.page-title { + background: url("../../images/page-title2.webp") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; +} + +.page-title1 { + background: url("../../images/page-title1.png") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; +} + +.page-title2 { + background: url("../../images/page-title2.webp") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; +} + +.page-title3 { + background: url("../../images/page-title3.png") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; +} + +.page-title4 { + background: url("../../images/page-title4.webp") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; +} + +.page-title5 { + background: url("../../images/page-title5.png") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; +} + +.page-title6 { + background: url("../../images/page-title6.png.webp") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; +} + +.page-title-cargo-platform { + background: url("../../images/project/agNetCargoPlatform/top.webp") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; + /* background-color: #ffffff00 !important; */ + margin-top: 80px !important; /* Adjusted for new 80px header height */ +} + +.page-title-cargo-platform::before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + /* background-color: rgba(0, 0, 0, 0.5); */ + z-index: 1; +} + +.page-title-cargo-platform .container { + position: relative; + z-index: 2; +} + +.page-title-cargo-platform h2, +.page-title-cargo-platform p { + color: #ffffff; +} + +.page-title-cargo-platform1 { + background: url("../../images/project/agNetCargoPlatform/top2.png") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; + /* background-color: #ffffff00 !important; */ + margin-top: 80px !important; /* Adjusted for new 80px header height */ +} + +.page-title-cargo-platform1::before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + /* background-color: rgba(0, 0, 0, 0.5); */ + z-index: 1; +} + +.page-title-cargo-platform1 .container { + position: relative; + z-index: 2; +} + +.page-title-cargo-platform1 h2, +.page-title-cargo-platform1 p { + color: #ffffff; +} + +.page-title-cargo-platform2 { + background: url("../../images/project/agNetCargoPlatform/top3.png") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; + /* background-color: #ffffff00 !important; */ + margin-top: 80px !important; /* Adjusted for new 80px header height */ +} + +.page-title-cargo-platform2::before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + /* background-color: rgba(0, 0, 0, 0.5); */ + z-index: 1; +} + +.page-title-cargo-platform2 .container { + position: relative; + z-index: 2; +} + +.page-title-cargo-platform2 h2, +.page-title-cargo-platform2 p { + color: #ffffff; +} + +.page-title-cargo-platform3 { + background: url("../../images/project/agNetCargoPlatform/top4.png") center center/cover no-repeat local; + width: 100%; + height: 330px; + position: relative; + text-align: center; + /* background-color: #ffffff00 !important; */ + margin-top: 80px !important; /* Adjusted for new 80px header height */ +} + +.page-title-cargo-platform3::before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + /* background-color: rgba(0, 0, 0, 0.5); */ + z-index: 1; +} + +.page-title-cargo-platform3 .container { + position: relative; + z-index: 2; +} + +.page-title-cargo-platform3 h2, +.page-title-cargo-platform3 p { + color: #ffffff; +} + +@media (max-width: 991px) { + .page-title { + height: 300px; + } +} + +.page-title .container { + height: 100%; + display: table; +} + +@media screen and (min-width: 992px) { + .page-title .container { + padding-top: 100px; + } +} + +.page-title .container > .row { + vertical-align: middle; + display: table-cell; +} + +.page-title h2 { + font-size: 55px; + margin-bottom: 20px; + color:#ffffff; + font-size: 2.4375rem; + font-weight: 900; + + margin: 0em 0 0.30em; +} +.page-title p { + font-size: 16px; + /*font-weight: 900;*/ +color:#ffffff; + margin: 0.5em 0 0.30em; +} + +@media (max-width: 991px) { + .page-title h2 { + font-size: 45px; + font-size: 2.8125rem; + } +} + +@media (max-width: 767px) { + .page-title h2 { + font-size: 40px; + font-size: 2.5rem; + } +} + +.preloader { + background-color: #fff; + width: 100%; + height: 100%; + position: fixed; + z-index: 1000; +} + +.preloader .sk-folding-cube { + margin: 20px auto; + width: 60px; + height: 60px; + position: absolute; + left: calc(50% - 30px); + top: calc(50% - 50px); + -webkit-transform: rotateZ(45deg); + -ms-transform: rotate(45deg); + transform: rotateZ(45deg); +} + +.preloader .sk-folding-cube .sk-cube { + float: left; + width: 50%; + height: 50%; + position: relative; + -webkit-transform: scale(1.1); + -ms-transform: scale(1.1); + transform: scale(1.1); +} + +.preloader .sk-folding-cube .sk-cube:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #1481ff; + -webkit-animation: sk-foldCubeAngle 2.4s infinite linear both; + animation: sk-foldCubeAngle 2.4s infinite linear both; + -webkit-transform-origin: 100% 100%; + -ms-transform-origin: 100% 100%; + transform-origin: 100% 100%; +} + +.preloader .sk-folding-cube .sk-cube2 { + -webkit-transform: scale(1.1) rotateZ(90deg); + -ms-transform: scale(1.1) rotate(90deg); + transform: scale(1.1) rotateZ(90deg); +} + +.preloader .sk-folding-cube .sk-cube3 { + -webkit-transform: scale(1.1) rotateZ(180deg); + -ms-transform: scale(1.1) rotate(180deg); + transform: scale(1.1) rotateZ(180deg); +} + +.preloader .sk-folding-cube .sk-cube4 { + -webkit-transform: scale(1.1) rotateZ(270deg); + -ms-transform: scale(1.1) rotate(270deg); + transform: scale(1.1) rotateZ(270deg); +} + +.preloader .sk-folding-cube .sk-cube2:before { + -webkit-animation-delay: 0.3s; + animation-delay: 0.3s; +} + +.preloader .sk-folding-cube .sk-cube3:before { + -webkit-animation-delay: 0.6s; + animation-delay: 0.6s; +} + +.preloader .sk-folding-cube .sk-cube4:before { + -webkit-animation-delay: 0.9s; + animation-delay: 0.9s; +} + +@-webkit-keyframes sk-foldCubeAngle { + 0%, 10% { + -webkit-transform: perspective(140px) rotateX(-180deg); + transform: perspective(140px) rotateX(-180deg); + opacity: 0; + } + 25%, 75% { + -webkit-transform: perspective(140px) rotateX(0deg); + transform: perspective(140px) rotateX(0deg); + opacity: 1; + } + 90%, 100% { + -webkit-transform: perspective(140px) rotateY(180deg); + transform: perspective(140px) rotateY(180deg); + opacity: 0; + } +} + +@keyframes sk-foldCubeAngle { + 0%, 10% { + -webkit-transform: perspective(140px) rotateX(-180deg); + transform: perspective(140px) rotateX(-180deg); + opacity: 0; + } + 25%, 75% { + -webkit-transform: perspective(140px) rotateX(0deg); + transform: perspective(140px) rotateX(0deg); + opacity: 1; + } + 90%, 100% { + -webkit-transform: perspective(140px) rotateY(180deg); + transform: perspective(140px) rotateY(180deg); + opacity: 0; + } +} + +.theme-accordion-s1 { + margin-bottom: 0; +} + +.theme-accordion-s1 .panel-default { + background: transparent; + border: 0; + border-radius: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +.theme-accordion-s1 .panel-heading { + background-color: transparent; + padding: 0; + border-radius: 0; +} + +.theme-accordion-s1 .panel + .panel { + margin-top: 15px; +} + +.theme-accordion-s1 .panel-heading a { + background: #1481ff; + font-size: 16px; + font-size: 1rem; + font-weight: 600; + color: #fff; + display: block; + padding: 18px 25px; + position: relative; +} + +@media (max-width: 991px) { + .theme-accordion-s1 .panel-heading a { + font-size: 15px; + font-size: 0.9375rem; + padding: 15px 25px; + } +} + +@media (max-width: 767px) { + .theme-accordion-s1 .panel-heading a { + padding: 12px 15px; + } +} + +.theme-accordion-s1 .panel-heading.classiccase a { + background:linear-gradient(90deg, #0066ff 0%, #007bff0a 88%); + font-size: 16px; + font-size: 1rem; + font-weight: 600; + color: #fff; + display: block; + padding: 18px 25px; + position: relative; +} + +.theme-accordion-s1 .panel-heading.classiccase a:before { + content: "" !important; +} + +@media (max-width: 991px) { + .theme-accordion-s1 .panel-heading.classiccase a:before { + font-size: 18px; + font-size: 1.125rem; + right: 20px; + } +} + + +.theme-accordion-s1 .panel-heading a:before { + font-family: Helvetica, 'Microsoft Yahei', '微软雅黑', Arial, sans-serif; + content: "\e64b"; + font-size: 15px; + font-size: 0.9375rem; + position: absolute; + right: 25px; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} + +@media (max-width: 991px) { + .theme-accordion-s1 .panel-heading a:before { + font-size: 18px; + font-size: 1.125rem; + right: 20px; + } +} + +.theme-accordion-s1 .panel-heading a:focus { + text-decoration: none; +} + +.theme-accordion-s1 .panel-heading .collapsed { + background-color: #fff; + color: #102541; + -webkit-box-shadow: 0px 5px 15px 0px rgba(68, 68, 68, 0.1); + box-shadow: 0px 5px 15px 0px rgba(68, 68, 68, 0.1); +} + +.theme-accordion-s1 .panel-heading .collapsed:before { + -webkit-transform: rotate(0); + -ms-transform: rotate(0); + transform: rotate(0); +} + +.theme-accordion-s1 .panel-heading + .panel-collapse > .panel-body { + background-color: #fff; + border: 0; + padding: 40px 25px 15px; + -webkit-box-shadow: 0px 5px 15px 0px rgba(68, 68, 68, 0.1); + box-shadow: 0px 5px 15px 0px rgba(68, 68, 68, 0.1); +} + +@media (max-width: 991px) { + .theme-accordion-s1 .panel-heading + .panel-collapse > .panel-body { + padding: 20px 25px 10px; + font-size: 15px; + font-size: 0.9375rem; + } +} + +@media (max-width: 767px) { + .theme-accordion-s1 .panel-heading + .panel-collapse > .panel-body { + padding: 15px 15px 8px; + } +} + +.theme-accordion-s1 .panel-heading + .panel-collapse > .panel-body p { + margin-bottom: 1.3em; +} + +/*-------------------------------------- + service tab navigation +----------------------------------------*/ +.service-tab-nav { + margin-bottom: 40px; + background: #fff; +} + +.service-tab-nav .service-list-widget ul { + list-style: none; + display: flex; + flex-wrap: wrap; + margin: 0; + padding: 0; + border-bottom: 2px solid #f2f7fd; +} + +.service-tab-nav .service-list-widget ul li { + flex: 1; + min-width: 200px; + text-align: center; +} + +.service-tab-nav .service-list-widget a { + font-size: 16px; + font-size: 1rem; + background: transparent; + font-weight: 500; + display: block; + color: #0a172b; + padding: 20px 25px; + transition: all 0.3s ease; + text-decoration: none; + border-bottom: 3px solid transparent; + margin-bottom: -2px; +} + +.service-tab-nav .service-list-widget a:hover { + color: #1481ff; + background-color: #f8fbff; +} + +.service-tab-nav .service-list-widget .current a { + color: #1481ff; + background-color: transparent; + border-bottom-color: #1481ff; + font-weight: 600; +} + +/* 响应式样式 */ +@media (max-width: 767px) { + .service-tab-nav .service-list-widget ul { + border: 2px solid #f2f7fd; + } + + .service-tab-nav .service-list-widget ul li { + flex: 1 1 100%; + border-bottom: 1px solid #ebf3fd; + } + + .service-tab-nav .service-list-widget ul li:last-child { + border-bottom: none; + } + + .service-tab-nav .service-list-widget a { + font-size: 14px; + font-size: 0.875rem; + padding: 15px 24px; + border-bottom: none; + } + + .service-tab-nav .service-list-widget a:hover, + .service-tab-nav .service-list-widget .current a { + background-color: #1481ff; + color: #fff; + } +} + +/*-------------------------------------- + service single section custom padding +----------------------------------------*/ +.service-single-section { + padding-top: 0; + padding-bottom: 50px; +} + +/*-------------------------------------- + service tab nav fullwidth +----------------------------------------*/ +.service-tab-nav-fullwidth { + width: 100%; + background: #fff; + border-bottom: 2px solid #f2f7fd; + position: relative; +} + +.service-tab-nav-fullwidth .service-tab-nav { + margin-bottom: 0; + background: transparent; + max-width: 1140px; + margin: 0 auto; + padding: 0 15px; +} + +.service-tab-nav-fullwidth .service-tab-nav .service-list-widget ul { + border-bottom: none; +} + +/* page title with no bottom padding for seamless connection */ +.page-title.page-title2 { + padding-bottom: 0; +} + +/* Ensure no spacing between sections */ +.page-title2 + .service-tab-nav-fullwidth { + margin-top: 0; +} + +/* Remove default margins from page-wrapper */ +.page-wrapper > * { + margin-top: 0; +} + +/*-------------------------------------- + service single sidebar +----------------------------------------*/ +.service-sidebar { + /*** service-list-widget ***/ + /*** download-widget ***/ + /*** contact-widget ***/ + /*** service-features-widget ***/ +} + +@media (max-width: 991px) { + .service-sidebar { + max-width: 300px; + margin-top: 80px; + } +} + +.service-sidebar > .widget + .widget { + margin-top: 60px; +} + +.service-sidebar .service-list-widget ul { + list-style: none; + border-bottom: 0; + border: 2px solid #f2f7fd; +} + +.service-sidebar .service-list-widget ul li { + border-bottom: 1px solid #ebf3fd; +} + +.service-sidebar .service-list-widget ul > li:last-child { + border-bottom: 0; +} + +.service-sidebar .service-list-widget a { + font-size: 14px; + font-size: 0.875rem; + background: #fff; + font-weight: bold; + display: block; + color: #0a172b; + padding: 15px 24px; +} + +.service-sidebar .service-list-widget a:hover, +.service-sidebar .service-list-widget .current a { + background-color:#1481ff; + color: #fff; +} + +.service-sidebar .download-widget ul { + list-style: none; +} + +.service-sidebar .download-widget ul > li + li { + margin-top: 5px; +} + +.service-sidebar .download-widget ul a { + background: #1481ff; + color: #fff; + padding: 18px 25px; + font-weight: 600; + display: block; +} + +.service-sidebar .download-widget ul i { + display: inline-block; + padding-right: 10px; + color: #fff; +} + +.service-sidebar .download-widget ul a:hover { + background: #0071f3; +} + +.service-sidebar .contact-widget { + background: linear-gradient(135deg, #0f3e71, #1481ff) center center/cover no-repeat local; + padding: 45px 40px; + position: relative; + text-align: center; +} + +.service-sidebar .contact-widget:before { + content: ""; + background: #1481ff; + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + opacity: 0.9; +} + +.service-sidebar .contact-widget > div { + position: relative; + z-index: 1; +} + +.service-sidebar .contact-widget h5 { + font-size: 20px; + font-size: 1.25rem; + line-height: 1.4em; + color: #fff; + margin: 1em 0; + text-transform: capitalize; +} + +.service-sidebar .contact-widget a { + background-color: #fff; + font-size: 14px; + font-size: 0.875rem; + font-weight: 550; + color: #334055; + padding: 10px 15px; + display: inline-block; + margin-top: 25px; + border-radius: 50px; +} + +.service-sidebar .contact-widget a:hover { + color: #1481ff; +} + +.service-sidebar .service-features-widget { + padding: 45px 30px; + position: relative; + border: 2px solid #f7f7f7; +} + +.service-sidebar .service-features-widget:before { + font-family: Helvetica, 'Microsoft Yahei', '微软雅黑', Arial, sans-serif; + content: "\e61f"; + font-size: 25px; + font-size: 1.5625rem; + color: #1481ff; + position: absolute; + right: 30px; + top: 40px; + opacity: 0.5; +} + +.service-sidebar .service-features-widget h3 { + font-size: 18px; + font-size: 1.125rem; + margin: 0 0 0.8em; + text-transform: capitalize; +} + +.service-sidebar .service-features-widget ol { + list-style-position: inside; + padding-left: 0; + margin: 0; +} + +.service-sidebar .service-features-widget ol > li + li { + margin-top: 8px; +} + +/*** related-products-widget ***/ +.service-sidebar .related-products-widget { + background: #fff; + padding: 20px; + box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1); +} + +.service-sidebar .related-products-widget .widget-title { + font-size: 18px; + font-weight: 600; + color: #333; + margin: 0 0 20px 0; + padding-bottom: 10px; + border-bottom: 1px solid #e8e8e8; +} + +.service-sidebar .related-products-widget .widget-title-decorated { + font-size: 18px; + font-weight: 600; + color: #333; + margin: 0 0 20px 0; + padding-bottom: 10px; + border-bottom: 0px solid #e8e8e8; + position: relative; +} + +.service-sidebar .related-products-widget .widget-title-decorated:before { + content: ""; + background-color: #5bc0de; + width: 4px; + height: 16px; + position: absolute; + left: -20px; + top: 2px; +} + +.service-sidebar .related-product-card { + background: #fff; + overflow: hidden; + margin-bottom: 16px; +} + +.service-sidebar .related-product-card:last-child { + margin-bottom: 0; +} + +.service-sidebar .related-product-card .product-image { + width: 100%; + height: 140px; + overflow: hidden; +} + +.service-sidebar .related-product-card .product-image img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.service-sidebar .related-product-card .product-info { + padding: 15px; +} + +.service-sidebar .related-product-card .product-title { + font-size: 16px; + font-weight: 600; + color: #1481ff; + margin: 0 0 8px 0; + display: inline-block; +} + +.service-sidebar .related-product-card .product-tag { + display: inline-block; + background: #e6f2ff; + color: #1481ff; + font-size: 12px; + padding: 2px 8px; + border-radius: 4px; + margin-left: 8px; + vertical-align: middle; +} + +.service-sidebar .related-product-card .product-desc { + font-size: 13px; + color: #666; + line-height: 1.6; + margin: 10px 0 0 0; +} + +@media (max-width: 991px) { + .service-sidebar .related-products-widget { + padding: 15px; + } + + .service-sidebar .related-product-card .product-image { + height: 120px; + } +} + +/*------------------------------------ + blog sidebar +------------------------------------*/ +.blog-sidebar { + /*** search-widget ***/ + /*** about-widget ***/ + /*** category-widget ***/ + /*** recent-post-widget ***/ + /*** tag-widget ***/ +} + +@media screen and (min-width: 992px) { + .blog-sidebar { + padding-left: 45px; + } +} + +@media (max-width: 991px) { + .blog-sidebar { + margin-top: 80px; + max-width: 400px; + } +} + +@media (max-width: 767px) { + .blog-sidebar { + margin-top: 60px; + max-width: 400px; + } +} + +.blog-sidebar .widget { + padding: 35px 28px; + border-radius: 5px; + -webkit-box-shadow: 0px 4px 21px 0px rgba(33, 49, 182, 0.09); + box-shadow: 0px 4px 21px 0px rgba(33, 49, 182, 0.09); +} + +.blog-sidebar .widget h3 { + font-size: 18px; + font-size: 1.125rem; + margin: 0 0 1.3em; + position: relative; + text-transform: capitalize; +} + +.blog-sidebar .widget h3:before { + content: ""; + background-color: #1481ff; + width: 4px; + height: 16px; + position: absolute; + left: -28px; + top: 1px; +} + +.blog-sidebar > .widget + .widget { + margin-top: 65px; +} + +.blog-sidebar .search-widget form div { + position: relative; +} + +.blog-sidebar .search-widget input { + background-color: rgba(253, 94, 22, 0.05); + height: 50px; + font-size: 16px; + font-size: 1rem; + padding: 6px 50px 6px 20px; + border: 0; + border-radius: 5px; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} + +.blog-sidebar .search-widget input:focus { + background-color: rgba(253, 94, 22, 0.1); +} + +.blog-sidebar .search-widget form button { + background: transparent; + font-size: 20px; + font-size: 1.25rem; + color: #1481ff; + border: 0; + outline: 0; + position: absolute; + right: 10px; + top: 55%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} + +.blog-sidebar .about-widget { + text-align: center; +} + +.blog-sidebar .about-widget .img-holder { + margin-bottom: 25px; +} + +.blog-sidebar .about-widget .img-holder img { + border-radius: 50%; +} + +.blog-sidebar .about-widget p { + font-size: 15px; + font-size: 0.9375rem; + margin-bottom: 1.2em; +} + +.blog-sidebar .about-widget a { + font-size: 14px; + font-size: 0.875rem; + font-weight: bold; + color: #102541; + text-decoration: underline; +} + +.blog-sidebar .about-widget a:hover { + color: #1481ff; +} + +.blog-sidebar .category-widget ul { + list-style: none; +} + +.blog-sidebar .category-widget ul li { + font-size: 15px; + font-size: 0.9375rem; + position: relative; +} + +@media (max-width: 767px) { + .blog-sidebar .category-widget ul li { + font-size: 14px; + font-size: 0.875rem; + } +} + +.blog-sidebar .category-widget ul li span { + position: absolute; + right: 0; +} + +.blog-sidebar .category-widget ul > li + li { + margin-top: 12px; + padding-top: 12px; + border-top: 1px dashed #e4e4e4; +} + +.blog-sidebar .category-widget ul a { + display: block; + color: #57667e; +} + +.blog-sidebar .category-widget ul a:hover, +.blog-sidebar .category-widget ul li:hover:before { + color: #1481ff; +} + +.blog-sidebar .recent-post-widget .post { + overflow: hidden; +} + +.blog-sidebar .recent-post-widget .posts > .post + .post { + margin-top: 15px; + padding-top: 15px; + border-top: 1px dashed #e4e4e4; +} + +.blog-sidebar .recent-post-widget .post .img-holder { + width: 68px; + float: left; +} + +.blog-sidebar .recent-post-widget .post .img-holder img { + border-radius: 50%; +} + +.blog-sidebar .recent-post-widget .post .details { + width: calc(100% - 68px); + float: left; + padding-left: 20px; +} + +.blog-sidebar .recent-post-widget .post h4 { + font-size: 14px; + font-size: 0.875rem; + line-height: 1.3em; + margin: 0 0 0.3em; +} + +@media (max-width: 1199px) { + .blog-sidebar .recent-post-widget .post h4 { + margin: 0; + } +} + +.blog-sidebar .recent-post-widget .post h4 a { + display: inline-block; + color: #102541; +} + +.blog-sidebar .recent-post-widget .post h4 a:hover { + color: #1481ff; +} + +.blog-sidebar .recent-post-widget .post .details .date { + font-size: 13px; + font-size: 0.8125rem; + color: #57667e; +} + +.blog-sidebar .recent-post-widget .post .details .date i { + display: inline-block; + padding-right: 7px; +} + +.blog-sidebar .tag-widget ul { + overflow: hidden; + list-style: none; +} + +.blog-sidebar .tag-widget ul li { + float: left; + margin: 0 8px 8px 0; +} + +.blog-sidebar .tag-widget ul li a { + font-size: 13px; + font-size: 0.8125rem; + display: inline-block; + padding: 5px 14px; + color: #57667e; + border: 2px solid rgba(253, 94, 22, 0.1); + border-radius: 50px; +} + +.blog-sidebar .tag-widget ul li a:hover { + background: #1481ff; + color: #fff; +} + +/**** pagination ****/ +.pagination-wrapper { + text-align: center; + margin-top: 60px; +} + +@media (max-width: 991px) { + .pagination-wrapper { + text-align: left; + margin-top: 40px; + } +} + +.pagination-wrapper .pg-pagination { + display: inline-block; + overflow: hidden; + list-style-type: none; + text-align: center; +} + +.pagination-wrapper .pg-pagination li { + float: left; + margin-right: 10px; +} + +@media (max-width: 767px) { + .pagination-wrapper .pg-pagination li { + margin-right: 5px; + } +} + +.pagination-wrapper .pg-pagination li:last-child { + margin-right: 0; +} + +.pagination-wrapper .pg-pagination li a { + background-color: transparent; + width: 50px; + height: 50px; + line-height: 47px; + font-size: 16px; + font-size: 1rem; + font-weight: bold; + color: #a9b8c4; + border: 2px solid #c9cfd4; + display: block; + border-radius: 50%; +} + +@media (max-width: 991px) { + .pagination-wrapper .pg-pagination li a { + width: 40px; + height: 40px; + line-height: 37px; + font-size: 15px; + font-size: 0.9375rem; + } +} + +.pagination-wrapper .pg-pagination .active a, +.pagination-wrapper .pg-pagination li a:hover { + background: #1481ff; + border-color: #1481ff; + color: #fff; +} + +.pagination-wrapper .pg-pagination .fi:before { + font-size: 15px; + font-size: 0.9375rem; +} + +.pagination-wrapper-left { + text-align: left; +} + +.pagination-wrapper-right { + text-align: right; +} + +@media screen and (min-width: 1200px) { + .pagination-wrapper-right { + padding-right: 50px; + } +} + +@media (max-width: 991px) { + .pagination-wrapper-right { + margin-top: 45px; + text-align: left; + } +} + +/*-------------------------------------------------------------- +#0.3 header +--------------------------------------------------------------*/ +.site-header { + /* navigation open and close btn hide for width screen */ + /* style for navigation less than 992px */ + /*navbar collaps less then 992px*/ + width: 100%; +} + +.site-header .navigation { + background-color: #fff!important; + box-shadow: 0 0 5px 2px rgba(0,0,0,.1); + margin-bottom: 0; + border: 0; + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + -o-border-radius: 0; + -ms-border-radius: 0; + border-radius: 0; +} + +.site-header .navigation > .container { + position: relative; +} + +.site-header #navbar { + -webkit-transition: all 0.5s; + -moz-transition: all 0.5s; + -o-transition: all 0.5s; + -ms-transition: all 0.5s; + background-color: #fff; + transition: all 0.5s; + /*** mega-menu style ***/ +} + +.site-header #navbar > ul li a{ + text-decoration: none; + color: #333 !important; +} +.site-header #navbar > ul li a:hover, +.site-header #navbar > ul li a:focus { + text-decoration: none; + color: #1481ff !important; +} + +@media screen and (min-width: 992px) { + .site-header #navbar { + /*** hover effect ***/ + } + .site-header #navbar li { + position: relative; + } + .site-header #navbar > ul > li > a { + font-size: 16px; + font-size: 1rem; + } + .site-header #navbar > ul .sub-menu { + background-color: #fff; + width: 220px; + position: absolute; + left: 0; + top: 100%; + z-index: 10; + visibility: hidden; + opacity: 0; + pointer-events: none !important; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; + -webkit-box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1); + box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1); + } + .site-header #navbar > ul .sub-menu::before { + content: ''; + position: absolute; + top: -10px; + left: 0; + width: 100%; + height: 10px; + } + .site-header #navbar > ul > li .sub-menu li { + border-bottom: 1px solid #efefef; + } + .site-header #navbar > ul > li .sub-menu a { + font-size: 14px; + font-size: 0.875rem; + font-weight: 600; + color: #102541; + display: block; + padding: 13px 20px; + } + .site-header #navbar > ul > li > .sub-menu .sub-menu { + left: 100%; + top: 0; + } + .site-header #navbar > ul > li > .sub-menu > .menu-item-has-children > a { + position: relative; + } + /* .site-header #navbar > ul > li > .sub-menu > .menu-item-has-children > a:before { + font-family: "themify"; + content: "\e649"; + font-size: 11px; + font-size: 0.6875rem; + position: absolute; + right: 15px; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + } */ + .site-header #navbar > ul > li:hover > .sub-menu { + top: 100%; + visibility: visible; + opacity: 1; + pointer-events: auto !important; + } + .site-header #navbar .sub-menu > li:hover > .sub-menu { + left: 100%; + visibility: visible; + opacity: 1; + pointer-events: auto !important; + } + /* 产品中心下拉菜单 */ + .site-header #navbar > ul > li.product-menu > a::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 3px; + background-color: #1481ff; + transform: scaleX(0); + transition: transform 0.3s; + } + .site-header #navbar > ul > li.product-menu:hover > a::after { + transform: scaleX(1); + } + .site-header #navbar > ul > li.product-menu { + position: static; + } + .site-header #navbar > ul > li.product-menu > .sub-menu { + width: 100vw; + left: 0; + right: 0; + margin-left: calc(-50vw + 50%); + padding: 30px 5%; + display: flex; + flex-wrap: wrap; + justify-content: center; + background: #fafafa; + } + .site-header #navbar > ul > li.product-menu:hover > .sub-menu { + visibility: visible !important; + opacity: 1 !important; + top: 100%; + pointer-events: auto; + } + /* 二级分类 */ + .site-header #navbar .product-menu > .sub-menu > li { + width: 280px; + border-bottom: none; + padding: 0 15px; + } + .site-header #navbar .product-menu > .sub-menu > li > a { + padding: 10px 0; + font-weight: 600; + font-size: 18px; + color: #102541 !important; + border-bottom: 1px solid #eee; + margin-bottom: 5px; + } + /* 三级菜单 - 直接显示在二级下方 */ + .site-header #navbar .product-menu > .sub-menu .sub-menu { + position: static; + display: block; + visibility: visible; + opacity: 1; + width: auto; + background: transparent; + box-shadow: none; + padding: 0; + pointer-events: auto; + } + .site-header #navbar .product-menu > .sub-menu .sub-menu li { + border-bottom: none; + display: flex; + align-items: flex-start; + } + .site-header #navbar .product-menu > .sub-menu .sub-menu li::before { + content: "•"; + margin-right: 8px; + flex-shrink: 0; + line-height: 40px; + } + .site-header #navbar .product-menu > .sub-menu .sub-menu a { + display: inline-block; + padding: 8px 0; + font-weight: normal; + font-size: 16px; + color: #666 !important; + } + .site-header #navbar .product-menu > .sub-menu .sub-menu a:hover { + color: #1481ff !important; + } + + /* 三级菜单项 hover 动效 */ + .site-header #navbar .product-menu > .sub-menu .sub-menu li { + position: relative; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + border-radius: 6px; + margin: 2px 0; + overflow: hidden; + } + + .site-header #navbar .product-menu > .sub-menu .sub-menu li::after { + content: ''; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%) scaleY(0); + width: 3px; + height: 60%; + background: linear-gradient(180deg, #1481ff, #00d4ff); + border-radius: 0 3px 3px 0; + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + } + + .site-header #navbar .product-menu > .sub-menu .sub-menu li:hover { + background: linear-gradient(90deg, rgba(20, 129, 255, 0.08), transparent); + padding-left: 8px; + } + + .site-header #navbar .product-menu > .sub-menu .sub-menu li:hover::after { + transform: translateY(-50%) scaleY(1); + } + + .site-header #navbar .product-menu > .sub-menu .sub-menu li:hover a { + color: #1481ff !important; + transform: translateX(4px); + } + + .site-header #navbar .product-menu > .sub-menu .sub-menu a { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + } + + /* 解决方案菜单 - 只有二级菜单的样式 */ + .site-header #navbar > ul > li.solution-menu > a::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 3px; + background-color: #1481ff; + transform: scaleX(0); + transition: transform 0.3s; + } + .site-header #navbar > ul > li.solution-menu:hover > a::after { + transform: scaleX(1); + } + .site-header #navbar > ul > li.solution-menu { + position: static; + } + .site-header #navbar > ul > li.solution-menu > .sub-menu { + width: 100vw; + left: 0; + right: 0; + margin-left: calc(-50vw + 50%); + padding: 20px 5%; + display: flex !important; + flex-wrap: wrap; + justify-content: center; + background: #fafafa; + } + .site-header #navbar > ul > li.solution-menu:hover > .sub-menu { + visibility: visible !important; + opacity: 1 !important; + top: 100%; + pointer-events: auto; + } + /* 解决方案二级菜单项 */ + .site-header #navbar .solution-menu > .sub-menu > li { + width: 280px; + border-bottom: none; + padding: 0 15px; + } + .site-header #navbar .solution-menu > .sub-menu > li > a { + padding: 15px 0; + font-weight: 400; + font-size: 16px; + color: #102541 !important; + display: block; + text-align: center; + } + .site-header #navbar .solution-menu > .sub-menu > li > a:hover { + color: #1481ff !important; + } + + /* 解决方案菜单项 hover 动效 */ + .site-header #navbar .solution-menu > .sub-menu > li { + position: relative; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + border-radius: 8px; + overflow: hidden; + } + + .site-header #navbar .solution-menu > .sub-menu > li::after { + content: ''; + position: absolute; + bottom: 0; + left: 50%; + transform: translateX(-50%) scaleX(0); + width: 60%; + height: 2px; + background: linear-gradient(90deg, #1481ff, #00d4ff); + border-radius: 2px; + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + } + + .site-header #navbar .solution-menu > .sub-menu > li:hover { + background: linear-gradient(180deg, rgba(20, 129, 255, 0.06), rgba(20, 129, 255, 0.02)); + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(20, 129, 255, 0.1); + } + + .site-header #navbar .solution-menu > .sub-menu > li:hover::after { + transform: translateX(-50%) scaleX(1); + } + + .site-header #navbar .solution-menu > .sub-menu > li > a { + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + } + + .site-header #navbar .solution-menu > .sub-menu > li:hover > a { + color: #1481ff !important; + transform: scale(1.02); + } +} + +@media (max-width: 991px) { + .site-header #navbar > ul > li a { + display: block; + font-size: 14px; + font-size: 0.875rem; + } + .site-header #navbar > ul > li .sub-menu li { + border-bottom: 1px solid #e6e6e6; + } + .site-header #navbar > ul .sub-menu > li:last-child { + border-bottom: 0; + } + .site-header #navbar > ul > li > .sub-menu a { + padding: 20px 15px 20px 45px; + background: #f9f9f9; + } + .site-header #navbar > ul > li > .sub-menu .sub-menu a { + padding: 15px 15px 15px 65px; + background: #f1f1f1; + color:#333; + } + .site-header #navbar > ul .menu-item-has-children > a { + position: relative; + } + .site-header #navbar > ul .menu-item-has-children > a:before { + font-family: "themify"; + content: "\e61a"; + font-size: 11px; + font-size: 0.6875rem; + position: absolute; + right: 15px; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + } + /* 移动端隐藏产品中心和解决方案的下拉箭头(子菜单由JS控制展开) */ + .site-header #navbar .product-menu > a:before, + .site-header #navbar .solution-menu > a:before { + display: none; + } +} + +@media screen and (min-width: 992px) { + .site-header #navbar { + /*** hover effect ***/ + } + .site-header #navbar .has-mega-menu { + position: static; + } + .site-header #navbar .mega-menu, + .site-header #navbar .half-mega-menu { + background-color: #fff; + padding: 20px; + border-top: 2px solid #1481ff; + position: absolute; + right: 0; + top: 100%; + z-index: 10; + visibility: hidden; + opacity: 0; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; + } + .site-header #navbar .mega-menu { + width: 1140px; + right: 15px; + } + .site-header #navbar .half-mega-menu { + width: 585px; + } + .site-header #navbar .mega-menu-box-title { + font-size: 14px; + font-size: 0.875rem; + text-transform: uppercase; + font-weight: bold; + display: block; + padding-bottom: 7px; + margin-bottom: 7px; + border-bottom: 1px solid #e6e6e6; + } + .site-header #navbar .mega-menu-list-holder li a { + font-size: 14px; + font-size: 0.875rem; + display: block; + padding: 7px 8px; + margin-left: -8px; + } + .site-header #navbar .has-mega-menu:hover > ul { + top: 100%; + visibility: visible; + opacity: 1; + } +} + +@media (max-width: 1199px) { + .site-header #navbar > ul .mega-menu { + width: 950px; + right: 15px; + } + .site-header #navbar > ul .half-mega-menu { + width: 485px; + } +} + +@media (max-width: 991px) { + .site-header #navbar > ul .mega-menu, + .site-header #navbar > ul .half-mega-menu { + width: auto; + } + .site-header #navbar > ul .mega-menu .row, + .site-header #navbar > ul .half-mega-menu .row { + margin: 0; + } + .site-header #navbar .mega-menu-content > .row > .col { + margin-bottom: 25px; + } +} + +@media (max-width: 991px) { + .site-header #navbar .mega-menu .mega-menu-list-holder a { + padding: 5px 15px 5px 40px; + } + .site-header #navbar .mega-menu .mega-menu-box-title { + font-size: 14px; + font-size: 0.875rem; + text-transform: uppercase; + display: block; + border-bottom: 1px dotted #b3b3b3; + padding: 0 0 4px 5px; + margin: 0 25px 8px 25px; + } +} + +@media screen and (min-width: 992px) { + .site-header .navbar-header .open-btn { + display: none; + } + .site-header #navbar .close-navbar { + display: none; + } +} + +@media (max-width: 991px) { + .site-header { + /* class for show hide navigation */ + } + .site-header .container { + width: 100%; + } + .site-header .navbar-header button { + background-color:#1481ff; + width: 40px; + height: 35px; + border: 0; + padding: 5px 10px; + outline: 0; + position: absolute; + right: 15px; + top: 12px; + z-index: 20; + } + .site-header .navbar-header button span { + background-color: #fff; + display: block; + height: 2px; + margin-bottom: 5px; + } + .site-header .navbar-header button span:last-child { + margin: 0; + } + .site-header #navbar { + background: #fff; + display: block !important; + width: 280px; + height: 100% !important; + margin: 0; + padding: 0; + border-left: 1px solid #cccccc; + border-right: 1px solid #cccccc; + position: fixed; + right: -330px; + top: 0; + z-index: 100; + } + .site-header #navbar ul a { + color: #000; + } + .site-header #navbar ul a:hover, + .site-header #navbar ul li.current a { + color: #1481ff; + } + .site-header #navbar .navbar-nav { + height: 100%; + overflow: auto; + } + .site-header #navbar .close-navbar { + background-color: #fff; + width: 40px; + height: 40px; + color: #000; + border: 0; + outline: none; + position: absolute; + left: -41px; + top: 90px; + z-index: 20; + } + .site-header #navbar .close-navbar .ti-close { + position: relative; + top: 1px; + } + .site-header #navbar > ul > li { + border-bottom: 1px solid #f2f2f2; + } + .site-header #navbar > ul > li > a { + padding: 20px 15px 20px 35px; + } + .site-header .slideInn { + right: 0 !important; + } +} + +@media (max-width: 767px) { + .site-header .navbar-header .navbar-brand { + font-size: 24px; + } + .site-header #navbar .navbar-nav { + margin: 0; + } +} + +@media (max-width: 991px) { + .site-header .navbar-collapse.collapse { + display: none; + } + .site-header .navbar-collapse.collapse.in { + display: block; + } + .site-header .navbar-header .collapse, + .site-header .navbar-toggle { + display: block; + } + .site-header .navbar-header { + float: none; + } + .site-header .navbar-right { + float: none; + } + .site-header .navbar-nav { + float: none; + } + .site-header .navbar-nav > li { + float: none; + } +} + +@media (max-width: 991px) { + .page-wrapper { + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; + } + .body-overlay:before { + content: ""; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.9); + position: absolute; + left: 0; + top: 0; + z-index: 10; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; + } +} + +/*-------------------------------------------------------------- + #header-style-1 +--------------------------------------------------------------*/ +.header-style-1, .header-style-2, .header-style-3 { + /*** search-contact ***/ +} + +.header-style-1 .topbar, .header-style-2 .topbar, .header-style-3 .topbar { + background-color: #fff; + padding: 10px 0; +} + +@media (max-width: 767px) { + .header-style-1 .topbar, .header-style-2 .topbar, .header-style-3 .topbar { + padding: 20px 0; + } +} + +@media (max-width: 767px) { + .header-style-1 .topbar, .header-style-2 .topbar, .header-style-3 .topbar { + text-align: center; + } +} + +.header-style-1 .topbar .social ul, .header-style-2 .topbar .social ul, .header-style-3 .topbar .social ul { + overflow: hidden; + padding-top: 2px; +} + +@media (max-width: 767px) { + .header-style-1 .topbar .social ul, .header-style-2 .topbar .social ul, .header-style-3 .topbar .social ul { + display: inline-block; + } +} + +.header-style-1 .topbar .social li, .header-style-2 .topbar .social li, .header-style-3 .topbar .social li { + float: left; +} + +.header-style-1 .topbar .social ul > li + li, .header-style-2 .topbar .social ul > li + li, .header-style-3 .topbar .social ul > li + li { + margin-left: 15px; +} + +.header-style-1 .topbar .social a, .header-style-2 .topbar .social a, .header-style-3 .topbar .social a { + font-size: 14px; + font-size: 0.875rem; + color: #57667e; +} + +.header-style-1 .topbar .social a:hover, .header-style-2 .topbar .social a:hover, .header-style-3 .topbar .social a:hover { + color: #1481ff; +} + +.header-style-1 .topbar .text, .header-style-2 .topbar .text, .header-style-3 .topbar .text { + text-align: right; +} + +@media (max-width: 767px) { + .header-style-1 .topbar .text, .header-style-2 .topbar .text, .header-style-3 .topbar .text { + text-align: center; + } +} + +.header-style-1 .topbar .text span, .header-style-2 .topbar .text span, .header-style-3 .topbar .text span { + font-weight: bold; + color: #1481ff; + text-decoration: underline; +} + +.header-style-1 .topbar .text p, .header-style-2 .topbar .text p, .header-style-3 .topbar .text p { + margin: 0; +} + +@media screen and (min-width: 992px) { + .header-style-1, .header-style-2, .header-style-3 { + width: 100%; + position: absolute; + left: 0; + top: 0; + z-index: 100; + } + .header-style-1 .navigation, .header-style-2 .navigation, .header-style-3 .navigation { + /*background-color: transparent;*/ + margin-bottom: 0; /* Remove default navbar margin-bottom */ + } + .header-style-1 #navbar, .header-style-2 #navbar, .header-style-3 #navbar { + margin-right: 200px; + } + .header-style-1 #navbar > ul > li > a, .header-style-2 #navbar > ul > li > a, .header-style-3 #navbar > ul > li > a { + font-size: 15px; + font-size: 1.1rem; + color: #333; + padding: 20px 12px; /* Reduced from 40px to 20px to make header height 80px */ + } + .header-style-1 .navigation .container, .header-style-2 .navigation .container, .header-style-3 .navigation .container { + position: relative; + } + .header-style-1 .navigation .container .separator, .header-style-2 .navigation .container .separator, .header-style-3 .navigation .container .separator { + background-color: rgba(255, 255, 255, 0.1); + width: calc(100% - 30px); + height: 1px; + position: absolute; + bottom: 0; + left: 15px; + } +} + +@media screen and (min-width: 1200px) { + .header-style-1 #navbar > ul > .menu-item-has-children > a:before, .header-style-2 #navbar > ul > .menu-item-has-children > a:before, .header-style-3 #navbar > ul > .menu-item-has-children > a:before { + font-family: "themify"; + content: "\e64b"; + font-size: 8px; + font-size: 0.5rem; + position: absolute; + right: 4px; + top: 41%; + } + .header-style-1 #navbar > ul > li > a, .header-style-2 #navbar > ul > li > a, .header-style-3 #navbar > ul > li > a { + padding: 30px 20px; + } +} + +.header-style-1 .navbar-brand, .header-style-2 .navbar-brand, .header-style-3 .navbar-brand { + /*margin-top: 6px;*/ + position: relative; + /*top: 5px;*/ +} + +@media (max-width: 991px) { + .header-style-1 .navbar-brand, .header-style-2 .navbar-brand, .header-style-3 .navbar-brand { + margin-top: 0; + padding-top: 0; + margin-bottom: 10px; + } +} + +.header-style-1 .navbar-brand img, .header-style-2 .navbar-brand img, .header-style-3 .navbar-brand img { + max-width: 190px; + max-height: 40px; /* Add max-height to control header height */ +} + +@media (max-width: 991px) { + .header-style-1 .navigation, .header-style-2 .navigation, .header-style-3 .navigation { + background-color: #fff; + padding: 15px 0; + } +} + +.header-style-1 .search-contact, .header-style-2 .search-contact, .header-style-3 .search-contact { + position: absolute; + right: 15px; + top: 32px; +} + +@media (max-width: 991px) { + .header-style-1 .search-contact, .header-style-2 .search-contact, .header-style-3 .search-contact { + right: 75px; + top: 12px; + } +} + +@media (max-width: 450px) { + .header-style-1 .search-contact, .header-style-2 .search-contact, .header-style-3 .search-contact { + display: none; + } +} + +.header-style-1 .search-contact > div, .header-style-2 .search-contact > div, .header-style-3 .search-contact > div { + display: inline-block; +} + +.header-style-1 .search-contact .open-btn, .header-style-2 .search-contact .open-btn, .header-style-3 .search-contact .open-btn { + background-color: transparent; + color: #fff; + padding: 0; + border: 0; + margin-right: 22px; + position: relative; + top: -4px; +} + +@media (max-width: 1199px) { + .header-style-1 .search-contact .open-btn, .header-style-2 .search-contact .open-btn, .header-style-3 .search-contact .open-btn { + margin-right: 20px; + } +} + +@media (max-width: 991px) { + .header-style-1 .search-contact .open-btn, .header-style-2 .search-contact .open-btn, .header-style-3 .search-contact .open-btn { + margin-right: 10px; + } +} + +.header-style-1 .search-contact .open-btn:focus, .header-style-2 .search-contact .open-btn:focus, .header-style-3 .search-contact .open-btn:focus { + border: 0; + outline: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +.header-style-1 .search-contact .contact, .header-style-2 .search-contact .contact, .header-style-3 .search-contact .contact { + position: relative; + top: -5px; +} + +/*-------------------------------------------------------------- + #header-style-2 +--------------------------------------------------------------*/ +.header-style-2, .header-style-3 { + /*** search-social ***/ +} + +@media screen and (min-width: 992px) { + .header-style-2, .header-style-3 { + position: relative; + } + .header-style-2 .navigation, .header-style-3 .navigation { + background-color: #fff; + } + .header-style-2 #navbar > ul > li > a, .header-style-3 #navbar > ul > li > a { + color: #102541; + padding: 40px 12px; + } + .header-style-2 .navigation .container, .header-style-3 .navigation .container { + position: relative; + } + .header-style-2 .navigation .container .separator, .header-style-3 .navigation .container .separator { + background-color: #ececec; + top: 2px; + } +} + +@media screen and (min-width: 1200px) { + .header-style-2 #navbar > ul > li > a, .header-style-3 #navbar > ul > li > a { + padding: 40px 20px; + } +} + +@media (max-width: 991px) { + .header-style-2 .navigation, .header-style-3 .navigation { + background-color: #fff; + padding: 15px 0; + border-top: 1px solid #eaeaea; + } +} + +.header-style-2 .search-contact .open-btn, .header-style-3 .search-contact .open-btn { + color: #102541; + top: -6px; +} + +/*-------------------------------------------------------------- + #header-style-3 +--------------------------------------------------------------*/ +.header-style-3 .topbar { + background-color: #102541; +} + +.header-style-3 .topbar .social a { + font-size: 14px; + font-size: 0.875rem; + color: #fff; +} + +.header-style-3 .topbar .social a:hover { + color: #1481ff; +} + +.header-style-3 .topbar .text p { + margin: 0; + color: #fff; +} + +.header-search-form { + width: 100%; + height: 100%; + position: fixed; + left: 0; + top: 0; + z-index: 9999; + background: rgba(0, 0, 0, 0.65); +} + +.header-search-form form { + width: 500px; + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + -o-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} + +@media (max-width: 767px) { + .header-search-form form { + width: 300px; + } +} + +.header-search-form form input { + height: 60px; + font-size: 16px; + padding: 15px 25px; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 60px; +} + +@media (max-width: 767px) { + .header-search-form form input { + height: 45px; + font-size: 17px; + } +} + +.header-search-form form input:focus { + -webkit-box-shadow: none; + box-shadow: none; +} + +.header-search-form form .btn { + background-color: #1481ff; + width: 60px; + height: 100%; + color: #fff; + position: absolute; + right: 0; + top: 0; + border: 0; + border-radius: 0 60px 60px 0; +} + +.header-search-form form .btn:focus, +.header-search-form form .btn:active { + outline: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +/*-------------------------------------------------------------- +#0.4 hero slider +--------------------------------------------------------------*/ +.hero-slider { + width: 100%; + height: 500px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: relative; + z-index: 0; +} + +@media (max-width: 991px) { + .hero-slider { + height: 600px; + } +} + +@media (max-width: 767px) { + .hero-slider { + height: 500px; + } +} + +.hero-slider .swiper-slide { + overflow: hidden; + background-size: cover; + color: #fff; +} + +.hero-slider .swiper-container { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; +} + +.hero-slider .slide-inner { + width: 100%; + height: 100%; + position: absolute; + background-size: cover; + left: 0; + top: 0; + z-index: 1; + + background-position: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: left; +} + +.hero-slider .swiper-button-prev, +.hero-slider .swiper-button-next { + background: rgba(255, 255, 255, 0.2); + width: 60px; + height: 60px; + line-height: 60px; + margin-top: -30px; + text-align: center; + border-radius: 60px; +} + +@media (max-width: 767px) { + .hero-slider .swiper-button-prev, + .hero-slider .swiper-button-next { + display: none; + } +} + +.hero-slider .swiper-button-prev { + left: 25px; +} + +@media (max-width: 991px) { + .hero-slider .swiper-button-prev { + display: none; + } +} + +.hero-slider .swiper-button-prev:before { + font-family: "Flaticon"; + content: "\f103"; + font-size: 20px; + color: #fff; +} + +.hero-slider .swiper-button-next { + right: 25px; +} + +@media (max-width: 991px) { + .hero-slider .swiper-button-next { + display: none; + } +} + +.hero-slider .swiper-button-next:before { + font-family: "Flaticon"; + content: "\f104"; + font-size: 20px; + color: #fff; +} + +/* Product cards swiper navigation buttons - hero-style */ +.product-cards-swiper .swiper-button-prev, +.product-cards-swiper .swiper-button-next { + background: rgba(255, 255, 255, 0.2); + width: 60px; + height: 60px; + line-height: 60px; + margin-top: -30px; + text-align: center; + border-radius: 60px; +} + +.product-cards-swiper .swiper-button-prev { + left: 25px; +} + +.product-cards-swiper .swiper-button-next { + right: 25px; +} + +.product-cards-swiper .swiper-button-prev:before { + font-family: "Flaticon"; + content: "\f103"; + font-size: 20px; + color: #fff; +} + +.product-cards-swiper .swiper-button-next:before { + font-family: "Flaticon"; + content: "\f104"; + font-size: 20px; + color: #fff; +} + +@media (max-width: 767px) { + .product-cards-swiper .swiper-button-prev, + .product-cards-swiper .swiper-button-next { + display: none; + } +} + +@media (max-width: 991px) { + .product-cards-swiper .swiper-button-prev, + .product-cards-swiper .swiper-button-next { + display: none; + } +} + +.hero-slider .swiper-pagination-bullet { + width: 12px; + height: 12px; + text-align: center; + line-height: 12px; + font-size: 12px; + color: #000; + opacity: 1; + background: rgba(255, 255, 255, 0.2); +} + +.hero-slider .swiper-pagination-bullet-active { + color: #fff; + background: #1481ff; +} + +.hero-slider .swiper-container-horizontal > .swiper-pagination-bullets, +.hero-slider .swiper-pagination-custom, +.hero-slider .swiper-pagination-fraction { + bottom: 30px; +} + +@media screen and (min-width: 992px) { + .hero-slider .swiper-container-horizontal > .swiper-pagination-bullets, + .hero-slider .swiper-pagination-custom, + .hero-slider .swiper-pagination-fraction { + display: none; + } +} + +/*-------------------------------------------------------------- + #hero-style-1 +--------------------------------------------------------------*/ +.hero-style-1, .hero-style-2, .hero-style-3 { + height: 800px; +} + +@media (max-width: 991px) { + .hero-style-1, .hero-style-2, .hero-style-3 { + height: 600px; + } +} + +@media (max-width: 767px) { + .hero-style-1, .hero-style-2, .hero-style-3 { + height: 500px; + } +} + +@media screen and (min-width: 992px) { + .hero-style-1 .container, .hero-style-2 .container, .hero-style-3 .container { + padding-top: 15px; + } +} + +.hero-style-1 .slide-title, .hero-style-2 .slide-title, .hero-style-3 .slide-title { + max-width: 750px; +} + +.hero-style-1 .slide-title h2, .hero-style-2 .slide-title h2, .hero-style-3 .slide-title h2 { + font-size: 55px; + font-size: 3rem; + font-weight: 800; + color: #031c5c; + margin: 0 0 0.45em; +} + +@media (max-width: 991px) { + .hero-style-1 .slide-title h2, .hero-style-2 .slide-title h2, .hero-style-3 .slide-title h2 { + font-size: 45px; + font-size: 2.8125rem; + } +} + +@media (max-width: 767px) { + .hero-style-1 .slide-title h2, .hero-style-2 .slide-title h2, .hero-style-3 .slide-title h2 { + font-size: 35px; + font-size: 2.1875rem; + } +} + +.hero-style-1 .slide-text, .hero-style-2 .slide-text, .hero-style-3 .slide-text { + max-width: 600px; +} + +.hero-style-1 .slide-text p, .hero-style-2 .slide-text p, .hero-style-3 .slide-text p { + font-size: 20px; + font-size: 1.25rem; + font-weight: 600; + color: #031c5c; + margin: 0 0 0.75em; +} + +@media (max-width: 991px) { + .hero-style-1 .slide-text p, .hero-style-2 .slide-text p, .hero-style-3 .slide-text p { + font-size: 18px; + font-size: 1.125rem; + } +} + +@media (max-width: 767px) { + .hero-style-1 .slide-text p, .hero-style-2 .slide-text p, .hero-style-3 .slide-text p { + font-size: 16px; + font-size: 1rem; + } +} + +.hero-style-1 .slide-btns > a:first-child, .hero-style-2 .slide-btns > a:first-child, .hero-style-3 .slide-btns > a:first-child { + margin-right: 15px; +} + +/*-------------------------------------------------------------- + #hero-style-2 +--------------------------------------------------------------*/ +.hero-style-2, .hero-style-3 { + height: 700px; +} + +@media (max-width: 991px) { + .hero-style-2, .hero-style-3 { + height: 600px; + } +} + +@media (max-width: 767px) { + .hero-style-2, .hero-style-3 { + height: 500px; + } +} + +@media screen and (min-width: 992px) { + .hero-style-2 .container, .hero-style-3 .container { + padding-top: 0; + } +} + +/*-------------------------------------------------------------- + #hero-style-3 +--------------------------------------------------------------*/ +.hero-style-3 .slide-title, +.hero-style-3 .slide-text, +.hero-style-3 .slide-btns { + margin: 0 auto; + text-align: center; +} + +/*-------------------------------------------------------------- +#0.5 footer +--------------------------------------------------------------*/ +.site-footer { + background-color: #102541; + position: relative; + font-size: 15px; + overflow: hidden; + /*** about-widget ***/ + /*** link-widget ***/ + /*** contact-widget ***/ + /*** newsletter-widget ***/ + /*** lower-footer ***/ +} + +.site-footer ul { + list-style: none; +} + +.site-footer p, +.site-footer li { + color: #fff; +} + +.site-footer .upper-footer { + padding: 50px 0 30px 0; +} + +@media (max-width: 991px) { + .site-footer .upper-footer { + padding: 90px 0 20px; + } +} + +@media (max-width: 767px) { + .site-footer .upper-footer { + padding: 80px 0 10px; + } +} + +@media (max-width: 991px) { + .site-footer .upper-footer .col { + min-height: 235px; + margin-bottom: 70px; + } +} + +@media (max-width: 767px) { + .site-footer .upper-footer .col { + min-height: auto; + margin-bottom: 60px; + } +} + +.site-footer .widget-title { + margin-bottom: 30px; +} + +@media (max-width: 767px) { + .site-footer .widget-title { + margin-bottom: 20px; + } +} + +.site-footer .widget-title h3 { + font-size: 18px; + font-size: 1.125rem; + font-weight: bold; + color: #fff; + margin: 0; + padding-bottom: 0.4em; + text-transform: capitalize; + position: relative; +} + +@media (max-width: 991px) { + .site-footer .widget-title h3 { + padding-bottom: 0; + } +} + +.site-footer .about-widget .logo { + max-width: 180px; +} + +.site-footer .about-widget p { + margin-bottom: 0.8em; + line-height: 1.9em; +} + +.site-footer .about-widget p:last-child { + margin-bottom: 0; +} + +.site-footer .link-widget { + overflow: hidden; +} + +@media screen and (min-width: 1200px) { + .site-footer .link-widget { + padding-left: 20px; + } +} + +@media (max-width: 1199px) { + .site-footer .link-widget { + padding-left: 20px; + } +} + +@media (max-width: 991px) { + .site-footer .link-widget { + padding-left: 0; + } +} + +@media (max-width: 767px) { + .site-footer .link-widget { + max-width: 350px; + } +} + +.site-footer .link-widget ul { + width: 50%; + float: left; +} + +.site-footer .link-widget ul li { + position: relative; +} + +.site-footer .link-widget ul a { + color: #eaeaea; +} + +.site-footer .link-widget ul a:hover, +.site-footer .link-widget ul li:hover:before { + text-decoration: underline; +} + +.site-footer .link-widget ul > li + li { + margin-top: 15px; +} + +@media screen and (min-width: 1200px) { + .site-footer .contact-widget { + padding-left: 25px; + } +} + +.site-footer .contact-widget ul { + margin-top: 25px; +} + +.site-footer .contact-widget ul li { + position: relative; +} + +.site-footer .contact-widget ul > li + li { + margin-top: 15px; +} + +.site-footer .contact-widget li span { + font-weight: 600; +} + +.site-footer .newsletter-widget form { + margin-top: 25px; + position: relative; +} + +.site-footer .newsletter-widget form input { + background-color: #fff; + height: 50px; + color: #57667e; + padding: 6px 20px; + border-radius: 5px; + border: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.site-footer .newsletter-widget form .submit { + position: absolute; + right: 20px; + top: 55%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} + +.site-footer .newsletter-widget form .submit button { + background: transparent; + border: 0; + outline: 0; + font-size: 20px; + color: #1481ff; + margin-top: -2px; + position: relative; + right: -5px; +} + +.site-footer .lower-footer { + text-align: center; + position: relative; +} + +.site-footer .lower-footer .row { + padding: 10px 0; + position: relative; +} + +.site-footer .lower-footer .row .separator { + background: rgba(255, 255, 255, 0.05); + width: calc(100% - 30px); + height: 1px; + position: absolute; + left: 15px; + top: 0; +} + +.site-footer .lower-footer .copyright { + display: inline-block; + float: left; + font-size: 14px; + font-size: 0.875rem; + margin: 0; +} + +@media (max-width: 991px) { + .site-footer .lower-footer .copyright { + float: none; + display: block; + margin: 0 0 20px; + } +} + +.site-footer .lower-footer .copyright a { + color: #fff; + text-decoration: underline; +} + +.site-footer .lower-footer .extra-link { + display: inline-block; + float: right; + overflow: hidden; +} + +@media (max-width: 991px) { + .site-footer .lower-footer .extra-link { + float: none; + display: block; + text-align: center; + } +} + +.site-footer .lower-footer .extra-link ul { + overflow: hidden; + list-style: none; +} + +@media (max-width: 991px) { + .site-footer .lower-footer .extra-link ul { + display: inline-block; + } +} + +.site-footer .lower-footer .extra-link ul li { + float: left; +} + +.site-footer .lower-footer .extra-link ul > li + li { + margin-left: 35px; + position: relative; +} + +@media (max-width: 767px) { + .site-footer .lower-footer .extra-link ul > li + li { + margin-left: 15px; + } +} + +.site-footer .lower-footer .extra-link ul > li + li:before { + content: ""; + background: #fff; + width: 15px; + height: 1px; + position: absolute; + left: -25px; + top: 11px; +} + +@media (max-width: 767px) { + .site-footer .lower-footer .extra-link ul > li + li:before { + display: none; + } +} + +.site-footer .lower-footer .extra-link ul a { + font-size: 14px; + font-size: 0.875rem; + color: #fff; +} + +.site-footer .lower-footer .extra-link ul a:hover { + text-decoration: underline; +} + +@media screen and (min-width: 992px) { + .site-header--stuck { + width: 100%; + position: fixed; + left: 0; + top: 0; + z-index: 9999; + opacity: 0; + pointer-events: none; + -webkit-transform: translate3d(0, -130%, 0); + transform: translate3d(0, -130%, 0); + -webkit-transition: opacity 0.55s ease, -webkit-transform 0.55s ease; + transition: opacity 0.55s ease, transform 0.55s ease; + } + + .site-header--stuck .navigation { + -webkit-box-shadow: 0 18px 40px rgba(16, 37, 65, 0.18); + box-shadow: 0 18px 40px rgba(16, 37, 65, 0.18); + } + + .site-header--stuck .sub-menu { + pointer-events: none !important; + } + + .site-header--stuck .navigation .container .separator { + background-color: rgba(20, 129, 255, 0.14); + } + + .site-header--stuck.site-header--visible { + opacity: 1; + pointer-events: auto; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + .site-header--stuck.site-header--visible .sub-menu { + pointer-events: auto !important; + } +} + +/*-------------------------------------------------------------- +#0.6 features-section +--------------------------------------------------------------*/ +@media screen and (min-width: 992px) { + .features-section { + margin-top: -101px; + } +} + +@media (max-width: 991px) { + .features-section { + padding: 90px 0 60px; + } +} + +@media (max-width: 767px) { + .features-section { + padding: 80px 0 50px; + } +} + +.features-section .feature-grids { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 30px; + margin: 0 0 30px; +} + +.features-section .feature-grids:before, +.features-section .feature-grids:after { + content: none !important; + display: none !important; +} + +@media (max-width: 991px) { + .features-section .feature-grids { + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 16px; + margin: 0; + } +} + +.features-section .feature-grids .grid { + width: auto; + margin: 0; + float: none; + min-width: 0; + display: flex; + flex-direction: column; +} + +.features-section .feature-grids .home-family-card { + background: #fff; + border-radius: 10px; + overflow: hidden; + -webkit-box-shadow: 0px 0px 36.8px 9.2px rgba(16, 37, 65, 0.1); + box-shadow: 0px 0px 36.8px 9.2px rgba(16, 37, 65, 0.1); +} + +@media (max-width: 600px) { + .features-section .feature-grids { + grid-template-columns: 1fr; + } + + .features-section .feature-grids .grid { + width: auto; + } +} + +.features-section .header { + background:linear-gradient(140deg, #1d4de9 0%, #00b2ff 88%); + padding: 18px 24px; + min-height: 92px; + display: flex; + align-items: center; + justify-content: center; + width: 100%; + align-self: stretch; + border-radius: 0; +} + +@media (max-width: 767px) { + .features-section .header { + min-height: 84px; + padding: 16px 20px; + } +} + +.features-section .header .home-feature-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 60px; + height: 60px; +} + +.features-section .header .home-feature-icon svg { + width: 44px; + height: 44px; + display: block; +} + +.features-section .header .home-feature-icon path, +.features-section .header .home-feature-icon circle { + stroke: #fff; + stroke-width: 2; + stroke-linecap: round; + stroke-linejoin: round; + fill: none; +} + +.features-section .header .home-feature-icon svg * { + color: #fff; +} + +.features-section .details { + background-color: #fff; + padding: 26px 22px 28px; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 0; + min-height: 200px; + display: flex; + flex: 1; + flex-direction: column; +} + +@media (max-width: 767px) { + .features-section .details { + padding: 22px 20px 28px; + } +} + +.features-section .details h3 { + font-size: 20px; + font-size: 1.35rem; + margin: 0 0 0.75em; + line-height: 1.45; + min-height: 2.9em; +} + +@media (max-width: 767px) { + .features-section .details h3 { + font-size: 18px; + font-size: 1.125rem; + } +} + +.features-section .details p { + margin: 0 0 1em; + flex: 1; + line-height: 1.8; +} + +.features-section .details .read-more { + font-weight: bold; + color: #1481ff; + text-decoration: none; + margin-top: auto; +} + +.features-section .details .read-more:hover { + color: #0552af; +} + +/*-------------------------------------------------------------- +#home helpers +--------------------------------------------------------------*/ +.home-panorama-section { + overflow: hidden; +} + +.home-panorama-section .portfolio-container { + padding-bottom: 0; +} + +.home-panorama-stage { + position: relative; + display: flex; + align-items: center; + justify-content: center; + min-height: 400px; + overflow: hidden; +} + +.home-panorama-background { + width: 100%; + max-width: none; + display: block; +} + +.home-panorama-overlay { + position: absolute; + inset: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.home-panorama-overlay .section-title-s4 { + margin-bottom: 24px; +} + +.home-panorama-image { + width: 65%; + max-width: none; +} + +.portfolio-section .home-solution-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 24px; + align-items: stretch; +} + +.portfolio-section .home-solution-grid .grid { + height: 100%; +} + +.home-map-card { + display: flex; + align-items: center; + justify-content: center; + min-height: 600px; + border-radius: 28px; + background: radial-gradient(circle at 20% 20%, rgba(20, 129, 255, 0.16), transparent 38%), #f5f9ff; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8); +} + +.home-map-card img { + width: 100%; + max-width: 640px; +} + +.home-value-copy { + margin-top: 100px; +} + +.about-section .contact-info .home-share-stat { + font-family: Helvetica Neue, sans-serif; + line-height: 1.25rem; + font-size: 60px; + color: #013bfa; + font-weight: bold; +} + +.home-share-number { + font-size: 120px; + line-height: 1; +} + +.fun-fact-section .grid .home-fact-heading { + margin: 0; + font-size: 30px; +} + +.home-fact-number { + font-size: 70px; + line-height: 1; +} + +.partners-section .home-partners-title { + margin-bottom: 0; +} + +.cta-section-s2 .home-cta-copy { + font-size: 19px; +} + +@media (max-width: 1199px) { + .portfolio-section .home-solution-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 20px; + } +} + +@media (max-width: 991px) { + .home-panorama-stage { + min-height: 360px; + } + + .home-panorama-image { + width: 88%; + } + + .home-map-card { + min-height: 360px; + margin-bottom: 32px; + } + + .home-value-copy { + margin-top: 0; + } + + .home-share-number { + font-size: 84px; + } +} + +@media (max-width: 767px) { + .home-panorama-stage { + min-height: 260px; + } + + .home-panorama-image { + width: 92%; + } + + .portfolio-section .home-solution-grid { + grid-template-columns: 1fr; + gap: 16px; + } + + .fun-fact-section .grid .home-fact-heading { + font-size: 24px; + } + + .home-fact-number { + font-size: 54px; + } + + .cta-section-s2 .home-cta-copy { + font-size: 17px; + } +} +/*-------------------------------------------------------------- +#0.7 about-section +--------------------------------------------------------------*/ +.about-section, .about-section-s2 { + background: #ebf4fd url("../../images/index/map_bk.webp") center center; + background-size: 100% 100%; + padding: 100px 0 50px 0; +} + +@media (max-width: 991px) { + .about-section, .about-section-s2 { + padding-top: 0; + } +} + +.about-section .img-holder, .about-section-s2 .img-holder { + position: relative; + max-width: 550px; +} + +@media (max-width: 991px) { + .about-section .img-holder, .about-section-s2 .img-holder { + margin-bottom: 60px; + } +} + +/*.about-section .img-holder img, .about-section-s2 .img-holder img {*/ + /*border: 10px solid #fff;*/ + /*-webkit-box-shadow: 0px 0px 36.8px 9.2px rgba(16, 37, 65, 0.1);*/ + /*box-shadow: 0px 0px 36.8px 9.2px rgba(16, 37, 65, 0.1);*/ +/*}*/ + +.about-section .video-holder, .about-section-s2 .video-holder { + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + -o-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} + +.about-section .video-holder a, .about-section-s2 .video-holder a { + background: #1481ff; + width: 85px; + height: 85px; + line-height: 85px; + text-align: center; + border: 2px solid #fff; + border-radius: 85px; + display: inline-block; +} + +.about-section .video-holder .fi:before, .about-section-s2 .video-holder .fi:before { + font-size: 30px; + font-size: 1.875rem; + color: #fff; +} + +.about-section .details, .about-section-s2 .details { + /*padding-left: 40px;*/ +} + +@media (max-width: 1199px) { + .about-section .details, .about-section-s2 .details { + padding-left: 0; + } +} + +.about-section .contact-info, .about-section-s2 .contact-info { + /*border: 1px solid #e6e8eb;*/ + overflow: hidden; + margin: 30px 0 20px 0; +} + +.about-section .contact-info > div, .about-section-s2 .contact-info > div { + /*width: 50%;*/ + float: left; + /*padding: 35px 35px 35px 105px;*/ + position: relative; +} + +@media (max-width: 600px) { + .about-section .contact-info > div, .about-section-s2 .contact-info > div { + width: 100%; + float: none; + } +} + +.about-section .contact-info img, .about-section-s2 .contact-info img { + position: absolute; + left: 20px; + top: 40px; +} + +.about-section .contact-info p, .about-section-s2 .contact-info p { + font-size: 14px; + font-size: 0.875rem; +} + +.about-section .contact-info > div:last-child, .about-section-s2 .contact-info > div:last-child { + /*border-left: 1px solid #e6e8eb;*/ +} + +@media (max-width: 600px) { + .about-section .contact-info > div:last-child, .about-section-s2 .contact-info > div:last-child { + border-left: 0; + border-top: 1px solid #e6e8eb; + } +} + +.about-section .btns > a:first-child, .about-section-s2 .btns > a:first-child { + margin-right: 15px; +} + +@media (max-width: 600px) { + .about-section .btns > a:first-child, .about-section-s2 .btns > a:first-child { + margin-bottom: 15px; + } +} + +.about-pg-about-section { + padding-top: 55px; + padding-bottom: 0; +} + +@media (max-width: 991px) { + .about-pg-about-section { + padding-top: 0; + } +} + +/*-------------------------------------------------------------- +#0.8 services-section +--------------------------------------------------------------*/ +.services-section { + background-color:#f5f8f9; + padding-bottom: 60px; +} + +.services-section1 { + background-color: #ffffff; + padding-bottom: 105px; +} + +@media (max-width: 991px) { + .services-section { + padding-bottom: 85px; + } +} + +@media (max-width: 767px) { + .services-section { + padding-bottom: 75px; + } +} + +.services-section .section-title-text p { + font-size: 18px; + font-size: 1rem; + margin: 0; + text-align: right; + padding-top: 20px; +} + +@media (max-width: 991px) { + .services-section .section-title-text p { + text-align: left; + padding-top: 0; + margin-bottom: 50px; + } +} + +.services-section .service-grids { + margin: 0 -15px; +} + +@media (max-width: 991px) { + .services-section .service-grids { + margin: 0 -7.5px; + } +} + +.services-section .service-grids1 { + margin: 0 -15px; +} + +@media (max-width: 991px) { + .services-section .service-grids1 { + margin: 0 -7.5px; + } +} + +.services-section .service-grids .grid { + background-color: #fff; + width: calc(25% - 30px); + margin: 0 10px 30px; + float: left; + text-align: center; + padding: 20px 35px; + -webkit-box-shadow: 0px 0px 32px 0px rgba(16, 37, 65, 0.1); + box-shadow: 0px 0px 32px 0px rgba(16, 37, 65, 0.1); + border-radius: 10px; +} + +.services-section .service-grids .grid1 { + background-color: #fff; + width: calc(25% - 30px); + margin: 0 15px 20px; + float: left; + text-align: center; + /*padding: 35px 35px;*/ + +} + +@media (max-width: 991px) { + .services-section .service-grids .grid { + width: calc(50% - 15px); + margin: 0 7.5px 30px; + } +} + +@media (max-width: 600px) { + .services-section .service-grids .grid { + width: calc(100% - 15px); + float: none; + } +} + +@media (max-width: 991px) { + .services-section .service-grids .grid1 { + width: calc(50% - 15px); + margin: 0 7.5px 30px; + } +} + +@media (max-width: 600px) { + .services-section .service-grids .grid1 { + width: calc(100% - 15px); + float: none; + } +} + +.services-section .icon .fi:before { + font-size: 45px; + font-size: 2.8125rem; + color: #1481ff; +} + +.services-section .grid h3 { + font-size: 20px; + font-size: 1rem; + margin: 0.4em 0 0.7em; +} + +@media (max-width: 767px) { + .services-section .grid h3 { + font-size: 18px; + font-size: 1.125rem; + } +} + +.services-section .grid h3 a { + color: #102541; +} + +.services-section .grid h3 a:hover { + color: #1481ff; +} + +.services-section .grid p { + margin: 0; +} + +.services-section .grid1 h3 { + font-size: 20px; + font-size: 1.25rem; + margin: 0.4em 0 0.7em; +} + +@media (max-width: 767px) { + .services-section .grid1 h3 { + font-size: 18px; + font-size: 1.125rem; + } +} + +.services-section .grid1 h3 a { + color: #102541; +} + +.services-section .grid1 h3 a:hover { + color: #1481ff; +} + +.services-section .grid1 p { + margin: 0; + margin-top: 10px; +} + +.services-section .all-services { + text-align: center; +} + +.services-section .all-services p { + font-size: 18px; + font-size: 1.125rem; + font-weight: 600; + color: #102541; + margin: 0; + padding-top: 10px; +} + +.services-section .all-services p a { + text-decoration: underline; + color: #1481ff; +} + +.services-pg-section { + padding-bottom: 80px; +} + +@media (max-width: 991px) { + .services-pg-section { + padding-bottom: 60px; + } +} + +@media (max-width: 767px) { + .services-pg-section { + padding-bottom: 50px; + } +} + +/*-------------------------------------------------------------- +#0.9 track-contact +--------------------------------------------------------------*/ +.track-contact, .track-contact-s2 { + background: linear-gradient(135deg, #0f3e71, #1481ff) center bottom/cover no-repeat local; + padding-bottom: 0; +} + +.track-contact .track-trace, .track-contact-s2 .track-trace, +.track-contact .quote-form, +.track-contact-s2 .quote-form { + width: 50%; + float: left; +} + +@media (max-width: 650px) { + .track-contact .track-trace, .track-contact-s2 .track-trace, + .track-contact .quote-form, + .track-contact-s2 .quote-form { + width: 100%; + float: none; + } +} + +.track-contact .track-trace h3, .track-contact-s2 .track-trace h3, +.track-contact .quote-form h3, +.track-contact-s2 .quote-form h3 { + font-size: 20px; + font-size: 1.25rem; + margin: 0 0 1em; +} + +@media (max-width: 991px) { + .track-contact .track-trace h3, .track-contact-s2 .track-trace h3, + .track-contact .quote-form h3, + .track-contact-s2 .quote-form h3 { + font-size: 18px; + font-size: 1.125rem; + } +} + +.track-contact .track-trace label, .track-contact-s2 .track-trace label, +.track-contact .quote-form label, +.track-contact-s2 .quote-form label { + font-size: 14px; + font-size: 0.875rem; + font-weight: bold; + color: #57667e; + display: block; + margin-bottom: 8px; +} + +@media (max-width: 991px) { + .track-contact .track-trace label, .track-contact-s2 .track-trace label, + .track-contact .quote-form label, + .track-contact-s2 .quote-form label { + font-size: 12px; + font-size: 0.75rem; + } +} + +.track-contact .track-trace input, .track-contact-s2 .track-trace input, +.track-contact .track-trace select, +.track-contact-s2 .track-trace select, +.track-contact .quote-form input, +.track-contact-s2 .quote-form input, +.track-contact .quote-form select, +.track-contact-s2 .quote-form select { + height: 45px; + border: 1px solid #dde0e4; + -webkit-box-shadow: none; + box-shadow: none; + color: #57667e; + border-radius: 0; +} + +.track-contact .track-trace form ::-webkit-input-placeholder, .track-contact-s2 .track-trace form ::-webkit-input-placeholder, +.track-contact .quote-form form ::-webkit-input-placeholder, +.track-contact-s2 .quote-form form ::-webkit-input-placeholder { + font-style: 16px; + font-style: normal; + color: #57667e; +} + +.track-contact .track-trace form :-moz-placeholder, .track-contact-s2 .track-trace form :-moz-placeholder, +.track-contact .quote-form form :-moz-placeholder, +.track-contact-s2 .quote-form form :-moz-placeholder { + font-style: 16px; + font-style: normal; + color: #57667e; +} + +.track-contact .track-trace form ::-moz-placeholder, .track-contact-s2 .track-trace form ::-moz-placeholder, +.track-contact .quote-form form ::-moz-placeholder, +.track-contact-s2 .quote-form form ::-moz-placeholder { + font-style: 16px; + font-style: normal; + color: #57667e; +} + +.track-contact .track-trace form :-ms-input-placeholder, .track-contact-s2 .track-trace form :-ms-input-placeholder, +.track-contact .quote-form form :-ms-input-placeholder, +.track-contact-s2 .quote-form form :-ms-input-placeholder { + font-style: 16px; + font-style: normal; + color: #57667e; +} + +.track-contact .track-trace form > div + div, .track-contact-s2 .track-trace form > div + div, +.track-contact .quote-form form > div + div, +.track-contact-s2 .quote-form form > div + div { + margin-top: 30px; +} + +.track-contact .track-trace .submit-btn, .track-contact-s2 .track-trace .submit-btn, +.track-contact .quote-form .submit-btn, +.track-contact-s2 .quote-form .submit-btn { + background-color: #1481ff; + width: 100%; + height: 45px; + font-size: 14px; + font-size: 0.875rem; + font-weight: bold; + color: #fff; + text-align: center; + border: 0; + border-radius: 5px; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} + +.track-contact .track-trace .submit-btn:hover, .track-contact-s2 .track-trace .submit-btn:hover, +.track-contact .quote-form .submit-btn:hover, +.track-contact-s2 .quote-form .submit-btn:hover { + background-color: #ed4b02; +} + +.track-contact .track-trace, .track-contact-s2 .track-trace { + background-color: #fff; + height: 663px; + padding: 55px 45px; + -webkit-box-shadow: 0px 0px 32px 0px rgba(16, 37, 65, 0.1); + box-shadow: 0px 0px 32px 0px rgba(16, 37, 65, 0.1); + position: relative; +} + +@media (max-width: 991px) { + .track-contact .track-trace, .track-contact-s2 .track-trace { + height: 652px; + } +} + +@media (max-width: 767px) { + .track-contact .track-trace, .track-contact-s2 .track-trace { + height: 612px; + padding: 35px 25px; + } +} + +@media (max-width: 650px) { + .track-contact .track-trace, .track-contact-s2 .track-trace { + height: auto; + } +} + +.track-contact .track-trace p, .track-contact-s2 .track-trace p { + font-size: 14px; + font-size: 0.875rem; + margin: 0; + position: absolute; + bottom: 55px; +} + +@media (max-width: 991px) { + .track-contact .track-trace p, .track-contact-s2 .track-trace p { + font-size: 12px; + font-size: 0.75rem; + } +} + +@media (max-width: 650px) { + .track-contact .track-trace p, .track-contact-s2 .track-trace p { + position: static; + margin: 20px 0 0; + } +} + + +.track-contact .quote-form, +.track-contact-s2 .quote-form { + background-color: #102541; + padding: 55px 45px; +} + +@media (max-width: 767px) { + + .track-contact .quote-form, + .track-contact-s2 .quote-form { + padding: 35px 25px; + } +} + + +.track-contact .quote-form h3, +.track-contact-s2 .quote-form h3, +.track-contact .quote-form label, +.track-contact-s2 .quote-form label { + color: #fff; +} + + +.track-contact .quote-form label, +.track-contact-s2 .quote-form label { + font-weight: 600; +} + + +.track-contact .quote-form input, +.track-contact-s2 .quote-form input, +.track-contact .quote-form select, +.track-contact-s2 .quote-form select { + background-color: #1d3452; + border: 0; + margin-bottom: 20px; + color: #a8aeb6; +} + + +.track-contact .quote-form form ::-webkit-input-placeholder, +.track-contact-s2 .quote-form form ::-webkit-input-placeholder { + font-style: 16px; + font-style: normal; + color: #a8aeb6; +} + + +.track-contact .quote-form form :-moz-placeholder, +.track-contact-s2 .quote-form form :-moz-placeholder { + font-style: 16px; + font-style: normal; + color: #a8aeb6; +} + + +.track-contact .quote-form form ::-moz-placeholder, +.track-contact-s2 .quote-form form ::-moz-placeholder { + font-style: 16px; + font-style: normal; + color: #a8aeb6; +} + + +.track-contact .quote-form form :-ms-input-placeholder, +.track-contact-s2 .quote-form form :-ms-input-placeholder { + font-style: 16px; + font-style: normal; + color: #a8aeb6; +} + +/*-------------------------------------------------------------- +#1.0 faq-achievement-section +--------------------------------------------------------------*/ +.faq-achievement-section { + /*** skills progress bar ***/ +} + +@media screen and (min-width: 1200px) { + .faq-achievement-section .achievement-container { + padding-left: 50px; + } +} + +@media (max-width: 991px) { + .faq-achievement-section .achievement-container { + margin-top: 70px; + } + .faq-achievement-section .achievement-container p { + margin-top: -15px; + } +} + +.faq-achievement-section .skills { + padding-top: 30px; +} + +.faq-achievement-section .skills .skill { + margin-bottom: 35px; +} + +.faq-achievement-section .skills .skill:last-child { + margin-bottom: 0; +} + +.faq-achievement-section .skills .skill:last-child .progress { + margin-bottom: 0; +} + +.faq-achievement-section .skills h6 { + font-size: 14px; + font-size: 0.875rem; + margin: 0 0 0.6em; + text-transform: capitalize; +} + +@media (max-width: 991px) { + .faq-achievement-section .skills h6 { + font-size: 14px; + font-size: 0.875rem; + } +} + +.faq-achievement-section .skills .progress { + background-color: #e6e6e6; + height: 5px; + -webkit-box-shadow: none; + box-shadow: none; + overflow: visible; + box-shadow: none; + position: relative; + border-radius: 3px; +} + +.faq-achievement-section .skills .progress > span { + font-size: 14px; + font-size: 0.875rem; + font-weight: bold; + color: #57667e; + padding: 2px 6px; + text-align: center; + position: absolute; + right: 20px; + top: -32px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} + +@media (max-width: 991px) { + .faq-achievement-section .skills .progress > span { + padding: 0 6px; + } +} + +.faq-achievement-section .skills .progress-bar { + background: #1481ff; + position: relative; + -webkit-box-shadow: none; + box-shadow: none; + border-radius: 3px; +} + +.faq-achievement-section .skills .progress-bar:after { + content: ""; + width: 10px; + height: 10px; + background-color:#1481ff; + border-radius: 50%; + position: absolute; + right: 0; + top: -3px; + -webkit-box-shadow: 0 0 5px #969696; + box-shadow: 0 0 5px #969696; +} + +/*-------------------------------------------------------------- +#1.1 testimonials-section +--------------------------------------------------------------*/ +.testimonials-section { + background-color: #f0fbff; + padding-bottom: 40px; + position: relative; +} + +.testimonials-section:before { + background: url("../../images/testimonials-bg.png") left bottom/cover no-repeat local; + content: ""; + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; +} + +@media (max-width: 991px) { + .testimonials-section { + padding-bottom: 30px; + } +} + +@media (max-width: 767px) { + .testimonials-section { + padding-bottom: 10px; + } +} + +.testimonials-section .testimonial-grids { + margin: 0 -15px; +} + +.testimonials-section .testimonial-grids .grid { + width: calc(50% - 30px); + float: left; + margin: 0 15px 50px; +} + +@media (max-width: 991px) { + .testimonials-section .testimonial-grids .grid { + width: calc(50% - 30px); + } +} + +@media (max-width: 600px) { + .testimonials-section .testimonial-grids .grid { + width: calc(100% - 30px); + float: none; + } +} + +.testimonials-section .quote { + background: #fff; + padding: 45px; + height: 400px; + overflow: hidden; + position: relative; + border-radius: 5px; +} + +@media (max-width: 767px) { + .testimonials-section .quote { + padding: 30px 25px; + overflow: hidden; + height: 480px; + } +} + +.testimonials-section .quote p { + /*font-style: italic;*/ + font-size:14px; +} + +.testimonials-section .quote:before { + content: ""; + border-right: 30px solid transparent; + border-top: 20px solid #fff; + position: absolute; + left: 35px; + bottom: -20px; +} + +.testimonials-section .client-info { + margin-top: 15px; + margin-bottom: 35px; + position: relative; + padding-left: 75px; +} + +.testimonials-section .client-info .img-holder { + position: absolute; + left: 0; + top: 0; +} + +.testimonials-section .client-info .img-holder img { + border-radius: 50%; + width: 64px; +} + +.testimonials-section .client-info h5 { + font-size: 16px; + font-size: 1rem; + margin: 0 0 0.3em; + padding: 0.8em 0 0; +} + +@media (max-width: 767px) { + .testimonials-section .client-info h5 { + font-size: 14px; + font-size: 0.875rem; + } +} + +.testimonials-section .client-info p { + font-size: 12px; + font-size: 0.95rem; + color: #fc4e04; + margin: 0; + line-height: 1.7em; +} + +/*-------------------------------------------------------------- +#1.2 fun-fact-section +--------------------------------------------------------------*/ +.fun-fact-section { + background: url("../../images/dotted-map.png") center bottom/70% no-repeat local; + text-align: center; +} + +@media (max-width: 767px) { + .fun-fact-section { + padding-bottom: 30px; + } +} + +.fun-fact-section h2 { + font-size: 36px; + font-size: 2.25rem; + margin: 0 0 1em; +} + +@media (max-width: 991px) { + .fun-fact-section h2 { + font-size: 26px; + font-size: 1.625rem; + } +} + +@media (max-width: 767px) { + .fun-fact-section h2 { + font-size: 25px; + font-size: 1.5625rem; + } +} + +.fun-fact-section .fun-fact-grids .grid { + width: 20%; + float: left; +} + +@media (max-width: 767px) { + .fun-fact-section .fun-fact-grids .grid { + width: 50%; + margin-bottom: 50px; + } +} + +.fun-fact-section .grid h3 { + font-size: 48px; + font-size: 3rem; + font-weight: 700; + color: #0453fc; + margin: 0 0 0.2em; +} + +@media (max-width: 991px) { + .fun-fact-section .grid h3 { + font-size: 40px; + font-size: 2.5rem; + } +} + +@media (max-width: 767px) { + .fun-fact-section .grid h3 { + font-size: 30px; + font-size: 1.875rem; + } +} + +.fun-fact-section .grid h3 + p { + font-size: 16px; + font-size: 1rem; + margin: 0; +} + +.counter-no-comma .odometer-formatting-mark { + display: none; +} + +@media (max-width: 991px) { + .fun-fact-section .grid h3 + p { + font-size: 15px; + font-size: 0.9375rem; + } +} + +/*-------------------------------------------------------------- +#1.3 portfolio-section +--------------------------------------------------------------*/ +.portfolio-section { + position: relative; + padding-top: 0; +} + +.portfolio-section.section-padding { + padding-top: 64px; + padding-bottom: 72px; +} + +.portfolio-section .section-title-s4 { + max-width: 560px; + margin: 0 auto 38px; +} + +.portfolio-section .section-title-s4 > span { + margin-bottom: 12px; + font-size: 1rem; + letter-spacing: 0.08em; +} + +.portfolio-section .section-title-s4 h2 { + margin: 0; + line-height: 1.25; +} + +.portfolio-section .portfolio-container { + max-width: 1488px; + margin: 0 auto; + padding: 0 24px 6px; +} + +.portfolio-section:before { + content: ""; + width: 100%; + height: 50%; + background: #f0fbff; + position: absolute; + left: 0; + bottom: 0; +} + +.portfolio-section .portfolio-grids .grid { + position: relative; + overflow: hidden; + background: #0c2037; + -webkit-transition: -webkit-transform 0.35s ease, box-shadow 0.35s ease; + transition: transform 0.35s ease, box-shadow 0.35s ease; +} + +.portfolio-section .portfolio-grids a.grid { + display: block; + color: inherit; + text-decoration: none; +} + +.portfolio-section .portfolio-grids .grid .img-holder { + position: relative; +} + +.portfolio-section .portfolio-grids .grid .img-holder img { + width: 100%; + aspect-ratio: 4 / 5; + object-fit: cover; + display: block; + filter: saturate(0.88) contrast(0.9) brightness(0.82); + -webkit-transition: -webkit-transform 0.45s ease, -webkit-filter 0.35s ease; + transition: transform 0.45s ease, filter 0.35s ease; +} + +.portfolio-section .portfolio-grids .grid:hover { + cursor: pointer; + -webkit-transform: translateY(-6px); + transform: translateY(-6px); + box-shadow: 0 22px 48px rgba(8, 24, 44, 0.18); +} + +.portfolio-section .portfolio-grids .grid .details { + background: linear-gradient(180deg, rgba(7, 24, 43, 0.08) 0%, rgba(9, 29, 52, 0.22) 38%, rgba(9, 29, 52, 0.82) 100%); + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + padding: 40px 26px; + display: flex; + flex-direction: column; + justify-content: flex-end; + gap: 10px; + opacity: 1; + visibility: visible; + overflow: hidden; + pointer-events: none; + -webkit-transition: background 0.35s ease; + -moz-transition: background 0.35s ease; + -o-transition: background 0.35s ease; + -ms-transition: background 0.35s ease; + transition: background 0.35s ease; +} + +.portfolio-section .portfolio-grids .grid .details:before { + content: ""; + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + background: linear-gradient(180deg, rgba(12, 32, 54, 0.02) 0%, rgba(12, 32, 54, 0.08) 28%, rgba(12, 32, 54, 0.24) 100%); + opacity: 0.72; +} + +.portfolio-section .portfolio-grids .grid h3 { + margin: 0 0 6px; + color: rgb(255, 255, 255); + font-size: 1.5rem; + line-height: 1.3; + font-weight: 600; + max-width: 11em; + min-height: 2.6em; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; +} + +@media (max-width: 991px) { + .portfolio-section .portfolio-grids .grid h3 { + font-size: 1.28rem; + min-height: 2.7em; + } +} + +.portfolio-section .portfolio-grids .grid .portfolio-meta, +.portfolio-section .portfolio-grids .grid .portfolio-desc, +.portfolio-section .portfolio-grids .grid .portfolio-link { + position: relative; + z-index: 2; +} + +.portfolio-section .portfolio-grids .grid .portfolio-meta { + margin: 0 0 6px; + color: #ffffff; + font-size: 0.82rem; + line-height: 1.4; + letter-spacing: 0.05em; + font-weight: 500; + text-transform: uppercase; + display: inline-flex; + align-items: center; + width: fit-content; + min-height: 34px; + padding: 5px 20px; + box-shadow: -1px 3px 6px rgb(5 99 241 / 67%); + border-radius: 30px; + background: rgba(16, 119, 255, 0.918); + backdrop-filter: blur(6px); + transform: translateY(-4px); +} + +.portfolio-section .portfolio-grids .grid .portfolio-desc { + margin: 0; + min-height: 3.5em; + max-width: 15em; + color: rgba(232, 241, 250, 0.84); + font-size: 0.98rem; + line-height: 1.75; + font-weight: 400; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 4; + overflow: hidden; +} + +.portfolio-section .portfolio-grids .grid .portfolio-link { + display: inline-flex; + align-items: center; + position: relative; + width: fit-content; + margin-top: auto; + padding-left: 20px; + color: rgba(255, 255, 255, 0.88); + font-size: 0.95rem; + font-weight: 500; + letter-spacing: 0.02em; + -webkit-transition: color 0.35s ease, padding-left 0.35s ease; + transition: color 0.35s ease, padding-left 0.35s ease; +} + +.portfolio-section .portfolio-grids .grid .portfolio-link:before, +.portfolio-section .portfolio-grids .grid .portfolio-link:after { + content: ""; + position: absolute; + left: 0; + top: 50%; + background: #0084ff; + -webkit-transition: background 0.35s ease, width 0.35s ease, -webkit-transform 0.35s ease; + transition: background 0.35s ease, width 0.35s ease, transform 0.35s ease; +} + +.portfolio-section .portfolio-grids .grid .portfolio-link:before { + width: 12px; + height: 2px; + transform: translateY(-50%); +} + +.portfolio-section .portfolio-grids .grid .portfolio-link:after { + width: 7px; + height: 7px; + border-top: 2px solid #5ab0ff; + border-right: 2px solid #5ab0ff; + background: transparent; + left: 6px; + transform: translateY(-50%) rotate(45deg); +} + +.portfolio-section .portfolio-grids .grid:hover .img-holder img { + -webkit-transform: scale(1.03); + transform: scale(1.03); + filter: saturate(0.92) contrast(0.93) brightness(0.86); +} + +.portfolio-section .portfolio-grids .grid:hover .details { + background: linear-gradient(180deg, rgba(7, 24, 43, 0.14) 0%, rgba(86, 165, 255, 0.28) 40%, rgba(28, 134, 255, 0.86) 100%); +} + +.portfolio-section .portfolio-grids .grid:hover .portfolio-link { + color: #ffffff; + padding-left: 24px; +} + +@media (max-width: 1199px) { + .portfolio-section.section-padding { + padding-top: 58px; + padding-bottom: 64px; + } + + .portfolio-section .section-title-s4 { + max-width: 520px; + margin-bottom: 32px; + } + + .portfolio-section .portfolio-container { + padding: 0 18px 4px; + } + + .portfolio-section .portfolio-grids .grid .details { + padding: 24px 22px 24px; + } + + .portfolio-section .portfolio-grids .grid h3 { + font-size: 1.42rem; + max-width: 8.5em; + } + + .portfolio-section .portfolio-grids .grid .portfolio-meta { + margin-left: -22px; + } +} + +@media (max-width: 767px) { + .portfolio-section.section-padding { + padding-top: 48px; + padding-bottom: 52px; + } + + .portfolio-section .section-title-s4 { + margin-bottom: 24px; + } + + .portfolio-section .section-title-s4 > span { + margin-bottom: 10px; + } + + .portfolio-section .portfolio-container { + padding: 0 12px 4px; + } + + .portfolio-section .portfolio-grids .grid .details { + padding: 22px 20px 20px; + gap: 12px; + } + + .portfolio-section .portfolio-grids .grid h3 { + font-size: 1.12rem; + max-width: none; + min-height: auto; + } + + .portfolio-section .portfolio-grids .grid .portfolio-meta { + font-size: 0.74rem; + min-height: 30px; + padding: 5px 20px 5px 12px; + margin-left: -20px; + } + + .portfolio-section .portfolio-grids .grid .portfolio-desc { + font-size: 0.9rem; + line-height: 1.7; + min-height: auto; + max-width: none; + } + + .portfolio-section .portfolio-grids .grid .portfolio-link { + font-size: 0.88rem; + } +} + +.portfolio-section .all-portfolio { + text-align: center; + margin-top: 55px; +} + +.portfolio-pg-section { + padding: 110px 0 100px; +} + +@media (max-width: 991px) { + .portfolio-pg-section { + padding: 90px 0 80px; + } +} + +@media (max-width: 767px) { + .portfolio-pg-section { + padding: 80px 0 70px; + } +} + +/*-------------------------------------------------------------- +#1.4 partners-section +--------------------------------------------------------------*/ +.partners-section .container { + position: relative; + padding: 65px 15px 35px 15px; +} + +.partners-section .separator { + background: #f4f4f4; + width: calc(100% - 30px); + height: 1px; + position: absolute; + left: 15px; + bottom: 0; +} + +.partners-section .partners-marquee-wrap { + position: relative; + width: 100%; + padding: 15px clamp(8px, 2vw, 24px) 30px; +} + +.partners-section .partners-marquee-wrap .row { + margin-left: 0; + margin-right: 0; +} + +.partners-section .partners-marquee-wrap .col-xs-12 { + padding-left: 0; + padding-right: 0; +} + +.partners-section .partners-marquee-wrap .separator { + width: auto; + left: clamp(8px, 2vw, 24px); + right: clamp(8px, 2vw, 24px); +} + +.partners-section .partner-marquee { + overflow: hidden; + width: 100%; +} + +.partners-section .partner-track { + display: flex; + width: max-content; + -webkit-animation: partners-marquee 24s linear infinite; + animation: partners-marquee 24s linear infinite; + will-change: transform; +} + +.partners-section .partner-track-set { + display: flex; + align-items: center; + flex-shrink: 0; +} + +.partners-section .grid { + text-align: center; + display: flex; + align-items: center; + justify-content: center; + flex: 0 0 auto; + min-width: clamp(120px, 12vw, 220px); + padding: 8px 15px; +} + +.partners-section .grid img { + height: 80px; + max-width: 100%; + width: auto; + margin: auto 0; + display: inline-block; + -o-object-fit: contain; + object-fit: contain; +} + +@-webkit-keyframes partners-marquee { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + to { + -webkit-transform: translate3d(-50%, 0, 0); + transform: translate3d(-50%, 0, 0); + } +} + +@keyframes partners-marquee { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + to { + -webkit-transform: translate3d(-50%, 0, 0); + transform: translate3d(-50%, 0, 0); + } +} + +@media (max-width: 991px) { + .partners-section .partners-marquee-wrap { + padding-left: 12px; + padding-right: 12px; + } + + .partners-section .partners-marquee-wrap .separator { + left: 12px; + right: 12px; + } + + .partners-section .grid { + min-width: 160px; + padding: 8px 12px; + } + + .partners-section .grid img { + height: 68px; + } +} + +@media (max-width: 767px) { + .partners-section .partners-marquee-wrap { + padding-left: 10px; + padding-right: 10px; + } + + .partners-section .partners-marquee-wrap .separator { + left: 10px; + right: 10px; + } + + .partners-section .partner-track { + -webkit-animation-duration: 20s; + animation-duration: 20s; + } + + .partners-section .partner-track-set { + flex-shrink: 0; + } + + .partners-section .grid { + min-width: 128px; + padding: 6px 10px; + } + + .partners-section .grid img { + height: 56px; + } +} + +/*-------------------------------------------------------------- +#1.5 blog-section +--------------------------------------------------------------*/ +.blog-section { + padding-bottom: 50px; +} + +@media (max-width: 991px) { + .blog-section { + padding-bottom: 40px; + } +} + +@media (max-width: 767px) { + .blog-section { + padding-bottom: 30px; + } +} + +.blog-section .blog-grids { + margin: 0 -15px; + position: relative; +} + +@media (max-width: 767px) { + .blog-section .blog-grids { + margin: 0 -7.5px; + } +} + +.blog-section .blog-grids .grid { + width: calc(33% - 30px); + float: left; + margin: 0 15px 50px; + border: 1px solid #ebf4fd; + padding: 45px 35px; + position: relative; + overflow: hidden; +} + +@media (max-width: 991px) { + .blog-section .blog-grids .grid { + width: calc(50% - 30px); + } +} + +@media (max-width: 767px) { + .blog-section .blog-grids .grid { + width: calc(50% - 15px); + margin: 0 7.5px 50px; + padding: 35px 20px; + } +} + +@media (max-width: 550px) { + .blog-section .blog-grids .grid { + width: calc(100% - 15px); + float: none; + } +} + +.blog-section .grid .overlay { + background: #1481ff; + width: 100%; + height: 100%; + text-align: center; + position: absolute; + left: 0; + top: -10%; + display: table; + opacity: 0; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; + visibility: hidden; +} + +.blog-section .grid .overlay .middle { + display: table-cell; + vertical-align: middle; +} + +.blog-section .grid .overlay a:hover { + background: #fff; + color: #102541; +} + +.blog-section .grid:hover .overlay { + opacity: 1; + visibility: visible; + top: 0; +} + +.blog-section .entry-meta { + position: relative; + padding-left: 88px; + min-height: 70px; + margin-bottom: 30px; +} + +.blog-section .entry-meta .author { + position: absolute; + left: 0; +} + +.blog-section .entry-meta img { + border-radius: 50%; +} + +.blog-section .entry-meta h4 { + font-size: 18px; + font-size: 1.125rem; + font-weight: bold; + margin: 0 0 0.3em; + padding-top: 0.7em; +} + +@media (max-width: 767px) { + .blog-section .entry-meta h4 { + font-size: 16px; + font-size: 1rem; + } +} + +.blog-section .entry-meta .date { + font-size: 14px; + font-size: 0.875rem; + margin: 0; +} + +.blog-section .entry-details h3 { + font-size: 20px; + font-size: 1.25rem; + font-weight: bold; + margin: 0 0 0.8em; + line-height: 1.3em; +} + +@media (max-width: 767px) { + .blog-section .entry-details h3 { + font-size: 18px; + font-size: 1.125rem; + } +} + +.blog-section .entry-details h3 a { + color: #102541; +} + +.blog-section .entry-details p { + margin-bottom: 0; +} + +/*-------------------------------------------------------------- +#1.5 cta-section-s2 +--------------------------------------------------------------*/ +.cta-section-s2 { + background: #ebf4fd url("../../images/dotted-map.png") center center; + padding: 50px 0; +} + +@media (max-width: 767px) { + .cta-section-s2 { + text-align: center; + } +} + +.cta-section-s2 h2 { + font-size: 30px; + font-size: 1.575rem; + margin: 0 0 0.5em; + line-height: 2em; +} + +@media (max-width: 991px) { + .cta-section-s2 h2 { + font-size: 25px; + font-size: 1.5625rem; + } +} + +@media (max-width: 767px) { + .cta-section-s2 h2 { + font-size: 20px; + font-size: 1.25rem; + } +} + +.cta-section-s2 p { + font-size: 18px; + font-size: 1rem; + margin-bottom: 0; +} + +.cta-section-s2 .contact-info { + float: right; + text-align: center; +} + +@media (max-width: 767px) { + .cta-section-s2 .contact-info { + float: none; + margin-top: 40px; + } +} + +.cta-section-s2 .fi:before { + font-size: 60px; + font-size: 3.75rem; + color: #1481ff; +} + +@media (max-width: 991px) { + .cta-section-s2 .fi:before { + font-size: 50px; + font-size: 3.125rem; + } +} + +.cta-section-s2 h5 { + font-size: 18px; + font-size: 1.125rem; + margin: 1em 0 1.7em; +} + +@media (max-width: 767px) { + .cta-section-s2 h5 { + font-size: 16px; + font-size: 1rem; + } +} + +/*-------------------------------------------------------------- + #home style 2 +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +#2.1 features-section-s2 +--------------------------------------------------------------*/ +.features-section-s2, .features-section-s3, .features-section-s4 { + padding-bottom: 0; +} + +.features-section-s2 .feature-grids,.features-section-s2 .feature-grids2, +.features-section-s3 .feature-grids , .features-section-s4 .feature-grids{ + margin: 0 -15px; +} + +@media (max-width: 991px) { + .features-section-s2 .feature-grids, .features-section-s3 .feature-grids, + .features-section-s4 .feature-grids { + margin: 0 -7.5px; + } +} + +.features-section-s2 .feature-grids .grid, .features-section-s3 .feature-grids .grid, { + width: calc(33.33% - 30px); + margin: 0 15px 30px; + float: left; + padding: 50px 40px; + text-align: center; + border-radius: 10px; + -webkit-box-shadow: 0px 0px 36.8px 9.2px rgba(16, 37, 65, 0.1); + box-shadow: 0px 0px 36.8px 9.2px rgba(16, 37, 65, 0.1); +} + + + +.features-section-s2 .feature-grids2 .grid { + width: calc(50% - 30px); + margin: 0 15px 30px; + float: left; + padding: 50px 40px; + text-align: left; + +} + +.features-section-s4 .feature-grids .grid, { + width: calc(33.33% - 30px); + margin: 0 15px 30px; + float: left; + padding: 50px 40px; + text-align: center; + +} + +@media (max-width: 991px) { + .features-section-s2 .feature-grids .grid, .features-section-s2 .feature-grids .grid,.features-section-s3 .feature-grids .grid,.features-section-s4 .feature-grids.grid { + width: calc(48% - 15px); + margin: 0 7.5px 30px; + } + .features-section-s2 .feature-grids2 .grid, { + width: 49%; + margin: 0 7.5px 30px; + } +} + +@media (max-width: 600px) { + .features-section-s2 .feature-grids .grid, .features-section-s3 .feature-grids .grid, + .features-section-s4 .feature-grids .grid ,.features-section-s2 .feature-grids2 .grid { + width: calc(100% - 15px); + float: none; + } + + + +} + +.features-section-s2 .feature-grids2 .grid { + /*width: 47.2%;*/ + /*margin: 0 15px 30px;*/ + float: left; + text-align: left; + padding: 20px 20px; + /*text-align: center;*/ + +} + + + +.features-section-s2 .fi:before, .features-section-s3 .fi:before { + font-size: 50px; + font-size: 3.125rem; + color: #1481ff; +} + +.features-section-s2 .details h3, .features-section-s3 .details h3 { + font-size: 20px; + font-size: 1.25rem; + margin: 0.3em 0 0.7em; +} + +@media (max-width: 767px) { + .features-section-s2 .details h3, .features-section-s3 .details h3 { + font-size: 18px; + font-size: 1.125rem; + } +} + +.features-section-s2 .details p, .features-section-s3 .details p { + margin: 0 0 1em; +} + +.features-section-s2 .details .read-more, .features-section-s3 .details .read-more { + font-weight: bold; + color: #1481ff; + text-decoration: underline; +} + +.features-section-s2 .details .read-more:hover, .features-section-s3 .details .read-more:hover { + text-decoration: none; +} + +/*-------------------------------------------------------------- +#2.2 about-section-s2 +--------------------------------------------------------------*/ +.about-section-s2 h4 { + font-size: 20px; + font-size: 1.25rem; + font-weight: 600; + color: #57667e; + line-height: 1.4em; + margin: 1em 0; +} + +@media (max-width: 767px) { + .about-section-s2 h4 { + font-size: 18px; + font-size: 1.125rem; + } +} + +.about-section-s2 .quoter p { + font-size: 17px; + font-size: 1.0625rem; + font-weight: 600; + color: #102541; + margin: 1.5em 0 2em; +} + +.about-section-s2 .quoter p span { + font-size: 15px; + font-size: 0.9375rem; + font-weight: normal; + color: #57667e; +} + +/*-------------------------------------------------------------- +#2.3 services-section-s2 +--------------------------------------------------------------*/ +.services-section-s2 { + background-color: #f0fbff; + padding-bottom: 105px; +} + +@media (max-width: 991px) { + .services-section-s2 { + padding-bottom: 85px; + } +} + +@media (max-width: 767px) { + .services-section-s2 { + padding-bottom: 75px; + } +} + +.services-section-s2 .section-title-text p { + font-size: 18px; + font-size: 1.125rem; + margin: 0; + text-align: right; + padding-top: 20px; +} + +@media (max-width: 991px) { + .services-section-s2 .section-title-text p { + text-align: left; + padding-top: 0; + margin-bottom: 50px; + } +} + +.services-section-s2 .grid { + background-color: #ebf8fc; + padding: 45px 35px; + border: 1px solid #d0dde4; +} + +.services-section-s2 .icon .fi:before { + font-size: 45px; + font-size: 2.8125rem; + color: #1481ff; +} + +.services-section-s2 .grid h3 { + font-size: 20px; + font-size: 1.25rem; + margin: 0.4em 0 0.7em; +} + +@media (max-width: 767px) { + .services-section-s2 .grid h3 { + font-size: 18px; + font-size: 1.125rem; + } +} + +.services-section-s2 .grid h3 a { + color: #102541; +} + +.services-section-s2 .grid h3 a:hover { + color: #1481ff; +} + +.services-section-s2 .grid p { + margin: 0; +} + +.services-section-s2 .all-services { + text-align: center; +} + +.services-section-s2 .all-services p { + font-size: 18px; + font-size: 1.125rem; + font-weight: 600; + color: #102541; + margin: 0; + padding-top: 20px; +} + +.services-section-s2 .all-services p a { + text-decoration: underline; + color: #1481ff; +} + +.services-section-s2 .owl-theme .owl-controls { + margin-top: 25px; +} + +.services-section-s2 .owl-theme .owl-dots .owl-dot span { + background: #a6b5c0; +} + +.services-section-s2 .owl-theme .owl-dots .owl-dot.active span { + background: #1481ff; +} + +.services-pg-section-s2 { + padding-bottom: 95px; +} + +@media (max-width: 991px) { + .services-pg-section-s2 { + padding-bottom: 80px; + } +} + +@media (max-width: 767px) { + .services-pg-section-s2 { + padding-bottom: 70px; + } +} + +/*-------------------------------------------------------------- +#2.4 track-contact-s2 +--------------------------------------------------------------*/ +.track-contact-s2 { + background: url("../../images/slider/slide-2.webp") center bottom/cover no-repeat local; +} + +/*-------------------------------------------------------------- +#2.5 testimonials-section-s2 +--------------------------------------------------------------*/ +.testimonials-section-s2 { + background-color: #f0fbff; + position: relative; + padding-top: 110px; +} + +@media (max-width: 991px) { + .testimonials-section-s2 { + padding: 90px 0 80px; + } +} + +@media (max-width: 767px) { + .testimonials-section-s2 { + padding: 80px 0 70px; + } +} + +.testimonials-section-s2:before { + background: url("../../images/testimonials-bg-2.png") left bottom/cover no-repeat local; + content: ""; + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; +} + +.testimonials-section-s2 .testimonial-grids img { + width: auto; +} + +.testimonials-section-s2 .testimonial-grids { + padding-left: 60px; +} + +@media (max-width: 991px) { + .testimonials-section-s2 .testimonial-grids { + padding-left: 0; + } +} + +.testimonials-section-s2 .grid .fi:before { + font-size: 60px; + font-size: 3.75rem; + color: #1481ff; + display: block; + padding-left: 3px; + margin: 1em 0 0.3em; +} + +@media (max-width: 991px) { + .testimonials-section-s2 .grid .fi:before { + font-size: 50px; + font-size: 3.125rem; + margin: 0 0 0.3em; + } +} + +@media (max-width: 767px) { + .testimonials-section-s2 .grid .fi:before { + font-size: 40px; + font-size: 2.5rem; + } +} + +.testimonials-section-s2 .quote p { + font-size: 19px; + font-size: 1.1875rem; + color: #102541; + font-style: italic; +} + +@media (max-width: 767px) { + .testimonials-section-s2 .quote p { + font-size: 16px; + font-size: 1rem; + } +} + +.testimonials-section-s2 .client-info { + margin-top: 35px; + position: relative; + padding-left: 75px; + height: 65px; +} + +.testimonials-section-s2 .client-info .img-holder { + position: absolute; + left: 0; + top: 0; +} + +.testimonials-section-s2 .client-info .img-holder img { + border-radius: 50%; +} + +.testimonials-section-s2 .client-info h5 { + font-size: 16px; + font-size: 1rem; + margin: 0 0 0.3em; + padding: 0.8em 0 0; +} + +@media (max-width: 767px) { + .testimonials-section-s2 .client-info h5 { + font-size: 14px; + font-size: 0.875rem; + } +} + +.testimonials-section-s2 .client-info p { + font-size: 12px; + font-size: 0.75rem; + margin: 0; + line-height: 1.7em; +} + +.testimonials-section-s2 .owl-theme .owl-controls { + margin-top: 25px; + text-align: left; +} + +.testimonials-section-s2 .owl-theme .owl-dots .owl-dot span { + background: #a6b5c0; +} + +.testimonials-section-s2 .owl-theme .owl-dots .owl-dot.active span { + background: #1481ff; +} + +@media (max-width: 991px) { + .testimonials-section-s2 .testimonial-left-img-holder { + display: none; + } +} + +/*-------------------------------------------------------------- + #home style 3 +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +#3.1 features-section-s3 +--------------------------------------------------------------*/ +.features-section-s3 .feature-grids .grid { + -webkit-box-shadow: none; + box-shadow: none; + border: 2px solid #ecf3fd; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} + +.features-section-s3 .feature-grids .grid:hover { + -webkit-box-shadow: 0px 0px 36.8px 9.2px rgba(16, 37, 65, 0.1); + box-shadow: 0px 0px 36.8px 9.2px rgba(16, 37, 65, 0.1); +} + +/*-------------------------------------------------------------- + #about page +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +#4.1 mission-vision-section +--------------------------------------------------------------*/ +.mission-vision-section { + padding-bottom: 0; +} + +@media (max-width: 991px) { + .mission-vision-section { + padding-bottom: 35px; + } +} + +@media (max-width: 767px) { + .mission-vision-section { + padding-bottom: 25px; + } +} + +.mission-vision-section .mission-vision-grids { + margin: 0 -15px; +} + +@media (max-width: 767px) { + .mission-vision-section .mission-vision-grids { + margin: 0 -7.5px; + } +} + +.mission-vision-section .mission-vision-grids .grid { + width: calc(33.33% - 30px); + float: left; + margin: 0 15px 50px; +} + +@media (max-width: 991px) { + .mission-vision-section .mission-vision-grids .grid { + width: calc(50% - 30px); + } +} + +@media (max-width: 767px) { + .mission-vision-section .mission-vision-grids .grid { + width: calc(50% - 15px); + margin: 0 7.5px 50px; + } +} + +@media (max-width: 600px) { + .mission-vision-section .mission-vision-grids .grid { + width: calc(100% - 15px); + float: none; + } +} + +.mission-vision-section .title-area { + text-align: center; + margin-bottom: 50px; +} + +.mission-vision-section .title-area h2 { + font-size: 24px; + font-size: 1.5rem; + font-weight: 600; + line-height: 1.4em; + margin: -0.38em 0 0; +} + +@media (max-width: 991px) { + .mission-vision-section .title-area h2 { + font-size: 22px; + font-size: 1.375rem; + } +} + +.mission-vision-section .grid .img-holder { + margin-bottom: 30px; +} + +.mission-vision-section .grid h3 { + font-size: 22px; + font-size: 1.375rem; + margin: 0 0 0.6em; +} + +@media (max-width: 991px) { + .mission-vision-section .grid h3 { + font-size: 18px; + font-size: 1.125rem; + } +} + +.mission-vision-section .grid p { + margin-bottom: 0; +} + +/*-------------------------------------------------------------- + #contact page +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +#5.1 contact-pg-section +--------------------------------------------------------------*/ +.contact-pg-section .section-title-s3 p { + font-size: 16px; + font-size: 1rem; + margin: 1em 0 0; + color:#011946; + line-height: 2em; +} + +.contact-pg-section .submit-btn-wrapper { + text-align: center; +} + +.contact-pg-section .submit-btn-wrapper button { + border: 0; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} + +.contact-pg-section form { + overflow: hidden; + margin: 0 -15px; +} + +@media (max-width: 767px) { + .contact-pg-section form { + margin: 0 0 0 -15px; + } +} + +.contact-pg-section form .one-third-col { + width: 33.33%; + float: left; +} + +@media (max-width: 600px) { + .contact-pg-section form .one-third-col { + width: 100%; + float: left; + } +} + +.contact-pg-section form div { + padding: 0 15px 30px; +} + +@media (max-width: 767px) { + .contact-pg-section form div { + padding: 0 0 15px 15px; + } +} + +.contact-pg-section form .submit-btn-wrapper { + padding-bottom: 0; +} + +.contact-pg-section form input, +.contact-pg-section form textarea { + background: #fff; + font-size: 16px; + font-size: 1rem; + height: 55px; + padding: 6px 15px; + border: 2px solid #ebeff3; + border-radius: 0; + -webkit-box-shadow: none; + box-shadow: none; +} + +@media (max-width: 767px) { + .contact-pg-section form input, + .contact-pg-section form textarea { + height: 45px; + border: 1px solid #ebeff3; + } +} + +.contact-pg-section form input:focus, +.contact-pg-section form textarea:focus { + -webkit-box-shadow: none; + box-shadow: none; + border-color: #1481ff; +} + +.contact-pg-section form textarea { + height: 200px; + padding: 15px; +} + +.contact-pg-section .contact-info { + margin-top: 75px; + -webkit-box-shadow: 0px 9px 57px 0px rgba(0, 0, 0, 0.13); + box-shadow: 0px 9px 57px 0px rgba(0, 0, 0, 0.13); + text-align: center; +} + +@media (max-width: 991px) { + .contact-pg-section .contact-info { + margin-top: 60px; + } +} + +@media (max-width: 767px) { + .contact-pg-section .contact-info { + margin-top: 50px; + } +} + +.contact-pg-section .contact-info > div { + width: 33.33%; + float: left; + padding: 60px 35px; + position: relative; + border-left: 1px solid #efefef; +} + +@media (max-width: 991px) { + .contact-pg-section .contact-info > div { + padding: 60px 35px 40px; + margin-bottom: 20px; + } +} + +@media (max-width: 767px) { + .contact-pg-section .contact-info > div { + width: 100%; + padding: 40px 25px 20px; + border-left: 0; + border-top: 1px solid #efefef; + float: none; + } +} + +.contact-pg-section .contact-info .icon i { + font-size: 50px; + font-size: 3.125rem; + color: #1481ff; +} + +@media (max-width: 991px) { + .contact-pg-section .contact-info .icon i { + font-size: 40px; + font-size: 2.5rem; + } +} + +@media (max-width: 767px) { + .contact-pg-section .contact-info .icon i { + font-size: 35px; + font-size: 2.1875rem; + } +} + +.contact-pg-section .contact-info h5 { + font-family: Helvetica, 'Hiragino Sans GB', 'Microsoft Yahei', '微软雅黑', Arial, sans-serif; + font-size: 18px; + font-size: 1.125rem; + margin: 1em 0 0.5em; +} + +.contact-pg-section .contact-map { + height: 450px; + margin-top: 100px; +} + +@media (max-width: 991px) { + .contact-pg-section .contact-map { + margin-top: 80px; + } +} + +@media (max-width: 767px) { + .contact-pg-section .contact-map { + height: 350px; + margin-top: 70px; + } +} + +.contact-pg-section .contact-map iframe { + width: 100%; + height: 100%; + border: 0; + outline: 0; +} + +/*-------------------------------------------------------------- + #project single page +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +#6.1 project-sigle-section +--------------------------------------------------------------*/ +.project-sigle-section .project-info { + background-color: #e9f2fb; + max-width: 485px; + height: 443px; + padding: 45px; + border: 4px solid #dfeaf5; + z-index: 1; +} + +@media (max-width: 1199px) { + .project-sigle-section .project-info { + height: 364px; + } +} + +@media (max-width: 991px) { + .project-sigle-section .project-info { + margin: 50px 0 0; + padding: 25px; + height: auto; + } +} + +.project-sigle-section .project-info h3 { + font-size: 22px; + font-size: 1.375rem; + margin: 0 0 1em; +} + +@media (max-width: 991px) { + .project-sigle-section .project-info h3 { + font-size: 18px; + font-size: 1.125rem; + } +} + +.project-sigle-section .project-info ul { + list-style: none; +} + +@media (max-width: 991px) { + .project-sigle-section .project-info ul { + font-size: 14px; + font-size: 0.875rem; + } +} + +.project-sigle-section .project-info ul > li + li { + margin-top: 12px; +} + +.project-sigle-section .project-info li span { + font-weight: bold; + display: inline-block; + padding-right: 5px; +} + +.project-sigle-section .content-area h2 { + font-size: 32px; + font-size: 2rem; + margin: 2em 0 0.8em; +} + +@media (max-width: 991px) { + .project-sigle-section .content-area h2 { + font-size: 28px; + font-size: 1.75rem; + } +} + +@media (max-width: 767px) { + .project-sigle-section .content-area h2 { + font-size: 25px; + font-size: 1.5625rem; + } +} + +.project-sigle-section .content-area p { + margin-bottom: 1.7em; +} + +.project-sigle-section .challange-solution-section { + margin-top: 70px; +} + +.project-sigle-section .challange-solution-section ul { + list-style: none; + padding-bottom: 25px; +} + +.project-sigle-section .challange-solution-section ul > li + li { + margin-top: 8px; +} + +.project-sigle-section .challange-solution-section li i { + color: #1481ff; + display: inline-block; + padding-right: 7px; + position: relative; + top: 2px; +} + +.project-sigle-section .prev-next-project { + background: #fbfbfb; + padding: 28px 22px; + border: 2px solid #f7f7f7; + margin-top: 80px; + overflow: hidden; +} + +@media (max-width: 767px) { + .project-sigle-section .prev-next-project { + text-align: center; + padding: 35px 22px; + } +} + +.project-sigle-section .prev-next-project > div { + display: inline-block; + position: relative; + padding-left: 75px; +} + +@media (max-width: 767px) { + .project-sigle-section .prev-next-project > div { + display: block; + float: none; + padding: 0; + } +} + +.project-sigle-section .prev-next-project > div:first-child { + float: left; +} + +@media (max-width: 767px) { + .project-sigle-section .prev-next-project > div:first-child { + display: block; + float: none; + margin-bottom: 25px; + } +} + +.project-sigle-section .prev-next-project > div:last-child { + float: right; + padding: 0 75px 0 0; +} + +@media (max-width: 767px) { + .project-sigle-section .prev-next-project > div:last-child { + display: block; + float: none; + padding: 0; + } +} + +.project-sigle-section .prev-next-project .icon { + position: absolute; + left: 0; + top: 5px; + border-right: 1px solid #e8e8e8; + padding-right: 18px; +} + +@media (max-width: 767px) { + .project-sigle-section .prev-next-project .icon { + display: none; + } +} + +.project-sigle-section .prev-next-project .icon .fi:before { + font-size: 30px; + font-size: 1.875rem; + color: #1481ff; +} + +.project-sigle-section .prev-next-project > div:last-child .icon { + left: auto; + right: 0; + border-left: 1px solid #e8e8e8; + padding-left: 18px; + border-right: 0; + padding-right: 0; +} + +.project-sigle-section .prev-next-project a { + display: block; +} + +.project-sigle-section .prev-next-project a > span { + color: #7b7b7b; +} + +.project-sigle-section .prev-next-project a > h5 { + font-size: 16px; + font-size: 1rem; + color: #102541; + margin: 0.3em 0 0; + -webkit-transition: all 0.2s; + -moz-transition: all 0.2s; + -o-transition: all 0.2s; + -ms-transition: all 0.2s; + transition: all 0.2s; +} + +@media (max-width: 767px) { + .project-sigle-section .prev-next-project a > h5 { + font-size: 16px; + font-size: 1rem; + margin: 0.1em 0 0; + } +} + +.project-sigle-section .prev-next-project a:hover h5 { + color: #1481ff; +} + +/*-------------------------------------------------------------- + #service single page +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +#7.1 service-single-section +--------------------------------------------------------------*/ +.service-single-section { + /*** service single tab ***/ +} + +@media screen and (min-width: 1200px) { + .service-single-section .service-single-content { + padding-left: 20px; + } +} + +.service-single-section .service-single-content .theme-btn, .service-single-section .service-single-content .theme-btn-s2, .service-single-section .service-single-content .theme-btn-s3 { + margin-top: 10px; +} + +.service-single-section .service-single-content h2 { + font-size: 30px; + font-size: 1.875rem; + margin: 0 0 0.7em; + text-transform: capitalize; +} + +@media (max-width: 991px) { + .service-single-section .service-single-content h2 { + font-size: 25px; + font-size: 1.5625rem; + } +} + +@media (max-width: 767px) { + .service-single-section .service-single-content h2 { + font-size: 22px; + font-size: 1.375rem; + } +} + +.service-single-section .service-single-content h3 { + font-size: 22px; + font-size: 1.375rem; + text-transform: capitalize; + margin: 0 0 1em; +} + +@media (max-width: 991px) { + .service-single-section .service-single-content h3 { + font-size: 20px; + font-size: 1.25rem; + } +} + +@media (max-width: 767px) { + .service-single-section .service-single-content h3 { + font-size: 20px; + font-size: 1.25rem; + } +} + +.service-single-section .service-single-content p { + margin-bottom: 1.3em; +} + +.service-single-section .service-single-content blockquote { + background: #f5f9ff; + padding: 45px; + margin: 55px 0 80px; + border: 0; + position: relative; + font-size: 17px; + font-size: 1.0625rem; + color: #102541; + font-weight: 600; + border-left: 5px solid #e5eaf1; +} + +@media (max-width: 991px) { + .service-single-section .service-single-content blockquote { + font-size: 14px; + font-size: 0.875rem; + padding: 35px 25px; + margin: 45px 0 70px; + } +} + +.service-single-section .service-single-content blockquote p { + margin-bottom: 0.5em; +} + +.service-single-section .service-single-content blockquote > span { + font-size: 13px; + font-size: 0.8125rem; +} + +.service-single-section .service-single-content .service-single-slider { + position: relative; + margin-bottom: 60px; +} + +@media (max-width: 991px) { + .service-single-section .service-single-content .service-single-slider { + margin-bottom: 50px; + } +} + +.service-single-section .service-single-content .owl-controls { + width: 100%; + position: absolute; + left: 0; + bottom: 15px; +} + +.service-single-section .service-single-content .owl-theme .owl-dots .owl-dot span { + width: 13px; + height: 13px; + margin: 5px 7px; + background: #ffffff; +} + +.service-single-section .service-single-content .owl-theme .owl-dots .owl-dot.active span { + background: #1481ff; +} + +.service-single-section .service-single-content .benefit .details { + width: calc(100% - 270px); + float: left; + padding-right: 25px; +} + +@media (max-width: 767px) { + .service-single-section .service-single-content .benefit .details { + width: 100%; + float: none; + } +} + +.service-single-section .service-single-content .benefit .img-holder { + width: 270px; + float: right; +} + +@media (max-width: 767px) { + .service-single-section .service-single-content .benefit .img-holder { + width: 100%; + float: none; + margin: 45px 0; + } +} + +.service-single-section .service-single-content ul { + margin-bottom: 30px; +} + +.service-single-section .service-single-content ul li { + position: relative; + padding-left: 45px; + font-weight: 600; +} + +.service-single-section .service-single-content ul li span { + background: #1481ff; + width: 28px; + height: 28px; + line-height: 28px; + color: #fff; + border-radius: 30px; + position: absolute; + left: 0; + top: -3px; + text-align: center; +} + +.service-single-section .service-single-content ul li .fi:before { + font-size: 12px; + font-size: 0.75rem; + color: #fff; +} + +.service-single-section .service-single-content ul > li + li { + margin-top: 15px; +} + +.service-single-section .service-single-tab { + margin: 50px 0; +} + +@media (max-width: 991px) { + .service-single-section .service-single-tab { + margin: 40px 0; + } +} + +.service-single-section .service-single-tab .nav { + overflow: hidden; + margin: 0; +} + +.service-single-section .service-single-tab .nav li { + float: left; + padding-left: 0; +} + +.service-single-section .service-single-tab .nav > li + li { + margin-top: 0; + margin-left: 3px; +} + +@media (max-width: 767px) { + .service-single-section .service-single-tab .nav > li + li { + margin-left: 1px; + } +} + +.service-single-section .service-single-tab .nav a { + background: #fff; + font-size: 16px; + font-size: 1rem; + font-weight: bold; + color: #102541; + padding: 13px 25px; + border: 1px solid rgba(253, 94, 22, 0.2); +} + +@media (max-width: 767px) { + .service-single-section .service-single-tab .nav a { + font-size: 13px; + font-size: 0.8125rem; + padding: 8px 12px; + text-transform: none; + } +} + +@media (max-width: 350px) { + .service-single-section .service-single-tab .nav a { + padding: 8px; + } +} + +.service-single-section .service-single-tab .nav .active a, +.service-single-section .service-single-tab .nav a:hover { + background: #1481ff; + color: #fff; +} + +.service-single-section .tab-content { + padding: 35px 40px; + border: 1px solid rgba(253, 94, 22, 0.2); + margin-top: -1px; +} + +@media (max-width: 767px) { + .service-single-section .tab-content { + padding: 25px 20px; + } +} + +.service-single-section .tab-content .tab-pane p { + margin-bottom: 20px; +} + +@media (max-width: 767px) { + .service-single-section .tab-content .tab-pane p { + margin-bottom: 15px; + } +} + +.service-single-section .tab-content .tab-pane p:last-child { + margin-bottom: 0; +} + +/*-------------------------------------------------------------- + #blog page +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +#8.1 blog-pg-section +--------------------------------------------------------------*/ +.blog-pg-section { + /*** format-standard ***/ + /*** format-gallery ***/ + /*** format-quote ***/ + /*** format-video ***/ +} + +.blog-pg-section .blog-content .post { + margin-bottom: 100px; +} + +@media (max-width: 991px) { + .blog-pg-section .blog-content .post { + margin-bottom: 70px; + } +} + +@media (max-width: 767px) { + .blog-pg-section .blog-content .post { + margin-bottom: 60px; + } +} + +.blog-pg-section .entry-meta { + list-style: none; + overflow: hidden; + margin: 15px 0; +} + +@media (max-width: 767px) { + .blog-pg-section .entry-meta { + margin: 25px 0; + } +} + +.blog-pg-section .entry-meta li { + font-weight: 500; + font-size: 14px; + font-size: 0.875rem; + float: left; +} + +@media (max-width: 767px) { + .blog-pg-section .entry-meta li { + font-size: 12px; + font-size: 0.75rem; + } +} + +@media (max-width: 600px) { + .blog-pg-section .entry-meta li { + float: none; + display: block; + margin-bottom: 5px; + } +} + +.blog-pg-section .entry-meta li i { + font-size: 16px; + font-size: 1rem; + display: inline-block; + padding-right: 5px; +} + +@media (max-width: 767px) { + .blog-pg-section .entry-meta li i { + font-size: 12px; + font-size: 0.75rem; + } +} + +.blog-pg-section .entry-meta > li + li { + margin-left: 20px; + padding-left: 20px; + position: relative; +} + +@media (max-width: 600px) { + .blog-pg-section .entry-meta > li + li { + margin-left: 0; + padding-left: 0; + } +} + +.blog-pg-section .entry-meta li a { + color: #636893; +} + +.blog-pg-section .entry-meta li a:hover { + color: #1481ff; +} + +.blog-pg-section .entry-meta li:last-child i { + position: relative; + top: 3px; +} + +.blog-pg-section .post h3 { + font-size: 30px; + font-size: 1.875rem; + line-height: 1.2em; + margin: -0.27em 0 0.7em; +} + +@media (max-width: 991px) { + .blog-pg-section .post h3 { + font-size: 25px; + font-size: 1.5625rem; + } +} + +@media (max-width: 767px) { + .blog-pg-section .post h3 { + font-size: 22px; + font-size: 1.375rem; + } +} + +.blog-pg-section .post h3 a { + color: #102541; +} + +.blog-pg-section .post h3 a:hover { + color: #1481ff; +} + +.blog-pg-section .post p { + margin-bottom: 1em; +} + +@media (max-width: 991px) { + .blog-pg-section .post p { + font-size: 16px; + font-size: 1rem; + } +} + +.blog-pg-section .format-standard, +.blog-pg-section .format-quote { + background-color: #f5f9fd; + padding: 25px 35px 25px; + border-radius: 8px; +} + +@media (max-width: 767px) { + .blog-pg-section .format-standard, + .blog-pg-section .format-quote { + padding: 25px 20px 45px; + } +} + +.blog-pg-section .format-gallery { + position: relative; +} + +.blog-pg-section .format-gallery .owl-controls { + width: 100%; + margin: 0; + position: absolute; + left: 0; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} + +.blog-pg-section .format-gallery .owl-controls .owl-nav [class*=owl-]:hover { + background: #1481ff; +} + +.blog-pg-section .format-gallery .owl-controls .owl-nav [class*=owl-] { + background: rgba(133, 133, 133, 0.5); + width: 50px; + height: 50px; + line-height: 50px; + padding: 0; + margin: 0; + border-radius: 50%; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} + +.blog-pg-section .format-gallery .owl-controls .owl-nav .owl-prev, +.blog-pg-section .format-gallery .owl-controls .owl-nav .owl-next { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} + +.blog-pg-section .format-gallery .owl-controls .owl-nav .owl-prev { + left: 15px; +} + +.blog-pg-section .format-gallery .owl-controls .owl-nav .owl-next { + right: 15px; +} + +.blog-pg-section .format-quote { + text-align: center; + padding: 80px 60px; + position: relative; +} + +@media (max-width: 767px) { + .blog-pg-section .format-quote { + padding: 40px 20px; + } +} + +.blog-pg-section .format-quote p { + margin-bottom: 0; +} + +.blog-pg-section .format-quote:before { + font-family: "Flaticon"; + content: "\f114"; + font-size: 200px; + font-size: 12.5rem; + color: #ecf3fb; + margin-left: 0; + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + -o-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} + +.blog-pg-section .format-quote h3, +.blog-pg-section .format-quote p { + position: relative; +} + +.blog-pg-section .format-video .video-holder { + position: relative; + text-align: center; +} + +.blog-pg-section .format-video .video-holder:before { + content: ""; + background-color: #102541; + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; + opacity: 0.5; +} + +.blog-pg-section .format-video .video-holder:hover:before { + opacity: 0.7; +} + +.blog-pg-section .format-video .video-holder a { + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + -o-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} + +.blog-pg-section .format-video .video-holder .fi:before { + font-size: 80px; + font-size: 5rem; + color: #fff; +} + +@media (max-width: 767px) { + .blog-pg-section .format-video .video-holder .fi:before { + font-size: 60px; + font-size: 3.75rem; + } +} + +@media screen and (min-width: 1200px) { + .blog-pg-left-sidebar .blog-sidebar { + padding-right: 45px; + padding-left: 0; + } +} + +@media screen and (min-width: 1200px) { + .blog-pg-fullwidth .blog-content { + padding: 0; + } +} + +/*-------------------------------------------------------------- + #blog single page +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +#9.1 blog-single-section +--------------------------------------------------------------*/ +.blog-single-section { + /*** tag-share ***/ + /*** author-box ***/ + /*** more-posts ***/ + /*** comments area ***/ + /*** comment-respond ***/ +} + +.blog-single-section .entry-meta { + list-style: none; + overflow: hidden; + margin: 35px 0; +} + +@media (max-width: 767px) { + .blog-single-section .entry-meta { + margin: 25px 0; + } +} + +.blog-single-section .entry-meta li { + font-weight: 500; + font-size: 14px; + font-size: 0.875rem; + float: left; +} + +@media (max-width: 767px) { + .blog-single-section .entry-meta li { + font-size: 12px; + font-size: 0.75rem; + } +} + +@media (max-width: 600px) { + .blog-single-section .entry-meta li { + float: none; + display: block; + margin-bottom: 5px; + } +} + +.blog-single-section .entry-meta li i { + font-size: 16px; + font-size: 1rem; + display: inline-block; + padding-right: 5px; +} + +@media (max-width: 767px) { + .blog-single-section .entry-meta li i { + font-size: 12px; + font-size: 0.75rem; + } +} + +.blog-single-section .entry-meta > li + li { + margin-left: 20px; + padding-left: 20px; + position: relative; +} + +@media (max-width: 600px) { + .blog-single-section .entry-meta > li + li { + margin-left: 0; + padding-left: 0; + } +} + +.blog-single-section .entry-meta li a { + color: #636893; +} + +.blog-single-section .entry-meta li a:hover { + color: #1481ff; +} + +.blog-single-section .entry-meta li:last-child i { + position: relative; + top: 3px; +} + +.blog-single-section .post h2 { + font-size: 30px; + font-size: 1.875rem; + margin: -0.22em 0 0.7em; + line-height: 1.3em; +} + +@media (max-width: 991px) { + .blog-single-section .post h2 { + font-size: 30px; + font-size: 1.875rem; + } +} + +@media (max-width: 767px) { + .blog-single-section .post h2 { + font-size: 25px; + font-size: 1.5625rem; + } +} + +.blog-single-section .post p { + margin-bottom: 1.5em; +} + +.blog-single-section .post h3 { + font-size: 24px; + font-size: 1.5rem; + line-height: 1.3em; + margin: 1.8em 0 1em; +} + +@media (max-width: 991px) { + .blog-single-section .post h3 { + font-size: 22px; + font-size: 1.375rem; + } +} + +@media (max-width: 767px) { + .blog-single-section .post h3 { + font-size: 20px; + font-size: 1.25rem; + } +} + +.blog-single-section .post blockquote { + background-color: #1481ff; + color: #fff; + line-height: 1.6em; + padding: 120px 45px 50px; + margin-top: 60px; + border: 0; + text-align: center; + position: relative; +} + +@media (max-width: 767px) { + .blog-single-section .post blockquote { + padding: 55px 25px; + } +} + +.blog-single-section .post blockquote:before { + font-family: "Flaticon"; + content: "\f105"; + font-size: 60px; + font-size: 3.75rem; + color: rgba(255, 255, 255, 0.5); + position: absolute; + left: 50%; + top: 50px; + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -o-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); +} + +@media (max-width: 767px) { + .blog-single-section .post blockquote:before { + display: none; + } +} + +.blog-single-section .post blockquote .quoter { + font-size: 14px; + font-size: 0.875rem; + display: block; + margin-top: 15px; +} + +.blog-single-section .tag-share { + border-top: 1px solid #e6f0fb; + border-bottom: 1px solid #e6f0fb; + margin: 75px 0 0; + padding: 30px 0; + color: #102541; +} + +.blog-single-section .tag-share ul { + list-style: none; + display: inline-block; + overflow: hidden; +} + +.blog-single-section .tag-share ul li { + float: left; +} + +@media (max-width: 767px) { + .blog-single-section .tag-share ul li { + margin: 2px; + } +} + +.blog-single-section .tag-share ul > li + li { + margin-left: 10px; +} + +@media (max-width: 767px) { + .blog-single-section .tag-share ul > li + li { + margin: 2px; + } +} + +.blog-single-section .tag-share .tag { + float: left; +} + +.blog-single-section .tag-share .tag > span { + color: #102541; + font-weight: bold; + display: inline-block; + padding-right: 8px; +} + +.blog-single-section .tag-share .tag ul { + list-style: none; + position: relative; + top: 5px; +} + +.blog-single-section .tag-share .tag li { + position: relative; +} + +.blog-single-section .tag-share .tag li:after { + content: ","; + position: absolute; + right: -4px; + bottom: 0; +} + +.blog-single-section .tag-share .tag a { + font-size: 14px; + font-size: 0.875rem; + color: #102541; +} + +@media (max-width: 767px) { + .blog-single-section .tag-share .tag a { + font-size: 13px; + font-size: 0.8125rem; + } +} + +.blog-single-section .tag-share .tag a:hover { + color: #1481ff; +} + +.blog-single-section .tag-share .share { + float: right; + position: relative; + top: -15px; +} + +.blog-single-section .tag-share .share > span { + color: #102541; + font-weight: 600; + display: inline-block; + padding-right: 8px; +} + +.blog-single-section .tag-share .share ul { + position: relative; + top: 15px; +} + +.blog-single-section .tag-share .share ul > li + li { + margin-left: 10px; +} + +@media (max-width: 767px) { + .blog-single-section .tag-share .share ul > li + li { + margin-left: 8px; + } +} + +@media (max-width: 767px) { + .blog-single-section .tag-share .share ul > li { + margin: 5px; + } +} + +.blog-single-section .tag-share .share a { + width: 35px; + height: 35px; + line-height: 35px; + text-align: center; + border: 1px solid #eae6e6; + border-radius: 50%; + display: inline-block; + font-size: 14px; + font-size: 0.875rem; + color: #627381; +} + +@media (max-width: 767px) { + .blog-single-section .tag-share .share a { + font-size: 13px; + font-size: 0.8125rem; + } +} + +.blog-single-section .tag-share .share a:hover { + background: #1481ff; + border-color: #1481ff; + color: #fff !important; +} + +.blog-single-section .tag-share .share ul > li:first-child a { + color: #3c5ba4; +} + +.blog-single-section .tag-share .share ul > li:nth-child(2) a { + color: #47a0d9; +} + +.blog-single-section .tag-share .share ul > li:nth-child(3) a { + color: #0073b1; +} + +.blog-single-section .tag-share .share ul > li:nth-child(4) a { + color: #933f94; +} + +.blog-single-section .author-box { + padding: 35px 40px 25px; + margin: 70px 0; + border: 2px solid #dae9f9; +} + +@media (max-width: 991px) { + .blog-single-section .author-box { + padding: 35px 40px; + } +} + +@media (max-width: 767px) { + .blog-single-section .author-box { + padding: 25px; + } +} + +.blog-single-section .author-box .author-avatar { + float: left; +} + +@media (max-width: 767px) { + .blog-single-section .author-box .author-avatar { + float: none; + } +} + +.blog-single-section .author-box .author-content { + display: block; + overflow: hidden; + padding-left: 25px; +} + +@media (max-width: 767px) { + .blog-single-section .author-box .author-content { + padding: 0; + margin: 15px 0 0 0; + } +} + +.blog-single-section .author-box .author-content p { + margin-bottom: 20px; +} + +.blog-single-section .author-box .author-name { + font-size: 16px; + font-size: 1rem; + font-weight: 600; + display: inline-block; + margin-bottom: 10px; + color: #102541; +} + +.blog-single-section .author-box .social-link { + display: inline-block; + list-style: none; +} + +.blog-single-section .author-box .social-link li { + float: left; + margin-right: 12px; +} + +.blog-single-section .author-box .social-link a { + display: block; + font-size: 13px; + font-size: 0.8125rem; + color: #102541; +} + +.blog-single-section .author-box .social-link a:hover { + color: #1481ff; +} + +.blog-single-section .more-posts { + overflow: hidden; + border: 2px solid #dae9f9; + padding: 0 25px; +} + +.blog-single-section .more-posts > div { + width: 50%; + float: left; +} + +@media (max-width: 767px) { + .blog-single-section .more-posts > div { + width: 100%; + float: none; + } +} + +.blog-single-section .more-posts > div > a { + display: inline-block; +} + +.blog-single-section .more-posts .previous-post, +.blog-single-section .more-posts .next-post { + padding: 40px 0; +} + +@media (max-width: 767px) { + .blog-single-section .more-posts .previous-post, + .blog-single-section .more-posts .next-post { + padding: 25px 15px !important; + } +} + +.blog-single-section .more-posts .next-post { + text-align: right; + border-left: 1px solid #dae9f9; + padding-left: 15px; + padding-right: 5px; +} + +@media (max-width: 767px) { + .blog-single-section .more-posts .next-post { + border-left: 0; + text-align: left; + border-top: 1px solid #dae9f9; + } +} + +.blog-single-section .more-posts .next-post .post-control-link { + padding-right: 25px; + position: relative; +} + +@media (max-width: 767px) { + .blog-single-section .more-posts .next-post .post-control-link { + padding-right: 0; + } +} + +.blog-single-section .more-posts .next-post .post-control-link:before { + font-family: "Flaticon"; + content: "\f104"; + position: absolute; + right: 0; + top: 0; +} + +@media (max-width: 767px) { + .blog-single-section .more-posts .next-post .post-control-link:before { + display: none; + } +} + +.blog-single-section .more-posts .previous-post { + padding-right: 15px; + padding-left: 5px; +} + +.blog-single-section .more-posts .previous-post .post-control-link { + padding-left: 25px; + position: relative; +} + +@media (max-width: 767px) { + .blog-single-section .more-posts .previous-post .post-control-link { + padding-left: 0; + } +} + +.blog-single-section .more-posts .previous-post .post-control-link:before { + font-family: "Flaticon"; + content: "\f103"; + position: absolute; + left: 0; + top: 0; +} + +@media (max-width: 767px) { + .blog-single-section .more-posts .previous-post .post-control-link:before { + display: none; + } +} + +.blog-single-section .more-posts .previous-post > a > span, +.blog-single-section .more-posts .next-post > a > span { + display: block; +} + +.blog-single-section .more-posts .post-control-link { + font-size: 14px; + font-size: 0.875rem; + color: #57667e; +} + +.blog-single-section .more-posts .post-name { + font-size: 17px; + font-size: 1.0625rem; + color: #102541; + margin: 0.7em 0 0; + font-weight: 600; +} + +@media (max-width: 991px) { + .blog-single-section .more-posts .post-name { + font-size: 18px; + font-size: 1.125rem; + } +} + +.blog-single-section .more-posts a:hover .post-control-link { + color: #1481ff; +} + +.blog-single-section .comments-area { + margin-top: 70px; +} + +.blog-single-section .comments-area .comments { + border: 2px solid #dae9f9; +} + +.blog-single-section .comments-area li > div { + border-bottom: 1px solid #dae9f9; + padding: 35px; +} + +@media (max-width: 991px) { + .blog-single-section .comments-area li > div { + padding: 35px 25px; + } +} + +.blog-single-section .comments-area ol { + list-style-type: none; + padding-left: 0; +} + +.blog-single-section .comments-area ol ul { + padding-left: 30px; + list-style-type: none; +} + +.blog-single-section .comments-area ol > li:last-child div { + border-bottom: 0; +} + +.blog-single-section .comments-area .comments-title { + font-size: 22px; + font-size: 1.375rem; + font-weight: 600; + margin: 0 0 1.5em; +} + +@media (max-width: 991px) { + .blog-single-section .comments-area .comments-title { + font-size: 20px; + font-size: 1.25rem; + } +} + +.blog-single-section .comments-area li > div { + position: relative; +} + +.blog-single-section .comments-area .comment-theme { + position: absolute; + left: 35px; +} + +@media (max-width: 767px) { + .blog-single-section .comments-area .comment-theme { + position: static; + } +} + +.blog-single-section .comments-area .comment-theme img { + border-radius: 50%; +} + +.blog-single-section .comments-area .comment-main-area { + padding-left: 100px; +} + +@media (max-width: 767px) { + .blog-single-section .comments-area .comment-main-area { + padding-left: 0; + margin-top: 25px; + } +} + +.blog-single-section .comments-area .comment-main-area p { + margin-bottom: 20px; +} + +.blog-single-section .comments-area .comments-meta h4 { + font-size: 16px; + font-size: 1rem; + color: #102541; + font-weight: bold; + margin: 0 0 1em; +} + +.blog-single-section .comments-area .comments-meta h4 span { + font-size: 13px; + font-size: 0.8125rem; + color: #57667e; + font-weight: normal; + font-style: italic; + text-transform: none; + display: inline-block; + padding-left: 5px; +} + +@media (max-width: 767px) { + .blog-single-section .comments-area .comments-meta h4 span { + padding-left: 0; + } +} + +.blog-single-section .comments-area .comment-reply-link { + background: #fe9262; + font-size: 13px; + font-size: 0.8125rem; + width: 80px; + height: 25px; + line-height: 25px; + font-weight: 600; + color: #fff; + text-align: center; + border-radius: 50px; + display: inline-block; +} + +.blog-single-section .comments-area .comment-reply-link:hover { + background-color: #1481ff; +} + +.blog-single-section .comment-respond { + margin-top: 70px; +} + +.blog-single-section .comment-respond .comment-reply-title { + font-size: 22px; + font-size: 1.375rem; + margin: 0 0 1.5em; +} + +@media (max-width: 991px) { + .blog-single-section .comment-respond .comment-reply-title { + font-size: 20px; + font-size: 1.25rem; + } +} + +.blog-single-section .comment-respond form input, +.blog-single-section .comment-respond form textarea { + background-color: #fff; + width: 100%; + height: 50px; + border: 2px solid #dae9f9; + padding: 6px 15px; + margin-bottom: 15px; + outline: 0; + border-radius: 0; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + -o-transition: all 0.3s; + -ms-transition: all 0.3s; + transition: all 0.3s; +} + +.blog-single-section .comment-respond form input:focus, +.blog-single-section .comment-respond form textarea:focus { + -webkit-box-shadow: none; + box-shadow: none; + border-color: #1481ff; +} + +@media (max-width: 991px) { + .blog-single-section .comment-respond form input, + .blog-single-section .comment-respond form textarea { + height: 40px; + } +} + +.blog-single-section .comment-respond form textarea { + height: 220px; + padding: 15px; +} + +@media (max-width: 991px) { + .blog-single-section .comment-respond form textarea { + height: 150px; + } +} + +.blog-single-section .comment-respond .form-inputs { + overflow: hidden; +} + +.blog-single-section .comment-respond .form-inputs > input:nth-child(2) { + width: 49%; + float: left; +} + +@media (max-width: 767px) { + .blog-single-section .comment-respond .form-inputs > input:nth-child(2) { + width: 100%; + float: none; + } +} + +.blog-single-section .comment-respond .form-inputs > input:nth-child(3) { + width: 49%; + float: right; +} + +@media (max-width: 767px) { + .blog-single-section .comment-respond .form-inputs > input:nth-child(3) { + width: 100%; + float: none; + } +} + +.blog-single-section .comment-respond .form-submit input { + max-width: 180px; + background-color: #1481ff; + color: #fff; + margin-bottom: 0; + border: 0; + outline: 0; + text-transform: capitalize; + font-weight: bold; + border-radius: 50px; +} + +.blog-single-section .comment-respond .form-submit input:hover { + background-color: #102541; +} + +@media screen and (min-width: 1200px) { + .blog-single-left-sidebar-section .blog-sidebar { + padding-right: 45px; + padding-left: 0; + } +} + +/*-------------------------------------------------------------- + #404 page +--------------------------------------------------------------*/ +/*-------------------------------------------------------------- +#10.1 error-404-section +--------------------------------------------------------------*/ +.error-404-section .error { + width: 50%; + float: left; +} + +@media (max-width: 991px) { + .error-404-section .error { + width: 100%; + float: none; + text-align: center; + } +} + +.error-404-section .error h2 { + font-size: 200px; + font-size: 12.5rem; + margin: 0; +} + +@media (max-width: 991px) { + .error-404-section .error h2 { + font-size: 150px; + font-size: 9.375rem; + } +} + +@media (max-width: 767px) { + .error-404-section .error h2 { + font-size: 100px; + font-size: 6.25rem; + } +} + +.error-404-section .error-message { + width: 50%; + float: left; + margin-top: 40px; +} + +@media (max-width: 991px) { + .error-404-section .error-message { + width: 100%; + float: none; + text-align: center; + margin-top: 0; + } +} + +.error-404-section .error-message h3 { + font-size: 20px; + font-size: 1.25rem; + margin: 0 0 0.8em; +} + +.error-404-section .error-message p { + margin-bottom: 1.8em; +} + +/*# sourceMappingURL=style.css.map */ +.main2,.main3 { + + padding: 40px 0 30px 0; + +} + +.main2 dl { + width: 33%; + margin: 0 1%; + float: left; + text-align: center; + margin: 0 auto; +} +.main3 dl { + width: 24%; + margin: 0 1%; + float: left; + text-align: center; + margin: 0 auto; +} +.main2 dl img,.main3 dl img { + width: 80px; + text-align: center; + margin: 0 auto; +} + +.main2 dl p,.main3 dl p { + font-family: Helvetica, 'Microsoft Yahei', '微软雅黑', Arial, sans-serif; + color: #0a1b36; + font-size: 14px; + width: 85%; + text-align: center; + margin: 10px auto; + + line-height: 26px; + +} + +.main2 dl .tit,.main3 dl .tit { + font-size:24px; + line-height: 50px; + color: #102541; +} + +/* Product Cards - 产品与案例统一卡片网格 */ +.product-cards { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 20px; + align-items: stretch; +} + +.product-cards .product-card { + width: auto; + min-width: 0; + min-height: 220px; + height: 100%; +} + +@media (max-width: 1199px) { + .product-cards { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } +} + +@media (max-width: 991px) { + .product-cards { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .product-cards .product-card { + min-height: 220px; + } +} + +@media (max-width: 550px) { + .product-cards { + grid-template-columns: 1fr; + } + + .product-cards .product-card { + min-height: auto; + } +} + +/* Product Card 基础样式 */ +.product-card { + display: flex; + flex-direction: column; + border: 1px solid #ebf4fd; + border-radius: 8px; + overflow: hidden; + text-decoration: none; + color: inherit; + box-shadow: 0 4px 12px rgba(0,0,0,0.08); + transition: box-shadow 0.3s, transform 0.3s, background 0.3s; + background: #fff; +} +.product-card:hover { + box-shadow: 0 10px 30px rgba(20,129,255,0.25); + transform: translateY(-4px); + background: #f8fbff; +} +.product-card .card-img { + height: 120px; + position: relative; + overflow: hidden; + flex-shrink: 0; +} +.product-card .card-img img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; +} +.product-card .card-content { + padding: 20px; + flex: 1; + display: flex; + flex-direction: column; + position: relative; +} +.product-card .card-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 12px; +} +.product-card .card-header h4 { + margin: 0; + font-size: 17px; + color: #102541; + font-weight: 600; + line-height: 1.45; + min-height: 2.9em; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + white-space: normal; + overflow: hidden; + text-align: left; +} +.product-card .card-tag { + background: #1493ff24; + color: #0075ff; + padding: 2px 8px; + border-radius: 3px; + font-size: 12px; + white-space: nowrap; + flex-shrink: 0; +} +.product-card .card-content p { + margin: 0; + font-size: 14px; + color: #666; + line-height: 1.6; + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + flex: 1; +} + +/* Owl Carousel 功能卡片轮播样式 */ +.feature-cards-slider { + padding: 20px 0; +} + +/* 功能卡片样式 - 产品功能亮点(整体统一颜色 #eff5ff) */ +.feature-card { + background: #eff5ff; + border-radius: 12px; + box-shadow: 0 2px 8px rgba(20,129,255,0.25); + border: 0px solid #d4e8f8; + overflow: hidden; + transition: all 0.3s ease; + height: 95%; + min-height: 220px; + display: flex; + flex-direction: column; + margin: 15px; +} +.feature-card:hover { + box-shadow: 0 4px 12px rgba(20,129,255,0.35); + transform: translateY(-3px); +} +.feature-card-icon { + height: 80px; + background: #eff5ff; + display: flex; + align-items: center; + justify-content: center; + padding: 20px; +} +.feature-card-icon img { + width: 70px; + height: 70px; + object-fit: contain; + margin-top:30px; +} +.feature-card-body { + padding: 25px 20px 5px 20px;; + flex: 1; + display: flex; + flex-direction: column; + background: #eff5ff; + text-align: center; +} +.feature-card-body h4 { + font-size: 18px; + font-weight: bold; + color: #000000; + line-height: 1.5; + margin: 0 ; + min-height: 36px; /* 两行高度: 16px * 1.5 * 2 */ +} +.feature-card-body p { + font-size: 14px; + color: #4a6a8a; + line-height: 1.7; + margin: 0; + display: -webkit-box; + -webkit-line-clamp: 5; + -webkit-box-orient: vertical; + overflow: hidden; + min-height: 119px; /* 五行高度: 14px * 1.7 * 5 */ +} + +/* 产品优势卡片样式 - 上部渐变蓝色,下部白色 */ +.feature-card-advantage .feature-card-icon { + background: linear-gradient(190deg, #0049ff 0%, #009fff 88%); + justify-content: flex-start; +} +.feature-card-advantage .feature-card-icon h4 { + color: #ffffff; + font-size: 18px; + font-weight: bold; + margin: 0; + text-align: left; +} +.feature-card-advantage .feature-card-body { + background: #ffffff; + text-align: left; +} +.feature-card-advantage .feature-card-body p { + color: #000000; +} + +/* Owl Carousel 卡片等高 */ +.feature-cards-slider .owl-stage { + display: flex; +} +.feature-cards-slider .owl-item { + display: flex; +} +.feature-cards-slider .owl-item .feature-card { + width: 100%; +} + +/* ========================================== + 经典案例页面样式 - Classic Case Page Styles + ========================================== */ + +/* TAB 选项卡样式调整 */ +.service-tab-nav-fullwidth .service-tab-nav .service-list-widget ul { + justify-content: center; + flex-wrap: nowrap; +} + +.service-tab-nav-fullwidth .service-tab-nav .service-list-widget ul li { + flex: none; + min-width: auto; +} + +.service-tab-nav-fullwidth .service-tab-nav .service-list-widget a { + padding: 18px 30px; + font-size: 15px; + white-space: nowrap; +} + +/* 公司 Logo 样式 - 绝对定位在卡片右上角 */ +.company-logo { + position: absolute; + top: -20px; + right: 20px; + width: 60px; + height: 40px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + color: #fff; + font-size: 12px; + font-weight: bold; + text-align: center; + line-height: 1.2; +} + +/* Logo 颜色变体 */ +.company-logo.logo-blue { + background: linear-gradient(135deg, #1481ff, #0066cc); +} + +.company-logo.logo-orange { + background: linear-gradient(135deg, #ff6b35, #ff5722); +} + +.company-logo.logo-green { + background: linear-gradient(135deg, #4caf50, #2e7d32); +} + +.company-logo.logo-purple { + background: linear-gradient(135deg, #9c27b0, #6a1b9a); +} + +.company-logo.logo-red { + background: linear-gradient(135deg, #f44336, #d32f2f); +} + +.company-logo.logo-cyan { + background: linear-gradient(135deg, #00bcd4, #0097a7); +} + +/* 响应式调整 */ +@media (max-width: 991px) { + .service-tab-nav-fullwidth .service-tab-nav .service-list-widget ul { + flex-wrap: wrap; + } + + .service-tab-nav-fullwidth .service-tab-nav .service-list-widget ul li { + min-width: 120px; + } + + .service-tab-nav-fullwidth .service-tab-nav .service-list-widget a { + padding: 15px 10px; + font-size: 14px; + } +} + +@media (max-width: 767px) { + .service-tab-nav-fullwidth .service-tab-nav .service-list-widget ul li { + min-width: 100px; + } + + .service-tab-nav-fullwidth .service-tab-nav .service-list-widget a { + font-size: 13px; + padding: 12px 8px; + } + + .company-logo { + width: 50px; + height: 35px; + font-size: 11px; + } +} + +/* 隐藏未筛选的卡片 */ +.product-card.hidden { + display: none; +} + +/* 面包屑导航样式 */ +.page-path { + padding: 15px; + + list-style: none; + background-color: transparent; + border-radius: 4px; + font-size: 14px; + color: #666; +} + +.page-path a { + color: #337ab7; + text-decoration: none; +} + +.page-path a:hover { + color: #23527c; + text-decoration: none; +} diff --git a/nuxt-web/assets/styles/base/style2.css b/nuxt-web/assets/styles/base/style2.css new file mode 100644 index 0000000..db85af8 --- /dev/null +++ b/nuxt-web/assets/styles/base/style2.css @@ -0,0 +1,48 @@ + + +/*经典案例*/ +/*关于我们*/ +.ti{ + margin: 40px 0;} + +.main2 { + + padding: 40px 0 50px 0; + +} + +.main2 dl { + width: 33%; + margin: 0 1.1%; + float: left; + text-align: center; + margin: 0 auto; +} + +.main2 dl img { + width: 120px; + text-align: center; + margin: 0 auto; +} + +.main2 dl dt { + + font-size: 14px; + width: 85%; + text-align: center; + margin: 10px auto; + color: #666; + line-height: 26px; + +} + +.main2 dl .tit { + font-size: 18px; + line-height: 50px; + color: #333; +} + + + +/*新加导航下拉*/ + diff --git a/nuxt-web/assets/styles/base/timeline.css b/nuxt-web/assets/styles/base/timeline.css new file mode 100644 index 0000000..862cbdc --- /dev/null +++ b/nuxt-web/assets/styles/base/timeline.css @@ -0,0 +1,430 @@ +/* ============================================ + 智慧时间轴组件 - 横向展开式 + Smart Timeline Component - Horizontal Expansion + ============================================ */ + +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&family=Oswald:wght@400;700&display=swap'); + +:root { + --tl-bg-color: #f8fafc; + --tl-line-color: rgba(20, 129, 255, 0.3); + --tl-active-color: #1481ff; + --tl-text-color: #2a3e5d; + --tl-year-color: #102541; + --tl-transition-speed: 0.5s; +} + +/* Section 容器 */ +.timeline-section { + width: 100%; + background-image: + radial-gradient(circle at 10% 20%, rgba(20, 129, 255, 0.08) 0%, transparent 20%), + radial-gradient(circle at 90% 80%, rgba(20, 129, 255, 0.05) 0%, transparent 20%); + font-family: 'Noto Sans SC', sans-serif; + overflow: hidden; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 60px 0; + position: relative; +} + +/* 标题样式 */ +.timeline-title { + color: var(--tl-year-color); + letter-spacing: 4px; + font-weight: bold; + text-transform: uppercase; + font-size: 36px; + opacity: 0.9; + margin-bottom: 10px; + text-align: center; +} + +/* 主容器 */ +.timeline-container { + display: flex; + width: 100%; + height: 20vh; + min-height: 500px; + align-items: stretch; + position: relative; +} + +/* 主轴线 */ +.timeline-line { + position: absolute; + top: 66.67%; + left: 0; + width: 100%; + height: 1px; + background: linear-gradient(90deg, + transparent 0%, + var(--tl-line-color) 5%, + var(--tl-line-color) 95%, + transparent 100%); + z-index: 0; + pointer-events: none; +} + +/* 时间节点 */ +.timeline-item { + position: relative; + flex: 1; + transition: flex var(--tl-transition-speed) cubic-bezier(0.25, 0.1, 0.25, 1); + border-right: 1px solid rgba(20, 129, 255, 0.1); + cursor: pointer; + overflow: hidden; + display: flex; + flex-direction: column; + justify-content: center; + z-index: 1; +} + +.timeline-item:last-child { + border-right: none; +} + +.timeline-item:hover { + flex: 10; + background: linear-gradient(90deg, rgba(20, 129, 255, 0.08) 0%, transparent 100%); +} + +.timeline-container:hover .timeline-item:not(:hover) { + opacity: 0.4; +} + +/* 节点圆点 */ +.dot { + width: 8px; + height: 8px; + background-color: var(--tl-active-color); + border-radius: 50%; + position: absolute; + top: 66.67%; + left: 50%; + transform: translate(-50%, -50%); + box-shadow: 0 0 10px var(--tl-active-color); + transition: all var(--tl-transition-speed); + z-index: 2; +} + +.timeline-item:hover .dot { + background-color: var(--tl-active-color); + transform: translate(-50%, -50%) scale(1.5); + box-shadow: 0 0 20px rgba(20, 129, 255, 0.6); +} + +/* 竖向年份标签 */ +.year-label { + position: absolute; + top: calc(66.67% + 15px); + left: 50%; + transform-origin: 0 0; + transform: rotate(90deg); + + font-family: 'Oswald', sans-serif; + font-size: 14px; + color: var(--tl-year-color); + white-space: nowrap; + transition: all 0.3s; + letter-spacing: 1px; + opacity: 0.8; + + display: flex; + align-items: center; + gap: 12px; + pointer-events: none; +} + +/* 竖向文字中的简短描述 */ +.short-desc { + font-family: 'Noto Sans SC', sans-serif; + font-size: 12px; + opacity: 0.6; + font-weight: 300; + letter-spacing: 1px; +} + +/* Hover 状态下:标签变大并移到底部背景 */ +.timeline-item:hover .year-label { + top: auto; + bottom: -10px; + left: 20px; + transform: rotate(0deg); + font-size: 4rem; + font-weight: 700; + opacity: 0.08; + color: var(--tl-active-color); + pointer-events: none; +} + +/* Hover时隐藏简述 */ +.timeline-item:hover .short-desc { + display: none; +} + +/* 内容区域 - 固定在时间轴线上方 */ +.content { + opacity: 0; + transform: translateY(20px); + transition: all 0.4s ease 0.1s; + padding: 0 40px; + color: var(--tl-text-color); + position: absolute; + + bottom: 36%; + left: 0; + width: 100%; + + text-align: left; + pointer-events: none; + + display: flex; + flex-direction: column; + justify-content: flex-end; +} + +.timeline-item:hover .content { + opacity: 1; + transform: translateY(0); +} + +.content-date { + display: block; + color: var(--tl-active-color); + font-family: 'Oswald', sans-serif; + font-size: 2rem; + margin-bottom: 15px; + font-weight: bold; + text-shadow: 0 0 20px rgba(20, 129, 255, 0.2); +} + +.content-text { + font-size:0.9rem; + line-height: 1.8; + border-left: 3px solid var(--tl-active-color); + padding-left: 20px; + max-width: 650px; + background: linear-gradient(90deg, rgba(20, 129, 255, 0.08) 0%, transparent 100%); + padding-top: 10px; + padding-bottom: 10px; + border-radius: 0 4px 4px 0; +} + +.content-text p { + margin: 0 0 8px 0; +} + +.content-text p:last-child { + margin-bottom: 0; +} + +/* 重要节点高亮 */ +.timeline-item.highlight .dot { + width: 10px; + height: 10px; + box-shadow: 0 0 15px var(--tl-active-color), 0 0 30px var(--tl-active-color); +} + +.timeline-item.highlight .year-label { + color: var(--tl-active-color); + opacity: 1; +} + +/* ============================================ + 自动轮播展开效果(与hover效果一致) + ============================================ */ +.timeline-item.auto-expanded { + flex: 10; + background: linear-gradient(90deg, rgba(20, 129, 255, 0.08) 0%, transparent 100%); +} + +.timeline-container:has(.auto-expanded) .timeline-item:not(.auto-expanded) { + opacity: 0.4; +} + +.timeline-item.auto-expanded .dot { + background-color: var(--tl-active-color); + transform: translate(-50%, -50%) scale(1.5); + box-shadow: 0 0 20px rgba(20, 129, 255, 0.6); +} + +.timeline-item.auto-expanded .year-label { + top: auto; + bottom: -10px; + left: 20px; + transform: rotate(0deg); + font-size: 4rem; + font-weight: 700; + opacity: 0.08; + color: var(--tl-active-color); + pointer-events: none; +} + +.timeline-item.auto-expanded .short-desc { + display: none; +} + +.timeline-item.auto-expanded .content { + opacity: 1; + transform: translateY(0); +} + +/* ============================================ + 响应式设计 + ============================================ */ +@media (max-width: 1200px) { + .timeline-container { + width: 100%; + height: 20vh; + min-height: 500px; + } + + .year-label { + font-size: 12px; + top: calc(66.67% + 15px); + } + + .short-desc { + font-size: 10px; + } + + .content-text { + font-size: 1rem; + max-width: 500px; + } + + .content-date { + font-size: 1.6rem; + } +} + +@media (max-width: 991px) { + .timeline-section { + padding: 40px 0; + min-height: auto; + height: auto; + } + + .timeline-container { + width: 100%; + height: 20vh; + min-height: 500px; + overflow-x: auto; + overflow-y: visible; + -webkit-overflow-scrolling: touch; + } + + .timeline-item { + min-width: 80px; + flex: none; + } + + .timeline-item:hover { + flex: none; + min-width: 350px; + } + + .content { + padding: 0 20px; + } + + .content-text { + font-size: 0.9rem; + max-width: 300px; + } +} + +@media (max-width: 768px) { + .timeline-title { + font-size: 18px; + letter-spacing: 2px; + margin-bottom: 30px; + } + + .timeline-container { + height: 70vh; + } + + .timeline-item { + min-width: 60px; + } + + .timeline-item:hover { + min-width: 280px; + } + + .year-label { + font-size: 11px; + } + + .short-desc { + font-size: 9px; + display: none; + } + + .content { + padding: 0 15px; + } + + .content-date { + font-size: 1.4rem; + margin-bottom: 10px; + } + + .content-text { + font-size: 0.85rem; + padding-left: 15px; + max-width: 250px; + } + + .dot { + width: 6px; + height: 6px; + } +} + +@media (max-width: 576px) { + .timeline-section { + padding: 30px 0; + } + + .timeline-title { + font-size: 16px; + letter-spacing: 1px; + } + + .timeline-container { + height: 60vh; + } + + .timeline-item { + min-width: 50px; + } + + .timeline-item:hover { + min-width: 220px; + } + + .year-label { + font-size: 10px; + top: calc(66.67% + 12px); + } + + .content-date { + font-size: 1.2rem; + } + + .content-text { + font-size: 0.8rem; + line-height: 1.6; + } + + .timeline-item:hover .year-label { + font-size: 2.5rem; + bottom: -30px; + left: 10px; + } +} diff --git a/nuxt-web/assets/styles/main.css b/nuxt-web/assets/styles/main.css new file mode 100644 index 0000000..d655362 --- /dev/null +++ b/nuxt-web/assets/styles/main.css @@ -0,0 +1,27 @@ +@import '@fancyapps/ui/dist/fancybox/fancybox.css'; + +@import './vendor/themify-icons.css'; +@import './vendor/flaticon.css'; +@import './vendor/bootstrap-3.3.4.css'; +@import './vendor/animate.css'; +@import './vendor/owl.carousel.css'; +@import './vendor/owl.theme.css'; +@import './vendor/owl.transitions.css'; +@import './vendor/slick.css'; +@import './vendor/slick-theme.css'; +@import './vendor/swiper.min.css'; +@import './vendor/odometer-theme-default.css'; + +@import './base/pro.css'; +@import './base/product.css'; +@import './base/solution.css'; +@import './base/style.css'; +@import './base/css.css'; +@import './base/style2.css'; +/* 暂不引入以下旧样式:依赖缺失的历史资源且当前 Nuxt 页面已自带实现 +@import './base/default.css'; +@import './base/component.css'; +@import './base/history.css'; +@import './base/navigation2.css'; +@import './base/timeline.css'; +*/ diff --git a/nuxt-web/components/AppFooter.vue b/nuxt-web/components/AppFooter.vue new file mode 100644 index 0000000..94f28b5 --- /dev/null +++ b/nuxt-web/components/AppFooter.vue @@ -0,0 +1,89 @@ + + + diff --git a/nuxt-web/components/AppHeader.vue b/nuxt-web/components/AppHeader.vue new file mode 100644 index 0000000..9c06d64 --- /dev/null +++ b/nuxt-web/components/AppHeader.vue @@ -0,0 +1,264 @@ + + + diff --git a/nuxt-web/components/Breadcrumb.vue b/nuxt-web/components/Breadcrumb.vue new file mode 100644 index 0000000..d40ae0a --- /dev/null +++ b/nuxt-web/components/Breadcrumb.vue @@ -0,0 +1,21 @@ + + + diff --git a/nuxt-web/components/KefuWidget.vue b/nuxt-web/components/KefuWidget.vue new file mode 100644 index 0000000..b45407f --- /dev/null +++ b/nuxt-web/components/KefuWidget.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/nuxt-web/components/ProductAdvantagesGrid.vue b/nuxt-web/components/ProductAdvantagesGrid.vue new file mode 100644 index 0000000..820631d --- /dev/null +++ b/nuxt-web/components/ProductAdvantagesGrid.vue @@ -0,0 +1,41 @@ + + + diff --git a/nuxt-web/components/ProductArchitectureCard.vue b/nuxt-web/components/ProductArchitectureCard.vue new file mode 100644 index 0000000..6b7d395 --- /dev/null +++ b/nuxt-web/components/ProductArchitectureCard.vue @@ -0,0 +1,22 @@ + + + diff --git a/nuxt-web/components/ProductCard.vue b/nuxt-web/components/ProductCard.vue new file mode 100644 index 0000000..6a31572 --- /dev/null +++ b/nuxt-web/components/ProductCard.vue @@ -0,0 +1,22 @@ + + + diff --git a/nuxt-web/components/ProductCaseCards.vue b/nuxt-web/components/ProductCaseCards.vue new file mode 100644 index 0000000..4df2f86 --- /dev/null +++ b/nuxt-web/components/ProductCaseCards.vue @@ -0,0 +1,42 @@ + + + diff --git a/nuxt-web/components/ProductDetailLayout.vue b/nuxt-web/components/ProductDetailLayout.vue new file mode 100644 index 0000000..3c66adf --- /dev/null +++ b/nuxt-web/components/ProductDetailLayout.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/nuxt-web/components/ProductFeatureTabs.vue b/nuxt-web/components/ProductFeatureTabs.vue new file mode 100644 index 0000000..0605da0 --- /dev/null +++ b/nuxt-web/components/ProductFeatureTabs.vue @@ -0,0 +1,78 @@ + + + diff --git a/nuxt-web/components/SectionBanner.vue b/nuxt-web/components/SectionBanner.vue new file mode 100644 index 0000000..4b3e430 --- /dev/null +++ b/nuxt-web/components/SectionBanner.vue @@ -0,0 +1,34 @@ + + + diff --git a/nuxt-web/components/ServicePageLayout.vue b/nuxt-web/components/ServicePageLayout.vue new file mode 100644 index 0000000..d033c6f --- /dev/null +++ b/nuxt-web/components/ServicePageLayout.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/nuxt-web/components/SolutionPageLayout.vue b/nuxt-web/components/SolutionPageLayout.vue new file mode 100644 index 0000000..0b778a5 --- /dev/null +++ b/nuxt-web/components/SolutionPageLayout.vue @@ -0,0 +1,181 @@ + + + diff --git a/nuxt-web/components/Timeline.vue b/nuxt-web/components/Timeline.vue new file mode 100644 index 0000000..7c82edc --- /dev/null +++ b/nuxt-web/components/Timeline.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/nuxt-web/components/company/CompanySectionNav.vue b/nuxt-web/components/company/CompanySectionNav.vue new file mode 100644 index 0000000..1d0cab9 --- /dev/null +++ b/nuxt-web/components/company/CompanySectionNav.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/nuxt-web/components/shared/RouteStubPage.vue b/nuxt-web/components/shared/RouteStubPage.vue new file mode 100644 index 0000000..dc99696 --- /dev/null +++ b/nuxt-web/components/shared/RouteStubPage.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/nuxt-web/composables/useFancybox.ts b/nuxt-web/composables/useFancybox.ts new file mode 100644 index 0000000..9129bcc --- /dev/null +++ b/nuxt-web/composables/useFancybox.ts @@ -0,0 +1,17 @@ +import { onBeforeUnmount, onMounted } from 'vue' + +type FancyboxModule = typeof import('@fancyapps/ui') + +export function useFancybox(selector: string) { + let fancybox: FancyboxModule['Fancybox'] | null = null + + onMounted(async () => { + const module = await import('@fancyapps/ui') + fancybox = module.Fancybox + fancybox.bind(selector, {}) + }) + + onBeforeUnmount(() => { + fancybox?.destroy() + }) +} diff --git a/nuxt-web/composables/useSeo.ts b/nuxt-web/composables/useSeo.ts new file mode 100644 index 0000000..7b6032d --- /dev/null +++ b/nuxt-web/composables/useSeo.ts @@ -0,0 +1,34 @@ +type SeoInput = { + title: string + description?: string + keywords?: string + ogImage?: string + canonicalPath?: string +} + +export function useSeo(input: SeoInput) { + const siteUrl = 'https://example.com' + const fullTitle = `${input.title} - 烟台岸基网络科技有限公司` + const canonical = input.canonicalPath ? `${siteUrl}${input.canonicalPath}` : undefined + + useSeoMeta({ + title: fullTitle, + description: input.description, + keywords: input.keywords, + ogTitle: fullTitle, + ogDescription: input.description, + ogImage: input.ogImage, + twitterCard: input.ogImage ? 'summary_large_image' : 'summary' + }) + + if (canonical) { + useHead({ + link: [ + { + rel: 'canonical', + href: canonical + } + ] + }) + } +} diff --git a/nuxt-web/content.config.ts b/nuxt-web/content.config.ts new file mode 100644 index 0000000..d964e74 --- /dev/null +++ b/nuxt-web/content.config.ts @@ -0,0 +1,34 @@ +import { defineCollection, defineContentConfig, z } from '@nuxt/content' + +export default defineContentConfig({ + collections: { + news: defineCollection({ + type: 'page', + source: 'news/*.md', + schema: z.object({ + title: z.string(), + date: z.string(), + slug: z.string(), + summary: z.string(), + cover: z.string(), + keywords: z.string(), + description: z.string() + }) + }), + cases: defineCollection({ + type: 'page', + source: 'cases/*.md', + schema: z.object({ + title: z.string(), + slug: z.string(), + summary: z.string(), + cover: z.string(), + industry: z.string(), + categories: z.array(z.string()), + relatedProducts: z.array(z.string()), + keywords: z.string(), + description: z.string() + }) + }) + } +}) diff --git a/nuxt-web/content/cases/anhui-port-hefei.md b/nuxt-web/content/cases/anhui-port-hefei.md new file mode 100644 index 0000000..9dc4048 --- /dev/null +++ b/nuxt-web/content/cases/anhui-port-hefei.md @@ -0,0 +1,47 @@ +--- +title: "安徽港口集团合肥有限公司" +slug: "anhui-port-hefei" +summary: "安徽港口集团合肥有限公司统筹管理南淝河、巢湖、派河三大港区,拥有25个生产性泊位,年设计吞吐能力:集装箱90万标箱、件杂货700万吨、滚装商品车10万辆。南淝河港区信息化领先,正推进自动化改造;公司正建设统一管控平台,实现三港业务集中受理与协同调度。" +cover: "/images/hefei.png" +industry: "fleet" +categories: + - "fleet" + - "freight-forwarder" + - "logistics" +relatedProducts: + - "/products/logistics/platform" + - "/products/logistics/vehicle-transport" +keywords: "安徽港口集团合肥有限公司,客户案例,岸基科技,fleet,freight-forwarder,logistics" +description: "统筹管理南淝河港区、巢湖港区与派河港区,拥有生产性泊位25个,年设计吞吐能力达集装箱90万标箱..." +--- + +安徽港口集团合肥有限公司统筹管理南淝河、巢湖、派河三大港区,拥有25个生产性泊位,年设计吞吐能力:集装箱90万标箱、件杂货700万吨、滚装商品车10万辆。南淝河港区信息化领先,正推进自动化改造;公司正建设统一管控平台,实现三港业务集中受理与协同调度。 + +## 项目背景 + +1. 纸质单据流转效能瓶颈 作业全流程依赖纸质单据,需经打印、填写、审核等多步操作,挤占通行时间,推升人工与物料成本。 + +2. 信息孤岛制约调度效能 车辆状态、轨迹及任务数据分散孤立,管理人员难以掌握全局运力,无法动态调配资源。 + +3. 智能管理技术基础缺失 车辆位置、载重状态无法可视化捕捉,调度依赖人工经验,缺乏数据驱动的智能派单功能。 + +## 项目目标 + +1. 全链路溯源体系 集成移动端采集与车辆定位,实现货物运输全过程实时监控,保障运输安全与可靠性。 + +2. 港口服务生态升级 构建三港统一业务枢纽,实现业务统一受理;整合拖车资源,形成装卸-配送一体化服务能力。。 + +3. 智能集疏运成本优化 部署智能算法动态优化路线,通过预约排队系统实现三港作业协同,压缩集疏运成本。 + +## 项目收益 + +1. 闸口通行效率跨越式提升 无纸化自动闸口实现30秒内识别放行,车辆周转率提升30%以上,告别排队1-2小时。 + +2. 运营成本精准降低 消除纸质单据打印存储成本,减少补办及违约损失,综合运营成本显著压缩。 + +3. 规范化管理降低双风险 电子单据可追溯避免纸质丢失纠纷,数据符合税务与监管要求,降低合规风险与管理成本。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基车辆运输管理系统](/products/logistics/vehicle-transport) diff --git a/nuxt-web/content/cases/beibuwan-shuttle-bus.md b/nuxt-web/content/cases/beibuwan-shuttle-bus.md new file mode 100644 index 0000000..72ae95f --- /dev/null +++ b/nuxt-web/content/cases/beibuwan-shuttle-bus.md @@ -0,0 +1,50 @@ +--- +title: "北部湾防城港有限公司" +slug: "beibuwan-shuttle-bus" +summary: "广西北部湾港涵盖防城港域、北海港域、钦州港域,位于泛北部湾、泛珠三角与中国—东盟经济圈交汇核心,是“一带一路”与“西部陆海新通道”战略关键节点,也是西南地区距离最短的出海口及面向东盟最便捷的出海通道。当前运营穿梭巴士船舶14艘,2022年穿巴业务吞吐量目标160万TEU,本次系统采购将支撑年处理400万标准箱的业务规模。" +cover: "/images/fangcheng.png" +industry: "shipping-company" +categories: + - "shipping-company" + - "logistics" +relatedProducts: + - "/products/logistics/platform" + - "/products/shipping/company" +keywords: "北部湾防城港有限公司,客户案例,岸基科技,shipping-company,logistics" +description: "广西北部湾港涵盖防城港域、北海港域、钦州港域,位居泛北部湾经济圈核心位置..." +--- + +广西北部湾港涵盖防城港域、北海港域、钦州港域,位于泛北部湾、泛珠三角与中国—东盟经济圈交汇核心,是“一带一路”与“西部陆海新通道”战略关键节点,也是西南地区距离最短的出海口及面向东盟最便捷的出海通道。当前运营穿梭巴士船舶14艘,2022年穿巴业务吞吐量目标160万TEU,本次系统采购将支撑年处理400万标准箱的业务规模。 + +## 项目背景 + +1. 分布式港口协同需求 北港集团在钦州港、防城港、北海港(含铁山)实施分布式码头布局,三港分布式布局需建立标准化作业单元与穿巴运输体系,打通码头间物理隔阂,构建高效联通港口网络。 + +2. 穿巴智能调度挑战 传统穿巴管理难以满足枢纽港规模化需求,需解决多码头间运力与货源匹配效率问题。 + +3. 标准化体系贯通瓶颈 现有各港区作业标准不统一,亟需建立覆盖调度、装卸、信息交互的标准化体系,消除协作壁垒。 + +## 项目目标 + +1. 全流程信息化升级 构建穿巴业务综合管控平台,覆盖商务、订舱、船舶管理、单证交互等全环节,实现业务规范化管理。 + +2. 智能化调度与监控 部署智能配舱与调度引擎,动态优化运力分配与航线规划,集成安全监控与预警功能。 + +3. 跨系统数据互联 打通码头生产系统与北港网数据链路,实现船期、货物、场地信息自动同步与计费自动化。 + +4. 数据驱动决策支持 建立统计分析中枢,整合运力效能、成本结构等数据,生成分级决策报表,支撑战略目标达成。 + +## 项目收益 + +1. 运营效率跃升 智能调度实现资源与任务精准匹配,船舶闲置与等待时间减少30%以上,显著降低人力与能耗成本。 + +2. 协同作业效能突破 打通码头间信息壁垒,跨部门协调耗时缩减50%,电子单证流转实现留痕式沟通与责任分工。 + +3. 多港航线资源整合 钦州、防城港、北海三港互联形成“超级大港”,航线选择丰富度提升200%以上,货主可共享全部远洋航线资源。 + +4. 客户体验智能化升级 线上订舱平台支持查询、预订、支付及动态跟踪,客户沟通成本降低60%,提供便捷服务体验。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基船公司运营管理系统](/products/shipping/company) diff --git a/nuxt-web/content/cases/canal-logistics-supervision.md b/nuxt-web/content/cases/canal-logistics-supervision.md new file mode 100644 index 0000000..d41ef97 --- /dev/null +++ b/nuxt-web/content/cases/canal-logistics-supervision.md @@ -0,0 +1,44 @@ +--- +title: "济宁港航建设有限公司" +slug: "canal-logistics-supervision" +summary: "济宁港航建设有限公司是济宁能源集团核心子公司,主营京杭运河济宁段港口、航道、船闸一体化投资运营,年吞吐量超 3000 万吨,管理 14 处作业区与 4 处船闸,为鲁西南最大内河港口运营商。公司坚持'数字港航'战略,2022 年率先在内河领域落地船舶收费智能监管平台,打造京杭运河'智慧航道'标杆。" +cover: "/images/jining.png" +industry: "port" +categories: + - "port" + - "logistics" +relatedProducts: + - "/products/port/cdi" +keywords: "济宁港航建设有限公司,客户案例,岸基科技,port,logistics" +description: "济宁能源集团核心子公司,主营京杭运河济宁段港口、航道、船闸一体化投资运营,年吞吐量超3000万吨..." +--- + +济宁港航建设有限公司是济宁能源集团核心子公司,主营京杭运河济宁段港口、航道、船闸一体化投资运营,年吞吐量超 3000 万吨,管理 14 处作业区与 4 处船闸,为鲁西南最大内河港口运营商。公司坚持"数字港航"战略,2022 年率先在内河领域落地船舶收费智能监管平台,打造京杭运河"智慧航道"标杆。 + +## 项目背景 + +1. 收费模式落后 4处收费站日均500艘船舶,全部线下现金收缴,船员需停船排队缴费,平均耗时15分钟以上。 + +2. 监管手段缺失 人工抽查录像核对缴费,漏收、逃费无法实时发现,船舶位置、视频、票据三套数据互不联通,监管盲区大。 + +3. 数字化战略与监管加严 集团要求2023年前完成港航板块100%线上收费;交通部明确船舶信用管理,亟需信息化手段。 + +## 项目目标 + +1. 逃费率为零 AI摄像头识别船号,联动AIS轨迹与票据数据,实时预警未缴费船舶,实现逃费率为零。 + +2. 一站统管 打通4处收费站、11处垃圾接收点、集团大数据平台,收费、票据、财务、信用数据实时汇聚。 + +3. 船舶可视化跟踪 整合视频、AIS与AI分析,实现船舶实时定位与轨迹跟踪,为调度决策提供可视化数据支撑。 + +## 项目收益 + +1. 提升收费监管效率 AI识别与AIS定位自动比对缴费记录,未缴费船舶实时预警,漏收率从5%降至0,收费准确率达100%。 + +2. 实现线上便捷缴费 支持移动端在线缴费、开票、查询,单船缴费时间从15分钟压缩至2分钟,船主无需现场排队。 + +3. 强化航道监管能力,提升运营可视化水平 整合视频、AIS与AI分析,实现船舶实时定位与轨迹跟踪,监管覆盖率达100%,为调度决策提供数据支撑。 + +## 相关产品 + +- [岸基云码头一体化智能操作系统](/products/port/cdi) diff --git a/nuxt-web/content/cases/fangchenggang-railway-container.md b/nuxt-web/content/cases/fangchenggang-railway-container.md new file mode 100644 index 0000000..6559606 --- /dev/null +++ b/nuxt-web/content/cases/fangchenggang-railway-container.md @@ -0,0 +1,49 @@ +--- +title: "北部湾港防城港码头有限公司" +slug: "fangchenggang-railway-container" +summary: "北部湾港防城港码头有限公司是广西北部湾国际港务集团有限公司旗下核心企业,主要从事集装箱、散货的装卸、仓储、运输等业务。作为西南地区重要的海铁联运枢纽,公司致力于提升港口智能化水平,推动区域经济发展,是国家'一带一路'倡议中重要的物流节点。" +cover: "/images/fangcheng.png" +industry: "port" +categories: + - "port" +relatedProducts: + - "/products/port/cdi-container" +keywords: "北部湾港防城港码头有限公司,客户案例,岸基科技,port" +description: "广西北部湾国际港务集团有限公司旗下核心企业,主要从事集装箱、散货的装卸、仓储、运输等业务..." +--- + +北部湾港防城港码头有限公司是广西北部湾国际港务集团有限公司旗下核心企业,主要从事集装箱、散货的装卸、仓储、运输等业务。作为西南地区重要的海铁联运枢纽,公司致力于提升港口智能化水平,推动区域经济发展,是国家"一带一路"倡议中重要的物流节点。 + +## 项目背景 + +1. 铁路集装箱作业量激增,管理难度加大 铁路集装箱吞吐量增长,传统人工理货、纸质运单已无法满足高效作业需求。 + +2. 多系统割裂,数据无法共享 铁路、散货、集装箱、闸口等系统数据孤立,导致重复录入与信息不一致。 + +3. 人工理货效率低,出错率高 理货员现场手工记录录入,存在较大人为差错风险,影响车辆周转效率。 + +4. 安全管理与监管要求提升 需实现作业全过程可视化、可追溯,提升对人员、车辆、货物的实时监控能力。 + +## 项目目标 + +1. 实现铁路集装箱系统一体化升级 构建统一平台,整合多系统数据,实现数据共享与业务协同,提升作业效率与管理水平。 + +2. 推动理货作业智能化、远程化 通过远程智能理货系统,实现后台远程核对确认,减少现场人员投入。 + +3. 实现作业流程无纸化、自动化 通过电子运单、自动识别替代纸质单据与人工录入,降低差错率。 + +4. 强化作业安全与过程可视化 通过视频监控、图像识别等手段,实现全过程可视化监管与异常快速响应。 + +## 项目收益 + +1. 作业效率提升 智能调度与自动识别显著缩短车辆停留时间,日均作业量提升30%以上。 + +2. 人工成本降低 减少现场理货、录入等环节,优化人员配置30%,释放人力用于更高价值工作。 + +3. 数据准确率提升 系统自动识别比对,杜绝人工录入错误,确保数据实时、准确、可追溯。 + +4. 客户满意度显著提升 作业流程更清晰、响应更及时,客户满意度提升至95%以上,信任度大幅增强。 + +## 相关产品 + +- [岸基云码头集装箱智能操作系统](/products/port/cdi-container) diff --git a/nuxt-web/content/cases/guangzhou-anzhida-logistics.md b/nuxt-web/content/cases/guangzhou-anzhida-logistics.md new file mode 100644 index 0000000..5add9c3 --- /dev/null +++ b/nuxt-web/content/cases/guangzhou-anzhida-logistics.md @@ -0,0 +1,51 @@ +--- +title: "广州安之达物流有限公司" +slug: "guangzhou-anzhida-logistics" +summary: "广州市安之达物流有限公司成立于2001年,是专注综合物流与危险品操作的专业物流公司。员工近300人,自有普危牵引车及厢车87台、挂车142台、ISOTANK 50个,仓库及停车场面积约6万平方米。主营危险品及普货陆路运输、仓储、国际海运、报关报检、口岸申报、码头操作等,兼营设备租赁、物流咨询及供应链金融" +cover: "/images/anzhida.png" +industry: "freight-forwarder" +categories: + - "freight-forwarder" + - "warehouse" + - "logistics" +relatedProducts: + - "/products/logistics/platform" + - "/products/logistics/warehouse" +keywords: "广州安之达物流有限公司,客户案例,岸基科技,freight-forwarder,warehouse,logistics" +description: "成立于2001年,是一家以综合物流服务和危险货物操作为品牌的专业物流公司..." +--- + +广州市安之达物流有限公司成立于2001年,是专注综合物流与危险品操作的专业物流公司。员工近300人,自有普危牵引车及厢车87台、挂车142台、ISOTANK 50个,仓库及停车场面积约6万平方米。主营危险品及普货陆路运输、仓储、国际海运、报关报检、口岸申报、码头操作等,兼营设备租赁、物流咨询及供应链金融 + +## 项目背景 + +1. 智能调度能力薄弱 老系统缺乏智能化调度功能,无法动态优化运输方案,空驶率与运输成本居高不下。 + +2. 业务板块协同不足 订单、费用与车辆管理流程割裂,缺乏一体化平台,跨部门协同效率低。 + +3. 系统扩展能力受限 老系统架构陈旧,难以对接外部客户系统,订单流转周期长,供应链响应慢。 + +4. 数据价值挖掘缺失 历史系统缺乏数据分析能力,无法提炼业务洞察,管理层决策缺乏数据支撑。 + +## 项目目标 + +1. 智能化调度决策 建设智能调度引擎,基于算法模型动态优化车载路线与配载策略,实现物流资源科学调配。 + +2. 全流程一体化管控 构建订单、费用、车辆协同管理平台,打通全业务流程,实现运营效率精细化提升。 + +3. 跨系统互联互通 开发标准化数据接口,对接客户信息系统,实现订单状态实时同步与自动化流转。 + +4. 数据驱动决策支持 搭建多维度分析平台,提供分级可视化报表与数据挖掘功能,赋能管理层精准决策。 + +## 项目收益 + +1. 运营效率提升:通过系统实现智能化调度 智能调度实现资源与任务精准匹配,闲置与等待时间大幅减少,运营效率提升超25%,人力与能耗成本双降。 + +2. 整合资源:打破信息孤岛 打通货代、报关、车队、仓储等内部信息壁垒,作业效率提升30%以上,失误率降低约40%。 + +3. 数据风险降低:保障业务合规与稳定 实现业务财务一体化运行,信息准确率达99%以上;集中监控预警机制实现事前预警与事中控制,全年无重大合规事故。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基仓储管理系统](/products/logistics/warehouse) diff --git a/nuxt-web/content/cases/guangzhou-port-authority.md b/nuxt-web/content/cases/guangzhou-port-authority.md new file mode 100644 index 0000000..5aa83c2 --- /dev/null +++ b/nuxt-web/content/cases/guangzhou-port-authority.md @@ -0,0 +1,43 @@ +--- +title: "广州市港务局" +slug: "guangzhou-port-authority" +summary: "广州市港务局成立于2004年,是市政府直属正厅级事业单位,负责广州港政、水路运输及航道管理。2025年数据显示:广州港外贸集装箱班轮航线达173条,南沙港区集装箱吞吐量突破2000万标箱,建成全国最大汽车出口口岸集群(年出口量超24万辆)。作为粤港澳大湾区核心枢纽,通过“湾区一港通”等模式强化区域协同,助力广州国际航运枢纽能级跃升。" +cover: "/images/guangzhougangwuju.jpg" +industry: "general" +categories: +relatedProducts: +keywords: "广州市港务局,客户案例,岸基科技" +description: "成立于2004年,为市政府直属正厅级事业单位,负责广州港政、水路运输及航道管理..." +--- + +广州市港务局成立于2004年,是市政府直属正厅级事业单位,负责广州港政、水路运输及航道管理。2025年数据显示:广州港外贸集装箱班轮航线达173条,南沙港区集装箱吞吐量突破2000万标箱,建成全国最大汽车出口口岸集群(年出口量超24万辆)。作为粤港澳大湾区核心枢纽,通过“湾区一港通”等模式强化区域协同,助力广州国际航运枢纽能级跃升。 + +## 项目背景 + +1. 系统割裂致协同瓶颈 各系统独立运行形成数据孤岛,业务、财务、审批数据无法互通,依赖人工二次录入,多港口协同效率低。 + +2. "单一窗口" 建设倒逼数据接口适配 现有系统无数据交换接口,码头、海关等数据无法高效传输,亟需开发专属接口实现规范共享。 + +3. 港航企业与内部系统对接效率低下 内部系统数据不互通,数据交换依赖FTP或人工传递,易出错且耗时,增加企业对接成本。 + +4. 数据统计薄弱与服务需求不匹配 统计功能仅支持基础查询,报表滞后;客户缺乏货物跟踪渠道,制约服务质量提升。 + +## 项目目标 + +1. 技术落地:标准化数据交换架构 开发“单一窗口”、港航企业、港务局内部三类核心接口,打破业务、财务、审批系统数据壁垒。 + +2. 流程效率:全线上化与自动化 将舱单处理、危货申报等核心业务迁移至线上,实现数据采集至统计全流程自动化。 + +3. 服务输出:开放查询与数据共享 建成船舶动态、箱货装卸进度等查询接口,支持客户实时获取信息,提升监管响应效率。 + +4. 成本优化:资源集约与降本 采用政务云租赁模式避免重复采购,系统替代人工减少人力投入,降低多方适配成本。 + +## 项目收益 + +1. 减少人工干预,优化流程运转 数据在各系统间自动传递,无需二次录入,行政监管与业务处理节奏显著加快,单票业务处理时间缩短40%以上。 + +2. 成本优化,降低多方支出 采用政务云租赁模式,年节约硬件采购成本约80万元;减少人工录入与纸质单据,年节约人力及耗材成本超50万元。 + +3. 便捷信息获取,简化对接流程 客户可实时查询船舶、箱货动态,信息获取时效从小时级提升至分钟级,企业对接适配时间缩短60%。 + +4. 安全合规保障,提升运维效率 运行期间未发生安全事故与系统故障,系统可用性达99.9%,日志审计与异常处理功能保障平台稳定运行。 diff --git a/nuxt-web/content/cases/hainan-strait-shipping.md b/nuxt-web/content/cases/hainan-strait-shipping.md new file mode 100644 index 0000000..dbdff94 --- /dev/null +++ b/nuxt-web/content/cases/hainan-strait-shipping.md @@ -0,0 +1,36 @@ +--- +title: "海南海峡航运股份有限公司" +slug: "hainan-strait-shipping" +summary: "海南海峡航运股份有限公司成立于2002年,是中远海运集团旗下A股上市公司,注册资本22.29亿元,为琼州海峡客滚运输龙头企业。作为海南自贸港“四方五港”核心运营主体,承担构建“智慧通道”、服务自贸港封关运作重任。拥有新海港、秀英港两大枢纽,年通过能力旅客3500万人次、车辆560万辆次;运营47艘客滚船舶,实现南北运力协同,并自主研发智能调度系统、5G船舶通信系统等数字化工具。" +cover: "/images/haixia.png" +industry: "shipping-company" +categories: + - "shipping-company" +relatedProducts: +keywords: "海南海峡航运股份有限公司,客户案例,岸基科技,shipping-company" +description: "成立于2002年,是中远海运集团旗下A股上市公司,注册资本22.29亿元,是琼州海峡客滚运输龙头企业..." +--- + +海南海峡航运股份有限公司成立于2002年,是中远海运集团旗下A股上市公司,注册资本22.29亿元,为琼州海峡客滚运输龙头企业。作为海南自贸港“四方五港”核心运营主体,承担构建“智慧通道”、服务自贸港封关运作重任。拥有新海港、秀英港两大枢纽,年通过能力旅客3500万人次、车辆560万辆次;运营47艘客滚船舶,实现南北运力协同,并自主研发智能调度系统、5G船舶通信系统等数字化工具。 + +## 项目背景 + +1. 运输方式单一 目前仅依赖客货滚装运输,且受天气影响停航频繁(年均约 30 天),无法满足海南自贸港封关后激增的跨境物流需求。 + +2. 新能源车运输瓶颈 新能源车单船运载量受限,过海效率低下,2024年春运期间出现车主被迫高价离岛情况。 + +## 项目目标 + +1. 提升运输效率 提升船舶周转率,压缩车辆候船时间;实现新能源车“专船专班”常态化运营,大幅提升过海时效。 + +2. 降低物流成本 通过智能配载与多式联运降低单位物流成本,依托枢纽模式带动临港产业增值服务收入增长。 + +3. 强化应急保障 建立跨区域运力调配机制,完善智能避碰与舱内安全预警系统,降低事故发生率。 + +## 项目收益 + +1. 物流资源利用提高 旺季船舶周转率提升35%,装载率从68%升至92%,单日最大运输量增长40%,运输时效缩短2小时。 + +2. 运输方式多样 小程序实现多方实时协同,纠纷率下降72%,人工协调成本减少约280万元。 + +3. 资源消耗减少 LNG船舶占比32%,能耗降低20%;年节约燃油1.02万吨,减少碳排放约3.2万吨。 diff --git a/nuxt-web/content/cases/hede-global-supply-chain.md b/nuxt-web/content/cases/hede-global-supply-chain.md new file mode 100644 index 0000000..6818673 --- /dev/null +++ b/nuxt-web/content/cases/hede-global-supply-chain.md @@ -0,0 +1,53 @@ +--- +title: "唐山港合德海运有限公司" +slug: "hede-global-supply-chain" +summary: "唐山港合德海运有限公司专注内外贸集装箱航线运营,主营国际国内水路运输、货运代理、船舶代理及无船承运业务。经营航线30余条,外贸覆盖美西、日韩、东南亚、中东、印巴等国际港口;内贸干线覆盖广州、厦门、上海、宁波、南京、太仓等主要口岸;环渤海支线实现盘锦、锦州、秦皇岛、曹妃甸、天津、黄骅、潍坊、龙口等港口高效连接。" +cover: "/images/shanghaihede.webp" +industry: "shipping-company" +categories: + - "shipping-company" + - "freight-forwarder" + - "logistics" +relatedProducts: + - "/products/logistics/platform" + - "/products/ecommerce/freight-booking" + - "/products/shipping/company" + - "/products/shipping/boat" +keywords: "唐山港合德海运有限公司,客户案例,岸基科技,shipping-company,freight-forwarder,logistics" +description: "唐山港合德海运有限公司,专注内外贸集装箱航线运营,主营国际国内水路运输、货运代理、船舶代理..." +--- + +唐山港合德海运有限公司专注内外贸集装箱航线运营,主营国际国内水路运输、货运代理、船舶代理及无船承运业务。经营航线30余条,外贸覆盖美西、日韩、东南亚、中东、印巴等国际港口;内贸干线覆盖广州、厦门、上海、宁波、南京、太仓等主要口岸;环渤海支线实现盘锦、锦州、秦皇岛、曹妃甸、天津、黄骅、潍坊、龙口等港口高效连接。 + +## 项目背景 + +1. 业务发展驱动系统迭代 公司已形成一体化综合物流布局,需搭建全球物流供应链平台,实现信息资源深度整合。 + +2. 现有系统凸显整合短板 各系统存在信息孤岛、架构异构、扩展性弱,难以实现经营数据统筹监管与高效复用。 + +3. 技术成熟创造升级条件 互联网、AI等技术成熟,可打通内外部协同链路,强化客户数字化连接,提升核心竞争力。 + +## 项目目标 + +1. 建设统一供应链技术平台 构建统一底层架构,整合服务系统实现业务耦合与数据集中监管,支持全球一体化供应链服务。 + +2. 标准化资源协同体系 规范各板块操作流程,建立智能业务规则,实现货代、船代、航运系统无缝衔接与协同操作。 + +3. 构建高可靠数据交换平台 提供多种数据交换标准,满足国内外码头、船公司等舱单交换需求,保障接口稳定性与响应能力。 + +4. 智能化应用降本增效 通过OCR实现快速录入校验,搭建AI智能客服,提升服务效率与满意度,降低运营成本。 + +## 项目收益 + +1. 物流链整合提升操作效率 打破信息孤岛与流程壁垒,业务处理周期缩短20%以上,整体操作效率提升30%。 + +2. 全程可视化优化周转效率 货物全程跟踪实现全状态可视,物流周转效率提升25%,货物准时交付率达98%以上。 + +3. 智能技术驱动降本增效 智能算法优化运输路线与运力,综合运营成本降低20%-25%,创造可观经济效益。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [海运订舱平台](/products/ecommerce/freight-booking) +- [岸基船公司运营管理系统](/products/shipping/company) +- [岸基船舶管理系统](/products/shipping/boat) diff --git a/nuxt-web/content/cases/hede-international-shipping.md b/nuxt-web/content/cases/hede-international-shipping.md new file mode 100644 index 0000000..fe3c08c --- /dev/null +++ b/nuxt-web/content/cases/hede-international-shipping.md @@ -0,0 +1,43 @@ +--- +title: "合德国际航运有限公司" +slug: "hede-international-shipping" +summary: "唐山港合德海运有限公司是河北港口集团旗下内外贸兼营的集装箱航运企业,注册资本18.5亿元。作为京津冀协同发展与“一带一路”衔接的关键节点,构建“华北-华东-华南”三线联动物流网络。运营内外贸船舶49艘,掌控京唐港区全自动化集装箱泊位(年通过能力55万标箱)及曹妃甸港区多用途泊位,自主研发件杂智能管控系统、无人运输调度平台等多项专利。" +cover: "/images/shanghaihede.webp" +industry: "shipping-company" +categories: + - "shipping-company" +relatedProducts: + - "/products/logistics/platform" +keywords: "合德国际航运有限公司,客户案例,岸基科技,shipping-company" +description: "唐山港合德海运有限公司是河北港口集团唐港集团旗下内外贸兼营的集装箱航运企业,注册资本18.5亿元..." +--- + +唐山港合德海运有限公司是河北港口集团旗下内外贸兼营的集装箱航运企业,注册资本18.5亿元。作为京津冀协同发展与“一带一路”衔接的关键节点,构建“华北-华东-华南”三线联动物流网络。运营内外贸船舶49艘,掌控京唐港区全自动化集装箱泊位(年通过能力55万标箱)及曹妃甸港区多用途泊位,自主研发件杂智能管控系统、无人运输调度平台等多项专利。 + +## 项目背景 + +1. 提升配载效率 传统美西航线需25天以上,准班率不足60%,无法满足跨境电商72小时送达需求。 + +2. 优化空间利用 传统燃油船舶占比70%,面临欧盟碳关税等贸易壁垒,年额外成本超千万元。 + +3. 资源协同不足 港口、货代、集卡等信息割裂,货主无法实时追踪货物,异常响应滞后超48小时。 + +## 项目目标 + +1. 提升配载效率 采用AI算法优化配载方案,大幅压缩单船配载计划编制时间与方案调整响应速度。 + +2. 优化空间利用 通过智能分区算法提升船舶舱位利用率,降低甲板空间浪费,实现新能源车混合装载效率提升。 + +3. 降低综合成本 通过智能配载减少翻箱率与燃油消耗,降低配载人员需求与单证处理差错率。 + +## 项目收益 + +1. 提升配载效率 I智能配载引擎使方案生成时间压缩至20分钟,人工成本大幅降低。 + +2. 空间利用提升 舱位利用率提升至80%以上,新能源车专用模块实现单船合规运载160-180辆。 + +3. 信息协同提高 数字孪生仿真平台实现关键数据同步准确率超98%。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) diff --git a/nuxt-web/content/cases/hengtong-logistics.md b/nuxt-web/content/cases/hengtong-logistics.md new file mode 100644 index 0000000..234ba44 --- /dev/null +++ b/nuxt-web/content/cases/hengtong-logistics.md @@ -0,0 +1,47 @@ +--- +title: "恒通物流股份有限公司" +slug: "hengtong-logistics" +summary: "恒通物流股份有限公司成立于2005年,是国内领先的综合物流服务商,聚焦公路干线运输、多式联运、冷链物流及仓储配送核心业务。旗下自有及合作运输车辆超2000台,服务网络覆盖全国30+分拨中心、500+合作网点,年运输里程超8000万公里。" +cover: "/images/hengtong.png" +industry: "fleet" +categories: + - "fleet" + - "logistics" + - "port" +relatedProducts: + - "/products/logistics/platform" + - "/products/logistics/vehicle-transport" +keywords: "恒通物流股份有限公司,客户案例,岸基科技,fleet,logistics,port" +description: "成立于2005年,注册资本5.8亿元,是国内领先的综合物流服务商,聚焦公路干线运输、多式联运、冷链物流..." +--- + +恒通物流股份有限公司成立于2005年,是国内领先的综合物流服务商,聚焦公路干线运输、多式联运、冷链物流及仓储配送核心业务。旗下自有及合作运输车辆超2000台,服务网络覆盖全国30+分拨中心、500+合作网点,年运输里程超8000万公里。 + +## 项目背景 + +1. 监管数据上报合规压力 原有系统缺乏协议适配,数据上报延迟超30分钟,错误率8%,多次被通报整改。 + +2. 线路规划静态化,运输效率低 依赖人工经验,未结合实时路况,空驶率高达28%,运输时间增加25%。 + +3. 车辆动态监控滞后,风险难管控 仅能查看基础定位,异常行为发现滞后超1小时,安全风险高、纠纷难取证。 + +## 项目目标 + +1. 808/809 协议标准化数据上报 适配808/809协议标准,实现车载终端数据实时采集与上传,通过平台自动同步至省级监管部门,满足合规要求。 + +2. 智能动态线路规划 整合实时路况、车辆载重、油耗等多维数据,开发智能算法,支持最优时效、最低成本等多模式线路规划。 + +3. 车辆动态全维度实时监控 搭建可视化监控平台,实时展示定位、速度、油耗、胎压等数据,设置多维度异常预警阈值,实现风险实时管控。 + +## 项目收益 + +1. 监管合规零风险,避免处罚损失 全年上传数据超1200万条,准确率100%,未发生监管通报,避免处罚损失超300万元,获合规示范企业认证。 + +2. 运输效率显著提升,成本大幅降低 驶率显著下降,年节约成本近千万元,单程运输时间缩短超四分之一。 + +3. 动态监控精准化,安全风险下降 异常预警准确率高,事故率大幅降低;历史轨迹追溯助力解决纠纷,挽回经济损失超百万元。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基车辆运输管理系统](/products/logistics/vehicle-transport) diff --git a/nuxt-web/content/cases/huanghua-vehicle-analysis.md b/nuxt-web/content/cases/huanghua-vehicle-analysis.md new file mode 100644 index 0000000..2ce62b2 --- /dev/null +++ b/nuxt-web/content/cases/huanghua-vehicle-analysis.md @@ -0,0 +1,47 @@ +--- +title: "黄骅港" +slug: "huanghua-vehicle-analysis" +summary: "黄骅港是我国“西煤东运、北煤南运”核心枢纽港口,货物吞吐量连续五年超3亿吨,年疏港车辆通行量突破120万辆次,集疏运网络辐射华北、西北多省区。近年聚焦智慧疏运数字化转型,针对车辆路线规划滞后、货源流向不清晰等痛点,搭建车辆路线分析平台,以“线路智能规划+货源大数据分析+车流热力可视化”为核心,构建高效、精准、绿色的港口车辆运输管理体系。" +cover: "/images/huanghua.jpg" +industry: "fleet" +categories: + - "fleet" + - "logistics" + - "port" +relatedProducts: + - "/products/logistics/platform" + - "/products/logistics/vehicle-transport" +keywords: "黄骅港,客户案例,岸基科技,fleet,logistics,port" +description: "我国\'西煤东运、北煤南运\'核心枢纽港口,货物吞吐量连续五年超3亿吨,年疏港车辆通行量突破120万辆次..." +--- + +黄骅港是我国“西煤东运、北煤南运”核心枢纽港口,货物吞吐量连续五年超3亿吨,年疏港车辆通行量突破120万辆次,集疏运网络辐射华北、西北多省区。近年聚焦智慧疏运数字化转型,针对车辆路线规划滞后、货源流向不清晰等痛点,搭建车辆路线分析平台,以“线路智能规划+货源大数据分析+车流热力可视化”为核心,构建高效、精准、绿色的港口车辆运输管理体系。 + +## 项目背景 + +1. 货源流向模糊,路线规划缺乏数据支撑 货源数据分散,70%以上车辆因路线与货源不匹配,出现绕路运输、空载返程问题。 + +2. 车流分布不均,拥堵点难以及时识别 车流数据未实时可视化,高峰时段堆场入口平均排队超1.5小时,严重影响疏运效率。 + +3. 线路规划静态化,适配性差 固定路线未结合实时货源与车流变化,规划路线与实际场景脱节,难以满足快进快出需求。 + +## 项目目标 + +1. 货源流向大数据精准分析 整合运输订单、车辆轨迹等数据,构建流向分析模型,精准识别货源规律,为线路规划提供支撑。 + +2. 货源热力图实时可视化 搭建热力可视化管理后台,支持多区域数据切换与对比,提升跨区域运输资源调配响应效率。 + +3. 动态智能线路规划 基于货源分析结果与热力图,开发智能算法,实现货源-路线-车辆精准匹配与动态避堵。 + +## 项目收益 + +1. 运输效率显著提升 货源流向分析准确率达96.8%,车辆与货源适配度从58%提升至89%,顺路配货成功率提升75%。 + +2. 运营成本大幅降低 空驶率从32.5%降至14.2%,年节约燃油及运营成本超1500万元,人工调度成本降低25%。 + +3. 集疏运网络优化能力升级 优化核心疏港通道,通行效率提升38%,打造“数据驱动、精准调度”的智慧疏运标杆。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基车辆运输管理系统](/products/logistics/vehicle-transport) diff --git a/nuxt-web/content/cases/jiahua-shipping-system.md b/nuxt-web/content/cases/jiahua-shipping-system.md new file mode 100644 index 0000000..0613094 --- /dev/null +++ b/nuxt-web/content/cases/jiahua-shipping-system.md @@ -0,0 +1,47 @@ +--- +title: "嘉华航运(香港)有限公司" +slug: "jiahua-shipping-system" +summary: "嘉华航运(香港)有限公司(Kawa Shipping),2023年成立的新兴国际航运企业,专注中东及北非市场。由土耳其与阿联酋企业共同持股,凭借资本与资源优势,成立一年即跻身国内发展最快的民营集装箱航运公司行列。航运网络覆盖华东、华北、华中及西南地区主要港口,中东航线占据显著优势。截至2024年9月,运营14艘集装箱船(3艘自有、11艘租赁),综合运力达20000 TEU。" +cover: "/images/jiahua.jpg" +industry: "shipping-company" +categories: + - "shipping-company" + - "ship-agent" + - "freight-forwarder" +relatedProducts: + - "/products/shipping/company" +keywords: "嘉华航运(香港)有限公司,客户案例,岸基科技,shipping-company,ship-agent,freight-forwarder" +description: "嘉华航运(香港)有限公司,2023年成立的新兴国际航运企业,专注中东及北非市场..." +--- + +嘉华航运(香港)有限公司(Kawa Shipping),2023年成立的新兴国际航运企业,专注中东及北非市场。由土耳其与阿联酋企业共同持股,凭借资本与资源优势,成立一年即跻身国内发展最快的民营集装箱航运公司行列。航运网络覆盖华东、华北、华中及西南地区主要港口,中东航线占据显著优势。截至2024年9月,运营14艘集装箱船(3艘自有、11艘租赁),综合运力达20000 TEU。 + +## 项目背景 + +1. 一带一路战略机遇 航运业面临新机遇与挑战,嘉华航运快速扩张中欧快航、中东航线,亟需升级运营体系。 + +2. 传统手工模式瓶颈 单证处理依赖纸质/Excel,信息易错易失、流转缓慢,严重制约业务效率。 + +3. 合规风控压力加剧 手工操作难以及时更新合规标准,单证不规范、备案延迟频发,带来合规风险与经济损失。 + +## 项目目标 + +1. 单证处理数字化升级 实现提单、舱单、装箱单等核心单证线上录入、审核、签发与全流程流转,消除人工误差。 + +2. 单证协同与追溯高效化 打通内部及外部单证数据接口,建立全生命周期追溯体系,支持多维度快速查询。 + +3. 合规管理智能化落地 单证生成过程自动校验关键信息并预警不合规项,规避潜在法律与经济损失。 + +4. 操作效率显著提升 优化单证处理流程,减少人工重复录入,支持批量处理功能,释放人力。 + +## 项目收益 + +1. 操作效率大幅提升 单票单证处理时间缩短50%以上,年均节省人工操作超1200小时,业务流转效率显著提升。 + +2. 差错率与风险降低 单证错误率从8%降至1%以下,规避改单、滞港等损失,电子单证强化风险防控。 + +3. 客户服务体验优化 客户可实时查询进度,满意度提升至95%以上,高效准确服务成为核心竞争力。 + +## 相关产品 + +- [岸基船公司运营管理系统](/products/shipping/company) diff --git a/nuxt-web/content/cases/jinjiang-shipping-ecommerce.md b/nuxt-web/content/cases/jinjiang-shipping-ecommerce.md new file mode 100644 index 0000000..9015f91 --- /dev/null +++ b/nuxt-web/content/cases/jinjiang-shipping-ecommerce.md @@ -0,0 +1,47 @@ +--- +title: "上海锦江航运(集团)股份有限公司" +slug: "jinjiang-shipping-ecommerce" +summary: "上海锦江航运(集团)股份有限公司1983年成立的中国领先区域性集装箱航运企业,聚焦亚洲近洋市场,以上海为母港,形成'东北亚压舱石+东南亚增长极'战略布局。连续多年稳居上海-日本航线、上海-台湾航线市场占有率首位。作为上港集团(全球第一大港)控股子公司,业务深度融入长三角一体化及'一带一路'国家战略,是亚洲近洋市场'小而美'标杆企业。" +cover: "/images/logo1.jpg" +industry: "shipping-company" +categories: + - "shipping-company" +relatedProducts: + - "/products/ecommerce/freight-booking" +keywords: "上海锦江航运(集团)股份有限公司,客户案例,岸基科技,shipping-company" +description: "上海锦江航运(集团)股份有限公司(股票代码:601083)1983年成立的中国领先区域性集装箱航运企业..." +--- + +上海锦江航运(集团)股份有限公司1983年成立的中国领先区域性集装箱航运企业,聚焦亚洲近洋市场,以上海为母港,形成"东北亚压舱石+东南亚增长极"战略布局。连续多年稳居上海-日本航线、上海-台湾航线市场占有率首位。作为上港集团(全球第一大港)控股子公司,业务深度融入长三角一体化及"一带一路"国家战略,是亚洲近洋市场"小而美"标杆企业。 + +## 项目背景 + +1. 传统模式效率瓶颈凸显 线下订舱耗时2-3天,信息依赖人工,纸质提单占海运成本5%-8%,亟需数字化突破。 + +2. 互联网技术重塑行业生态 云计算与移动互联普及推动航运巨头线上化,锦江航运2015年率先推出电商平台,成国内近洋数字化先行者。 + +3. 精品服务线上化延伸 依托高准班率、HDS快速交货等线下优势,将服务标准化线上化,突破物理边界。 + +4. 直客与代理双轨融合 设计“双轨制”:满足直客自主订舱支付需求,同时为代理提供批量订舱、运价查询等B端功能。 + +## 项目目标 + +1. 即期舱位透明化释放机制 客户实时查看各航线剩余舱位,系统优先推荐准班率最高、时效最快的船期,实现资源透明化。 + +2. 东南亚市场深度渗透战略 平台重点支持东南亚扩张,新增快航服务,整合华北枢纽港资源,开辟印巴新航线。 + +3. 跨境电商高效增长引擎 响应上海港跨境电商海运出口试点,为电商货物提供高效运输保障。 + +## 项目收益 + +1. 订舱操作"一点到底"极简体验 货代从选航线、输货量到提交订单操作减少,单票订舱时间从半天压缩至10分钟。 + +2. 全流程运输可视化追踪 输入提单号即可查看提箱、进港、装船、离港、抵达等节点状态,异常自动预警。 + +3. 智能运价计算与决策优化 实时展示各航线阶梯运价及附加费明细,支持按最低总价或最快时效排序决策。 + +4. 即期舱位透明 客户实时查看各航线剩余舱位及箱型分类,订舱确认时间从48小时缩短至2小时。 + +## 相关产品 + +- [海运订舱平台](/products/ecommerce/freight-booking) diff --git a/nuxt-web/content/cases/lianyungang-china-korea-ferry.md b/nuxt-web/content/cases/lianyungang-china-korea-ferry.md new file mode 100644 index 0000000..0b435ac --- /dev/null +++ b/nuxt-web/content/cases/lianyungang-china-korea-ferry.md @@ -0,0 +1,47 @@ +--- +title: "连云港中韩轮渡有限公司" +slug: "lianyungang-china-korea-ferry" +summary: "连云港中韩轮渡有限公司位于新亚欧大陆桥东桥头堡连云港,独家经营连云港至仁川、平泽客货班轮航线,系江苏省唯一客货班轮航线。航线开通十九年来,持续服务港口上量,促进中韩海上航线健康发展。随着韩国与我国中西部、中亚经济交往深化,经连云港进出口货物及出入境旅游需求快速增长。航线每周四班高密度运营,为陆桥运输货物及中韩商务、观光提供高效通道。" +cover: "/images/lianyungang.jpg" +industry: "shipping-company" +categories: + - "shipping-company" + - "ship-agent" + - "freight-forwarder" +relatedProducts: + - "/products/shipping/boat" + - "/products/logistics/ship-agent" +keywords: "连云港中韩轮渡有限公司,客户案例,岸基科技,shipping-company,ship-agent,freight-forwarder" +description: "位于新亚欧大陆桥东桥头堡——连云港东端,独家经营连云港至仁川、平泽客货班轮航线..." +--- + +连云港中韩轮渡有限公司位于新亚欧大陆桥东桥头堡连云港,独家经营连云港至仁川、平泽客货班轮航线,系江苏省唯一客货班轮航线。航线开通十九年来,持续服务港口上量,促进中韩海上航线健康发展。随着韩国与我国中西部、中亚经济交往深化,经连云港进出口货物及出入境旅游需求快速增长。航线每周四班高密度运营,为陆桥运输货物及中韩商务、观光提供高效通道。 + +## 项目背景 + +1. 中韩双边贸易深化催生货运刚需 中韩经贸紧密,连云港至仁川、平泽货运量持续增长,需专业系统整合资源匹配多样化需求。 + +2. 传统货运模式瓶颈亟待突破 传统运输多次装卸、中转环节多,增加破损风险、拉长时间并推高成本。 + +3. 中韩联运合作与政策驱动保障 中韩陆海联运合作深化,需构建标准化货运系统对接监管规则,实现多式联运协同。 + +## 项目目标 + +1. 建设一体化综合业务管理系统 搭建一体化货运操作系统,实现内部全流程操作及与连云港、韩国口岸数据互通,提升办单效率。 + +2. 实现业务精细化管理 梳理订舱、放箱等环节,制定标准化流程,实时掌握货物动态,异常自动预警。 + +3. 智能化应用深度落地 通过邮件智能识别、危险货物自动识别等功能提升操作准确性,降低人力成本。 + +## 项目收益 + +1. 自动化操作提升处理效率 订舱、清洁数据自动化处理,单证处理时间缩短40%,业务响应速度显著提升。 + +2. 危险货物智能识别与预警 系统自动识别危险货物并触发预警,识别准确率达95%,有效降低运输风险。 + +3. 智能计费优化结算流程 货物运费智能计算,实时同步结算模块,操作效率提升30%,减少数据偏差。 + +## 相关产品 + +- [岸基船舶管理系统](/products/shipping/boat) +- [岸基船舶代理系统](/products/logistics/ship-agent) diff --git a/nuxt-web/content/cases/mobile-machinery-dispatch.md b/nuxt-web/content/cases/mobile-machinery-dispatch.md new file mode 100644 index 0000000..e4f1e1d --- /dev/null +++ b/nuxt-web/content/cases/mobile-machinery-dispatch.md @@ -0,0 +1,42 @@ +--- +title: "秦皇岛港股份有限公司流动机械分公司" +slug: "mobile-machinery-dispatch" +summary: "秦皇岛港股份有限公司流动机械分公司是秦皇岛港股份有限公司旗下的重要作业单位,主要负责港区内流动机械的统一调度、运营维护与管理工作。分公司拥有起重机、叉车、装载机、自卸车等多种流动机械设备,承担着煤炭、杂货等核心货类的装卸与转运任务,是保障港口生产作业高效运转的关键力量。" +cover: "/images/logo2.jpg" +industry: "port" +categories: + - "port" + - "machinery" +relatedProducts: + - "/products/port/cdi-bulk" +keywords: "秦皇岛港股份有限公司流动机械分公司,客户案例,岸基科技,port,machinery" +description: "秦皇岛港股份有限公司旗下重要作业单位,负责港区内流动机械的统一调度、运营维护与管理工作..." +--- + +秦皇岛港股份有限公司流动机械分公司是秦皇岛港股份有限公司旗下的重要作业单位,主要负责港区内流动机械的统一调度、运营维护与管理工作。分公司拥有起重机、叉车、装载机、自卸车等多种流动机械设备,承担着煤炭、杂货等核心货类的装卸与转运任务,是保障港口生产作业高效运转的关键力量。 + +## 项目背景 + +1. 传统调度模式难以满足实时作业需求 秦皇岛港区内流动机械作业范围广、车型繁杂,东西港区作业分散,每日出车量与地点不固定,依赖人工调度无法实现高效灵活调配。 + +2. 数据记录与协同存在盲区 申请、调度、监控等环节靠人工记录,信息传递滞后,难以实现全过程可视化与跨部门协同。 + +## 项目目标 + +1. 实现调度智能化 建设智能调度指挥系统,通过电子地图实时显示车辆位置,支持昼夜及临时用车在线申请与派车。 + +2. 构建作业可视化平台 基于GIS实现轨迹回放、电子围栏、超区报警等功能,对流动机械作业全过程进行可视化监控。 + +3. 推动管理精细化 建立统一的信息管理模块,支持数据查询与统计分析,为管理层提供决策支持。 + +## 项目收益 + +1. 调度效率显著提升 智能派车与实时监控使调度响应时间缩短30%以上,车辆利用率提高,空驶与等待时间明显减少。 + +2. 作业过程透明可控 车辆位置、作业状态实时可查,异常情况及时报警,现场管理精准性与安全性大幅提升。 + +3. 数据驱动管理优化 系统自动记录作业数据,支持多维统计分析,推动管理从经验型向数据型转变。 + +## 相关产品 + +- [岸基云码头散杂货智能操作系统](/products/port/cdi-bulk) diff --git a/nuxt-web/content/cases/qiaoyi-logistics.md b/nuxt-web/content/cases/qiaoyi-logistics.md new file mode 100644 index 0000000..73b44ef --- /dev/null +++ b/nuxt-web/content/cases/qiaoyi-logistics.md @@ -0,0 +1,49 @@ +--- +title: "侨益物流股份有限公司" +slug: "qiaoyi-logistics" +summary: "侨益物流股份有限公司系新三板挂牌企业,专注大宗农产品全链条物流解决方案。作为华南地区农产品物流龙头企业(广州市农业龙头企业),依托800余名专业团队与40余家子公司,为大宗商品进口提供专业化物流服务。业务网络覆盖东三省、珠三角、北部湾、长三角及长江沿岸五大核心区域,通过资源整合与流程优化,持续为客户创造差异化价值,推动农产品供应链效能升级。" +cover: "/images/logo.jpg" +industry: "ship-agent" +categories: + - "ship-agent" + - "freight-forwarder" + - "warehouse" + - "fleet" + - "logistics" +relatedProducts: + - "/products/logistics/platform" + - "/products/logistics/warehouse" +keywords: "侨益物流股份有限公司,客户案例,岸基科技,ship-agent,freight-forwarder,warehouse" +description: "新三板挂牌企业,专注大宗农产品全链条物流解决方案,作为华南地区农产品物流龙头企业..." +--- + +侨益物流股份有限公司系新三板挂牌企业,专注大宗农产品全链条物流解决方案。作为华南地区农产品物流龙头企业(广州市农业龙头企业),依托800余名专业团队与40余家子公司,为大宗商品进口提供专业化物流服务。业务网络覆盖东三省、珠三角、北部湾、长三角及长江沿岸五大核心区域,通过资源整合与流程优化,持续为客户创造差异化价值,推动农产品供应链效能升级。 + +## 项目背景 + +1. 异构系统协同壁垒突出 多式联运缺乏统一调度与数据共享,各环节单据标准不统一,需人工重复录入,转运滞留加剧,运输周期延长。 + +2. 数据孤岛制约决策科学性 核心数据分散于不同载体,未形成统一数据库,管理人员无法识别运营瓶颈,决策主观性强。 + +3. 资源碎片化拉低协同效能 港口、船公司、车队、货代等信息壁垒突出,泊位状态、到港时间无法实时共享,车辆空驶与货物积压并存。 + +## 项目目标 + +1. 构建端到端一体化管控平台 围绕粮食物流,打通产销物流通道,将货代、仓储、陆运、水运等环节有机整合,实现全方位信息化管理。 + +2. 智能运力匹配优化资源配置 整合自有及分包商运力信息,通过大数据算法对运力供给、路线规划、人员安排进行综合优化,实现合理配置。 + +3. 订单全程可视实现透明化跟踪 融合北斗定位、GPS及GIS技术,实时采集并同步各节点数据,以可视化形式展示运单轨迹与流转状态。 + +## 项目收益 + +1. 打通信息壁垒提升协同效率 全链路数据汇聚至同一平台,各环节同步获取订单进度与货物位置,协同效率提升40%以上。 + +2. 优化资源配置实现降本增效 智能规划最优联运路线,减少空驶与滞港,单吨运输成本平均降低15% + +3. 全流程可视化管控降低风险 实时监控货物位置与温湿度,异常自动预警;电子单据全程留痕,确保运输交割可追溯。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基仓储管理系统](/products/logistics/warehouse) diff --git a/nuxt-web/content/cases/qinhuangdao-cargo-system.md b/nuxt-web/content/cases/qinhuangdao-cargo-system.md new file mode 100644 index 0000000..47e6e1b --- /dev/null +++ b/nuxt-web/content/cases/qinhuangdao-cargo-system.md @@ -0,0 +1,49 @@ +--- +title: "秦皇岛港股份有限公司" +slug: "qinhuangdao-cargo-system" +summary: "秦皇岛港股份有限公司是河北港口集团核心企业,全球最大大宗干散货公众码头之一,1898年开埠,现有生产泊位71个,年设计通过能力3亿吨,主营煤炭、矿石、杂货、油品装卸及物流综合服务,是国家'北煤南运'主枢纽港和京津冀世界级港口群重要组成。" +cover: "/images/logo2.jpg" +industry: "port" +categories: + - "port" +relatedProducts: + - "/products/port/cdi-bulk" +keywords: "秦皇岛港股份有限公司,客户案例,岸基科技,port" +description: "河北港口集团核心企业,全球最大大宗干散货公众码头之一,1898年开埠,现有生产泊位71个..." +--- + +秦皇岛港股份有限公司是河北港口集团核心企业,全球最大大宗干散货公众码头之一,1898年开埠,现有生产泊位71个,年设计通过能力3亿吨,主营煤炭、矿石、杂货、油品装卸及物流综合服务,是国家"北煤南运"主枢纽港和京津冀世界级港口群重要组成。 + +## 项目背景 + +1. 纸质作业票效率瓶颈 手写作业票需经3道以上流转环节,数据回传延迟2-4小时,计件工资计算耗时较长。 + +2. 信息孤岛制约协同 商务、调度、库场、费收4套系统独立运行,数据重复录入,信息传递不通畅。 + +3. 件杂货规格多变理货难 1800余种件杂货,现场靠人工抄录规格、残损,错误率高。 + +4. 集团智慧港口战略驱动 《京津冀协同发展规划纲要》交要求电子作业票覆盖率≥90%,系统升级迫在眉睫。 + +## 项目目标 + +1. 全流程电子作业票 通过 PC+APP 双端实时录单、电子签认,实现电子作业票,减少"稽核"录入岗位的人数与工作量。 + +2. 一体化数据中枢 建立统一主数据,打通商务、调度、库场、费收4大模块,业务数据一次性录入全局共享。 + +3. 移动智能理货 利用移动终端扫码、拍照,实现货-垛-车-船多维理货数据关联采集,提高实时性。 + +4. 残损货物现场电子交接 通过移动端拍照、电子签字,实现港方、货方等多方现场实时残损交接。 + +## 项目收益 + +1. 作业效率提升 电子作业票替代纸质录入,数据回传从2-4小时压缩至实时,大幅减少人工错误与重复劳动。 + +2. 业务数据一体 打破4套系统信息孤岛,数据重复录入减少60%以上,跨部门沟通成本显著降低。 + +3. 理货准确率提升 移动终端扫码拍照替代人工抄录,理货错误率大幅下降,实现货-垛-车-船精准关联。 + +4. 决策支持数字化 内置多维报表实时掌握生产动态,电子作业票覆盖率达90%以上,满足交通部智慧港口评价要求。 + +## 相关产品 + +- [岸基云码头散杂货智能操作系统](/products/port/cdi-bulk) diff --git a/nuxt-web/content/cases/rizhao-hongyuan-logistics.md b/nuxt-web/content/cases/rizhao-hongyuan-logistics.md new file mode 100644 index 0000000..ceacda3 --- /dev/null +++ b/nuxt-web/content/cases/rizhao-hongyuan-logistics.md @@ -0,0 +1,46 @@ +--- +title: "日照泓源物流有限公司" +slug: "rizhao-hongyuan-logistics" +summary: "日照泓源物流有限公司创立于2009年,专注中国内贸集装箱物流运输,以沿海航运、陆路集卡及综合物流服务为核心。公司自有101亩物流园区,整合货运代理、集装箱车队、散货车队、场站、散改集园区、港内接驳及加油站七大业务板块。以日照港为核心枢纽,服务网络覆盖国内二十余个大中型港口,构建贯通南北的物流供应链体系。" +cover: "/images/pro/hongyuan.webp" +industry: "fleet" +categories: + - "fleet" + - "freight-forwarder" + - "logistics" + - "warehouse" +relatedProducts: + - "/products/logistics/platform" + - "/products/logistics/vehicle-transport" +keywords: "日照泓源物流有限公司,客户案例,岸基科技,fleet,freight-forwarder,logistics" +description: "创立于2009年,专注中国内贸集装箱物流运输领域,是以沿海集装箱航运、陆地集卡运输及综合物流服务为核心的大型综合性物流企业..." +--- + +日照泓源物流有限公司创立于2009年,专注中国内贸集装箱物流运输,以沿海航运、陆路集卡及综合物流服务为核心。公司自有101亩物流园区,整合货运代理、集装箱车队、散货车队、场站、散改集园区、港内接驳及加油站七大业务板块。以日照港为核心枢纽,服务网络覆盖国内二十余个大中型港口,构建贯通南北的物流供应链体系。 + +## 项目背景 + +1. 系统性能瓶颈制约业务连续性 业务高峰期系统频繁卡死,货代、调度、财务等岗位无法操作,造成业务停滞与运营损失。 + +2. 场站管理功能缺失 泓源场站当前系统仅支持基础货物登记,无法满足精细化管理、多车型调度及数据对接需求,亟需定制化系统。 + +## 项目目标 + +1. 系统性能与流程优化 重构核心架构,解决高峰期卡顿与延迟问题,健全审核与锁单机制,统一数据录入标准,降低信息差错率。 + +2. 场站全链路智能化管理 建设一体化场站管理系统,覆盖集装箱资料、作业、计费等模块,集成移动APP实现现场数据实时回传,构建业务闭环管控平台。 + +3. 智慧化生态能力升级 通过摄像头与闸口联动实现自动化入闸过磅,集成船舶AIS与车辆GPS数据,构建全程物流动态追踪体系,增强数据对接能力。 + +## 项目收益 + +1. 打破信息孤岛强化协同效能 全流程数据汇聚于一体化平台,各环节同步获取订单进展与货物定位,全链路协同效率提升超40%。 + +2. 智能资源调配实现降本增效 精准匹配货物与运力,智能规划联运路径,运输成本平均降低15%,物流资源利用效率显著提升。 + +3. 全流程可视化筑牢安全防线 实时追踪货物位置、温湿度及运输状态,实现“全程可追溯、实时可管控”,物流风险显著下降。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基车辆运输管理系统](/products/logistics/vehicle-transport) diff --git a/nuxt-web/content/cases/rizhao-huahai-shipping.md b/nuxt-web/content/cases/rizhao-huahai-shipping.md new file mode 100644 index 0000000..41c9495 --- /dev/null +++ b/nuxt-web/content/cases/rizhao-huahai-shipping.md @@ -0,0 +1,53 @@ +--- +title: "日照华海国际船舶代理有限公司" +slug: "rizhao-huahai-shipping" +summary: "日照华海国际船舶代理有限公司成立于2003年,主营国际船舶代理、货运代理、报关报检及无船承运业务,同时提供租船订舱、铁路代理、汽车运输等综合服务。公司在日照、青岛、烟台、连云港、天津等全国主要港口设有分支,与数百家航运及贸易企业建立合作关系。" +cover: "/images/huahai.png" +industry: "ship-agent" +categories: + - "ship-agent" + - "freight-forwarder" + - "logistics" +relatedProducts: + - "/products/logistics/platform" + - "/products/logistics/ship-agent" + - "/products/logistics/cargo-agent" +keywords: "日照华海国际船舶代理有限公司,客户案例,岸基科技,ship-agent,freight-forwarder,logistics" +description: "华海集团创立于2003年,主营船舶代理、货物代理、国际远洋及国内沿海运输、租船订舱..." +--- + +日照华海国际船舶代理有限公司成立于2003年,主营国际船舶代理、货运代理、报关报检及无船承运业务,同时提供租船订舱、铁路代理、汽车运输等综合服务。公司在日照、青岛、烟台、连云港、天津等全国主要港口设有分支,与数百家航运及贸易企业建立合作关系。 + +## 项目背景 + +1. 业务规模扩张与传统手工模式的矛盾 23个港口设分子公司,员工近170人,仍依赖手工账,无专属业务系统,多港口协同困难。 + +2. 多系统割裂引发的运营协同瓶颈 业务、财务、审批系统存在壁垒,数据无法跨系统共享,重复工作量大,运营效率大打折扣。 + +3. 企业发展目标驱动的管理服务升级需求 手工模式与系统割裂无法满足高效响应客户需求、精准把控业务风险的发展目标。 + +## 项目目标 + +1. 流程整合目标:实现全业务线上化与跨系统协同 整合船货代业务、财务、审批等核心流程,消除系统壁垒,实现数据实时互通与流程透明可追溯。 + +2. 业务效率目标:提升船货代业务处理与客户服务效率 通过业务模块与客户门户联动,实现订舱、单据处理线上操作,缩短客户需求响应时间。 + +3. 财务管控目标:强化集团财务精准度与成本控制 升级财务管控模块,实现业务与财务数据自动对接,通过费用管控与成本核算降低运营成本。 + +4. 风险与数据目标:建立风险预警机制与数据驱动决策 搭建风险把控模块,实现核心经营指标可视化,支撑管理层数据驱动决策。 + +## 项目收益 + +1. 业务操作规范化与服务质控 NPA-标准化流程减少操作失误,全流程监控及时发现服务问题,客户满意度提升至90分以上。 + +2. 独特业务模式深化客户服务 结合船货代理经验建立独特业务模式,提供精准服务推荐,客户需求响应时间缩短至2小时内。 + +3. 品牌影响力与客户认可提升 高效业务处理提升品牌形象,探索客户系统对接强化依赖度,单票业务处理效率提升40%。 + +4. 信息化管理提效与科学决策 自动化处理减少人工干预错误,核心经营指标可视化率达90%以上,支撑科学决策。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基船舶代理系统](/products/logistics/ship-agent) +- [货运代理系统](/products/logistics/cargo-agent) diff --git a/nuxt-web/content/cases/shanggang-liandai-booking.md b/nuxt-web/content/cases/shanggang-liandai-booking.md new file mode 100644 index 0000000..481f5fc --- /dev/null +++ b/nuxt-web/content/cases/shanggang-liandai-booking.md @@ -0,0 +1,47 @@ +--- +title: "上海上港联合国际船舶代理有限公司" +slug: "shanggang-liandai-booking" +summary: "上海上港联合国际船舶代理有限公司1994年成立,系上海国际港务(集团)股份有限公司全资子公司,上海港主要国际船舶代理服务企业之一。依托上港集团资源与港口优势,专业从事国际国内船舶代理及无船承运等综合物流业务。秉承高效、专业服务理念,为全球船东与货主提供优质服务,积极推动无纸化换单等创新模式,持续提升客户体验与航运服务效率。" +cover: "/images/liandai.png" +industry: "shipping-company" +categories: + - "shipping-company" + - "ship-agent" + - "freight-forwarder" +relatedProducts: + - "/products/ecommerce/freight-booking" + - "/products/logistics/cargo-agent" +keywords: "上海上港联合国际船舶代理有限公司,客户案例,岸基科技,shipping-company,ship-agent,freight-forwarder" +description: "上海上港联合国际船舶代理有限公司订舱平台,提供一站式在线订舱服务..." +--- + +上海上港联合国际船舶代理有限公司1994年成立,系上海国际港务(集团)股份有限公司全资子公司,上海港主要国际船舶代理服务企业之一。依托上港集团资源与港口优势,专业从事国际国内船舶代理及无船承运等综合物流业务。秉承高效、专业服务理念,为全球船东与货主提供优质服务,积极推动无纸化换单等创新模式,持续提升客户体验与航运服务效率。 + +## 项目背景 + +1. 国家政策驱动 上海“十四五”规划及临港政策支持建设国际集装箱舱位交易平台,为订舱平台建设提供政策导向。 + +2. 业务生态完善需求 打造“海运订舱+船代服务”一体化方案,增强客户粘性、降低运营成本,突破同质化竞争困局。 + +3. 拓展营收边界培育新增长点 传统船代利润空间被压缩,订舱平台可延伸增值服务并衍生数据服务,支撑可持续发展。 + +## 项目目标 + +1. 打造公司特色订舱平台 提供订舱、舱单申报、提单确认等全流程服务,通过EDI对接船公司实现自动确认。 + +2. 互联网技术驱动品牌升级 以“互联网+海运”整合资源与服务,优化线上体验,提升客户满意度与黏度。 + +3. 智能化应用实现降本增效 运用邮件识别、流程控制、EDI对接等技术,实现订舱、申报、确认等业务智能化。 + +## 项目收益 + +1. 流程化操作降低运营成本 单票订舱处理时间从2.5小时缩短至1小时,人力成本降低约40%。 + +2. 智能化服务提升增值收益 基于数据沉淀延伸供应链可视化管理,通过订阅费创造额外收益来源。 + +3. 数据自动化消除信息滞后 单据流转时间从5小时缩短至10分钟,货主获取舱位信息从1天压缩至1小时。 + +## 相关产品 + +- [海运订舱平台](/products/ecommerce/freight-booking) +- [货运代理系统](/products/logistics/cargo-agent) diff --git a/nuxt-web/content/cases/shanggang-liandai-integration.md b/nuxt-web/content/cases/shanggang-liandai-integration.md new file mode 100644 index 0000000..6818056 --- /dev/null +++ b/nuxt-web/content/cases/shanggang-liandai-integration.md @@ -0,0 +1,45 @@ +--- +title: "上海上港联合国际船舶代理有限公司" +slug: "shanggang-liandai-integration" +summary: "上海上港联合国际船舶代理有限公司1994年成立,系上海国际港务(集团)股份有限公司全资子公司,上海港主要国际船舶代理服务企业之一。依托上港集团资源与港口优势,专业从事国际国内船舶代理及无船承运等综合物流业务。秉承高效、专业服务理念,为全球船东与货主提供优质服务,积极推动无纸化换单等创新模式,持续提升客户体验与航运服务效率。" +cover: "/images/liandai.png" +industry: "ship-agent" +categories: + - "ship-agent" + - "shipping-company" + - "freight-forwarder" +relatedProducts: + - "/products/logistics/ship-agent" +keywords: "上海上港联合国际船舶代理有限公司,客户案例,岸基科技,ship-agent,shipping-company,freight-forwarder" +description: "1994年成立,系上海国际港务(集团)股份有限公司全资子公司,上海港主要国际船舶代理服务企业之一..." +--- + +上海上港联合国际船舶代理有限公司1994年成立,系上海国际港务(集团)股份有限公司全资子公司,上海港主要国际船舶代理服务企业之一。依托上港集团资源与港口优势,专业从事国际国内船舶代理及无船承运等综合物流业务。秉承高效、专业服务理念,为全球船东与货主提供优质服务,积极推动无纸化换单等创新模式,持续提升客户体验与航运服务效率。 + +## 项目背景 + +1. 业务发展驱动系统升级 业务持续扩张暴露传统模式局限,亟需整合资源建立船货一体化系统,支撑未来发展战略。 + +2. 客户体验升级需求倒逼服务转型 客户需求转向全程透明化、个性化及高效化,需提供港口/船舶/单证数据透明服务,定制优先审单等专属方案,提升满意度与竞争力。 + +3. 技术革新驱动智能化升级 AI等技术引领行业变革,需融合先进技术实现调度、单证、费用等智能化转型。 + +## 项目目标 + +1. 打造流程最优、功能最全的一体化操作体系 聚焦船代货代全链条需求,搭建覆盖业务受理、操作执行、结算管理、客户服务的一体化系统。 + +2. 构建系统核心数据支撑枢纽 建设全业务链统一数据服务中心,打破数据壁垒,建立业务数据全程节点跟踪机制。 + +3. 实现完整电子商务操作模式 推行线上受理+预约模式,整合核心功能,打破时空限制,减少人工干预,优化服务体验。 + +## 项目收益 + +1. 船货一体化协同高效运营 通打破传统系统独立壁垒,工作人员单日系统操作时间缩短20%,实现跨业务高效协作。 + +2. 财务智能化降本提效 单票费用计算时间从15分钟缩短至1分钟,准确率从92%提升至99.8%,降低人工成本与差错风险。 + +3. 多维度统计支撑精准决策 识别高成本低贡献客户,调整策略后服务成本降低15%,提升整体客户盈利水平。 + +## 相关产品 + +- [岸基船舶代理系统](/products/logistics/ship-agent) diff --git a/nuxt-web/content/cases/shanghai-haihua-shipping.md b/nuxt-web/content/cases/shanghai-haihua-shipping.md new file mode 100644 index 0000000..257761b --- /dev/null +++ b/nuxt-web/content/cases/shanghai-haihua-shipping.md @@ -0,0 +1,50 @@ +--- +title: "上海海华轮船有限公司" +slug: "shanghai-haihua-shipping" +summary: "上海海华轮船有限公司成立于1990年,系上海锦江航运集团全资国有航运企业,专注近洋集装箱班轮运输。总部设于上海,依托上港集团资源,构建覆盖日本、台湾、香港及东南亚二十余港口的运输网络,日本航线密度与覆盖率居行业前列。截至2025年,自营船舶17艘(总运力11000TEU),国内集装箱船队规模排名第8位。2024年净利润3.66亿元,蝉联“国际班轮运输资质信誉良好企业”,提供精确到小时的HDS快速交货服务。" +cover: "/images/haihua.jpg" +industry: "general" +categories: +relatedProducts: + - "/products/shipping/company" + - "/products/shipping/boat" +keywords: "上海海华轮船有限公司,客户案例,岸基科技" +description: "1990年成立,系上海锦江航运(集团)股份有限公司全资国有航运企业,专注近洋集装箱班轮运输..." +--- + +上海海华轮船有限公司成立于1990年,系上海锦江航运集团全资国有航运企业,专注近洋集装箱班轮运输。总部设于上海,依托上港集团资源,构建覆盖日本、台湾、香港及东南亚二十余港口的运输网络,日本航线密度与覆盖率居行业前列。截至2025年,自营船舶17艘(总运力11000TEU),国内集装箱船队规模排名第8位。2024年净利润3.66亿元,蝉联“国际班轮运输资质信誉良好企业”,提供精确到小时的HDS快速交货服务。 + +## 项目背景 + +1.系统老旧操作繁琐 单票业务操作耗时较行业均值高25%,年业务量增长15%,老旧系统无法支撑扩张需求。 + +2. 系统功能适配性缺口 系统功能固化,部分环节需线下补录单据,导致业务链条断裂,与快速响应目标相悖。 + +3. 与集团财务协同壁垒 业务数据需人工导出二次录入财务系统,日均耗时3小时,易出现数据偏差。 + +4. 数据统计依赖人工的决策支撑短板 核心指标需手动汇总,每月统计工作超5个工作日,无法支撑管理层实时决策。 + +## 项目目标 + +1. 缩短操作耗时与全线上化 优化操作逻辑,实现舱位分配、货流跟踪等核心流程全线上化,消除业务链条断裂。 + +2.打通财务数据接口 搭建业务与财务系统对接接口,实现数据自动传输与发票自动识别,替代人工录入。 + +3.完善统计与实时支撑 新增智能统计模块,实现核心指标报表实时生成与可视化呈现,支撑即时决策。 + +4. 降低人工与资源消耗 通过系统替代人工操作,优化流程降低线下单据打印与存储耗材成本。 + +## 项目收益 + +1. 运营效率提升 单票业务操作耗时降低30%,日均财务处理时间从3小时压缩至0.5小时以内。 + +2. 成本精准管控 数据统计与财务对接环节人工投入减少20%,线下单据成本降低10%,实现年度降本。 + +3. 数据风险降低 数据对接准确率达99.9%以上,减少人工录入错误,未发生税务合规风险。 + +4. 客户体验优化 发票自动生成与进度实时查询,客户满意度提升,沿海航线业务量稳步增长。 + +## 相关产品 + +- [岸基船公司运营管理系统](/products/shipping/company) +- [岸基船舶管理系统](/products/shipping/boat) diff --git a/nuxt-web/content/cases/shanghai-hanghua-cloud.md b/nuxt-web/content/cases/shanghai-hanghua-cloud.md new file mode 100644 index 0000000..ad8e13f --- /dev/null +++ b/nuxt-web/content/cases/shanghai-hanghua-cloud.md @@ -0,0 +1,47 @@ +--- +title: "上海航华国际船务代理有限公司" +slug: "shanghai-hanghua-cloud" +summary: "上海航华国际船务代理有限公司,2000年4月成立的国有控股国际船舶代理企业,由上海国际港务(集团)股份有限公司、上海航运交易所共同投资组建。具备国家交通部批准的甲级公共船舶代理资质及无船承运人(NVOCC)资格。总部位于上海市虹口区黄浦路99号28层,浦东港建路、民生路设办公点,业务覆盖全国沿海及长江流域主要口岸。" +cover: "/images/logo5.jpg" +industry: "ship-agent" +categories: + - "ship-agent" + - "shipping-company" + - "freight-forwarder" +relatedProducts: + - "/products/ecommerce/freight-booking" + - "/products/logistics/cargo-agent" +keywords: "上海航华国际船务代理有限公司,客户案例,岸基科技,ship-agent,shipping-company,freight-forwarder" +description: "上海航华国际船务代理有限公司海运电商云服务平台,提供数字化航运服务..." +--- + +上海航华国际船务代理有限公司,2000年4月成立的国有控股国际船舶代理企业,由上海国际港务(集团)股份有限公司、上海航运交易所共同投资组建。具备国家交通部批准的甲级公共船舶代理资质及无船承运人(NVOCC)资格。总部位于上海市虹口区黄浦路99号28层,浦东港建路、民生路设办公点,业务覆盖全国沿海及长江流域主要口岸。 + +## 项目背景 + +1. 跨境电商驱动升级 智能集装箱市场规模5年增长超300%,货物全程可视化需求激增,需对接亚马逊等电商平台。% + +2. 操作效率低下与成本高企 手工输单耗时2-3小时/单,错误率3.2%;财务结算周期长达7天,人工成本占运营成本30%以上。 + +3. 客户体验与服务质量瓶颈 客户无法实时查询进度与费用,投诉量居高不下;加急申报响应24小时,客户满意度仅65%。 + +## 项目目标 + +1. 全链条流程自动化升级 引入RPA与OCR实现船公司订舱全链路自动化,集成EDI一键导入,系统自动校验减少重复返工。 + +2. 跨平台数据无缝互通 开放API对接船公司、码头及海关系统,放箱业务升级为单一平台操作,消除多平台跳转。 + +## 项目收益 + +1. 操作便捷性获客户高度评价 提单样本制作效率提升80%,订舱处理时间压缩至15分钟/单,客户操作体验显著优化。 + +2. 全流程自动化驱动效率跃升 人均处理订单量同比增长120%,运营成本降低35%,实现规模与效益双突破。 + +3. 合规成本精准管控 系统自动校验规避海关罚金超20万元,区块链存证使举证时间节省50%以上。 + +4. 新兴市场高效渗透 2025年新增37家客户(40%为高附加值客户),成功开拓增量业务蓝海。 + +## 相关产品 + +- [海运订舱平台](/products/ecommerce/freight-booking) +- [货运代理系统](/products/logistics/cargo-agent) diff --git a/nuxt-web/content/cases/shanghai-hanghua-ship-agent.md b/nuxt-web/content/cases/shanghai-hanghua-ship-agent.md new file mode 100644 index 0000000..4cea0a9 --- /dev/null +++ b/nuxt-web/content/cases/shanghai-hanghua-ship-agent.md @@ -0,0 +1,49 @@ +--- +title: "上海航华国际船务代理有限公司" +slug: "shanghai-hanghua-ship-agent" +summary: "上海航华国际船务代理有限公司成立于2000年,由上港集团、上海航运交易所共同投资组建,具备甲级公共船舶代理及NVOCC资质。代理长荣海运、达飞轮船等多家国际船公司,集装箱代理量占上海港外贸吞吐量近10%,滚装船代理量占55%以上。" +cover: "/images/logo5.jpg" +industry: "ship-agent" +categories: + - "ship-agent" + - "shipping-company" + - "freight-forwarder" +relatedProducts: + - "/products/logistics/ship-agent" +keywords: "上海航华国际船务代理有限公司,客户案例,岸基科技,ship-agent,shipping-company,freight-forwarder" +description: "2000年4月成立的国有控股国际船舶代理企业,由上海国际港务(集团)股份有限公司、上海航运交易所共同投资..." +--- + +上海航华国际船务代理有限公司成立于2000年,由上港集团、上海航运交易所共同投资组建,具备甲级公共船舶代理及NVOCC资质。代理长荣海运、达飞轮船等多家国际船公司,集装箱代理量占上海港外贸吞吐量近10%,滚装船代理量占55%以上。 + +## 项目背景 + +1. 代理业务量激增的管理压力 年代理集装箱占上海港外贸吞吐量近10%,国际中转业务处理时效长达2-3小时/单,难以满足日均超500单峰值需求。 + +2. 多环节协同复杂性挑战 涉及多方协作,跨部门沟通成本占运营成本25%以上,放箱操作失误率达15%。 + +3. 头部客户定制化服务需求 长荣海运、达飞轮船等要求差异化解决方案。例如为长荣开发的"自动化结费系统"通过RPA自动匹配运费数据,结算周期从7天压缩至2天,准确率提升至99.9%。 + +## 项目目标 + +1. 跨部门协同成本锐减 整合船公司、码头、海关等系统数据,实现放箱申请对接与财务快速结算,压缩结算周期。 + +2. 人才结构升级与组织效能跃升 应用RPA、OCR实现订舱、申报、放箱、签发全链条自动化,降低人工错误率与处理时效。 + +3. 行业标准制定与生态共建突破 嵌入海关校验规则与IMO标准,实现申报状态自动监测与逾期预警,推动行业标准制定。 + +4. 核心财务成果 整合多式联运,推动“陆改水”业务增长,提升增值服务收入占比,拓展高附加值客户。 + +## 项目收益 + +1. 跨部门协同成本锐减 整合船公司、码头、海关等数据接口,放箱业务实现单一平台操作,数据重复录入率从60%降至5%,操作失误率下降15%。财务结算周期从7天压缩至2天,准确率达99.9%。 + +2. 人才结构升级与组织效能跃升 基础操作岗位减少40%,转向培养“业务+技术”复合型人才。组建15人内部开发团队自主完成70%系统迭代,培养20余名RPA开发能手,推动30余项流程优化。 + +3. 行业标准制定与生态共建突破 牵头制定《长三角港航数据交换标准》,与宁波港、苏州港实现舱单数据实时同步,区域内中转时效缩短20%。船代系统纳入上海国际航运中心“智慧港航”示范工程。 + +4. 核心财务成果 系统直接节省人力成本超800万元,运营成本下降18%。为客户创造间接价值超3000万元,2025年投资回报率达1.5:1。 + +## 相关产品 + +- [岸基船舶代理系统](/products/logistics/ship-agent) diff --git a/nuxt-web/content/cases/shanghai-penghua-platform.md b/nuxt-web/content/cases/shanghai-penghua-platform.md new file mode 100644 index 0000000..deb9fb6 --- /dev/null +++ b/nuxt-web/content/cases/shanghai-penghua-platform.md @@ -0,0 +1,43 @@ +--- +title: "上海鹏华船务有限公司" +slug: "shanghai-penghua-platform" +summary: "上海鹏华船务有限公司成立于2004年,是中国首家公共船舶代理合资企业,由中国上海外轮代理有限公司(持股51%)与华林船务集团(香港,持股49%)共同投资组建。公司以上海总部为核心,分支机构遍布大连、天津、青岛、宁波、厦门等主要沿海港口,致力于为全球客户提供全方位、高效率的国际船舶代理服务。" +cover: "/images/shanghaipenghua.jpg" +industry: "ship-agent" +categories: + - "ship-agent" + - "shipping-company" + - "freight-forwarder" +relatedProducts: + - "/products/logistics/ship-agent" +keywords: "上海鹏华船务有限公司,客户案例,岸基科技,ship-agent,shipping-company,freight-forwarder" +description: "2004年成立的中国首家公共船舶代理合资企业,致力于为全球客户提供全方位、高效率国际船舶代理服务..." +--- + +上海鹏华船务有限公司成立于2004年,是中国首家公共船舶代理合资企业,由中国上海外轮代理有限公司(持股51%)与华林船务集团(香港,持股49%)共同投资组建。公司以上海总部为核心,分支机构遍布大连、天津、青岛、宁波、厦门等主要沿海港口,致力于为全球客户提供全方位、高效率的国际船舶代理服务。 + +## 项目背景 + +1. 系统升级改造赋能新业务发展 业务持续拓展暴露原有系统功能局限与效率不足,需依托前沿技术推进升级,助力业务高效落地。 + +2. 业务流程优化实现降本增效 市场竞争加剧凸显传统船代流程冗余与信息壁垒问题,需系统性优化全链条,实现成本精准管控。 + +## 项目目标 + +1. 数字化赋能精简流程环节 搭建一体化线上操作平台,整合核心业务模块,实现单据线上提交、审核与流转全流程数字化。 + +2. 打通信息壁垒强化多方协同 推行标准化数据格式与沟通机制,确保与船公司、港口、海关等各方业务衔接顺畅。 + +3. 强化风险管控降低运营损耗 建立标准化风险处理流程与预案,实时跟踪动态变化,及时预警潜在风险。 + +## 项目收益 + +1. 系统操作效率显著提升 船代业务操作周期缩短30%以上,单据处理准确率提升至99%以上,客户满意度显著增强。 + +2. 数据传输便捷性与准确性突破 多方数据全流程一键传输,传递时效从小时级压缩至分钟级,大幅降低跨部门协调成本。 + +3. 客户满意度大幅跃升 客户满意度从85%提升至95%以上,投诉率大幅下降,塑造优质品牌形象。 + +## 相关产品 + +- [岸基船舶代理系统](/products/logistics/ship-agent) diff --git a/nuxt-web/content/cases/shanghai-port-coastal-system.md b/nuxt-web/content/cases/shanghai-port-coastal-system.md new file mode 100644 index 0000000..caaaf69 --- /dev/null +++ b/nuxt-web/content/cases/shanghai-port-coastal-system.md @@ -0,0 +1,49 @@ +--- +title: "上海港船务代理有限公司" +slug: "shanghai-port-coastal-system" +summary: "上海港船务代理有限公司成立于1993年,植根上海国际航运中心,专注水上运输领域的专业船舶代理服务。为国内外船公司提供全方位、一站式港口代理服务,搭建船东、租家与上海港各口岸单位的核心桥梁,致力于提供安全、高效、经济的解决方案。" +cover: "/images/shanghaigang.png" +industry: "shipping-company" +categories: + - "shipping-company" + - "ship-agent" + - "freight-forwarder" +relatedProducts: + - "/products/logistics/ship-agent" +keywords: "上海港船务代理有限公司,客户案例,岸基科技,shipping-company,ship-agent,freight-forwarder" +description: "1993年8月成立,植根上海并深度依托国际航运中心优势,专注水上运输领域的专业船舶代理服务..." +--- + +上海港船务代理有限公司成立于1993年,植根上海国际航运中心,专注水上运输领域的专业船舶代理服务。为国内外船公司提供全方位、一站式港口代理服务,搭建船东、租家与上海港各口岸单位的核心桥梁,致力于提供安全、高效、经济的解决方案。 + +## 项目背景 + +1. 政策监管双轮驱动 习近平总书记指示建设智慧港口,上海“十四五”规划明确数字化转型;海关、海事推进“单一窗口”无纸化改革,传统模式已无法适应监管要求。 + +2. 传统操作模式痛点突出 海关、海事局、边检等口岸部门持续推进"单一窗口"、无纸化通关改革。传统纸质单证与人工跑单模式已无法适应监管要求。本系统是实现与官方监管平台高效自动对接的技术基础。 + +3. 科技创新与行业趋势倒逼转型 AI、区块链、5G等技术快速发展,全球航运业智能化浪潮下,建设数智化船舶代理系统是顺应趋势的必然选择。 + +## 项目目标 + +1. 单证自动化与口岸协同升级 实现核心单证制作处理自动化,与口岸“单一窗口”系统无缝API对接,建立船舶在港全生命周期实时看板。 + +2. 服务在线化与数据透明化 提供统一线上服务门户,实现服务请求在线化、状态自助查询,开放船舶动态、装卸进度等数据。 + +3. 资源调度优化与成本精细化 基于算法模型提供引航、拖轮等智能推荐方案,建立港口使费动态预估与监控模型。 + +4. 数据驱动战略决策 搭建综合统计分析平台,支持业务数据同比环比分析,优化调度、布局及资源倾斜。 + +## 项目收益 + +1. 直接经济收益 缩短船舶在港停留时间与单证流转速度,释放产能;有效规避滞期费、增加速遣费,守护客户利润。 + +2. 内部运营收益 消除“信息黑洞”,风险从被动响应转为主动预警,运营数据转化为核心数据资产支撑科学决策。 + +3. 客户市场收益 提供端到端全程可视化体验,客户可实时追踪船舶动态与费用明细,形成差异化竞争优势。 + +4. 战略生态收益 深度融入上海港"智慧港口"融入上海港智慧港口数字生态,增强客户供应链韧性,树立创新者与技术领导者品牌形象。 + +## 相关产品 + +- [岸基船舶代理系统](/products/logistics/ship-agent) diff --git a/nuxt-web/content/cases/shanghai-xinhai-freight.md b/nuxt-web/content/cases/shanghai-xinhai-freight.md new file mode 100644 index 0000000..24639e9 --- /dev/null +++ b/nuxt-web/content/cases/shanghai-xinhai-freight.md @@ -0,0 +1,53 @@ +--- +title: "上海新海国际船舶代理有限公司" +slug: "shanghai-xinhai-freight" +summary: "上海新海国际船舶代理有限公司,1993年3月29日成立于上海,专注提供全方位国际船舶代理服务。作为连接船东、租家、港口及相关方的关键纽带,致力于为全球客户提供高效、可靠、合规的一站式航运解决方案。依托上海港世界领先集装箱港口的区位优势,业务网络广泛覆盖,成为国际航运产业链中不可或缺的重要环节。" +cover: "/images/xinhai.jpg" +industry: "ship-agent" +categories: + - "ship-agent" + - "shipping-company" + - "freight-forwarder" +relatedProducts: + - "/products/logistics/ship-agent" + - "/products/logistics/cargo-agent" +keywords: "上海新海国际船舶代理有限公司,客户案例,岸基科技,ship-agent,shipping-company,freight-forwarder" +description: "1993年3月29日成立于上海,专注提供全方位国际船舶代理服务,作为连接船东、租家、港口及相关方的关键纽带..." +--- + +上海新海国际船舶代理有限公司,1993年3月29日成立于上海,专注提供全方位国际船舶代理服务。作为连接船东、租家、港口及相关方的关键纽带,致力于为全球客户提供高效、可靠、合规的一站式航运解决方案。依托上海港世界领先集装箱港口的区位优势,业务网络广泛覆盖,成为国际航运产业链中不可或缺的重要环节。 + +## 项目背景 + +1. 经济全球化与供应链一体化 全球超80%国际贸易通过海运完成,船代是保障船舶在港口无缝衔接、供应链畅通的核心环节。 + +2. 国际贸易复杂性催生代理需求 船舶跨国航行涉及多国法律与规定,船东难以自建团队,对专业化本地化代理服务存在刚性需求。 + +3. 航运业专业化与成本控制 航运公司将港口操作等非核心业务外包,符合专业化分工趋势,显著降低船公司固定成本。 + +4. 安全环保标准与港口管理趋严 IMO对船舶安全环保要求日益严格,港口规定频繁更新,船代需确保合规操作,规避延误与罚款。 + +## 项目目标 + +1. 业务流程数字化提升运营效率 实现委托接收至费用结算全流程线上化,整合船务、箱管、报关模块,数据一处采集全流程共享。 + +2. 优化客户服务体验增强粘性 搭建一站式服务平台支持在线订舱、货物跟踪,提供移动端访问与消息订阅定制服务。 + +3. 强化成本合规管控降低风险 构建标准化港使费数据资产库,打通财务与第三方支付系统,适配环保及口岸监管政策。 + +4. 数据驱动决策提升战略竞争力 搭建综合统计分析平台,支持业务数据同比环比分析,优化船舶调度与资源倾斜。 + +## 项目收益 + +1. 效率最优化创造直接经济价值 减少船舶非生产性停泊时间,单船在港停时缩短15%以上,对突发状况迅速响应,最大限度降低船期影响。 + +2. 成本可控透明化保障客户权益 依托供应商网络与议价能力节约开支,港口使费平均降低8%-10%,交付详细准确的结算清单,所有费用有据可查。 + +3. 数据驱动决策强化战略竞争力 支持运能利用率、客户贡献度等指标分析,单证处理准确率达99.5%以上,优化船舶调度与资源倾斜。 + +4. 打破信息壁垒深化协同效能 实现与海关、海事等口岸数据互通,数据传递时效从小时级压缩至分钟级,打通船东、港口、货运上下游协同。 + +## 相关产品 + +- [岸基船舶代理系统](/products/logistics/ship-agent) +- [货运代理系统](/products/logistics/cargo-agent) diff --git a/nuxt-web/content/cases/smart-wuzhou-port.md b/nuxt-web/content/cases/smart-wuzhou-port.md new file mode 100644 index 0000000..37f0d77 --- /dev/null +++ b/nuxt-web/content/cases/smart-wuzhou-port.md @@ -0,0 +1,51 @@ +--- +title: "梧州市港务发展集团有限公司" +slug: "smart-wuzhou-port" +summary: "梧州市港务发展集团是市直属国有独资企业,注册资本10亿元。作为梧州市构建“水公铁空”多式联运体系的核心载体,肩负打造亿吨西江门户枢纽港与塑造“梧州港”品牌的战略使命。集团统筹全市港口码头及物流资源,2022年启动智慧梧州港综合信息服务平台建设,以数字化赋能港口运营,全面提升西江航运枢纽能级。" +cover: "/images/wuzhou.png" +industry: "shipping-company" +categories: + - "shipping-company" +relatedProducts: + - "/products/logistics/platform" + - "/products/logistics/vehicle-transport" +keywords: "梧州市港务发展集团有限公司,客户案例,岸基科技,shipping-company" +description: "市直属国有独资企业,2022年3月注册成立,注册资本10亿元,打造智慧梧州港..." +--- + +梧州市港务发展集团是市直属国有独资企业,注册资本10亿元。作为梧州市构建“水公铁空”多式联运体系的核心载体,肩负打造亿吨西江门户枢纽港与塑造“梧州港”品牌的战略使命。集团统筹全市港口码头及物流资源,2022年启动智慧梧州港综合信息服务平台建设,以数字化赋能港口运营,全面提升西江航运枢纽能级。 + +## 项目背景 + +1. 区域竞争格局固化 港口作业区主要由外部企业主导运营,资源整合面临外部压力与内部碎片化双重挑战。 + +2. 数字化基建滞后 现有系统设备陈旧、人工依赖度高,制约航道通行效率与安全保障能力。 + +3. 多式联运调度缺位 缺乏统一调度平台,联运依赖线下协同,找船找车困难、排队耗时长,作业效能持续承压。 + +4. 信息共享与运营模式掣肘 各作业区系统独立运行,数据难以互通,重复投入严重;同时依赖纸质单据与静态地图操作,智能化升级需求迫切。 + +## 项目目标 + +1. 效率提升:实现“一单制”服务 提供多式联运线上委托,实现一次委托、一单到底、一票结算的服务模式。 + +2. 协同共享:搭建物流数据中枢 整合港口、物流、船公司、货代及政府航道、水文、气象等数据,实现跨企业数据共享。 + +3. 决策驱动:建设大数据分析平台 覆盖吞吐量、作业区业务量等关键指标,挖掘数据价值,优化港口资源配置。 + +4.安全护航:构建全程监管体系 实现企业入驻审核、流程监管及作业区实时监控,保障运输与作业安全。 + +## 项目收益 + +1. 贸易撮合升级 支持货源与采购需求一键发布,提供在线找货、智能推荐与精准筛选,实现一站式在线交易、多式联运与供应链金融。 + +2. 船货通平台构建 连接货主与承运方,消除找船、找货信息壁垒,提升货源与运力匹配效率,降低线上交易风险。 + +3. 三维数据赋能港口管理 实时推送水文、气象、水闸拥堵等数据,三维化呈现船舶靠泊量、货物装卸量等指标。 + +4. 全流程体验优化 一单制支持智能报价与可视化追踪,小程序实现无纸化交接,AI实时预警安全隐患。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基车辆运输管理系统](/products/logistics/vehicle-transport) diff --git a/nuxt-web/content/cases/tangshan-bigdata-platform.md b/nuxt-web/content/cases/tangshan-bigdata-platform.md new file mode 100644 index 0000000..dfd0b39 --- /dev/null +++ b/nuxt-web/content/cases/tangshan-bigdata-platform.md @@ -0,0 +1,38 @@ +--- +title: "唐山港口实业集团有限公司" +slug: "tangshan-bigdata-platform" +summary: "唐山港口实业集团有限公司是河北省港口整合平台——河北港口集团核心企业,负责运营唐山港'三港四区'中的京唐港区与曹妃甸港区,泊位92个,年吞吐量逾3亿吨。集团以智慧、绿色、枢纽港口为战略方向,2025年建成省级大数据示范港,为京津冀世界级城市群提供硬核物流支撑。" +cover: "/images/tangshangang.jpg" +industry: "port" +categories: + - "port" +relatedProducts: +keywords: "唐山港口实业集团有限公司,客户案例,岸基科技,port" +description: "河北省港口整合平台核心企业,负责运营唐山港\'三港四区\'中的京唐港区与曹妃甸港区,年吞吐量逾3亿吨..." +--- + +唐山港口实业集团有限公司是河北省港口整合平台——河北港口集团核心企业,负责运营唐山港"三港四区"中的京唐港区与曹妃甸港区,泊位92个,年吞吐量逾3亿吨。集团以智慧、绿色、枢纽港口为战略方向,2025年建成省级大数据示范港,为京津冀世界级城市群提供硬核物流支撑。 + +## 项目背景 + +1. 政策驱动 "十四五"数字交通规划要求港口构建统一数据底座,唐港集团需对接部、省、市三级监管平台,人工上报模式已无法满足实时、精准要求。 + +2. 数据孤岛 三港四区8大生产系统独立运行,船舶、库场、箱量等关键指标口径不一,领导决策仍依赖Excel拼接。 + +3. 市场压力 津唐集装箱航线同质化竞争激烈,集团提出"散改集"增量目标,却缺少货源来源与流向的可视化数据,无法精准营销。 + +## 项目目标 + +1. 建立统一数据中台 完成三港四区生产类数据全量入湖,为数据应用与分析提供单一可信源。 + +2. 打造两级驾驶舱与平台对接 集团级与港区级驾驶舱实时呈现经营与生产数据,开发API自动向河北港口集团平台推送核心指标。 + +3. 货源流向分析与精准营销 通过RFM模型输出高价值货源地地图,帮助市场部制定“一港一策”营销方案。 + +## 项目收益 + +1. 决策效率提升 集团领导手机端实时查看各港区经营情况,告别Excel拼接,决策响应速度显著加快。 + +2. 形成统一的数据中心 三港四区生产数据全量归集与标准化治理,数据质量自动监控预警,保障数据资产可信度。 + +3. 指挥中心大屏多维度数据矩阵展示 关键运营指标实时投射大屏,数字人自动生成动态分析报告,为管理层提供智能决策支持。 diff --git a/nuxt-web/content/cases/tangshan-haitong-shipping.md b/nuxt-web/content/cases/tangshan-haitong-shipping.md new file mode 100644 index 0000000..9d9c35f --- /dev/null +++ b/nuxt-web/content/cases/tangshan-haitong-shipping.md @@ -0,0 +1,53 @@ +--- +title: "唐山海港海通海运代理有限公司" +slug: "tangshan-haitong-shipping" +summary: "唐山海港海通海运代理有限公司,2002年6月成立于唐山海港开发区,深耕海运代理领域二十余载。核心业务为国内及国际货物运输代理、普通货运、集装箱运输,提供一站式专业物流解决方案。" +cover: "/images/haitong.png" +industry: "freight-forwarder" +categories: + - "freight-forwarder" + - "logistics" + - "fleet" +relatedProducts: + - "/products/logistics/platform" + - "/products/logistics/cargo-agent" + - "/products/logistics/vehicle-transport" +keywords: "唐山海港海通海运代理有限公司,客户案例,岸基科技,freight-forwarder,logistics,fleet" +description: "2002年6月成立于唐山海港开发区,深耕海运代理领域二十余载,核心业务为货物运输代理..." +--- + +唐山海港海通海运代理有限公司,2002年6月成立于唐山海港开发区,深耕海运代理领域二十余载。核心业务为国内及国际货物运输代理、普通货运、集装箱运输,提供一站式专业物流解决方案。 + +## 项目背景 + +1. 原有系统不完善 公司目前使用的系统存在信息链断点、物流链通而不畅、服务链空白缺位等瓶颈问题。 + +2. 多数据源导致数据失真 大量数据存放于Excel,数据来源不统一,极易失真,影响领导决策。 + +3.降本增效需求迫切 疫情期间业务萎缩,需新建系统提升效率、降低成本,实现跨越式发展。 + +## 项目目标 + +1. 全域业务数字化覆盖 重构信息系统,推进业务无纸化,全面覆盖物流业务,实时把控经营情况与业务风险。 + +2. 三流合一协同平台 整合陆运+海运全链路,以订单维度实时跟踪,支持客服与管理层动态监控。 + +3. 移动端敏捷作业 通通过公众号实现外勤移动办公,支持客户录入、在线下单、动态跟踪及审批等功能。 + +4. 数据治理基础建设 建立综合物流一体化平台,实现数据流、物流、资金流统一,为新业务拓展奠定基础。 + +## 项目收益 + +1. 操作自动化降本增效 全流程标准化操作,减少人员工时与经验依赖,操作效率提升30%以上。 + +2. 财务精准化与溯源可控 费用信息集中存储全程留痕,财务数据准确率提升至99%以上,问题可快速追溯。 + +3. 数据资产统一赋能决策 作为物流全链唯一数据源,保障数据准确有效,管理层决策响应时间缩短40%。 + +4. 管理精益化效率提升 精简操作环节,弥补管理漏洞,人工成本降低20%,工作效率显著提升。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [货运代理系统](/products/logistics/cargo-agent) +- [岸基车辆运输管理系统](/products/logistics/vehicle-transport) diff --git a/nuxt-web/content/cases/tangshan-ore-terminal.md b/nuxt-web/content/cases/tangshan-ore-terminal.md new file mode 100644 index 0000000..cead24d --- /dev/null +++ b/nuxt-web/content/cases/tangshan-ore-terminal.md @@ -0,0 +1,49 @@ +--- +title: "唐山港集团有限公司" +slug: "tangshan-ore-terminal" +summary: "唐山港集团有限公司是中国北方重要的综合性港口企业,位于河北省唐山市,拥有煤炭、矿石、集装箱、液体化工等多种专业化码头。公司致力于推进智慧港口建设,推动数字化转型,提升客户服务效率与港口运营智能化水平。近年来,依托信息化平台建设,实现了生产调度、物流协同、客户服务等多环节的数字化升级,连续多年货物吞吐量位居全国前列,是环渤海经济圈的重要物流枢纽。" +cover: "/images/tangshangang.jpg" +industry: "port" +categories: + - "port" +relatedProducts: + - "/products/ecommerce/obh" +keywords: "唐山港集团有限公司,客户案例,岸基科技,port" +description: "唐山港集团有限公司是中国北方重要的综合性港口企业,拥有煤炭、矿石、集装箱、液体化工等多种专业化码头..." +--- + +唐山港集团有限公司是中国北方重要的综合性港口企业,位于河北省唐山市,拥有煤炭、矿石、集装箱、液体化工等多种专业化码头。公司致力于推进智慧港口建设,推动数字化转型,提升客户服务效率与港口运营智能化水平。近年来,依托信息化平台建设,实现了生产调度、物流协同、客户服务等多环节的数字化升级,连续多年货物吞吐量位居全国前列,是环渤海经济圈的重要物流枢纽。 + +## 项目背景 + +1. 政策推动与无纸化趋势 国家要求港口加快智能化转型,环保政策推行电子化办单,传统纸质流程已无法满足要求。 + +2. 客户办单效率低下 依赖人工窗口办理,货代、车队需多次往返现场,流程繁琐耗时长,客户满意度较低。 + +3. 系统孤岛数据不通 TOS、财务、门禁、海关等系统相互独立,数据无法互通,导致信息滞后与重复录入。 + +4. 服务模式陈旧缺乏可视化 客户无法实时掌握货物状态、费用明细等关键信息,服务透明度不足,投诉率较高。 + +## 项目目标 + +1. 构建统一线上服务平台 建设“网上业务大厅”作为统一入口,实现船舶申报、货物办单、费用结算等全流程线上办理。 + +2. 打通内外系统数据链路 与TOS、财务、电子签章、海关等系统深度集成,实现数据自动流转,消除信息孤岛。 + +3. 实现全流程无纸化与电子签章 引入电子签章技术,支持在线签署合同与单据,达成“零跑腿、零纸质”办单目标。 + +4. 支持多终端移动办公 配套微信公众号、小程序及APP,支持司机、货代通过手机完成派车、查询、支付等操作。 + +## 项目收益 + +1. 办单效率大幅提升 审批时间由数小时缩短至分钟级,全年发起有效流程18.6万条,同比增长35.6%。 + +2. 全面实现无纸化运营 累计使用电子签章6.8万次,合同电子化率达80%以上,大幅减少纸张与归档成本。 + +3. 客户服务体验显著改善 客户可实时查询船舶动态与费用账单,投诉率下降超40%,客户满意度明显提高。 + +4. 系统稳定性与安全性增强 系统可用性达99.9%,近两年未发生严重宕机事件,保障7×24小时不间断服务。 + +## 相关产品 + +- [岸基网上业务大厅平台](/products/ecommerce/obh) diff --git a/nuxt-web/content/cases/tianjin-zhongyun-shipping.md b/nuxt-web/content/cases/tianjin-zhongyun-shipping.md new file mode 100644 index 0000000..4207659 --- /dev/null +++ b/nuxt-web/content/cases/tianjin-zhongyun-shipping.md @@ -0,0 +1,51 @@ +--- +title: "天津中运海运集团有限公司" +slug: "tianjin-zhongyun-shipping" +summary: "天津中运海运集团有限公司(中运集团)成立于2012年,总部设于天津滨海经济开发区。集团以发展现代化物流为使命,聚焦航运、物流、仓储三大核心板块,为客户提供散杂货/天津中运海运集团有限公司(中运集团)成立于2012年,注册资金3000万元,总部设于天津滨海经济开发区。集团聚焦航运、物流、仓储三大核心板块,提供散杂货/液化品运输、船舶代理、报关报检等全链条综合服务。2021年启动综合船舶管理系统建设,专设IT部门,建立完善应用体系与人才培养机制,锻造航运管理与信息技术复合型团队,赋能港航业务数字化转型。" +cover: "/images/tianjinzhongyun.jpg" +industry: "shipping-company" +categories: + - "shipping-company" +relatedProducts: + - "/products/logistics/platform" + - "/products/shipping/boat" +keywords: "天津中运海运集团有限公司,客户案例,岸基科技,shipping-company" +description: "成立于2012年,注册资金叁仟万元,总部设于天津滨海经济开发区..." +--- + +天津中运海运集团有限公司(中运集团)成立于2012年,总部设于天津滨海经济开发区。集团以发展现代化物流为使命,聚焦航运、物流、仓储三大核心板块,为客户提供散杂货/天津中运海运集团有限公司(中运集团)成立于2012年,注册资金3000万元,总部设于天津滨海经济开发区。集团聚焦航运、物流、仓储三大核心板块,提供散杂货/液化品运输、船舶代理、报关报检等全链条综合服务。2021年启动综合船舶管理系统建设,专设IT部门,建立完善应用体系与人才培养机制,锻造航运管理与信息技术复合型团队,赋能港航业务数字化转型。 + +## 项目背景 + +1. 信息孤岛制约管理效能 多供应商分散开发,船舶管理、运营、财务数据形成壁垒,阻碍统计分析与科学决策。 + +2. 财务报销系统碎片化 费用报销分散于飞书、金蝶、云之家多平台,资金流动透明度与归集效率持续承压。 + +3. 体系管理合规性短板 非结构化文档难统计分析,纸质文件依赖邮寄,效率低下且成本高企。 + +4. 业务分析功能缺失 以数字航运为引擎,强化"互联网+"经营收入与成本需人工核算,月度统计超5个工作日,管理层决策滞后。 + +## 项目目标 + +1. 建设专业管理系统 量体裁衣建设专业管理系统,理顺各系统关系,提高管理水平、节约运营成本、提升工作效率。 + +2. 实现各部门协同办公 引入工作流引擎,实现经营与运营一体化、业务财务一体化,提升数据共享与协同能力。 + +3. 梳理业务运转流程 重新梳理操作流、审批流、结算流,实现业务运营与体系管理一套账。 + +4. 实现数字航运 以数字航运为引擎,推进核心业务与信息技术深度融合,提升运营效益与服务品质。 + +## 项目收益 + +1. 业务效率提升 业务、调度、财务等实现在线审批,采购、付款等复杂流程多部门协同高效有序,跨部门审批时长平均缩短40%。 + +2. 客户工作效率提升 薪资、利润等实现自动化计算,费用直连财务系统;体系文件电子归档,省去快递成本约5万元/年。 + +3. 数据管理提升 建立船员、客户、船舶统一档案,数据统计分析图形化呈现,月度统计耗时从5天压缩至1天。 + +4. 客户体验优化 证书、合同到期自动预警,待办任务实时通知,支持手机端审批,出差人员审批响应时间从24小时缩短至2小时内。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基船舶管理系统](/products/shipping/boat) diff --git a/nuxt-web/content/cases/weihai-gate-yard.md b/nuxt-web/content/cases/weihai-gate-yard.md new file mode 100644 index 0000000..b4482f6 --- /dev/null +++ b/nuxt-web/content/cases/weihai-gate-yard.md @@ -0,0 +1,46 @@ +--- +title: "威海港通信息科技有限公司" +slug: "weihai-gate-yard" +summary: "威海港通信息科技有限公司成立于2015年2月,是山东港口威海港有限公司全资控股的国有企业。公司专注于计算机软硬件开发与销售、技术咨询服务及转让,电子产品销售与维护,以及货物或技术进出口业务。作为高新技术企业、科技型中小企业及专精特新中小企业,致力于为港口及物流行业提供智能化解决方案。" +cover: "/images/weihaigang.jpg" +industry: "port" +categories: + - "port" + - "shipping-company" +relatedProducts: + - "/products/port/cdi-container" +keywords: "威海港通信息科技有限公司,客户案例,岸基科技,port,shipping-company" +description: "山东港口威海港有限公司全资控股的国有企业,成立于2015年,注册资本500万元..." +--- + +威海港通信息科技有限公司成立于2015年2月,是山东港口威海港有限公司全资控股的国有企业。公司专注于计算机软硬件开发与销售、技术咨询服务及转让,电子产品销售与维护,以及货物或技术进出口业务。作为高新技术企业、科技型中小企业及专精特新中小企业,致力于为港口及物流行业提供智能化解决方案。 + +## 项目背景 + +1. 政策推进与监管趋严 国家推进智慧港口战略,海关对全流程可追溯、可预警的智能监管要求更高。 + +2. 场站分散导致管理难度高 新港区场站分布广、距离码头远,传统模式下信息滞后、调度困难,难以统一高效管理。 + +3. 信息化水平不足存在监管盲区 现有系统未覆盖堆场全流程,查验、移箱等环节依赖人工,存在数据断点与监管漏洞。 + +## 项目目标 + +1. 构建一体化堆场管理系统 实现集装箱资料、场站业务、查验管理、计费结算等模块集成,打通全业务流程闭环。 + +2. 实现内外部数据互联互通 对接海关、船公司等外部系统,完成EDI数据交换,确保查验指令、舱单数据实时同步。 + +3. 推动作业智能化与可视化 引入智能堆场计划、图形化堆场视图,实现吞吐量、库场利用率等关键指标可视化呈现。 + +4. 提升现场作业效率与准确性 通过移动APP实现冷藏箱巡检、拆装箱在线确认,闸口支持RFID自动识别。 + +## 项目收益 + +1. 管理效率显著提升 业务流程线上化、自动化,作业处理时间缩短30%以上,堆场调度响应速度明显加快。 + +2. 监管合规更有保障 查验指令全流程留痕,满足海关监管要求,堵住监管漏洞,降低执法风险与人为干预。 + +3. 运营决策数据驱动 提供多维度统计报表与领导驾驶舱,支撑吞吐量、泊位等数据动态分析,助力精细化运营。 + +## 相关产品 + +- [岸基云码头集装箱智能操作系统](/products/port/cdi-container) diff --git a/nuxt-web/content/cases/yantai-hanitek-container.md b/nuxt-web/content/cases/yantai-hanitek-container.md new file mode 100644 index 0000000..836b2a3 --- /dev/null +++ b/nuxt-web/content/cases/yantai-hanitek-container.md @@ -0,0 +1,47 @@ +--- +title: "烟台哈尼泰克集装箱租赁有限公司" +slug: "yantai-hanitek-container" +summary: "烟台哈尼泰克集装箱租赁有限公司成立于2017年,是烟台片区专注集装箱租赁服务的小微企业。当前依赖邮件、微信传递业务数据,存在计费延迟、费用整合困难、流程冗余、费收跟踪缺失等痛点,制约运营效能。亟需建设智能化集装箱租赁管理系统,覆盖业务全流程,实现租赁管理体系全面升级。" +cover: "/images/hani.png" +industry: "shipping-company" +categories: + - "shipping-company" + - "logistics" + - "container-yard" +relatedProducts: + - "/products/logistics/platform" +keywords: "烟台哈尼泰克集装箱租赁有限公司,客户案例,岸基科技,shipping-company,logistics,container-yard" +description: "成立于2017年,是烟台片区专注集装箱租赁服务的小微企业,亟需建设智能化集装箱租赁管理系统..." +--- + +烟台哈尼泰克集装箱租赁有限公司成立于2017年,是烟台片区专注集装箱租赁服务的小微企业。当前依赖邮件、微信传递业务数据,存在计费延迟、费用整合困难、流程冗余、费收跟踪缺失等痛点,制约运营效能。亟需建设智能化集装箱租赁管理系统,覆盖业务全流程,实现租赁管理体系全面升级。 + +## 项目背景 + +1. 流程断点导致运营低效 多部门协同缺乏标准化节点控制,订单处理延迟频发,集装箱闲置浪费与重复调度问题突出。 + +2. 异构系统数据交互壁垒 业务数据依赖邮件传递,需人工二次录入老系统,双重操作耗时冗长且易产生录入错误。 + +3. 个性化需求响应僵化 老系统操作逻辑固化,无法灵活配置差异化服务方案,制约业务拓展与客户满意度。 + +4. 计费滞后与业财数据割裂 计费依赖人工核对,核算周期长、漏算率高;业务与财务数据不同步,账实不符难以追踪。 + +## 项目目标 + +1. 构建全流程管控体系 覆盖订单接收至费用结算全链路,实现租赁业务无缝衔接与统一管理,提升业务连贯性与操作规范性。 + +2. 跨部门协同效能升级 打通部门及供应商资源信息壁垒,建立实时共享机制,强化业务协同深度,优化资源配置效率。 + +3. 客户响应与竞争力跃升 基于消息驱动实现需求快速响应,提供最优服务方案,提升运营效率与服务品质,增强市场核心竞争力。 + +## 项目收益 + +1. 作业效率跨越式提升 年放箱量从30.9万增至72.3万,全业务量增长133%以上,7×24小时服务突破线下时间限制。 + +2. 智能化操作升级 还箱制单耗时缩减50%,修箱批修时效提升80%,支持全流程灵活操作与多维查询分析。 + +3. 服务质效双升 客户满意度从85%跃升至96%,投诉率下降50%,操作失误率从5%降至0,重塑零差错标杆。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) diff --git a/nuxt-web/content/cases/yulong-terminal-system.md b/nuxt-web/content/cases/yulong-terminal-system.md new file mode 100644 index 0000000..53226cf --- /dev/null +++ b/nuxt-web/content/cases/yulong-terminal-system.md @@ -0,0 +1,49 @@ +--- +title: "山东裕龙港务有限公司" +slug: "yulong-terminal-system" +summary: "山东裕龙港务有限公司位于山东省龙口市,是裕龙石化产业园配套的重要港口企业,致力于打造现代化、智能化、绿色化的综合性港口。公司业务涵盖件杂货、散货、集装箱等多种货类装卸、仓储及物流服务,依托优越的地理位置和先进的设施,服务于区域经济发展与国际航运网络。裕龙港务以'智慧港口、高效物流'为发展战略,积极推进信息化、自动化建设,提升港口运营效率与服务能力。" +cover: "/images/yulong.jpg" +industry: "port" +categories: + - "port" +relatedProducts: + - "/products/port/cdi-bulk" +keywords: "山东裕龙港务有限公司,客户案例,岸基科技,port" +description: "位于山东省龙口市,是裕龙石化产业园配套的重要港口企业,致力于打造现代化、智能化、绿色化的综合性港口..." +--- + +山东裕龙港务有限公司位于山东省龙口市,是裕龙石化产业园配套的重要港口企业,致力于打造现代化、智能化、绿色化的综合性港口。公司业务涵盖件杂货、散货、集装箱等多种货类装卸、仓储及物流服务,依托优越的地理位置和先进的设施,服务于区域经济发展与国际航运网络。裕龙港务以"智慧港口、高效物流"为发展战略,积极推进信息化、自动化建设,提升港口运营效率与服务能力。 + +## 项目背景 + +1. 港口整合与业务协同需求 裕龙港务亟需构建一体化信息平台,解决信息孤岛与流程分散问题。 + +2. 智慧化港口建设趋势 港口作业向自动化、智能化发展,裕龙港务具备后发优势,需实现全面数字化升级。 + +3. 多货种统一管理挑战 裕龙港务业务涵盖集装箱、散货、件杂货等多种货类,缺乏统一调度影响运营效益。 + +4. 客户服务与效率提升需求 客户对港口服务响应速度、信息透明度要求不断提高。手工办单、信息不互通制约服务体验,亟需信息化手段提升服务水平。 + +## 项目目标 + +1. 构建一体化码头生产管理平台 覆盖调度、作业、商务、客服等全流程,实现数据统一管理与流程协同。 + +2. 实现作业调度智能化与可视化 依托TOS、GIS、物联网等技术,实现资源优化配置与实时监控。 + +3. 提升客户服务与线上体验 建设客户服务平台,支持线上委托、申报、支付、查询等“一网通办”。 + +4. 支持多货种专业化管理 同时支持集装箱、散货、件杂货等货种,实现资源统一调度与专业化处理。 + +## 项目收益 + +1. 管理决策科学精准 整合生产、经营、财务等数据,报表生成效率提升60%以上。 + +2. 人力与运营成本降低 业务流程的标准化与自动化,年节约人力成本约200万元,操作失误率下降50%。 + +3. 统一调度中心 整合船舶、罐区、公路、管输等大计划,实现一键排产,船舶在港停时缩短15%。 + +4. 统一商务中心 实现散杂货、液化等多货种的合同、单证、价格、结算、发票及对账的统一管理,对账时间从3天压缩至4小时。 + +## 相关产品 + +- [岸基云码头散杂货智能操作系统](/products/port/cdi-bulk) diff --git a/nuxt-web/content/cases/zhongshan-container-terminal.md b/nuxt-web/content/cases/zhongshan-container-terminal.md new file mode 100644 index 0000000..e79be6c --- /dev/null +++ b/nuxt-web/content/cases/zhongshan-container-terminal.md @@ -0,0 +1,45 @@ +--- +title: "中山港航集团股份有限公司" +slug: "zhongshan-container-terminal" +summary: "中山港航集团股份有限公司(前身为中山市港航企业集团有限公司)创立于2000年12月15日,注册地位于中山市火炬开发区沿江东一路3号港航大厦。作为珠江口湾区港航物流领域的综合性龙头企业,集团始终深耕多式联运与运输代理核心主业,以打造'湾区接口'型物流枢纽平台为目标,致力于构建连通湾区、辐射全球的现代化港航物流服务体系。" +cover: "/images/zhongshanganghang.jpg" +industry: "port" +categories: + - "port" +relatedProducts: + - "/products/port/cdi-container" +keywords: "中山港航集团股份有限公司,客户案例,岸基科技,port" +description: "中山港航集团股份有限公司集装箱码头系统,提供集装箱码头全流程数字化管理..." +--- + +中山港航集团股份有限公司(前身为中山市港航企业集团有限公司)创立于2000年12月15日,注册地位于中山市火炬开发区沿江东一路3号港航大厦。作为珠江口湾区港航物流领域的综合性龙头企业,集团始终深耕多式联运与运输代理核心主业,以打造"湾区接口"型物流枢纽平台为目标,致力于构建连通湾区、辐射全球的现代化港航物流服务体系。 + +## 项目背景 + +1. 政策驱动与行业趋势 《交通强国建设纲要》《智慧港口建设指南》等政策要求港口加速数字化转型,客户对全程可视化、无接触服务需求激增。 + +2. 运营效率与服务瓶颈 统港口依赖线下操作,办单、支付等环节耗时易错,数据同步滞后问题突出。 + +3. 技术机遇与升级需求 需引入AI、大数据等技术,整合多方资源,构建绿色高效供应链体系。 + +## 项目目标 + +1. 全链条协同与标准化 整合区域港口及海关、船公司等多方业务流程,构建跨区域协同平台,实现全流程数据电子化与标准化。 + +2. :高可用架构与安全体系 部署多中心容灾系统,采用多终端兼容架构,构建全链路数据安全体系。 + +3. :自动化与智能化驱动 实现线上办单与作业调度自动化,提升设备利用率与协同效率,推动港口作业全面提速。 + +4. 降本增效双向优化 减少线下人力依赖与操作错误,实现计费自动化与资源集约化运营。 + +## 项目收益 + +1. 全流程数字化提速 办单时间与审批时长大幅压缩,年线上业务量突破10万票,打破线下时空限制。 + +2. 成本精控 减少线下人力与纸质耗材,年综合降本超500万元,实现企业与客户双向优化。 + +3. 满意度达行业标杆 投诉率显著降低,响应时间缩短至24小时内,业务办理准确率达100%,客户满意度提升。 + +## 相关产品 + +- [岸基云码头集装箱智能操作系统](/products/port/cdi-container) diff --git a/nuxt-web/content/cases/zhongshan-port-service.md b/nuxt-web/content/cases/zhongshan-port-service.md new file mode 100644 index 0000000..ec863f1 --- /dev/null +++ b/nuxt-web/content/cases/zhongshan-port-service.md @@ -0,0 +1,47 @@ +--- +title: "中山港航集团股份有限公司" +slug: "zhongshan-port-service" +summary: "中山港航集团股份有限公司(前身为中山市港航企业集团有限公司)创立于2000年12月15日,注册地位于中山市火炬开发区沿江东一路3号港航大厦。作为珠江口湾区港航物流领域的综合性龙头企业,集团始终深耕多式联运与运输代理核心主业,以打造'湾区接口'型物流枢纽平台为目标,致力于构建连通湾区、辐射全球的现代化港航物流服务体系。" +cover: "/images/zhongshanganghang.jpg" +industry: "port" +categories: + - "port" +relatedProducts: + - "/products/port/cdi-container" +keywords: "中山港航集团股份有限公司,客户案例,岸基科技,port" +description: "创立于2000年12月,注册地位于中山市火炬开发区沿江东一路3号港航大厦..." +--- + +中山港航集团股份有限公司(前身为中山市港航企业集团有限公司)创立于2000年12月15日,注册地位于中山市火炬开发区沿江东一路3号港航大厦。作为珠江口湾区港航物流领域的综合性龙头企业,集团始终深耕多式联运与运输代理核心主业,以打造"湾区接口"型物流枢纽平台为目标,致力于构建连通湾区、辐射全球的现代化港航物流服务体系。 + +## 项目背景 + +1. 政策驱动与行业趋势 响应智慧港口无接触服务要求,应对客户线上化需求,需搭建一体化平台实现全流程数字化协同。 + +2. 效率瓶颈亟待突破 传统线下模式流程冗余、协同低效,需通过平台整合功能实现全流程自动化,降低人为失误。 + +3. 成本与风险管控需求 传统模式人力成本高、风险多,需以自动化替代人工,实现成本与安全风险双重管控。 + +## 项目目标 + +1. 实现全业务线上闭环与无纸化 实现全业务线上闭环与无纸化,优化业务流程,减少人工交接,满足无接触办公需求。 + +2. 搭建一体化服务架构 打通多系统数据,核心数据实时同步适配多终端,用户一次登录可办全业务。 + +3. 提升办理与协同效能 提升业务办理、闸口通行、审批及调度效率,为客户降低综合物流成本。 + +4. 降低运营成本与提升满意度 减少线下人力投入与物流成本,降低投诉率,提升客户满意度与行业竞争力。 + +## 项目收益 + +1.效率跃升,全流程提速 单票办单时间从60分钟压缩至15分钟,效率提升75%,业务处理量增长3倍以上。 + +2.成本优化,实现双向效益 年节约人工成本210万元,客户综合物流成本下降1%以上,年节约客户支出超1000万元。 + +3.满意度提升,构建服务壁垒 客户满意度提升,投诉率降低,业务办理准确率提升至100%。 + +4.绿色低碳与行业标杆双驱动 年减少纸质单证10万份,降低碳排放,带动产业链协同效率提升30%。 + +## 相关产品 + +- [岸基云码头集装箱智能操作系统](/products/port/cdi-container) diff --git a/nuxt-web/content/cases/zhongshan-xiaolan-remote.md b/nuxt-web/content/cases/zhongshan-xiaolan-remote.md new file mode 100644 index 0000000..1e34789 --- /dev/null +++ b/nuxt-web/content/cases/zhongshan-xiaolan-remote.md @@ -0,0 +1,46 @@ +--- +title: "中山市小榄港货运联营有限公司" +slug: "zhongshan-xiaolan-remote" +summary: "中山市小榄港货运联营有限公司是粤港澳大湾区核心物流枢纽,拥有24万平方米港区、7个千吨级泊位,年设计通过能力600万吨货物与60万标箱集装箱,2024年集装箱吞吐量达47万标箱。航线覆盖全国沿海及内陆港口,外贸直达香港、澳门、广州、深圳等地,提供高效装卸与多式联运综合物流解决方案。" +cover: "/images/xiaolan.jpg" +industry: "port" +categories: + - "port" + - "machinery" +relatedProducts: + - "/products/port/cdi-container" +keywords: "中山市小榄港货运联营有限公司,客户案例,岸基科技,port,machinery" +description: "立足粤港澳大湾区,是中山市小榄镇核心物流枢纽,注册资本1.2亿元,为港澳台合资企业..." +--- + +中山市小榄港货运联营有限公司是粤港澳大湾区核心物流枢纽,拥有24万平方米港区、7个千吨级泊位,年设计通过能力600万吨货物与60万标箱集装箱,2024年集装箱吞吐量达47万标箱。航线覆盖全国沿海及内陆港口,外贸直达香港、澳门、广州、深圳等地,提供高效装卸与多式联运综合物流解决方案。 + +## 项目背景 + +1. 智慧港口政策硬性要求 交通运输部要求内河港口2027年实现智能感知网全覆盖,小榄港需通过大机远控落实数字化转型。 + +2. 设备更新与智慧化政策叠加驱动 国家设备更新补贴与智慧港口政策叠加,实现“一次改造、双重赋能”。 + +3. 竞争效能与安全人力双重挑战 珠江水运竞争加剧,现场操控风险高、熟练工短缺,远控改造可提升效率、规避风险、缓解用工压力。 + +4. 内河码头技术适配性攻坚 5G、物联网技术成熟,但内河场景与海港差异显著,项目旨在填补珠江口内河大机远控应用空白。 + +## 项目目标 + +1. 技术攻坚:建成内河首套自主远控系统 完成大机远控改造,实现低延迟的“5G+云端部署+本地对接”系统,突破软件国产化,实现技术自主可控。 + +2. 综合效益:降本增效与零风险安全升级 显著节约人力与运营成本,消除高空及恶劣天气作业风险,降低安全事故率与人为失误率。 + +3. 行业标杆:输出可复制内河智慧化范式 发布内河码头大机远控改造技术规范,覆盖设备选型、场景适配等标准,并向区域内其他内河码头推广。 + +## 项目收益 + +1. 效率突破与国产技术落地 装卸环节从8个精简至5个,闸口通闸效率提升30%,船岸协同响应时间缩短50%;建成国内首个内河码头“5G+云端部署”远控系统,关键技术实现国产化。 + +2. 运营成本精准压降 操作人员减少40%,年节约人力成本超400万元;智能调度降低单箱装卸能耗,年节约电费数十万元。 + +3. 安全风险全面归零 消除高空及恶劣天气作业风险,全年无安全事故;操作失误率从3%降至0.5%以下,系统预判规避碰撞、对位偏差等隐患。 + +## 相关产品 + +- [岸基云码头集装箱智能操作系统](/products/port/cdi-container) diff --git a/nuxt-web/content/cases/zhujiang-shipping.md b/nuxt-web/content/cases/zhujiang-shipping.md new file mode 100644 index 0000000..844a62a --- /dev/null +++ b/nuxt-web/content/cases/zhujiang-shipping.md @@ -0,0 +1,46 @@ +--- +title: "珠江船务企业(集团)有限公司" +slug: "zhujiang-shipping" +summary: "珠江船务企业(股份)有限公司,隶属于广东省港航集团,是粤港澳大湾区最大的内河码头物流营运商之一。公司以香港为营运中心,网络覆盖珠三角超过20个城市,经营管理17个内河货运码头,运营40条集装箱班轮航线,拥有超过100艘内河货运船舶,培育的“CKS”品牌在粤港澳港口物流市场具有较高知名度和影响力。" +cover: "/images/zhujiang.png" +industry: "fleet" +categories: + - "fleet" + - "freight-forwarder" +relatedProducts: + - "/products/logistics/platform" + - "/products/logistics/vehicle-transport" +keywords: "珠江船务企业(集团)有限公司,客户案例,岸基科技,fleet,freight-forwarder" +description: "珠江船务对现有码头区域平台化经营管理的尝试,解决平台内各码头的拖车集中监控、集中调配问题..." +--- + +珠江船务企业(股份)有限公司,隶属于广东省港航集团,是粤港澳大湾区最大的内河码头物流营运商之一。公司以香港为营运中心,网络覆盖珠三角超过20个城市,经营管理17个内河货运码头,运营40条集装箱班轮航线,拥有超过100艘内河货运船舶,培育的“CKS”品牌在粤港澳港口物流市场具有较高知名度和影响力。 + +## 项目背景 + +1. 资源利用率低,作业效率无法有效提升 珠江船务目前下属14个码头管理拖车超2000部,各码头拖车分布不均,资源无法有效调配利用。 + +2. 信息不透明,操作不便捷 各码头拖车状态、轨迹、任务数据彼此割裂,难以实现跨区域动态共享。 + +3. 车辆可视化缺失,智能化管理难以落地 码车辆位置、运行状态、载重等关键信息无法实时捕捉,管理人员难以掌控车队整体动态。 + +## 项目目标 + +1. 业务集中管控 通过移动端采集与车辆定位,实现货物全程实时监控与数据记录,提高运输安全性与可靠性。 + +2. 智能运力匹配 整合自有及分包商运力信息,通过大数据算法对运力供给、路线规划进行综合优化。 + +3. 订单全程可视 融合北斗定位、GPS及GIS技术,实时采集各节点数据,可视化展示运单轨迹与流转状态。 + +## 项目收益 + +1. 通行效率倍增,告别无效排队等待 无纸化自动闸口实现30秒识别放行,车辆周转率提升超30%,彻底告别排队1-2小时。 + +2. 运营成本精减,减少各类资源浪费 业务数据全线上流转,单台车年节省单据相关支出超千元,补单与违约损失大幅减少。 + +3. 管理流程规范,降低沟通与风险成本 电子单据自动留痕可追溯,远程实时掌握运输进度,降低合规风险与沟通成本。 + +## 相关产品 + +- [全程物流链管理系统](/products/logistics/platform) +- [岸基车辆运输管理系统](/products/logistics/vehicle-transport) diff --git a/nuxt-web/content/news/chengzhang-yu-tuibian.md b/nuxt-web/content/news/chengzhang-yu-tuibian.md new file mode 100644 index 0000000..3a2abba --- /dev/null +++ b/nuxt-web/content/news/chengzhang-yu-tuibian.md @@ -0,0 +1,13 @@ +--- +title: "岸基科技的成长与蜕变-荣誉加身更须砥砺前行" +date: "2020.11.09" +slug: "chengzhang-yu-tuibian" +summary: "我们坚持以客户为中心,快速响应客户需求,持续为客户创造长期价值进而成就客户,为客户提供有效服务是我们工作的方向和价值评价的标尺。" +cover: "/images/rongyu.webp" +keywords: "岸基科技,成长与蜕变,荣誉,高新技术企业,软件企业,创新企业" +description: "岸基科技坚持以客户为中心,自2016年成立以来持续推进产品研发与能力建设,获得多项企业资质与荣誉。" +--- + +我们们坚持以客户为中心,快速响应客户需求,持续为客户创造长期价值进而成就客户。为客户提供有效服务是我们工作的方向和价值评价的标尺,成就客户就是成就我们自己。公司自2016年成立以来,一步一步稳扎稳打,先后研发了十几个产品并申请了软件著作权,获得了高新技术企业、山东省软件企业、烟台市科技型创新企业、山东省工业企业、ISO9001质量管理体系认证、第九届中国创新创业大赛优胜企业等荣誉,实现了公司的跨越式发展。 + +![岸基科技的成长与蜕变](/images/rongyu.webp) diff --git a/nuxt-web/content/news/keji-zhongxiao-qiye-xiangmu.md b/nuxt-web/content/news/keji-zhongxiao-qiye-xiangmu.md new file mode 100644 index 0000000..a1fc43c --- /dev/null +++ b/nuxt-web/content/news/keji-zhongxiao-qiye-xiangmu.md @@ -0,0 +1,23 @@ +--- +title: "立项支持!岸基科技获山东省科技型中小企业创新能力提升工程公示!" +date: "2023.07.10" +slug: "keji-zhongxiao-qiye-xiangmu" +summary: "近日,山东省科技厅公布了2023年省科技型中小企业创新能力提升工程立项项目名单,岸基航运电商云平台获批立项。" +cover: "/images/new3.webp" +keywords: "岸基科技,科技型中小企业,创新能力提升工程,航运电商云平台,项目立项" +description: "岸基航运电商云平台获批山东省科技型中小企业创新能力提升工程立项,体现了公司在港航数字化产品创新上的持续投入。" +--- + +近日,山东省科技厅公布了2023年省科技型中小企业创新能力提升工程立项项目名单,岸基航运电商云平台获批立项。 + +![岸基科技获山东省科技型中小企业创新能力提升工程立项支持](/images/new3.webp) + +科技型中小企业创新能力提升工程是山东省科技计划的重要组成部分,旨在聚焦新兴领域及我省急需补短板的产业领域,支持科技型中小企业联合高校、科研院所开展关键共性技术攻关和科技成果转化的创新项目,突出重点发展领域和高新技术企业培育,以关键核心技术突破和科技成果转化为方向,以促进人才、技术、成果等创新资源向科技型中小企业集聚,提升其自主创新能力为目标,采取省市联动的方式组织实施。 + +![科技型中小企业创新能力提升工程相关图片](/images/new4.webp) + +岸基航运电商云平台是集销售、操作、商务和客服于一体的综合服务产品,将传统港航业务互联网化转型,建立线上线下一体化的物流发展模式。 + +岸基航运电商云平台是集销售、操作、商务和客服于一体的综合服务产品,将传统港航业务互联网化转型,建立线上线下一体化的物流发展模式。产品聚合多维优势,利用现有的线下优势拓展线上业务,延伸产品服务能力(包括线上订舱、线上拖车、线上报关等服务);为客户建立全方位信息服务通道:线上平台、APP、微信,提供更好的服务体验:货物、船舶跟踪、消息推送、提单状态提醒,提升服务效率;信息可视化、交易流程全程跟踪:平台连结相关业务方,利用线上平台实现线上订舱、支付、提单下载、货物跟踪、拖车委托、报关,实现线上操作一体化,减少操作流程、提升用户体验;具备完整的电商营销体系:快速建立电商营销体系,阶梯运价、特价舱位、订舱送优惠劵和积分、秒杀等各种促销活动,引导更多客户;基于电商平台大数据收集和分析,收集产品销售关键信息、客户的操作习惯、客户关注的航线,优化产品结构,为企业提供新的赢利点;通过建立分布式私有paas平台,为整个电商系统提供技术支撑和运维服务。 + +通过岸基航运电商云平台,客户在网上可以获取产品服务、进行业务操作、费用支付和状态跟踪,实际业务操作和物流运输在线下来完成,实现公司降本增效,开源创收。 diff --git a/nuxt-web/content/news/shandong-dengling-qiye.md b/nuxt-web/content/news/shandong-dengling-qiye.md new file mode 100644 index 0000000..06d2b9f --- /dev/null +++ b/nuxt-web/content/news/shandong-dengling-qiye.md @@ -0,0 +1,19 @@ +--- +title: "喜讯!热烈祝贺岸基科技荣获“山东省瞪羚企业”荣誉称号!" +date: "2023.07.14" +slug: "shandong-dengling-qiye" +summary: "日前,山东省工业和信息化厅发布了《关于2023年度山东省“瞪羚”“独角兽”企业名单的公示》,岸基科技凭借强劲的综合实力荣誉上榜,成功入选2023年度山东省“瞪羚企业”。" +cover: "/images/new1.webp" +keywords: "岸基科技,山东省瞪羚企业,科技创新,高质量发展,企业荣誉" +description: "岸基科技入选2023年度山东省“瞪羚企业”,体现了公司在科技创新、成长速度和行业影响力方面的综合实力。" +--- + +日前,山东省工业和信息化厅发布了《关于2023年度山东省“瞪羚”“独角兽”企业名单的公示》,岸基科技凭借强劲的综合实力荣誉上榜,成功入选2023年度山东省“瞪羚企业”。 + +![岸基科技荣获山东省瞪羚企业荣誉称号](/images/new1.webp) + +“瞪羚企业”是指以科技创新或商业模式创新为支撑,进入高质量和爆发式增长阶段的成长型企业。具有综合效益突出、成长速度快、行业影响力大等特性,是引领山东省企业转型升级、高质量发展的优秀标杆企业。瞪羚企业的数量已经成为衡量地区创新活力的一项重要指标。 + +![山东省瞪羚企业相关图片](/images/new2.webp) + +获此殊荣是政府和行业对公司创新实力和发展速度的充分肯定,对岸基科技构建自主创新体系,提高科技创新能力,强化标准、技术、信息优势,加强科技研发管理支撑等具有重大意义。岸基科技将继续秉持创新精神,引领行业发展,持续赋能港航企业实现智能升级,为推动港航业“高效能的互联网航运平台”贡献自己的一份力量。 diff --git a/nuxt-web/content/news/shandong-gongshang-xueyuan-laifang.md b/nuxt-web/content/news/shandong-gongshang-xueyuan-laifang.md new file mode 100644 index 0000000..be32217 --- /dev/null +++ b/nuxt-web/content/news/shandong-gongshang-xueyuan-laifang.md @@ -0,0 +1,17 @@ +--- +title: "行走的课堂—山东工商学院创业先锋班来访" +date: "2021.09.23" +slug: "shandong-gongshang-xueyuan-laifang" +summary: "开学伊始,创新创业学院组织创业先锋181班全体学员走出校园、迈向社会,开展走访企业与素质拓展活动,创新创业学院院长马金智、执行院长周金刚、副院长张丽华参加了活动。" +cover: "/images/640.webp" +keywords: "岸基科技,山东工商学院,创业先锋班,校企交流,创新创业" +description: "山东工商学院创业先锋班走访岸基科技开展研学交流,围绕航运物流数字化、企业实践与专业成长进行现场学习。" +--- + +开学伊始,创新创业学院组织创业先锋181班全体学员走出校园、迈向社会,开展走访企业与素质拓展活动,创新创业学院院长马金智、执行院长周金刚、副院长张丽华参加了活动。 + +同学们来到烟台岸基网络科技有限公司走访交流。总经理马山对公司主要业务进行了介绍,了解到公司是智能化航运物流企业,通过“互联网+航运物流”信息化数字管理模式整合物流企业,为企业提供更低成本更便捷的各项信息服务,业务领域和合作伙伴遍及广泛。部分同学对“拼箱货运、数字化转型、国际物流业务的发展趋势”等感兴趣的话题进行了询问并得到马总专业解答,马总提到具备扎实的专业知识是创业的基础,想在专业领域深耕就要提高自身的专业技能,提升内在价值。 + +“学而思,思而践,践而悟。”本次创业研学活动为学生搭建了一个良好的学习和实践平台,同学们开阔了视野增长了见识,也增进了学校与企业之间的沟通与交流。 + +![山东工商学院创业先锋班来访岸基科技](/images/640.webp) diff --git a/nuxt-web/content/news/yiqi-yi-jishu-yanfa-zhongxin.md b/nuxt-web/content/news/yiqi-yi-jishu-yanfa-zhongxin.md new file mode 100644 index 0000000..88cb3e0 --- /dev/null +++ b/nuxt-web/content/news/yiqi-yi-jishu-yanfa-zhongxin.md @@ -0,0 +1,21 @@ +--- +title: "岸基科技荣获山东省“一企一技术”研发中心认定" +date: "2021.07.09" +slug: "yiqi-yi-jishu-yanfa-zhongxin" +summary: "2021年7月9日,山东省工业和信息化厅发布《关于公布2021年山东省工业企业“一企一技术”研发中心企业名单的通知》,烟台岸基网络科技有限公司被认定为山东省“一企一技术”研发中心。" +cover: "/images/new_1.webp" +keywords: "岸基科技,一企一技术,研发中心,山东省工业企业,技术研发" +description: "岸基科技获认定为山东省“一企一技术”研发中心,体现了公司在技术研发和自主创新领域的持续积累。" +--- + +2021年7月9日,山东省工业和信息化厅发布《关于公布2021年山东省工业企业“一企一技术”研发中心企业名单的通知》,烟台岸基网络科技有限公司被认定为山东省“一企一技术”研发中心。 + +这也是继“国家级高新技术企业”、“国家科技型中小企业”、“软件企业”、“烟台市一企一技术研发中心”之后,岸基科技在技术研发领域获得的又一项重要认定,标志着岸基科技研发能力更上了一个台阶。 + +![岸基科技荣获山东省“一企一技术”研发中心认定](/images/new_1.webp) + +![山东省“一企一技术”研发中心认定相关图片](/images/new_2.webp) + +“一企一技术”研发中心是企业在所处行业和领域内着力突破掌握关键核心技术,抢占科技战略制高点的创新平台;主要负责开展技术研发和技术成果转化,产学研合作和创新人才培养,推进企业技术创新。此次被认定为山东省“一企一技术”研发中心,是对公司多年来自主创新工作的再次肯定,岸基科技将以此为契机,充分发挥研发中心的引领作用,进一步加大研发力度,推动“一企一技术”创新工作广泛深入开展。 + +“一企一技术”研发中心是企业在所处行业和领域内着力突破掌握关键核心技术,抢占科技战略制高点的创新平台;主要负责开展技术研发和技术成果转化,产学研合作和创新人才培养,推进企业技术创新。此次被认定为山东省“一企一技术”研发中心,是对公司多年来自主创新工作的再次肯定,岸基科技将以此为契机,充分发挥研发中心的引领作用,进一步加大研发力度,推动“一企一技术”创新工作广泛深入开展。 diff --git a/nuxt-web/data/case-categories.ts b/nuxt-web/data/case-categories.ts new file mode 100644 index 0000000..9f2b51a --- /dev/null +++ b/nuxt-web/data/case-categories.ts @@ -0,0 +1,12 @@ +export const caseCategories = [ + { id: 'all', label: '全部' }, + { id: 'port', label: '港口码头' }, + { id: 'container-yard', label: '集装箱场站' }, + { id: 'logistics', label: '物流' }, + { id: 'shipping-company', label: '船公司' }, + { id: 'ship-agent', label: '船代' }, + { id: 'freight-forwarder', label: '货代' }, + { id: 'warehouse', label: '仓储' }, + { id: 'fleet', label: '车队' }, + { id: 'machinery', label: '机械设备' }, +] as const diff --git a/nuxt-web/data/company.ts b/nuxt-web/data/company.ts new file mode 100644 index 0000000..654fd2d --- /dev/null +++ b/nuxt-web/data/company.ts @@ -0,0 +1,108 @@ +export const companySectionLinks = [ + { label: '关于岸基', to: '/contact' }, + { label: '新闻动态', to: '/news' }, + { label: '团队建设', to: '/company/culture' }, + { label: '人才招聘', to: '/company/joinus' }, + { label: '公司发展进程', to: '/company' }, + { label: '公司技术升级', to: '/company/tech' } +] as const + +export const companyTimeline = [ + { date: '2016.05', title: '岸基网络科技有限公司成立', summary: '公司正式成立,聚焦港航物流数字化。', highlight: false }, + { date: '2016.08', title: '荣获“山东省软件企业”资质', summary: '在软件研发与服务能力上获得早期认可。', highlight: false }, + { date: '2017.05', title: '获“国家科技型创新企业”资质认证', summary: '研发能力和创新路径进一步获得官方背书。', highlight: false }, + { date: '2017.10', title: 'ISO9001质量管理体系认证', summary: '建立更加规范的质量管理流程。', highlight: false }, + { date: '2017.12', title: '锦江航运电商平台上线', summary: '建设完成中日韩航线大型电子商务平台,年线上交易额达到10亿元。', highlight: true }, + { date: '2018.05', title: '云码头平台在中山港航集团上线', summary: '自主研发云码头平台落地,建设运营成本显著降低。', highlight: true }, + { date: '2018.06', title: '市级技术研发奖项', summary: '港口物流信息管理智慧云平台关键技术研发获奖。', highlight: false }, + { date: '2018.08', title: '荣获“高新技术企业”资质', summary: '核心技术创新能力进一步被认可。', highlight: false }, + { date: '2019.11', title: '承建两个山东省技术创新项目', summary: '承担省级技术创新任务,持续投入研发。', highlight: false }, + { date: '2020.06', title: '交通部重点示范工程交付', summary: '完成京津冀协同下“一键通”大宗干散货智慧物流示范工程。', highlight: true }, + { date: '2020.08', title: '中国创新创业大赛优胜企业', summary: '在山东省创新创业赛事中获得优胜企业称号。', highlight: false }, + { date: '2021.07', title: '山东省“一企一技术”研发中心认定', summary: '研发平台建设取得新的省级认定。', highlight: false }, + { date: '2022.06', title: '山东省“专精特新”荣誉认证', summary: '公司在细分领域的专业化能力持续提升。', highlight: false }, + { date: '2023.07', title: '山东省“瞪羚企业”荣誉认证', summary: '成长速度与创新能力进入新的阶段。', highlight: true }, + { date: '2025', title: '省级工业互联网平台与 AI 项目入选', summary: '数字化智能供应链平台和港口AI智能平台继续向更高层级迈进。', highlight: true } +] as const + +export const companyStats = [ + { label: '行业经验', value: '20+' }, + { label: '自主知识产权', value: '100+' }, + { label: '合作伙伴', value: '100+' } +] as const + +export const jobOpenings = [ + { + title: '系统架构师', + count: '2名', + image: '/images/testimonials/img-1.jpg', + responsibilities: [ + '参与技术架构优化设计与重构,根据业务规划制定应用架构方案。', + '参与电子商务、物流系统等核心系统的架构设计与关键模块开发。', + '持续提升高并发、海量请求下的系统处理性能。', + '负责新技术预研、测试验证与技术框架沉淀。' + ], + qualifications: [ + '具备扎实的计算机基础理论和五年以上 Java 相关经验。', + '有大型企业级应用系统设计开发经验,熟悉分布式架构。', + '熟悉架构设计理论、模式和常见工具。' + ] + }, + { + title: '项目经理', + count: '3名', + image: '/images/testimonials/img-2.jpg', + responsibilities: [ + '确保项目目标实现,带领团队高质量完成交付。', + '负责需求分析、系统设计、编码实现、测试、现场实施和维护阶段的组织工作。' + ], + qualifications: [ + '有 5 年以上 J2EE 开发经验,熟悉常用框架。', + '具备优秀的需求分析、逻辑表达和设计能力。', + '熟悉 SQL,掌握 Oracle、MySQL 等主流数据库。' + ] + }, + { + title: '高级开发工程师', + count: '3名', + image: '/images/testimonials/img-3.jpg', + responsibilities: [ + '参与系统需求分析,完成设计、开发、测试和文档编写。', + '参与现场实施、需求调整及后期维护。' + ], + qualifications: [ + '三年以上 Java 开发经验,熟悉前后端开发。', + '熟练掌握 SSH、SSM 等常见开发框架。', + '了解主流数据库并具备良好的编码规范。' + ] + }, + { + title: '开发工程师', + count: '6名', + image: '/images/testimonials/img-4.jpg', + responsibilities: [ + '参与系统需求分析和功能开发。', + '参与软件项目实施、需求调整及后期维护。' + ], + qualifications: [ + '具备良好的 Java 开发基础。', + '熟悉至少一种常见开发框架。', + '了解 SQL 语言和主流数据库。' + ] + } +] as const + +export const cultureGallery = [ + { title: '泰山+曲阜旅行', category: 'travel', image: '/images/about/3.webp', meta: '山东泰安' }, + { title: '海边音乐餐厅聚餐', category: 'party', image: '/images/about/12.webp', meta: '烟台海边' }, + { title: '真人CS比赛', category: 'sport', image: '/images/about/11.webp', meta: '团队竞技' }, + { title: '第一届篮球比赛', category: 'sport', image: '/images/about/10.webp', meta: '体育竞技' }, + { title: '养马岛徒步18公里越野赛', category: 'sport', image: '/images/about/4.webp', meta: '户外挑战' }, + { title: '女神节插花活动', category: 'holiday', image: '/images/about/1.webp', meta: '员工关怀' }, + { title: '密室逃脱女士场', category: 'party', image: '/images/about/2.webp', meta: '益智娱乐' }, + { title: '沂蒙山旅游', category: 'travel', image: '/images/about/6.webp', meta: '山东临沂' }, + { title: '河南云台山旅游', category: 'travel', image: '/images/about/7.png.webp', meta: '河南焦作' }, + { title: '轰趴+烧烤团建活动', category: 'party', image: '/images/about/8.webp', meta: '团队聚会' }, + { title: '三八妇女节家属暖心送礼品', category: 'holiday', image: '/images/about/13.webp', meta: '节日活动' }, + { title: '公司素质拓展训练', category: 'sport', image: '/images/about/14.JPG', meta: '团队建设' } +] as const diff --git a/nuxt-web/data/home.ts b/nuxt-web/data/home.ts new file mode 100644 index 0000000..f407ad5 --- /dev/null +++ b/nuxt-web/data/home.ts @@ -0,0 +1,118 @@ +export const homeHeroSlides = [ + { + title: '全域智慧物流链解决方案', + description: '贯通多式联运全链路,实现一单到底、全程可视、协同高效、降本增效与价值升级。', + image: '/images/slider/slide-1.png', + to: '/solutions/logistics-chain' + }, + { + title: '携手数字化,智领新航运', + description: '用软件定义航运,以服务创造价值。岸基科技,您值得信赖的数字化伙伴。', + image: '/images/slider/slide-2.png', + to: '/products/port' + } +] as const + +export const homeProductFamilies = [ + { + title: '港航电商系列产品', + description: '打通销售、操作、商务、客服全链路,赋能港航企业一体化物流运营方案。', + iconKey: 'commerce', + to: '/products/ecommerce' + }, + { + title: '物流供应链系列产品', + description: '覆盖船公司、船货代、报关行、车队、场站及仓储,全链路产品矩阵。', + iconKey: 'logistics', + to: '/products/logistics' + }, + { + title: '云码头系列产品', + description: '为集装箱、散货、件杂货及液化码头提供深度覆盖的完整解决方案。', + iconKey: 'port', + to: '/products/port' + }, + { + title: '航运数字系列产品', + description: '驱动航运全链路降本增效,依托“1+3+N”核心架构,构建数字化协同引擎。', + iconKey: 'shipping', + to: '/products/shipping' + } +] as const + +export const homeSolutions = [ + { + meta: '内河港航集团', + title: '内河港航一体化解决方案', + description: '打通港口、物流、贸易、金融全链路,实现无人化作业、一单到底、全程可视、业态升级。', + image: '/images/portfolio/img-5.webp', + to: '/solutions/inland-river-shipping' + }, + { + meta: '贸易 / 物流 / 港口', + title: '大宗货物供应链解决方案', + description: '按货种深度定制,打通物流、贸易、金融全链路,实现作业无人化、全程可追溯、增收提效。', + image: '/images/portfolio/img-1.jpg', + to: '/solutions/supply-chain' + }, + { + meta: '大型港航集团', + title: '港口供应链平台解决方案', + description: 'AI 智能配载更高效、全货种兼容更通用、数据打通更协同、信创适配更安全、供应链服务更增值。', + image: '/images/portfolio/img-4.webp', + to: '/solutions/port-supply-chain' + }, + { + meta: '大型物流集团', + title: '全程物流链解决方案', + description: '以统一平台打通全环节数据,实现业务财务一体化、流程自动化,高效解决物流协同低效、成本难控等痛点。', + image: '/images/portfolio/img-3.webp', + to: '/solutions/logistics-chain' + } +] as const + +export const homeServiceDomains = [ + { title: '港口码头', iconClass: 'flaticon-matou' }, + { title: '集装箱场站', iconClass: 'flaticon-changzhan' }, + { title: '船公司', iconClass: 'flaticon-dingcang' }, + { title: '船代', iconClass: 'flaticon-cruise' }, + { title: '货代', iconClass: 'flaticon-box' }, + { title: '仓储', iconClass: 'flaticon-cangchu' }, + { title: '车队', iconClass: 'flaticon-delivery' }, + { title: '其他', iconClass: 'flaticon-pallet' } +] as const + +export const homeIndustryStats = [ + { value: '20+', label: '年货运总量(亿吨)' }, + { value: '4000+', label: '集装箱标准箱量(万)' }, + { value: '5+', label: '煤炭及制品货量(亿吨)' }, + { value: '4+', label: '金属矿石货量(亿吨)' }, + { value: '500+', label: '滚装汽车货量(万)' } +] as const + +export const homePartnerRows = [ + [ + '/images/partners/jinjiang.png', + '/images/partners/qiaoyi.png', + '/images/partners/zhongshanganghang.png', + '/images/partners/shanghaihanghua.png', + '/images/partners/qinhuangdao.png', + '/images/partners/rizhao.png' + ], + [ + '/images/partners/beibuwan.png', + '/images/partners/jining.png', + '/images/partners/liandai.png', + '/images/partners/hainanlingao.png', + '/images/partners/zhujiangchuanwu.png', + '/images/partners/hefei.png' + ], + [ + '/images/partners/gangwuju.png', + '/images/partners/zhongyunjituan.png', + '/images/partners/tangshangang.png', + '/images/partners/dongfangguoji.png', + '/images/partners/weihaigang.png', + '/images/partners/wuzhou.png' + ] +] as const diff --git a/nuxt-web/data/navigation.ts b/nuxt-web/data/navigation.ts new file mode 100644 index 0000000..db360be --- /dev/null +++ b/nuxt-web/data/navigation.ts @@ -0,0 +1,75 @@ +export const topNavigation = [ + { + label: '首页', + to: '/' + }, + { + label: '产品中心', + to: '/products/logistics', + children: [ + { + label: '港航电商系列产品', + to: '/products/ecommerce', + children: [ + { label: '岸基海运订舱平台', to: '/products/ecommerce/freight-booking' }, + { label: '岸基网络货运平台', to: '/products/ecommerce/net-cargo' }, + { label: '岸基网上业务大厅平台', to: '/products/ecommerce/obh' }, + { label: '岸基大宗商品贸易平台', to: '/products/ecommerce/bctp' } + ] + }, + { + label: '全程物流链系列产品', + to: '/products/logistics', + children: [ + { label: '岸基全程物流链系统', to: '/products/logistics/platform' }, + { label: '岸基车辆运输管理系统', to: '/products/logistics/vehicle-transport' }, + { label: '岸基仓储管理系统', to: '/products/logistics/warehouse' }, + { label: '岸基船舶代理系统', to: '/products/logistics/ship-agent' }, + { label: '岸基货运代理系统', to: '/products/logistics/cargo-agent' } + ] + }, + { + label: '云码头系列产品', + to: '/products/port', + children: [ + { label: '岸基云码头智能操作系统', to: '/products/port/cdi' }, + { label: '岸基云码头集装箱智能操作系统', to: '/products/port/cdi-container' }, + { label: '岸基云码头散杂货智能操作系统', to: '/products/port/cdi-bulk' }, + { label: '岸基云场站智能操作系统', to: '/products/port/cloud-yard' } + ] + }, + { + label: '航运数字系列产品', + to: '/products/shipping', + children: [ + { label: '岸基船公司运营管理系统', to: '/products/shipping/company' }, + { label: '岸基船舶管理系统', to: '/products/shipping/boat' } + ] + } + ] + }, + { + label: '解决方案', + children: [ + { label: '内河港航一体化解决方案', to: '/solutions/inland-river-shipping' }, + { label: '大宗货物供应链解决方案', to: '/solutions/supply-chain' }, + { label: '港口供应链解决方案', to: '/solutions/port-supply-chain' }, + { label: '全程物流链解决方案', to: '/solutions/logistics-chain' } + ] + }, + { + label: '客户案例', + to: '/cases' + }, + { + label: '关于我们', + to: '/contact' + } +] as const + +export const footerLinks = [ + { label: '关于我们', to: '/contact' }, + { label: '产品中心', to: '/products/logistics' }, + { label: '人才招聘', to: '/company/joinus' }, + { label: '客户案例', to: '/cases' } +] as const diff --git a/nuxt-web/data/products.ts b/nuxt-web/data/products.ts new file mode 100644 index 0000000..6e96bc6 --- /dev/null +++ b/nuxt-web/data/products.ts @@ -0,0 +1,641 @@ +export type ProductCardItem = { + title: string + description: string + image: string + to: string +} + +export type FeatureSection = { + label: string + title: string + description: string + bullets: string[] + image: string + imageAlt: string +} + +export type ProductDetailConfig = { + title: string + description: string + bannerImage: string + architectureImage: string + architectureAlt: string + featureHeading: string + featureSummary: string + featureSections: FeatureSection[] + advantages: Array<{ title: string; description: string; icon: string }> + cases: Array<{ title: string; description: string; to: string }> + relatedProducts: Array<{ label: string; to: string }> +} + +const iconA = '/images/project/common/编组-14.svg' +const iconB = '/images/project/common/资源_5.svg' +const iconC = '/images/project/common/资源_3.svg' +const iconD = '/images/project/common/资源_9.svg' +const iconE = '/images/project/common/编组-2-copy-5.svg' + +export const ecommerceProducts: ProductCardItem[] = [ + { + title: '岸基大宗商品贸易平台', + description: '通过微信小程序、综合信息门户网站等形式,让货主、贸易商、车主、船主、码头业主等航运参与方在线办理贸易、货运业务。', + image: '/images/pro/pro-12.webp', + to: '/products/ecommerce/bctp' + }, + { + title: '海运订舱平台', + description: '构建线上线下融合的智慧海运服务平台,实现订舱、拖车、报关全流程线上化操作。', + image: '/images/pro/pro-9.webp', + to: '/products/ecommerce/freight-booking' + }, + { + title: '岸基网络货运平台', + description: '集成订单管理、车辆定位、进度可视化、决策分析、电子结算,构建全链路数字化闭环。', + image: '/images/pro/pro-11.webp', + to: '/products/ecommerce/net-cargo' + }, + { + title: '岸基网上业务大厅平台', + description: '作为多类型码头业务前端客户服务子系统的核心模块,支撑大型港口集团统一化、标准化管理。', + image: '/images/pro/pro-10.webp', + to: '/products/ecommerce/obh' + } +] + +export const logisticsProducts: ProductCardItem[] = [ + { + title: '岸基全程物流链平台', + description: '为船公司、货运代理、报关企业、运输车队、港口场站及仓储服务商等全链条参与者提供智能化协同解决方案。', + image: '/images/pro/pro-13.webp', + to: '/products/logistics/platform' + }, + { + title: '岸基车辆运输管理系统', + description: '以业财一体化的管理理念,优化车辆调度,实现运输收入、成本的精细化管理。', + image: '/images/pro/pro-18.webp', + to: '/products/logistics/vehicle-transport' + }, + { + title: '岸基仓储管理系统', + description: '通过集成智能设备和执行分配,实现仓库作业的动态管控和实时跟踪。', + image: '/images/pro/pro-19.webp', + to: '/products/logistics/warehouse' + }, + { + title: '岸基船舶代理系统', + description: '支持船务、单证、箱管、商务、财务等多部门协同,实现线上线下“一站式”服务。', + image: '/images/pro/pro-14.webp', + to: '/products/logistics/ship-agent' + }, + { + title: '货运代理系统', + description: '实现货物委托、提单确认、海关预配、EDI、费用结算、客户服务等业务的高效操作。', + image: '/images/pro/pro-17.webp', + to: '/products/logistics/cargo-agent' + } +] + +export const portProducts: ProductCardItem[] = [ + { + title: '岸基云码头一体化智能操作系统', + description: '适用于集装箱码头、散杂货码头、液化码头及综合型码头的生产作业全周期管理,赋能大型港口集团实现业务统一化、标准化管控。', + image: '/images/pro/pro-4.webp', + to: '/products/port/cdi' + }, + { + title: '岸基云码头集装箱智能操作系统', + description: '集成码头操作、智能计划、智能调度、费收管理、EDI报文转换、统计分析、WEB客户服务、决策支持及维护服务。', + image: '/images/pro/pro-6.webp', + to: '/products/port/cdi-container' + }, + { + title: '岸基云码头散杂货智能操作系统', + description: '通过图形化操作界面与智能算法平台,实现自动计划排产、实时作业监控、自动船舶配载及智能机械调度。', + image: '/images/pro/pro-5.webp', + to: '/products/port/cdi-bulk' + }, + { + title: '岸基云场站智能操作系统', + description: '面向集装箱场站、散杂货场站、内陆港和海铁联运场站,覆盖堆存、闸口、计费、调度、查验与集团化统一管理。', + image: '/images/pro/pro-7.webp', + to: '/products/port/cloud-yard' + } +] + +export const shippingProducts: ProductCardItem[] = [ + { + title: '岸基船公司运营管理系统', + description: '业务智能操作、船舶动态管理、EDI无缝交换、决策数据看板,赋能航运全流程一站式解决方案。', + image: '/images/pro/pro-15.webp', + to: '/products/shipping/company' + }, + { + title: '岸基船舶管理系统', + description: '实现经营管理和运营管理一体化、体系和经营一体化、业务财务一体化,提升各部门间的数据共享和协同能力。', + image: '/images/pro/pro-16.webp', + to: '/products/shipping/boat' + } +] + +export const ecommerceDetails: Record = { + 'freight-booking': { + title: '岸基海运订舱平台', + description: '将订舱、拖车、报关等传统线下服务全面线上化,通过服务产品化、全链路可视化、智能营销、多端协同与自动化规则引擎,帮助企业提升业务效率、降低运营成本。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/ecommerce/booking.webp', + architectureAlt: '岸基海运订舱平台产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '围绕海运订舱场景,构建从服务上架到履约跟踪的全链路数字能力。', + featureSections: [ + { label: '服务产品化', title: '将非标服务转化为标准商品', description: '把订舱、拖车、报关等线下服务抽象为标准化商品,实现线上透明展示与自由组合交易。', bullets: ['客户可像电商选品一样比价、组合服务。', '服务可售性增强,便于批量销售与渠道推广。', '销售沟通成本下降,非专业人员也能快速完成报价。'], image: '/images/product/haiyundingcang/fuwuchanpinhua.png', imageAlt: '服务产品化' }, + { label: '全链路可视化', title: '节点透明,业务可控', description: '以提单号为线索实时追踪订舱确认、提单签发、海关放行、装船离港等关键节点。', bullets: ['客户随时查看货物所处环节。', '节点停滞可被自动识别并触发预警。', '透明信息展示提升服务可信度。'], image: '/images/product/haiyundingcang/quanchenglukeshihuagenzong.png', imageAlt: '全链路可视化' }, + { label: '智能营销中心', title: '电商级活动提升客户粘性', description: '集成积分、满减、秒杀、优惠券等营销能力,构建可运营、可追踪、可优化的增长体系。', bullets: ['积分体系联动会员等级。', '活动吸引新客户并激活沉睡客户。', '基于客户画像进行精准优惠推送。'], image: '/images/product/haiyundingcang/zhinengyingxiaozhongxin.png', imageAlt: '智能营销中心' }, + { label: '多端协同触达', title: '全渠道消息确保关键信息必达', description: '通过 APP、微信公众号、邮件、短信等渠道主动推送订单状态与异常预警。', bullets: ['关键节点实时通知。', '多渠道冗余保障。', '支持按需订阅消息类型。'], image: '/images/product/haiyundingcang/duoduanxietongchuda.png', imageAlt: '多端协同触达' }, + { label: '自动化规则引擎', title: '零代码配置,快速适配复杂场景', description: '支持计费规则、表单流程、审批逻辑等可配置化管理。', bullets: ['费目与计费规则按需定义。', '船公司表单可动态配置。', '业务流转规则可视化调整。'], image: '/images/product/haiyundingcang/zidonghuaguizeyinqing.png', imageAlt: '自动化规则引擎' } + ], + advantages: [ + { title: '全域数据枢纽', description: '通过标准化 EDI 接口打通多系统数据通道,实现一套业务数据在多端共享与复用。', icon: iconA }, + { title: '全流程自动化处理', description: '邮件与业务指令可智能识别并自动分发,持续提升整体作业效率。', icon: iconB }, + { title: '多渠道支付与智能结算', description: '支持主流线上支付与自动归集结算,缩短资金到账时间。', icon: iconC }, + { title: '零代码柔性配置', description: '计费、表单、审批规则均可按场景配置,快速匹配客户与船司差异需求。', icon: iconD }, + { title: '透明决策引擎', description: '关键节点可视化与异常自动预警形成闭环,让业务瓶颈可定位、可追踪、可持续优化。', icon: iconE } + ], + cases: [ + { title: '上海锦江航运(集团)股份有限公司', description: '区域性集装箱航运企业,通过数字化平台提升线上订舱与客户服务效率。', to: '/cases/jinjiang-shipping-ecommerce' }, + { title: '上海航华国际船务代理有限公司', description: '海运电商云服务平台落地,支撑多角色线上协同与客户服务升级。', to: '/cases/shanghai-hanghua-cloud' }, + { title: '上海上港联合国际船舶代理有限公司', description: '订舱平台为航运代理业务提供一站式在线服务能力。', to: '/cases/shanggang-liandai-booking' } + ], + relatedProducts: [ + { label: '岸基网络货运平台', to: '/products/ecommerce/net-cargo' }, + { label: '岸基网上业务大厅平台', to: '/products/ecommerce/obh' } + ] + }, + 'net-cargo': { + title: '岸基网络货运平台', + description: '依托大数据与云计算直连终端客户,聚焦智能车货匹配、动态路径调度与自动化作业,构建集订单管理、车辆定位、进度可视化、决策分析与电子结算于一体的全链路数字化闭环。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/ecommerce/cargo.webp', + architectureAlt: '岸基网络货运平台产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '以车货协同和路径优化为核心,打造港口集疏运数字化闭环。', + featureSections: [ + { label: '货物全程追溯', title: '让运输过程可见、可查、可追溯', description: '基于移动端采集与车辆定位能力,对货物从启运到交付全过程进行实时监控与数据留痕。', bullets: ['整合平台资源在线发布货源和运力。', '实现端到端可视化追踪。', '异常情况可及时发现并快速处理。'], image: '/images/product/wangluohuoyun/huowuquanchengzhuisu.png', imageAlt: '货物全程追溯' }, + { label: '集疏运能力提升', title: '加速周转,增强计划性', description: '通过平台化协同加速集装箱与货物周转,推动港口与陆路运输环节联动。', bullets: ['提升陆路集疏运计划性。', '推动作业流程无纸化。', '港口作业与车辆调度协同联动。'], image: '/images/product/wangluohuoyun/tishengjishuyunnengli.png', imageAlt: '集疏运能力提升' }, + { label: '优化港陆协同通关', title: '便利通关,缩短在港时长', description: '支持港口与内陆枢纽协同,叠加便利化通关措施,缩短在港时间。', bullets: ['支撑港口吸引更多制造业货源。', '配合直提直装等措施优化通关效率。', '提升客户服务体验。'], image: '/images/product/wangluohuoyun/tishengfuwujingzhengli.png', imageAlt: '优化港陆协同通关' }, + { label: '智能动态调度', title: '智能调度提升车辆利用率', description: '利用智能算法综合车辆位置、车况与装卸点信息进行动态路径优化。', bullets: ['提升车辆利用率与双重运输机会。', '降低空驶里程。', '提升整体资源配置效率。'], image: '/images/product/wangluohuoyun/jiangdijishuyunchengben.png', imageAlt: '智能动态调度' }, + { label: '协同大数据分析', title: '共享驱动预测与决策', description: '打通码头作业信息与陆运车辆信息的实时共享链路。', bullets: ['增强作业计划性。', '基于大数据模型预测货物流量趋势。', '持续优化路径与调度策略。'], image: '/images/product/wangluohuoyun/xietongdashujufenxi.png', imageAlt: '协同大数据分析' } + ], + advantages: [ + { title: '全场景服务触达', description: '整合物流分包商网络,实现线上下单与线下履约贯通。', icon: iconA }, + { title: '货物状态实时掌控', description: '移动端采集与车辆定位结合,形成端到端透明追踪能力。', icon: iconB }, + { title: '指尖确认,全程可溯', description: '支持电子签收和线上评价,全程数字化交付体验。', icon: iconC }, + { title: '税务合规无忧', description: '对接税控系统并沉淀“三流合一”数据链路。', icon: iconD }, + { title: '资金安全放心', description: '平台、物流企业、银行三方监管机制确保交易资金安全。', icon: iconE }, + { title: '小微企业数字化升级', description: '提供全链路数字化管理工具,帮助小微物流企业获得可复制运营能力。', icon: iconA }, + { title: '集疏运成本持续优化', description: '智能算法与预约协同机制共同减少空驶与等待时间。', icon: iconB }, + { title: '竞争力与满意度双提升', description: '港口协同联动与通关便利化措施叠加,缩短在港时间。', icon: iconC } + ], + cases: [ + { title: '珠江船务企业(集团)有限公司', description: '平台化经营管理尝试中,解决码头拖车集中监控与智能调度问题。', to: '/cases/zhujiang-shipping' }, + { title: '安徽港口集团合肥有限公司', description: '支撑多港区统一管控与集疏运协同调度。', to: '/cases/anhui-port-hefei' } + ], + relatedProducts: [ + { label: '岸基海运订舱平台', to: '/products/ecommerce/freight-booking' }, + { label: '岸基大宗商品贸易平台', to: '/products/ecommerce/bctp' } + ] + }, + bctp: { + title: '岸基大宗商品贸易平台', + description: '集信息发布、在线交易、水上运输、多式联运于一体,支持小程序及网站访问,为货主、贸易商、船主、车主提供一站式贸易与运输服务,推动多式联运“一单制”。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/ecommerce/bctp.webp', + architectureAlt: '岸基大宗商品贸易平台产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '以港航数字化为核心,构建全链路一体化业务体系。', + featureSections: [ + { label: '智能船货匹配', title: '打通船货信息匹配链路', description: '围绕“货主找船、船找货源”核心场景,平台整合主流网货渠道与线上发布能力。', bullets: ['打破传统信息孤岛。', '拓宽货源与船源获取渠道。', '提升撮合与成交效率。'], image: '/images/product/bctp/chuanhuotong.png', imageAlt: '智能船货匹配' }, + { label: '大宗商品线上交易', title: '提升在线交易撮合效率', description: '面向货主与贸易商提供在线撮合与智能推荐能力。', bullets: ['支持线上交易撮合。', '通过智能货物推荐帮助更快发现商机。', '推动贸易流程标准化与数字化。'], image: '/images/product/bctp/wumaoyi.png', imageAlt: '大宗商品线上交易' }, + { label: '航道安全信息服务', title: '聚合航行关键实时资讯', description: '汇聚航道水文、气象信息与水闸拥挤等关键数据。', bullets: ['集中展示影响船舶航行安全的重要外部信息。', '更早掌握水文、气象与通行状态变化。', '辅助运输计划调整。'], image: '/images/product/bctp/wudaozhi.png', imageAlt: '航道安全信息服务' }, + { label: '多式联运一单通行', title: '支撑一单制联运协同', description: '针对多式联运协同复杂、报价拆解繁琐的问题,整合到统一业务入口。', bullets: ['支持在线下单。', '智能分解服务报价。', '实现全程可跟踪。'], image: '/images/product/bctp/wujiujishuyi.png', imageAlt: '多式联运一单通行' }, + { label: '移动端无纸化作业', title: '支撑外场无纸化交接', description: '将车辆进港送货、船舶靠泊等外场作业流程延伸到移动端。', bullets: ['覆盖外场作业场景。', '减少纸质单据流转。', '让作业过程更及时更轻量。'], image: '/images/product/bctp/xiaochengxuzuoye.png', imageAlt: '移动端无纸化作业' }, + { label: '三维港区可视化', title: '直观呈现区域物流态势', description: '基于区域物流数据整合与三维可视化表达,为运营洞察提供更直观的展示方式。', bullets: ['整合区域物流数据。', '支持经济物流指标实时分析。', '辅助业务决策。'], image: '/images/product/bctp/sanweiwuzhou.png', imageAlt: '三维港区可视化' } + ], + advantages: [ + { title: '多方高效协同', description: '在线直连货主、船东、码头、车队,整体协同效率提升。', icon: iconA }, + { title: '港区作业可视可控', description: '三维实景展示港区全貌,调度更精准。', icon: iconB }, + { title: '作业更省更快', description: '全程电子单据无纸交接,效率显著提高。', icon: iconC }, + { title: '数据打通不孤岛', description: '物流、资金流、信息流统一共享,避免重复录入。', icon: iconD }, + { title: '经营决策更精准', description: '实时运营数据与趋势分析,调度与规划有据可依。', icon: iconE }, + { title: '航行安全更有保障', description: '提供水文气象、航道信息等查询和提醒服务。', icon: iconA } + ], + cases: [ + { title: '济宁港航建设有限公司', description: '支撑京杭运河港口、航道、船闸一体化投资运营场景。', to: '/cases/canal-logistics-supervision' }, + { title: '梧州市港务发展集团有限公司', description: '支撑市属港务集团开展港口数字化运营与管理。', to: '/cases/smart-wuzhou-port' } + ], + relatedProducts: [ + { label: '岸基网络货运平台', to: '/products/ecommerce/net-cargo' }, + { label: '岸基海运订舱平台', to: '/products/ecommerce/freight-booking' } + ] + }, + obh: { + title: '岸基网上业务大厅平台', + description: '面向货主、货代、船代、车队等外部客户,支撑港口集团实现码头业务统一化与标准化管理,提供电子办单、计费开票、TOS 数据对接、作业查询等全流程服务。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/ecommerce/obh.webp', + architectureAlt: '岸基网上业务大厅平台产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '围绕客户办单体验与港口业务协同,打造高可用的一体化服务入口。', + featureSections: [ + { label: '智能流程提效', title: '流程可视,审核提速', description: '通过 BPM 工作流实现合同办单全过程可视化,并引入 AI 异常识别能力。', bullets: ['办单进度实时可见。', '单证异常自动标记。', '整体审批周期明显缩短。'], image: '/images/product/wangshangyewudating/zhinengliuchengtixiao.png', imageAlt: '智能流程提效' }, + { label: '移动办公', title: '多终端覆盖,服务更敏捷', description: '依托移动端系统支持多终端、多渠道办单与查询。', bullets: ['随时随地办理业务。', '移动端实时查看状态。', '提升响应速度与服务体验。'], image: '/images/product/wangshangyewudating/yidongbangong.png', imageAlt: '移动办公' }, + { label: '管理可视化', title: '透明运营,支持精准决策', description: '通过工作流追踪、监控报表与预警通知,输出业务状态与关键指标。', bullets: ['业务办理进度透明可溯。', '异常预警主动推送。', '为运营优化提供实时依据。'], image: '/images/product/wangshangyewudating/guanlikeshihua.png', imageAlt: '管理可视化' }, + { label: '前后端联动', title: '跨系统互联,协同更顺畅', description: '对外联通代理与海关系统,对内集成 TOS、门禁、理货等业务系统。', bullets: ['多系统互联互通。', '数据一次录入、多方共享。', '构建全链路协同底座。'], image: '/images/product/wangshangyewudating/qianhouduanliandong.png', imageAlt: '前后端联动' }, + { label: '支付流程一体化', title: '支付与办单流程无缝衔接', description: '平台对接银行系统实现在线支付,并将支付节点嵌入办单流程。', bullets: ['客户可在线完成支付。', '支付状态自动同步。', '整体操作链路更简洁。'], image: '/images/product/wangshangyewudating/zhifuyitihua.png', imageAlt: '支付流程一体化' }, + { label: 'AI辅助审核', title: '智能识别风险,提升审核质量', description: '引入 AI 审核引擎自动识别单证信息与潜在风险。', bullets: ['单证关键信息自动提取。', '风险异常自动标记。', '审核效率与一致性提升。'], image: '/images/product/wangshangyewudating/aifuzhushenhe.png', imageAlt: 'AI辅助审核' } + ], + advantages: [ + { title: '智能流程提效', description: 'BPM 工作流实现全流程可视化,审批节点时效持续优化。', icon: iconA }, + { title: '九大系统互联', description: '打通 TOS、金税、财务、EDI、海关等系统数据。', icon: iconB }, + { title: '高可用架构保障', description: '采用集群部署、负载均衡与热加载机制,支持不停机迭代。', icon: iconC }, + { title: '无纸化法律闭环', description: '电子签章生成具备法律效力的电子合同。', icon: iconD }, + { title: '实时数据透视', description: '多维数据查询能力帮助客户实时掌握在港动态。', icon: iconE }, + { title: '支付流程一体化', description: '银行支付能力深度嵌入办单流程。', icon: iconA }, + { title: 'AI辅助审核', description: '单证自动识别与风险筛查提升审核效率。', icon: iconB } + ], + cases: [ + { title: '唐山港集团有限公司', description: '大型港口客户服务与作业协同数字化升级。', to: '/cases/tangshan-ore-terminal' }, + { title: '中山港航集团股份有限公司', description: '港口客户服务入口与业务协同能力建设。', to: '/cases/zhongshan-port-service' }, + { title: '中山港航集团股份有限公司(集装箱)', description: '集装箱码头全流程数字化业务处理。', to: '/cases/zhongshan-container-terminal' } + ], + relatedProducts: [ + { label: '岸基海运订舱平台', to: '/products/ecommerce/freight-booking' }, + { label: '岸基大宗商品贸易平台', to: '/products/ecommerce/bctp' } + ] + } +} + +export const logisticsDetails: Record = { + platform: { + title: '岸基全程物流链平台', + description: '为船公司、货代、报关企业、运输车队、港口场站及仓储服务商等全链条参与者提供线上协同工具,通过标准化数据接口实现订舱、货物追踪、单证流转线上化。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/product_full_logistics_chain_platform/platform.webp', + architectureAlt: '岸基全程物流链平台产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '围绕全链条协同与数据贯通,提升物流执行效率与透明度。', + featureSections: [ + { label: '数据自动流转', title: '环节自动衔接,告别人工催办', description: '平台打通订舱、拖车、报关、仓储各环节数据,一个环节完成后下游自动收到通知。', bullets: ['客户线上发起货运委托。', '系统自动下发全链路作业指令。', '多渠道同步运输状态。'], image: '/images/product/ilog/shujuzidongliuzhuan.png', imageAlt: '数据自动流转' }, + { label: '多端协同办公', title: '全终端协同,随时随地办公', description: '支持 PC、APP、微信公众号和小程序,覆盖不同岗位与作业场景。', bullets: ['电脑端处理批量订舱与单证。', '移动端查看订单与审批进度。', '客户通过公众号查货、查费、查船期。'], image: '/images/product/ilog/duoduanxietongbangong.png', imageAlt: '多端协同办公' }, + { label: '集团统一管控', title: '集团统一管控,多公司独立运行', description: '采用多租户设计,实现集团统一配置与子公司独立运行。', bullets: ['集团统一配置流程与标准。', '子公司数据隔离。', '管理层一屏查看集团经营数据。'], image: '/images/product/ilog/jituantongyiguanli.png', imageAlt: '集团统一管控' }, + { label: '模块化灵活配置', title: '模块化灵活配置,按需搭建扩展', description: '平台采用模块化与插拔式组件架构,支持企业按阶段投入。', bullets: ['可先上线订舱和拖车模块。', '后续平滑增加报关、仓储等模块。', '不同板块可独立配置。'], image: '/images/product/ilog/mokuaihuapeizhi.png', imageAlt: '模块化灵活配置' }, + { label: '对外系统对接', title: '标准接口对接,全域系统协同', description: '提供标准化数据交换接口,实现与海关、财务、港口等系统的自动协同。', bullets: ['舱单数据自动发送海关。', '费用数据自动同步财务系统。', '港口作业状态自动回传。'], image: '/images/product/ilog/duiwaixitongduijie.png', imageAlt: '对外系统对接' } + ], + advantages: [ + { title: '云化部署降本', description: '云资源按需使用,减少硬件采购与机房维护投入。', icon: iconA }, + { title: '自动运维省心', description: '平台提供自动化监控与告警,降低人工运维依赖。', icon: iconB }, + { title: '多端协同提效', description: 'PC、APP、微信全渠道覆盖。', icon: iconC }, + { title: '模块化按需上线', description: '按业务阶段灵活启用模块。', icon: iconD }, + { title: '自动对接降误差', description: '与上下游系统自动交换数据,减少人工重复录入。', icon: iconE }, + { title: '高可用与数据安全', description: '多副本备份与资源隔离提升可靠性。', icon: iconA } + ], + cases: [ + { title: '唐山海港海通海运代理有限公司', description: '依托平台支撑货运代理与协同操作。', to: '/cases/tangshan-haitong-shipping' }, + { title: '日照华海国际船舶代理有限公司', description: '平台支撑船代、货代等多角色业务协同。', to: '/cases/rizhao-huahai-shipping' }, + { title: '广州安之达物流有限公司', description: '支撑综合物流服务场景的链路协同。', to: '/cases/guangzhou-anzhida-logistics' } + ], + relatedProducts: [ + { label: '岸基车辆运输管理系统', to: '/products/logistics/vehicle-transport' }, + { label: '岸基仓储管理系统', to: '/products/logistics/warehouse' }, + { label: '岸基船舶代理系统', to: '/products/logistics/ship-agent' }, + { label: '岸基货运代理系统', to: '/products/logistics/cargo-agent' } + ] + }, + 'ship-agent': { + title: '岸基船舶代理系统', + description: '面向船代公司提供完整业务操作解决方案,支持船务、单证、箱管、商务、财务等多部门协同办公,适用于集装箱/散杂货、干线/支线、外贸/内贸等全代理模式。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/product_full_logistics_chain_platform/ship_agent.webp', + architectureAlt: '岸基船舶代理系统产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '覆盖船代核心作业链条,强化集团管控、自动化处理与经营可视。', + featureSections: [ + { label: '集团统一管理', title: '集团多公司统一管理', description: '通过统一规则与标准,实现集团化船代业务协同和子公司独立运营并行。', bullets: ['集团统一配置业务规则。', '子公司独立操作且数据隔离。', '管理层一屏掌握集团业务全貌。'], image: '/images/product/chuanbodaili/jituanduogongsiguanli.png', imageAlt: '集团统一管理' }, + { label: 'AI智能作业', title: 'AI智能识别与自动化操作', description: '将高频、重复、易错的单证处理流程自动化。', bullets: ['发票拍照上传后自动识别。', '海关舱单自动发送。', '危险品单证自动标记风险点。'], image: '/images/product/chuanbodaili/aizhinenyunzuo.png', imageAlt: 'AI智能作业' }, + { label: 'EDI灵活配置', title: 'EDI与界面自定义配置', description: '支持报文、费率、界面按客户与岗位差异化配置。', bullets: ['不同船公司报文格式可自动转换。', '费用项目与费率按客户维度灵活配置。', '按岗位显示功能。'], image: '/images/product/chuanbodaili/edipeizhi.png', imageAlt: 'EDI灵活配置' }, + { label: '全渠道服务', title: '全渠道服务能力', description: '通过网站、APP、微信多端协同,实现客户服务与内部作业统一联动。', bullets: ['客户可在微信端查船期、查费用、查进度。', '操作人员在电脑端处理批量业务。', '管理层在移动端审批。'], image: '/images/product/chuanbodaili/quandaofuwu.png', imageAlt: '全渠道服务' }, + { label: '业财一体化', title: '业务财务一体化', description: '打通业务与财务数据链路,实现费用自动归集、对账与收支跟踪闭环。', bullets: ['费用自动归集。', '对账单一键生成。', '应收应付实时可见。'], image: '/images/product/chuanbodaili/yecaiyitihua.png', imageAlt: '业财一体化' }, + { label: '数据可视化', title: '数据可视化决策', description: '通过图形化展现船舶、业务、财务数据,帮助管理层快速判断运营表现。', bullets: ['船舶在港/在途状态图形化展示。', '业务进度实时跟踪。', '收入与成本对比可视化。'], image: '/images/product/chuanbodaili/shujukeshihua.png', imageAlt: '数据可视化' } + ], + advantages: [ + { title: '集团管控省力', description: '统一架构定义数据标准与流程规则。', icon: iconA }, + { title: 'AI操作省人', description: '智能识别与规则引擎覆盖高频场景。', icon: iconB }, + { title: '自动化业务省时', description: 'RPA 自动处理与费用自动计算协同。', icon: iconC }, + { title: '灵活配置省事', description: '插件化能力支持界面、审批、报文按需配置。', icon: iconD }, + { title: '数据可视省心', description: '船舶动态、业务进度、收入成本统一可视。', icon: iconE }, + { title: '高可靠保障', description: '分布式平台与负载均衡机制保障系统稳定。', icon: iconA } + ], + cases: [ + { title: '日照华海国际船舶代理有限公司', description: '船代业务数字化与多系统协同落地。', to: '/cases/rizhao-huahai-shipping' }, + { title: '上海航华国际船务代理有限公司', description: '面向大型船代企业的多部门协同系统。', to: '/cases/shanghai-hanghua-ship-agent' }, + { title: '上海鹏华船务有限公司', description: '支撑公共船舶代理企业的高效业务处理。', to: '/cases/shanghai-penghua-platform' } + ], + relatedProducts: [ + { label: '岸基全程物流链平台', to: '/products/logistics/platform' }, + { label: '岸基货运代理系统', to: '/products/logistics/cargo-agent' } + ] + }, + 'cargo-agent': { + title: '岸基货运代理系统', + description: '针对货代业务特点,实现货物委托、提单确认、海关预配、EDI、费用结算等关键环节的高效操作,借助 AI 提升单证识别与费用对账能力。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/product_full_logistics_chain_platform/cargo_agent.webp', + architectureAlt: '岸基货运代理系统产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '围绕货代作业标准化与自动化,提升效率、准确性与协同能力。', + featureSections: [ + { label: '流程标准化', title: '流程统一规范,协作稳定高效', description: '建立数据 SOP 标准,明确各业务节点的操作责任与数据流转方式。', bullets: ['新员工更快上手。', '岗位交接边界清晰。', '问题可追溯。'], image: '/images/product/huoyundaili/liuchengbiaozhunhua.png', imageAlt: '流程标准化' }, + { label: '录单智能化', title: 'AI 智能录单,人力成本减半', description: '通过自动化录单、智能发送与识别能力,将重复录入环节转换为系统自动处理。', bullets: ['邮件订舱单自动识别并录入。', '海关预配舱单可一键发送。', '整体处理效率提升。'], image: '/images/product/huoyundaili/ludanzhinenghua.png', imageAlt: '录单智能化' }, + { label: '计费灵活化', title: '计费灵活配置,自动精准核算', description: '支持费目与计费规则配置,结合业务节点自动触发计费。', bullets: ['支持客户级价格体系独立配置。', '自动生成费用。', '降低人工算错争议。'], image: '/images/product/huoyundaili/jifeilinghuohua.png', imageAlt: '计费灵活化' }, + { label: 'EDI自动对接', title: 'EDI 自动对接,数据免重复录入', description: '对接船公司、海关、码头等外部系统,实现业务报文自动流转与状态回写。', bullets: ['舱单自动发送海关。', '订舱数据自动传输至船公司。', '回执自动接收并更新状态。'], image: '/images/product/huoyundaili/edizidongduijie.png', imageAlt: 'EDI 自动对接' } + ], + advantages: [ + { title: '流程标准省心', description: 'SOP 标准明确环节边界,协同更清晰。', icon: iconA }, + { title: 'AI录单省力', description: 'AI 与规则引擎自动处理录单与识别任务。', icon: iconB }, + { title: '计费灵活省事', description: '系统自动计费,减少人工核算与争议。', icon: iconC }, + { title: 'EDI协同省时', description: '外部系统自动对接与报文交换。', icon: iconD }, + { title: '可视监管省脑', description: '数据状态清晰可查,方便追踪与管理。', icon: iconE } + ], + cases: [ + { title: '上海上港联合国际船舶代理有限公司', description: '订舱与货代业务的数字化协同案例。', to: '/cases/shanggang-liandai-booking' }, + { title: '上海新海国际船舶代理有限公司', description: '国际船舶代理场景下的全流程数字化作业。', to: '/cases/shanghai-xinhai-freight' } + ], + relatedProducts: [ + { label: '岸基全程物流链平台', to: '/products/logistics/platform' }, + { label: '岸基船舶代理系统', to: '/products/logistics/ship-agent' } + ] + }, + 'vehicle-transport': { + title: '岸基车辆运输管理系统', + description: '以业财一体化为核心,聚焦车队调度、成本核算、费用结算等关键场景,通过智能调度和全程可视化能力帮助运输企业优化运力配置。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/product_full_logistics_chain_platform/car_management.webp', + architectureAlt: '岸基车辆运输管理系统产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '从路线、跟踪、成本到结算与异常处置,构建运输全流程数字化闭环。', + featureSections: [ + { label: '智能路线规划', title: '智能路线规划,省油高效通行', description: '系统基于 GIS、实时交通与车辆约束条件自动生成建议路线。', bullets: ['避开拥堵路段。', '综合载重与司机资质推荐车辆。', '让调度从经验驱动转向数据驱动。'], image: '/images/product/cheliangyunshu/zhinengluxianguihua.png', imageAlt: '智能路线规划' }, + { label: '全程可视追踪', title: '运输全程可视,货物状态一目了然', description: '通过 GPS、闸口信息和视频监控,实现车辆位置与货物状态实时可见。', bullets: ['货主可微信查位置信息。', '异常停留自动预警。', '温控异常自动报警。'], image: '/images/product/cheliangyunshu/yunshushijiankeshihua.png', imageAlt: '全程可视追踪' }, + { label: '成本精细核算', title: '成本精细核算,收支一目了然', description: '覆盖运费、油费、过路费、停车费等成本项。', bullets: ['每趟运输成本自动归集。', '不同线路与车型成本可横向对比。', '承运商对账有据可依。'], image: '/images/product/cheliangyunshu/chengbenjingxihesuan.png', imageAlt: '成本精细核算' }, + { label: '费用自动结算', title: '费用自动结算,对账高效省心', description: '系统按费率自动计算费用并生成对账单与报表。', bullets: ['司机运费自动计算。', '客户对账单一键生成。', '财务自动获取报表。'], image: '/images/product/cheliangyunshu/feiyongzidongjiesuan.png', imageAlt: '费用自动结算' }, + { label: '异常快速处理', title: '异常快速处理,调度及时可控', description: '系统持续监控车辆状态并输出应急建议。', bullets: ['异常停留自动报警。', '自动推荐备选路线或调配车辆。', '货损信息及时通知。'], image: '/images/product/cheliangyunshu/yichangkuaisuchuli.png', imageAlt: '异常快速处理' } + ], + advantages: [ + { title: '路线更省', description: '自动规划更优路线,减少绕行与燃油消耗。', icon: iconA }, + { title: '跟踪更透', description: '车辆与货物状态全程可见。', icon: iconB }, + { title: '成本更清', description: '单趟利润与线路效益能够快速量化。', icon: iconC }, + { title: '结算更快', description: '显著压缩对账和结算周期。', icon: iconD }, + { title: '异常更稳', description: '异常预警、路径重算和应急调度协同。', icon: iconE } + ], + cases: [ + { title: '唐山海港海通海运代理有限公司', description: '运输组织与车队协同场景的数字化实践。', to: '/cases/tangshan-haitong-shipping' }, + { title: '珠江船务企业(集团)有限公司', description: '平台内各码头拖车集中调度与可视化管理。', to: '/cases/zhujiang-shipping' }, + { title: '日照泓源物流有限公司', description: '内贸集装箱物流运输的车辆运营与协同案例。', to: '/cases/rizhao-hongyuan-logistics' } + ], + relatedProducts: [ + { label: '岸基全程物流链平台', to: '/products/logistics/platform' }, + { label: '岸基仓储管理系统', to: '/products/logistics/warehouse' } + ] + }, + warehouse: { + title: '岸基仓储管理系统', + description: '通过集成智能设备与作业分配机制,实现仓库作业的动态管控与实时跟踪,帮助仓库管理人员完成货物准确记录、库存跟踪、入出库调度等关键工作。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/product_full_logistics_chain_platform/warehouse.webp', + architectureAlt: '岸基仓储管理系统产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '聚焦库存准确、作业提效与管理可视,打造仓储数字化执行底座。', + featureSections: [ + { label: '库存实时追踪', title: '库存精准透明,账实一致无争议', description: '系统实时采集库存数据并自动更新,降低账实不符风险。', bullets: ['扫码出入库后库存自动更新。', '效期与批次自动管理。', '低于安全库存自动预警。'], image: '/images/product/cangchu/kucunshishizhuizong.png', imageAlt: '库存实时追踪' }, + { label: '智能货位布局', title: '货位智能优化,拣货高效省力', description: '根据批次、销量、货品属性等因素推荐货位。', bullets: ['高频货优先分配至近出入口区域。', '同类商品集中存放。', '大件低位、小件高位。'], image: '/images/product/cangchu/zhinenghuoweibuju.png', imageAlt: '智能货位布局' }, + { label: '作业自动化', title: '扫码作业无纸化,流程更高效', description: '通过移动端接收任务并扫码执行入库、出库、移库。', bullets: ['作业任务实时推送到手持端。', '系统自动生成拣货路径。', '作业数据实时同步。'], image: '/images/product/cangchu/zuoyezidonghua.png', imageAlt: '作业自动化' }, + { label: '数据驱动决策', title: '数据支撑决策,运营一目了然', description: '提供库存、订单、效率等实时报表,帮助管理层进行采购与运营决策。', bullets: ['库存、出入库进度、设备状态可实时查看。', '畅销与滞销品分析支撑采购计划优化。', '作业效率数据可量化评估团队执行表现。'], image: '/images/product/cangchu/shujuqudongjuece.png', imageAlt: '数据驱动决策' } + ], + advantages: [ + { title: '库存准', description: '库存实时采集与可视化报表结合,扫码即更新。', icon: iconA }, + { title: '找货快', description: '智能布局让高频货位更合理、同类集中存放。', icon: iconB }, + { title: '作业快', description: '移动扫码作业替代纸质单据。', icon: iconC }, + { title: '看得清', description: '库存、订单、效率多维数据统一看板。', icon: iconD }, + { title: '省人力', description: '智能化设备与流程替代手工记录。', icon: iconE } + ], + cases: [ + { title: '广州安之达物流有限公司', description: '仓储与综合物流业务的流程优化案例。', to: '/cases/guangzhou-anzhida-logistics' }, + { title: '侨益物流股份有限公司', description: '农产品全链条物流与仓储数字化协同案例。', to: '/cases/qiaoyi-logistics' } + ], + relatedProducts: [ + { label: '岸基全程物流链平台', to: '/products/logistics/platform' }, + { label: '岸基车辆运输管理系统', to: '/products/logistics/vehicle-transport' } + ] + } +} + +export const portDetails: Record = { + cdi: { + title: '岸基云码头一体化智能操作系统', + description: '适配集装箱、散杂货、液化等全货种码头,集成操作、计划、调度、费收、EDI、客服、决策等核心模块,以自动排产、实时监控、自动配载、集卡调度赋能集团化统一运营。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/port/cdi.webp', + architectureAlt: '岸基云码头一体化智能操作系统产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '围绕堆场、配载、闸口与查验关键环节,形成端到端作业优化闭环。', + featureSections: [ + { label: '多业态融合', title: '全业务覆盖,多元化赋能', description: '一套系统同时支撑集装箱、散杂货、液化、煤炭等专业码头业务。', bullets: ['多业态业务模型内置。', '业务规则按码头类型灵活配置。', '集团级运营分析更全面。'], image: '/images/product/yitihua/zhinengduichangyouhua.png', imageAlt: '多业态融合' }, + { label: '可视化回溯', title: '突破存储限制,状态实时可查', description: '以可视化方式回溯任意时间点的作业现状。', bullets: ['轻量化数据存储方案。', '时间轴拖拽式查询。', '作业过程可视化重现。'], image: '/images/product/yitihua/duichangquanjingkeshihua.png', imageAlt: '可视化回溯' }, + { label: '智能船舶配载', title: '智能船舶配载,方案自动优配', description: '支持手工与EDI预配,结合规则引擎和专家知识库自动生成配载队列。', bullets: ['自动输出配载方案。', '支持多方案对比评估。', '自动形成配载报告。'], image: '/images/product/yitihua/zhinengchuanbopeizai.png', imageAlt: '智能船舶配载' }, + { label: '作业智能均衡', title: '多路作业均衡,提升吞吐效率', description: '结合堆场策划自动分配闸口进箱与卸船位置。', bullets: ['任务自动分流。', '避免一线拥堵一线空闲。', '机械利用率提升。'], image: '/images/product/yitihua/duoluzuoyezhinengjunheng.png', imageAlt: '作业智能均衡' }, + { label: '闸口无人值守', title: '无人值守闸口,提速通行效率', description: '通过智能硬件自动采集闸口数据并下发作业指令。', bullets: ['车辆自动识别放行。', '信息一次采集。', '高峰时段通行效率更稳定。'], image: '/images/product/yitihua/wurenzhishouzidonghuazhakou.png', imageAlt: '闸口无人值守' }, + { label: '多系统协同对接', title: '全渠道数据交换,打通业务孤岛', description: '支持EDI、接口、消息、邮件、短信等多种方式数据交互。', bullets: ['标准EDI报文转换。', 'RESTful API 开放接口。', '消息队列实时推送。'], image: '/images/product/yitihua/chayanzuoyequanliuchengkeshihua.png', imageAlt: '多系统协同对接' } + ], + advantages: [ + { title: '翻倒降低与堆位增效', description: '提升堆码密度并减少二次翻捣,直接降低作业成本。', icon: iconA }, + { title: '自动派位与均衡作业', description: '自动分配堆场位置并平衡作业负载。', icon: iconB }, + { title: '智能配载提质增效', description: '自动生成多套配载方案并快速比选。', icon: iconC }, + { title: '全景可视与实时监控', description: '计划、货物、设备与执行进度在线可视。', icon: iconD }, + { title: '闸口无人化快速通行', description: '自动识别与自动指令下发覆盖车辆进出关键环节。', icon: iconE }, + { title: '查验协同与过程留痕', description: '查验队列、指令回执与残损登记在线联动。', icon: iconA } + ], + cases: [ + { title: '广州市港务局', description: '港务管理与多系统协同场景的数字化支撑。', to: '/cases/guangzhou-port-authority' }, + { title: '秦皇岛港股份有限公司', description: '大宗散货公众码头的业务调度与系统建设案例。', to: '/cases/qinhuangdao-cargo-system' } + ], + relatedProducts: [ + { label: '岸基云码头集装箱智能操作系统', to: '/products/port/cdi-container' }, + { label: '岸基云码头散杂货智能操作系统', to: '/products/port/cdi-bulk' }, + { label: '岸基云场站智能操作系统', to: '/products/port/cloud-yard' } + ] + }, + 'cdi-bulk': { + title: '岸基云码头散杂货智能操作系统', + description: '云端多租户架构,覆盖十大核心模块,以图形化界面与智能算法驱动自动排产、实时监控、自动配载与协同调度,适配高频散杂货码头作业场景。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/port/bulk.webp', + architectureAlt: '岸基云码头散杂货智能操作系统产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '聚焦闸口、定位、业财、多码头与生态对接,打造散杂货码头云化运营底座。', + featureSections: [ + { label: '货物实时追踪', title: '货物全程追踪定位,状态透明', description: '通过GPS差分定位与移动终端采集,实时追踪货物位置、作业状态与异常变化。', bullets: ['货物堆存位置实时可查。', '作业进度动态更新。', '异常移动自动预警。'], image: '/images/product/sanzahuo/huowushishidingweiyuzhuizong.png', imageAlt: '货物实时追踪' }, + { label: '业财一体管理', title: '业财一体,结算更顺畅', description: '打通业务作业与财务计费流程,实现费用自动归集。', bullets: ['靠港费用自动计算。', '对账单一键生成并推送。', '应收应付实时可见。'], image: '/images/product/sanzahuo/yecaiyitihuaguanli.png', imageAlt: '业财一体管理' }, + { label: '智能理货功能', title: '多端协同,可视化理货', description: '多端协同、可视化作业,数据实时上传同步进度。', bullets: ['理货员现场操作实时上传。', '异常情况现场拍照上传。', '从纸质记录走向数字协同。'], image: '/images/product/sanzahuo/bsjiagoubianjieshiyong.png', imageAlt: '智能理货功能' }, + { label: '灵活散杂货计费', title: '适配多样计费与定制规则', description: '支持多种计费模式与自定义规则。', bullets: ['先入先出自动匹配计费批次。', '整入零出按实际出库量分段计费。', '支持按货类、客户、堆场等维度配置。'], image: '/images/product/sanzahuo/guojihuaduoyuyanzhichi.png', imageAlt: '灵活散杂货计费' }, + { label: '上下游系统对接', title: '打通业务数据链路', description: '与货主、货代、船东、船代、海关等系统实现自动数据交换。', bullets: ['舱单自动发送海关。', '船公司报文自动接收。', '回执自动解析回传。'], image: '/images/product/sanzahuo/shangxiayouxitongduijie.png', imageAlt: '上下游系统对接' } + ], + advantages: [ + { title: '极简成本投入', description: '按需弹性调用云资源,减少一次性基础设施投入。', icon: '/images/project/common/Group-5-Copy-3.svg' }, + { title: '全托管式智能运维', description: '资源状态可视监控与多通道告警。', icon: iconE }, + { title: '统一化便捷操作', description: '公有云与私有云统一控制台入口。', icon: iconD }, + { title: '军工级安全防护', description: '多副本存储与“两地三中心”容灾架构。', icon: '/images/project/common/资源_6.svg' }, + { title: '企业级可靠保障', description: '通过负载均衡、资源隔离与集群读写分离机制保障稳定性。', icon: '/images/project/common/智慧物业-copy-2.svg' }, + { title: '开放标准云平台', description: '基于 OpenStack 主流架构构建。', icon: '/images/project/common/Group-5-Copy-3.svg' } + ], + cases: [ + { title: '秦皇岛港股份有限公司', description: '散货码头与大宗货物作业管理案例。', to: '/cases/qinhuangdao-cargo-system' } + ], + relatedProducts: [ + { label: '岸基云码头一体化智能操作系统', to: '/products/port/cdi' }, + { label: '岸基云码头集装箱智能操作系统', to: '/products/port/cdi-container' } + ] + }, + 'cdi-container': { + title: '岸基云码头集装箱智能操作系统', + description: '云端多租户架构,集成十大核心模块,以图形化界面与智能算法驱动自动排产、实时监控、自动配载与智能调度,全面提升集装箱码头作业效率。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/port/cdi2.webp', + architectureAlt: '岸基云码头集装箱智能操作系统产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '围绕堆场、配载、闸口与查验场景,构建集装箱码头智能作业闭环。', + featureSections: [ + { label: '智能堆场优化', title: '减少翻捣与堆场压力', description: '通过图形化界面与数学算法优化堆码密度。', bullets: ['同等场地容纳更多箱量。', '显著降低二次翻捣频次。', '堆场计划更标准可控。'], image: '/images/product/jizhuangxiang/zhinengduichangyouhua.png', imageAlt: '智能堆场优化' }, + { label: '全自动堆场计划', title: '自动派位与负载平衡', description: '基于参数化算法自动分配箱位。', bullets: ['新箱入场自动派位。', '机械移动距离最小化。', '作业量动态均衡。'], image: '/images/product/jizhuangxiang/quanzidongduichangjihua.png', imageAlt: '全自动堆场计划' }, + { label: '智能船舶配载', title: '方案自动生成与比选', description: '支持手工与EDI预配,结合专家知识库生成可优化的配载队列。', bullets: ['自动输出配载方案。', '支持多方案对比。', '自动形成配载报告。'], image: '/images/product/jizhuangxiang/zhinengchuanbopeizai.png', imageAlt: '智能船舶配载' }, + { label: '堆场全景可视', title: '可视化现场态势一屏掌握', description: 'BS图形化实时展示整船进度、机械位置与箱位分布。', bullets: ['整船作业进度在线可见。', '设备状态与位置实时同步。', '远程即可观察堆场动态。'], image: '/images/product/jizhuangxiang/duichangquanjingkeshihua.png', imageAlt: '堆场全景可视' }, + { label: '多路作业智能均衡', title: '多路作业智能均衡:资源利用更充分', description: '系统结合堆场策划结果自动分配闸口进箱与卸船位置。', bullets: ['任务按作业线自动分流。', '提升全局作业效率。', '机械利用率提升。'], image: '/images/product/jizhuangxiang/duoluzuoyezhinengjunheng.png', imageAlt: '多路作业智能均衡' }, + { label: '无人值守自动化闸口', title: '无人值守自动化闸口:高峰通行不拥堵', description: '依托闸口智能设备自动采集信息并生成作业指令。', bullets: ['车辆自动识别进场。', '信息自动录入共享。', '高峰期通行效率更稳定。'], image: '/images/product/jizhuangxiang/wurenzhishouzidonghuazhakou.png', imageAlt: '无人值守自动化闸口' } + ], + advantages: [ + { title: '流程标准化与无纸化', description: '推动内部单证电子化流转。', icon: '/images/project/common/资源_2.svg' }, + { title: '自动化驱动实时决策', description: '关键数据自动采集提升监管时效。', icon: iconD }, + { title: '全要素可视化管控', description: '计划、货物、设备与执行进度统一视图。', icon: iconE }, + { title: '全域运行实时监控', description: '对船舶动态、货物位置、机械状态和车辆轨迹进行实时监控。', icon: '/images/project/common/资源_10.svg' } + ], + cases: [ + { title: '中山港航集团股份有限公司', description: '集装箱码头全流程数字化管理。', to: '/cases/zhongshan-container-terminal' }, + { title: '威海港通信息科技有限公司', description: '港口信息化与闸口场站协同场景。', to: '/cases/weihai-gate-yard' } + ], + relatedProducts: [ + { label: '岸基云码头一体化智能操作系统', to: '/products/port/cdi' }, + { label: '岸基云场站智能操作系统', to: '/products/port/cloud-yard' } + ] + }, + 'cloud-yard': { + title: '岸基云场站智能操作系统', + description: '面向集装箱场站、散杂货场站、内陆港和海铁联运场站,覆盖收提箱、拆装箱、堆存、装卸、闸口、计费、调度、查验与报表全业务链。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/port/yunchangzhan.png', + architectureAlt: '岸基云场站智能操作系统产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '覆盖堆场、闸口、移动作业、计费与集团管控,打造场站全流程智能运营底座。', + featureSections: [ + { label: '智能堆场派位', title: '智能堆场派位,提升堆存利用率', description: '系统按箱型、航线、船期和作业顺序自动规划堆存区域与最优箱位。', bullets: ['减少人工反复调整。', '智能派位降低现场干预频次。', '减少二次翻箱。'], image: '/images/product/yunchangzhan/zhinengduichangjihuayuzidongpaiwei.png', imageAlt: '智能堆场派位' }, + { label: '多路作业均衡', title: '作业智能均衡,调度高效有序', description: '围绕闸口、装卸船、移箱等多条作业线做统一调度与动态分流。', bullets: ['任务自动均衡分配。', '避免局部资源过载。', '保障场站整体吞吐更稳定。'], image: '/images/product/yunchangzhan/duoluzuoyezhinengjunhengdiaodu.png', imageAlt: '多路作业均衡' }, + { label: '无人智能闸口', title: '无人闸口自动通行,高效过闸', description: '在进出场环节完成车牌、箱号和信息校验。', bullets: ['车牌、箱号 OCR 自动识别。', '箱体验残自动采集。', '校验通过后自动抬杆放行。'], image: '/images/product/yunchangzhan/wurenzhishouzhinengzhakou.png', imageAlt: '无人智能闸口' }, + { label: '移动无纸化作业', title: '移动无纸化作业,数据实时回传', description: '现场人员通过移动端完成装卸船、拆装箱、移箱、查验和残损登记。', bullets: ['装卸船、拆装箱、移箱作业可一键确认。', '冷箱监控与插拔电记录实时留痕。', '查验和残损登记支持拍照上传。'], image: '/images/product/yunchangzhan/yidongzuoyewuzhihuashishicaiji.png', imageAlt: '移动无纸化作业' }, + { label: '堆场全景可视', title: '堆场全景可视化,远程实时监场', description: '采用 BS 架构图形化展示箱位、机械、作业进度和在场库存。', bullets: ['箱号、箱位、状态和尺寸实时展示。', '机械 GIS 定位与状态实时可见。', '装卸船进度和库存动态持续更新。'], image: '/images/product/yunchangzhan/duichangtuxinghuaquanjingkeshihua.png', imageAlt: '堆场全景可视' }, + { label: '智能自动计费', title: '智能计费与自动结算:提升核算准确性与对账效率', description: '系统按业务规则自动计算堆存、装卸、修洗箱、闸口和查验等费用。', bullets: ['全费目自动核算。', '支持差异化计费配置。', '账单明细清晰可导出。'], image: '/images/product/yunchangzhan/zhinengjifeiyuzidongjiesuan.png', imageAlt: '智能自动计费' } + ], + advantages: [ + { title: '全业务一体化覆盖', description: '一套系统贯通集装箱与散杂货场站全流程作业。', icon: '/images/project/common/资源_2.svg' }, + { title: '智能算法精准调度', description: '帮助场站直接压降单箱作业成本。', icon: iconD }, + { title: '物联网无人化作业', description: '实现 24 小时无人值守通行。', icon: '/images/project/common/资源_10.svg' }, + { title: '图形化全景可视', description: '堆场、机械和作业进度统一可视化展示。', icon: iconE }, + { title: '自动化精准计费', description: '全费目自动核算和账单对账闭环。', icon: '/images/project/common/资源_6.svg' }, + { title: '集团化数据决策', description: '支持多场站统一经营分析与风险预警。', icon: '/images/project/common/智慧物业-copy-2.svg' } + ], + cases: [ + { title: '济宁港航建设有限公司', description: '围绕船舶收费监管和港口场站管理的数字化建设案例。', to: '/cases/canal-logistics-supervision' }, + { title: '秦皇岛港股份有限公司', description: '港口散货与场站协同作业场景。', to: '/cases/qinhuangdao-cargo-system' } + ], + relatedProducts: [ + { label: '岸基云码头一体化智能操作系统', to: '/products/port/cdi' }, + { label: '岸基云码头集装箱智能操作系统', to: '/products/port/cdi-container' }, + { label: '岸基云码头散杂货智能操作系统', to: '/products/port/cdi-bulk' } + ] + } +} + +export const shippingDetails: Record = { + boat: { + title: '岸基船舶管理系统', + description: '专为船公司经营与运营管理定制,覆盖经营管理、运营管理、体系管理三大场景,打通业务与财务,实现跨部门数据共享与协同。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/shipping/boat.webp', + architectureAlt: '岸基船舶管理系统产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '围绕经营、运营、财务与体系管理构建船舶管理一体化平台。', + featureSections: [ + { label: '报销统一管理', title: '费用统一报销,降本提效', description: '停用分散报销工具,所有费用在系统内统一处理。', bullets: ['财务人员无需在多个系统间切换。', '节省授权与维护费用。', '流程统一后对账口径更清晰。'], image: '/images/product/chuanboguanli/feiyongbaoxiaotongyi.png', imageAlt: '报销统一管理' }, + { label: '流程统一审批', title: '工作流统一审批,流程规范可追溯', description: '审批流全部回归业务系统统一管理。', bullets: ['集团标准一致。', '审批进度实时可查。', '审批记录集中归档。'], image: '/images/product/chuanboguanli/gongzuoliuchengtongyi.png', imageAlt: '流程统一审批' }, + { label: '业财数据互通', title: '业财自动对接,账目清晰', description: '多种方式对接财务系统,业务与财务数据自动同步。', bullets: ['业务单据自动生成财务凭证。', '数据口径统一。', '缩短月末结账周期。'], image: '/images/product/chuanboguanli/yecaiduidong.png', imageAlt: '业财数据互通' }, + { label: '船员薪资核算', title: '船员薪资自动计算,精准高效', description: '内置计算引擎处理薪资、补贴、扣款等复杂规则。', bullets: ['降低人工算薪问题。', '计算结果可直接对接财务。', '复杂场景规则由系统自动处理。'], image: '/images/product/chuanboguanli/chuanyuanxinzizidong.png', imageAlt: '船员薪资核算' }, + { label: '证书到期预警', title: '证书自动预警,规避合规风险', description: '系统主动监控证书与关键节点,到期前预警并推送责任人。', bullets: ['证书到期前自动提醒。', '待办任务实时推送。', '流程推进转向主动驱动。'], image: '/images/product/chuanboguanli/zhengshuyujing.png', imageAlt: '证书到期预警' }, + { label: '体系文件无纸化', title: '体系文件无纸化,高效合规', description: '文件从生成、审批到归档全流程线上化。', bullets: ['模板化生成文件。', '电子化集中存储。', '审计支持一键导出打印。'], image: '/images/product/chuanboguanli/tixiwendangwuzhihua.png', imageAlt: '体系文件无纸化' }, + { label: 'BI数据可视', title: 'BI 数据可视,科学决策', description: '整合船员、客户、船舶等核心数据,形成多维指标看板。', bullets: ['统一数据资产。', '关键指标图表化展示。', '无需等待月报即可实时查看数据。'], image: '/images/product/chuanboguanli/bikanban.png', imageAlt: 'BI数据可视' } + ], + advantages: [ + { title: '统一报销管理', description: '集中处理费用报销流程,降低系统分散导致的维护成本。', icon: iconA }, + { title: '统一流程审批', description: '审批全流程回归业务系统,集团标准一致。', icon: iconB }, + { title: '业财自动对接', description: '业务数据自动联动财务系统。', icon: iconC }, + { title: '复杂计算自动化', description: '内置计算引擎处理薪资与经营测算。', icon: iconD }, + { title: '智能预警主动推送', description: '关键节点自动预警并推送责任人。', icon: iconE }, + { title: '体系文件无纸化', description: '文件生成、审批、归档全线上化。', icon: iconA }, + { title: 'BI数据可视', description: '多维图表集中呈现经营指标。', icon: iconB } + ], + cases: [ + { title: '上海海华轮船有限公司', description: '船舶运营管理一体化场景的实际落地案例。', to: '/cases/shanghai-haihua-shipping' }, + { title: '天津中运海运集团有限公司', description: '船舶与运营管理协同的数字化建设案例。', to: '/cases/tianjin-zhongyun-shipping' }, + { title: '连云港中韩轮渡有限公司', description: '客货班轮公司在船舶管理与协同作业方面的案例。', to: '/cases/lianyungang-china-korea-ferry' } + ], + relatedProducts: [ + { label: '岸基船公司运营管理系统', to: '/products/shipping/company' } + ] + }, + company: { + title: '岸基船公司运营管理系统', + description: '以“1+3+N”架构为核心,打通业务操作、船舶管理、财务结算三大环节,实现全链路数据协同。提供业务智能操作、船舶动态管理、EDI无缝交换、决策数据看板等能力。', + bannerImage: '/images/page-title2.webp', + architectureImage: '/images/project/shipping/company.webp', + architectureAlt: '岸基船公司运营管理系统产品架构', + featureHeading: '产品核心功能与价值', + featureSummary: '围绕船公司核心经营链路,构建智能化、可视化、全球化的运营能力。', + featureSections: [ + { label: '业务智能操作', title: '智能业务处理,减少人工录入', description: '通过 OCR 识别、自动计费与待办推送,优化传统手工业务处理模式。', bullets: ['提单、箱单等单证自动识别录入。', '修箱费、超期费等费用自动核算。', '待办自动推送。'], image: '/images/product/chuangongsi/yewuzhinengcaozuo.png', imageAlt: '业务智能操作' }, + { label: '船舶动态管理', title: '船舶动态监控,实时掌握船况', description: '接入 AIS 数据,实时展示船舶位置、航速与 ETA。', bullets: ['调度可直接查看船位。', '预计到港时间自动更新。', '航线偏离自动预警。'], image: '/images/product/chuangongsi/chuanbodongtaiguanli.png', imageAlt: '船舶动态管理' }, + { label: 'EDI无缝交换', title: 'EDI 无缝对接,数据自动交互', description: '与海关、海事、码头等外部系统自动交换报文。', bullets: ['舱单、报关单自动发送。', '回执自动接收并同步状态。', '支持 300+ 口岸节点对接。'], image: '/images/product/chuangongsi/ediwufengjiaohuan.png', imageAlt: 'EDI无缝交换' }, + { label: '业财数据联动', title: '业财数据联动,同步高效核算', description: '业务、预算、结算与成本数据实时联动。', bullets: ['收入与成本自动归集。', '核算周期缩短。', '船舶利用率与单箱成本实时可查。'], image: '/images/product/chuangongsi/yecailiandong.png', imageAlt: '业财数据联动' }, + { label: '决策数据看板', title: '企业经营指标一目了然', description: '通过 BI 看板沉淀船舶利用率、航线效益、成本结构等核心经营指标。', bullets: ['实时运营数据。', '航线盈亏图表化展示。', '支持多维下钻分析。'], image: '/images/product/chuangongsi/juecekanban.png', imageAlt: '决策数据看板' }, + { label: '全球合规适配', title: '支持多币种多语言', description: '系统支持多语言界面、多币种结算和国际规则预置。', bullets: ['海外代理可切换英文界面。', '多币种自动换算。', '预置多航线申报规则。'], image: '/images/product/chuangongsi/quanqiuheguishipei.png', imageAlt: '全球合规适配' } + ], + advantages: [ + { title: '弹性架构支撑', description: '分布式 PaaS 与容器扩容能力支撑业务峰值。', icon: iconA }, + { title: 'EDI智能通关', description: '多口岸、多协议报文自动处理。', icon: iconB }, + { title: '业财船一体化', description: '经营、船舶、财务链路打通。', icon: iconC }, + { title: 'AI+IoT智能化', description: 'OCR、AIS 与自动核算协同。', icon: iconD }, + { title: '全球合规适配', description: '多语言、多币种与国际规则预置。', icon: iconE } + ], + cases: [ + { title: '上海海华轮船有限公司', description: '区域航运企业的经营与运营管理数字化案例。', to: '/cases/shanghai-haihua-shipping' }, + { title: '嘉华航运(香港)有限公司', description: '面向国际航线的新兴船公司管理平台案例。', to: '/cases/jiahua-shipping-system' }, + { title: '北部湾防城港有限公司', description: '港航协同和船公司业务支撑场景。', to: '/cases/beibuwan-shuttle-bus' } + ], + relatedProducts: [ + { label: '岸基船舶管理系统', to: '/products/shipping/boat' } + ] + } +} diff --git a/nuxt-web/data/services.ts b/nuxt-web/data/services.ts new file mode 100644 index 0000000..a19703f --- /dev/null +++ b/nuxt-web/data/services.ts @@ -0,0 +1,167 @@ +type Item = { title: string; description: string } + +export type ServiceConfig = { + title: string + description: string + overview: string[] + capabilityItems: Item[] + featureItems: Item[] + architectureImage: string + architectureImageAlt: string + caseImages?: string[] +} + +export const services: Record = { + chuandai: { + title: '船代管理信息系统', + description: '专门针对船代业务特点,实现整个船舶代理业务的信息化管理,以达到减少单证流转、方便客户获取信息、减轻业务员劳动强度、提高业务效率的目标。', + overview: [ + '船代管理信息系统(AG-iLOG-SMS)面向船代业务场景,覆盖船务、单证、箱管、EDI、费用结算、在线客户服务、移动服务及统计分析等核心模块。', + '系统通过对业务流程的数字化改造,减少单证流转环节,强化客户服务能力,并提升船舶代理业务的处理效率。' + ], + capabilityItems: [ + { title: '业务操作平台', description: '覆盖船务、单证、箱管、使费、运费、滞箱费、EDI、基础资料和系统管理等基础业务处理。' }, + { title: '数据服务平台', description: '实现接口注册、配置和 API 服务,对接税控、财务和第三方支付等系统。' }, + { title: '业务服务平台', description: '提供订舱、下单、查询、货物跟踪、交易等可复用服务组件。' }, + { title: '服务调度注册平台', description: '负责各类服务注册与调度,保障服务间调用有序稳定。' }, + { title: '基础服务平台', description: '包括操作系统、数据库和应用服务器等底层支撑。' } + ], + featureItems: [ + { title: '业务板块定制化', description: '按业务需求划分最小模块,支持企业按需选择与组合。' }, + { title: '一站式客户服务平台', description: '支持在线订舱、数据查询与移动端访问,提升客户获取信息与办理业务的效率。' }, + { title: 'EDI数据交换自动收发处理', description: '支持自定义收发对象、方式与频率,实现报文自动处理。' }, + { title: '计费规则自定义', description: '由用户自定义费目计费规则,快速实现费用自动计算。' }, + { title: '数据协同处理', description: '实现数据一处采集、充分共享,减少重复录入。' }, + { title: '综合统计分析平台', description: '通过统计分析为集团领导层提供决策支持。' } + ], + architectureImage: '/images/project/shipping/company.webp', + architectureImageAlt: '船代管理信息系统架构图', + caseImages: ['/images/logo5.jpg', '/images/shanghaipenghua.jpg', '/images/lianyungang.jpg', '/images/xinhai.jpg'] + }, + yunmatou: { + title: '云码头智能管理系统', + description: '云码头智能管理系统是通用码头套装软件,覆盖码头基本操作、智能计划、智能操作、费收管理、EDI、统计、客户服务与决策支持。', + overview: [ + '云码头智能管理系统通过实时架构、图形化操作和优化算法,实现自动计划、实时监控、智能预演与回放、自动配载和智能集卡调度。', + '系统采用模块化设计,充分考虑岸桥、场桥、堆高机、拖车等设备与工艺特点,适应业务发展和多阶段部署需求。' + ], + capabilityItems: [ + { title: '货运站管理子系统', description: '覆盖拆装箱、仓库散货管理、查验、熏蒸等业务流程。' }, + { title: '智能计划子系统', description: '通过图形化界面直接反映堆场营运情况,包含堆场管理、资源管理和智能控制。' }, + { title: '智能操作子系统', description: '支持无线终端控制和中控操作模式,覆盖闸口控制与堆场作业监控。' }, + { title: '费收管理子系统', description: '对客户协议、计费、对账、结账与打印进行统一管理。' }, + { title: 'EDI子系统', description: '统一对外数据交换,实现报文定义、接收、解析、生成和发送。' }, + { title: '客户服务子系统', description: '支持在线办单、计划申报、在线支付费用与作业动态跟踪。' } + ], + featureItems: [ + { title: '减少集装箱翻倒率', description: '通过图形界面和数学算法提高堆码密度,降低二次翻捣率。' }, + { title: '自动堆场计划', description: '结合堆场状况、作业量平衡和机械负荷自动给出最优派位。' }, + { title: '自动配载', description: '通过手工或 EDI 报文实现预配,自动生成装卸顺序并输出配载报告。' }, + { title: '自动化闸口与TQM', description: '实现闸口数据自动采集和无人值守,加快车辆通行。' }, + { title: '多路作业量平衡负载', description: '自动平衡作业量,提升机械利用效率。' }, + { title: '集装箱堆场机械与箱位显示', description: '实时显示整船进度、堆场与机械位置。' } + ], + architectureImage: '/images/project/port/cdi.webp', + architectureImageAlt: '云码头智能管理系统架构图', + caseImages: ['/images/zhongshanganghang.jpg', '/images/tangshangang.jpg', '/images/logo2.jpg', '/images/weihaigang.jpg'] + }, + jining: { + title: '全程物流链管理系统', + description: '目前业内技术成熟、业务架构领先,面向船公司、船代、货代、报关、车队、场站和仓储等多种物流业务的完整解决方案。', + overview: [ + '全程物流链管理系统(Integrated Logistics Management System)由岸基网络科技有限公司自主设计研发,用于实现整个供应链物流管理。', + '系统通过 IT 技术和物流技术有机结合,完成供应链节点之间的无缝连接,消除企业间信息孤岛与部门分割。' + ], + capabilityItems: [ + { title: '船公司系统', description: '实现航线管理、调度管理、订舱管理、船舶单证管理和费用结算。' }, + { title: '船舶代理系统', description: '覆盖船务管理、单证管理、集装箱管理和费用管理。' }, + { title: '货运代理系统', description: '支持进出口委托、订舱、报关、托运和费用结算。' }, + { title: '车队管理系统', description: '实现车队委托、司机、车辆和费用管理,并支持车辆可视化跟踪。' }, + { title: '场站管理系统', description: '涵盖委托管理、智能计划、堆场堆存、闸口管理、理货和费用结算。' }, + { title: '集团监管', description: '实现集团层面业务、资金、客户与统计的统一监管。' } + ], + featureItems: [ + { title: '满足集团监管和多层面操作需求', description: '系统采用多租户设计,兼顾集团整体管控和板块独立运营。' }, + { title: '能够快速应用不同规模的物流企业', description: '模块化设计和插拔式组件支持快速定制与分布式部署。' }, + { title: '开放式设计,打通全程信息流', description: '数据在各环节充分共享利用,减少信息孤岛。' } + ], + architectureImage: '/images/project/product_full_logistics_chain_platform/platform.webp', + architectureImageAlt: '全程物流链管理系统架构图', + caseImages: ['/images/logo.jpg', '/images/tianjinzhongyun.jpg', '/images/logo5.jpg', '/images/dongfangguoji.jpg'] + }, + dianshang: { + title: '港航电商平台系统', + description: '一个集销售、操作、商务和客服于一体的综合服务系统,帮助港航企业建立线上线下一体化的物流发展模式。', + overview: [ + '港航电商平台系统将传统港航业务搬到线上来运作,支持客户在线获取产品服务、进行业务操作、费用支付和状态跟踪。', + '系统帮助港航企业有效提升市场宣传推广能力、业务处理效率和客户服务水平。' + ], + capabilityItems: [ + { title: '商品中心', description: '围绕订舱、拖车、报关等服务形成产品化能力。' }, + { title: '交易中心', description: '支撑订舱提交、确认、提单确认、费用确认与付款等交易链路。' }, + { title: '用户中心', description: '统一管理公共用户、协议用户和船公司用户。' }, + { title: '运维监控中心', description: '负责系统权限管理、性能监控和业务监控统计。' }, + { title: '结算中心', description: '支持线上和线下结算模式。' }, + { title: '营销中心', description: '支持积分、特价、秒杀等灵活营销规则。' } + ], + featureItems: [ + { title: '业务服务产品化', description: '延伸线上订舱、线上拖车和线上报关等产品服务能力。' }, + { title: '建立全面的信息服务通道', description: '提供平台、APP、微信等多端服务体验。' }, + { title: '货物交易流程的全面跟踪可视化', description: '线上订舱、支付、提单下载、货物跟踪等流程全程透明。' }, + { title: '建立完整的电商营销体系', description: '通过多种营销活动吸引更多客户。' }, + { title: '电商大数据采集及分析平台', description: '收集销售关键信息和客户行为,优化产品结构。' }, + { title: '强大的技术支撑及运维服务平台', description: '通过分布式私有 PaaS 平台支撑整个电商系统。' } + ], + architectureImage: '/images/project/ecommerce/booking.webp', + architectureImageAlt: '港航电商平台系统架构图', + caseImages: ['/images/logo1.jpg', '/images/shanghaihede.webp', '/images/guangzhougang.jpg', '/images/guangzhougangwuju.jpg'] + }, + ilog: { + title: '全程物流链管理系统', + description: '面向多种物流业务的完整解决方案,通过协同电子办公环境实现共同的工作目标。', + overview: [ + '全程物流链管理系统面向船公司、船代、货代、报关、车队、场站和仓储等多种物流业务,强调供应链节点之间的无缝连接。', + '系统通过互联网技术和物流技术有机结合,实现供应链管理、信息共享和业务协同。' + ], + capabilityItems: [ + { title: '船公司系统', description: '支撑航线、调度、订舱、船舶单证与费用结算。' }, + { title: '船舶代理系统', description: '支撑船务管理、单证管理、集装箱管理和费用管理。' }, + { title: '货运代理系统', description: '支撑委托、订舱、报关报检、托运和结算。' }, + { title: '车队管理系统', description: '支撑车队、司机、车辆和费用管理。' }, + { title: '场站管理系统', description: '支撑场站委托、堆场计划、闸口和理货。' } + ], + featureItems: [ + { title: '集团化多层面监管', description: '满足集团监管和各业务板块操作的多层面需求。' }, + { title: '模块化可扩展', description: '按业务规模快速定制系统并支持分布式部署。' }, + { title: '开放式设计', description: '打通全程信息流,减少孤岛。' } + ], + architectureImage: '/images/project/product_full_logistics_chain_platform/platform.webp', + architectureImageAlt: '全程物流链管理系统架构图', + caseImages: ['/images/logo.jpg', '/images/tianjinzhongyun.jpg', '/images/logo5.jpg', '/images/dongfangguoji.jpg'] + }, + changzhan: { + title: '集装箱场站管理系统', + description: '适用于集装箱场站相关业务,面向集装箱堆存、转运、拆装箱、查验、修洗箱、熏蒸等业务,覆盖海运、公路等运输领域。', + overview: [ + '集装箱场站管理系统为集装箱场站提供全方位信息管理,以箱、船、货、堆场、仓库、机械和人力为基础,以装卸作业为核心。', + '系统帮助生产指挥人员随时掌握现场动态、调整计划、下达指令、加速货物周转并及时了解货物在场状态。' + ], + capabilityItems: [ + { title: '货运站管理系统', description: '覆盖拆装箱、仓库散货管理、查验和熏蒸等作业。' }, + { title: '智能计划系统', description: '图形化界面直接反映堆场营运情况,涵盖堆场管理与智能控制。' }, + { title: '智能操作系统', description: '支持无线终端和中控操作模式,加快堆场作业速度。' }, + { title: '商务管理系统', description: '对客户协议、计费、对账、结账进行统一管理。' }, + { title: '基本操作系统', description: '直接影响作业和计收费,包括船舶管理、业务办单、箱管与统计分析。' } + ], + featureItems: [ + { title: '充分考虑未来作业安排及进度', description: '依据堆场计划和移箱计划自动给出未来箱分布情况。' }, + { title: '提高场站竞争力', description: '提高场站作业效率,加快集装箱周转率。' }, + { title: '操作简洁,提高作业效率', description: '通过条码、POS 打印和识别能力提升闸口通过能力。' }, + { title: '通用、灵活、自动、准确的计收费系统', description: '支持多种缴费形式和两种计费思路。' }, + { title: '处理各种特殊作业并进行计费', description: '支持换箱、倒箱、熏蒸、过磅等各种杂作业。' } + ], + architectureImage: '/images/project/port/yunchangzhan.png', + architectureImageAlt: '集装箱场站管理系统架构图', + caseImages: ['/images/xianglongwuliu.jpg', '/images/weihaigang.jpg'] + } +} diff --git a/nuxt-web/data/site.ts b/nuxt-web/data/site.ts new file mode 100644 index 0000000..7c97e70 --- /dev/null +++ b/nuxt-web/data/site.ts @@ -0,0 +1,16 @@ +export const siteInfo = { + companyName: '烟台岸基网络科技有限公司', + phone: '0535-2106025', + qq: '278294683', + email: 'agsoft@china-coast.com', + businessHours: '08:30 - 17:30', + address: '山东省烟台市莱山区山海路117号总部经济基地3楼', + wechatOfficialImage: '/images/wechat.webp', + footerLogo: '/images/logo.png.webp', + headerLogo: '/images/logo-2.webp', + icpText: '鲁ICP备18054574号-1', + icpHref: 'https://beian.miit.gov.cn/', + publicSecurityText: '鲁公网安备 37061302000340号', + publicSecurityHref: 'http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=37061302000340', + publicSecurityImage: '/images/beian.png' +} as const diff --git a/nuxt-web/data/solutions.ts b/nuxt-web/data/solutions.ts new file mode 100644 index 0000000..135f9c6 --- /dev/null +++ b/nuxt-web/data/solutions.ts @@ -0,0 +1,162 @@ +type Card = { title: string; description: string } +type ProductLink = Card & { to?: string } + +export type SolutionConfig = { + title: string + description: string + badge: string + heroStats: Array<{ value: string; label: string }> + painPoints: Card[] + architectureTitle: string + architectureSteps: Card[] + architectureImage: string + architectureImageAlt: string + productLinks: ProductLink[] + valueItems: Card[] +} + +export const solutions: Record = { + 'inland-river-shipping': { + title: '内河港航一体化解决方案', + description: '贯通港口、物流、贸易全链路,以“1+3+N”架构驱动内河港航一体化协同,助您从“装卸港”迈向“贸易港”。', + badge: '内河港航集团', + heroStats: [ + { value: '30%', label: '综合作业效率提升' }, + { value: '100%', label: '数据实时互通' }, + { value: '-20%', label: '物流成本降低' }, + { value: '0', label: '业务作弊漏洞' } + ], + painPoints: [ + { title: '信息孤岛严重', description: '港口、物流、贸易系统割裂,数据标准不一,协同依赖人工。' }, + { title: '作业模式传统', description: '依赖纸质单据与人海战术,人工成本高且容易出错。' }, + { title: '散集业务混杂', description: '多货种混合作业,传统系统难以兼容,计费和作业都容易混乱。' }, + { title: '盈利模式单一', description: '停留在装卸与仓储模式,缺乏高附加值服务和客户粘性。' } + ], + architectureTitle: '全链条数字化架构', + architectureSteps: [ + { title: '底层数据联通', description: '统一数据标准,打通地磅、闸口、财务、生产系统。' }, + { title: '中台业务协同', description: '构建物流协同、交易撮合、供应链金融中台,实现跨部门协作。' }, + { title: '顶层智慧决策', description: '通过 BI 大数据分析提供实时经营看板与风险预警。' } + ], + architectureImage: '/images/solution/neihe.webp', + architectureImageAlt: '内河港航一体化架构图', + productLinks: [ + { title: '岸基云码头智能操作系统', description: '支持内河港口散货、集装箱和件杂货一体化管理。', to: '/products/port/cdi' }, + { title: '岸基网络货运平台', description: '实现车/船/货智能匹配、路径优化及全程可视化跟踪。', to: '/products/ecommerce/net-cargo' }, + { title: '岸基大宗商品贸易平台', description: '提供挂牌交易、竞价拍卖模式以及供应链金融能力。', to: '/products/ecommerce/bctp' } + ], + valueItems: [ + { title: '数据资产化,决策更精准', description: '打破数据孤岛,实现一屏统管,管理层可快速响应市场变化。' }, + { title: '业务协同,一单到底', description: '客户一次委托即可完成全链条服务,减少反复沟通和填单。' }, + { title: '从装卸港走向贸易港', description: '平台不仅提效,也帮助港口向更高附加值业务延伸。' } + ] + }, + 'logistics-chain': { + title: '全程物流链解决方案', + description: '覆盖订舱、报关、运输、仓储、交付全流程,打破信息孤岛,实现业务协同与智能决策,助力物流企业数字化升级。', + badge: '大型物流集团', + heroStats: [ + { value: '标准化', label: '统一架构与数据标准' }, + { value: '灵活化', label: '模块化配置快速适配' }, + { value: '智能化', label: 'AI大模型深度应用' }, + { value: '可视化', label: '全链路实时监控' } + ], + painPoints: [ + { title: '环节繁杂,系统分散', description: '物流业务跨多个环节,缺乏有效联动,数据重复录入。' }, + { title: '业务与财务联动薄弱', description: '业务数据与财务数据分属不同系统,核算滞后。' }, + { title: '网点分散,协同不足', description: '多网点广泛分布,数据同步存在延迟。' }, + { title: '缺乏数据驱动能力', description: '现有系统只满足基础操作,无法形成深度分析能力。' } + ], + architectureTitle: '全程物流链平台框架', + architectureSteps: [ + { title: '统一业务门户', description: '为船公司、船代、货代、报关、仓储等提供统一线上营业厅。' }, + { title: '全链条协同', description: '打通订舱、报关、运输、仓储、交付各环节,实现业务联动。' }, + { title: '智能分析决策', description: '通过 AI 大模型与数据分析技术挖掘全链条数据价值。' } + ], + architectureImage: '/images/solution/chain.webp', + architectureImageAlt: '全程物流链架构图', + productLinks: [ + { title: '岸基船公司运营管理系统', description: '业务智能操作、船舶动态管理、EDI无缝交换。', to: '/products/shipping/company' }, + { title: '岸基船舶管理系统', description: '实现经营、运营、体系和财务一体化管理。', to: '/products/shipping/boat' }, + { title: '岸基仓储管理系统', description: '提供在线委托、预约、结算和仓储协同能力。', to: '/products/logistics/warehouse' }, + { title: '岸基船舶代理系统', description: '面向船代企业的完整业务操作解决方案。', to: '/products/logistics/ship-agent' }, + { title: '岸基货运代理系统', description: '支撑货代核心流程的标准化与自动化。', to: '/products/logistics/cargo-agent' }, + { title: '岸基车辆运输管理系统', description: '面向车队调度、成本核算与运输跟踪的一体化管理。', to: '/products/logistics/vehicle-transport' } + ], + valueItems: [ + { title: '降本提效', description: '统一平台降低沟通和系统切换成本,提升全链条执行效率。' }, + { title: '集团级协同', description: '让多网点、多板块在同一数据基础上协同运作。' }, + { title: '从信息化走向智能化', description: '把业务流程沉淀为可分析、可预测、可优化的数据能力。' } + ] + }, + 'port-supply-chain': { + title: '港口供应链解决方案', + description: '围绕大型港航集团,实现专业性、一体化、自主可控、AI赋能的数字化转型,从“物流中心”向“服务中心”升级。', + badge: '大型港航集团', + heroStats: [ + { value: '50%+', label: '配载效率与资源利用率提升' }, + { value: '10-15%', label: '码头整体作业效率提升' }, + { value: '信创', label: '国产化自主可控' }, + { value: '多元化', label: '收入结构升级' } + ], + painPoints: [ + { title: '数据孤岛与集团管控难题', description: '集团内部多业务系统数据割裂,难以形成统一管理视图。' }, + { title: '协同效率低下', description: '港口与上下游合作伙伴协同流程繁琐,高度依赖人工干预。' }, + { title: '作业智能化水平低', description: '缺乏先进算法和可视化技术支撑,复杂作业优化效率低。' }, + { title: '信息化自主可控风险', description: '部分核心系统基于国外架构,存在供应链安全风险。' } + ], + architectureTitle: '全链条数字化架构', + architectureSteps: [ + { title: '智能生产调度', description: '云码头智能操作系统支持全货种生产调度与 AI 可视化配载。' }, + { title: '数据中台与信创', description: '集团级数据中台与信创统一接口平台,实现全域数据治理。' }, + { title: '供应链协同', description: '网上业务大厅与运力交易大厅提供一站式服务入口。' } + ], + architectureImage: '/images/solution/port_supply_chain.webp', + architectureImageAlt: '港口供应链平台架构图', + productLinks: [ + { title: '岸基云码头智能操作系统', description: '兼容全货种码头的生产调度与智能配载。', to: '/products/port/cdi' }, + { title: '集团级数据中台与信创统一接口平台', description: '为集团提供统一数据治理与国产化接口能力。' }, + { title: '岸基网上业务大厅平台', description: '提供在线委托、预约、结算、运力撮合等服务。', to: '/products/ecommerce/obh' } + ], + valueItems: [ + { title: '作业效率突破性提升', description: 'AI 配载和可视化调度让复杂作业更快更稳。' }, + { title: '国家政策合规性与安全', description: '满足关键系统国产化替代与自主可控要求。' }, + { title: '成本优化与风险降低', description: '通过智能配载、自动监管与视频分析降低成本和风险。' } + ] + }, + 'supply-chain': { + title: '大宗货物供应链解决方案', + description: '纵向贯穿整个供应链,横向集成物流、商流、资金流、信息流,助力港口从“装卸商”向“单货种供应链服务商”转型。', + badge: '贸易 / 物流 / 港口', + heroStats: [ + { value: 'N→1', label: '系统整合降低运维成本' }, + { value: '100%', label: '货权清晰可控' }, + { value: '收入创新', label: '新增交易佣金与金融服务收入' }, + { value: '精细化', label: '单货种标准化管理' } + ], + painPoints: [ + { title: '货种难定制', description: '通用系统无法满足煤炭、矿石、粮食等货种精细化管理需求。' }, + { title: '信息难打通', description: '生产、港口、运输、消费方数据割裂,集团对供应链控制力弱。' }, + { title: '贸易物流脱节', description: '港口停留在物流节点角色,未能整合交易、仓储、金融。' }, + { title: '作业成本高', description: '计划滞后、数据缺失,装卸效率受限且人工监管成本高。' } + ], + architectureTitle: '供应链平台总体框架', + architectureSteps: [ + { title: '统一门户', description: '为港口、船代、货代、贸易商、金融机构提供统一业务入口。' }, + { title: '业务协同', description: '实现港口、运输、仓储、贸易、金融等各环节协同。' }, + { title: '智能分析', description: '通过大数据和 AI 对供应链各环节数据进行深度分析。' } + ], + architectureImage: '/images/solution/supply_chain_goods.webp', + architectureImageAlt: '大宗货物供应链架构图', + productLinks: [ + { title: '智慧港口生产管理系统', description: '支持单货种堆存区可视化管理与无人化计量。', to: '/products/port/cdi-bulk' }, + { title: '岸基全程物流链系统', description: '打通单货种集疏运通道,实现一单到底与全程可视化。', to: '/products/logistics/platform' }, + { title: '供应链商贸与金融服务系统', description: '围绕单货种货权提供线上交易与供应链金融服务。' } + ], + valueItems: [ + { title: '降本增效', description: '港口作业效率提升,物流时效加快,系统整合降低运维与运营成本。' }, + { title: '控链与风控', description: '集团获得对核心单货种供应链的深度控制能力。' }, + { title: '收入创新', description: '新增电子交易佣金和供应链金融服务费收入。' } + ] + } +} diff --git a/nuxt-web/layouts/default.vue b/nuxt-web/layouts/default.vue new file mode 100644 index 0000000..657a80d --- /dev/null +++ b/nuxt-web/layouts/default.vue @@ -0,0 +1,8 @@ + diff --git a/nuxt-web/nuxt.config.ts b/nuxt-web/nuxt.config.ts new file mode 100644 index 0000000..06be6aa --- /dev/null +++ b/nuxt-web/nuxt.config.ts @@ -0,0 +1,45 @@ +import { execFileSync } from 'node:child_process' + +// https://nuxt.com/docs/api/configuration/nuxt-config +const prerenderRoutes = JSON.parse( + execFileSync('node', ['scripts/generate-prerender-routes.mjs'], { + cwd: process.cwd(), + encoding: 'utf-8' + }) +) as string[] + +export default defineNuxtConfig({ + compatibilityDate: '2025-07-15', + devtools: { enabled: true }, + ssr: true, + modules: [ + '@nuxt/content', + '@nuxt/image', + '@nuxtjs/sitemap', + '@nuxtjs/robots', + '@vueuse/nuxt' + ], + css: ['~/assets/styles/main.css'], + site: { + url: 'https://example.com' + }, + app: { + head: { + charset: 'utf-8', + viewport: 'width=device-width, initial-scale=1', + title: 'AgWeb Nuxt Migration', + link: [ + { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' } + ] + } + }, + routeRules: { + '/**': { prerender: true } + }, + nitro: { + prerender: { + crawlLinks: true, + routes: prerenderRoutes + } + } +}) diff --git a/nuxt-web/package-lock.json b/nuxt-web/package-lock.json new file mode 100644 index 0000000..c4c5f2a --- /dev/null +++ b/nuxt-web/package-lock.json @@ -0,0 +1,13945 @@ +{ + "name": "nuxt-web", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "nuxt-web", + "hasInstallScript": true, + "dependencies": { + "@fancyapps/ui": "^6.1.0", + "@nuxt/content": "^3.8.1", + "@nuxt/image": "^1.11.0", + "@nuxtjs/robots": "^5.5.6", + "@nuxtjs/sitemap": "^7.4.7", + "@vueuse/nuxt": "^13.6.0", + "better-sqlite3": "^12.9.0", + "nuxt": "^4.4.2", + "swiper": "^11.2.10", + "three": "^0.179.1", + "typescript": "^5.9.2", + "vue": "^3.5.32", + "vue-router": "^5.0.4" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.2.1.tgz", + "integrity": "sha512-HmdFw9CDYqM6B25pqGBpNeLCKvGPlIx1EbLrVL0zPvj50CJQUHyBNBw45Muk0kEIkogo1VZvOKHajdMuAzSxRg==", + "license": "MIT", + "dependencies": { + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 20" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + }, + "peerDependencies": { + "@types/json-schema": "^7.0.15" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bomb.sh/tab": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/@bomb.sh/tab/-/tab-0.0.14.tgz", + "integrity": "sha512-cHMk2LI430MVoX1unTt9oK1iZzQS4CYDz97MSxKLNErW69T43Z2QLFTpdS/3jVOIKrIADWfuxQ+nQNJkNV7E4w==", + "license": "MIT", + "bin": { + "tab": "dist/bin/cli.mjs" + }, + "peerDependencies": { + "cac": "^6.7.14", + "citty": "^0.1.6 || ^0.2.0", + "commander": "^13.1.0" + }, + "peerDependenciesMeta": { + "cac": { + "optional": true + }, + "citty": { + "optional": true + }, + "commander": { + "optional": true + } + } + }, + "node_modules/@clack/core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.2.0.tgz", + "integrity": "sha512-qfxof/3T3t9DPU/Rj3OmcFyZInceqj/NVtO9rwIuJqCUgh32gwPjpFQQp/ben07qKlhpwq7GzfWpST4qdJ5Drg==", + "license": "MIT", + "dependencies": { + "fast-wrap-ansi": "^0.1.3", + "sisteransi": "^1.0.5" + } + }, + "node_modules/@clack/prompts": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.2.0.tgz", + "integrity": "sha512-4jmztR9fMqPMjz6H/UZXj0zEmE43ha1euENwkckKKel4XpSfokExPo5AiVStdHSAlHekz4d0CA/r45Ok1E4D3w==", + "license": "MIT", + "dependencies": { + "@clack/core": "1.2.0", + "fast-string-width": "^1.1.0", + "fast-wrap-ansi": "^0.1.3", + "sisteransi": "^1.0.5" + } + }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.2.tgz", + "integrity": "sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==", + "license": "MIT OR Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@colordx/core": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@colordx/core/-/core-5.0.3.tgz", + "integrity": "sha512-xBQ0MYRTNNxW3mS2sJtlQTT7C3Sasqgh1/PsHva7fyDb5uqYY+gv9V0utDdX8X80mqzbGz3u/IDJdn2d/uW09g==", + "license": "MIT" + }, + "node_modules/@dxup/nuxt": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@dxup/nuxt/-/nuxt-0.4.0.tgz", + "integrity": "sha512-28LDotpr9G2knUse3cQYsOo6NJq5yhABv4ByRVRYJUmzf9Q31DI7rpRek4POlKy1aAcYyKgu5J2616pyqLohYg==", + "license": "MIT", + "dependencies": { + "@dxup/unimport": "^0.1.2", + "@nuxt/kit": "^4.2.2", + "chokidar": "^5.0.0", + "pathe": "^2.0.3", + "tinyglobby": "^0.2.15" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/@dxup/unimport": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@dxup/unimport/-/unimport-0.1.2.tgz", + "integrity": "sha512-/B8YJGPzaYq1NbsQmwgP8EZqg40NpTw4ZB3suuI0TplbxKHeK94jeaawLmVhCv+YwUnOpiWEz9U6SeThku/8JQ==", + "license": "MIT" + }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@fancyapps/ui": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/@fancyapps/ui/-/ui-6.1.13.tgz", + "integrity": "sha512-C7EGAWxeTIRXZF2gznVUdMgFM3km6FUaz1S9IB+6+GWeKeIDk1tChwO60GfJE4Mi32OPfVynVIdx8wypNaK96A==", + "license": "SEE LICENSE IN LICENSE.md" + }, + "node_modules/@fastify/accept-negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz", + "integrity": "sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@fingerprintjs/botd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@fingerprintjs/botd/-/botd-2.0.0.tgz", + "integrity": "sha512-yhuz23NKEcBDTHmGz/ULrXlGnbHenO+xZmVwuBkuqHUkqvaZ5TAA0kAgcRy4Wyo5dIBdkIf57UXX8/c9UlMLJg==", + "license": "MIT" + }, + "node_modules/@ioredis/commands": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.5.1.tgz", + "integrity": "sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "license": "MIT" + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-2.0.3.tgz", + "integrity": "sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==", + "license": "BSD-3-Clause", + "dependencies": { + "consola": "^3.2.3", + "detect-libc": "^2.0.0", + "https-proxy-agent": "^7.0.5", + "node-fetch": "^2.6.7", + "nopt": "^8.0.0", + "semver": "^7.5.3", + "tar": "^7.4.0" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@nodable/entities": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-1.1.0.tgz", + "integrity": "sha512-bidpxmTBP0pOsxULw6XlxzQpTgrAGLDHGBK/JuWhPDL6ZV0GZ/PmN9CA9do6e+A9lYI6qx6ikJUtJYRxup141g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/nodable" + } + ], + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nuxt/cli": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/@nuxt/cli/-/cli-3.34.0.tgz", + "integrity": "sha512-KVI4xSo96UtUUbmxr9ouWTytbj1LzTw5alsM4vC/gSY/l8kPMRAlq0XpNSAVTDJyALzLY70WhaIMX24LJLpdFw==", + "license": "MIT", + "dependencies": { + "@bomb.sh/tab": "^0.0.14", + "@clack/prompts": "^1.1.0", + "c12": "^3.3.3", + "citty": "^0.2.1", + "confbox": "^0.2.4", + "consola": "^3.4.2", + "debug": "^4.4.3", + "defu": "^6.1.4", + "exsolve": "^1.0.8", + "fuse.js": "^7.1.0", + "fzf": "^0.5.2", + "giget": "^3.1.2", + "jiti": "^2.6.1", + "listhen": "^1.9.0", + "nypm": "^0.6.5", + "ofetch": "^1.5.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.0", + "scule": "^1.3.0", + "semver": "^7.7.4", + "srvx": "^0.11.9", + "std-env": "^3.10.0", + "tinyclip": "^0.1.12", + "tinyexec": "^1.0.2", + "ufo": "^1.6.3", + "youch": "^4.1.0" + }, + "bin": { + "nuxi": "bin/nuxi.mjs", + "nuxi-ng": "bin/nuxi.mjs", + "nuxt": "bin/nuxi.mjs", + "nuxt-cli": "bin/nuxi.mjs" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + }, + "peerDependencies": { + "@nuxt/schema": "^4.3.1" + }, + "peerDependenciesMeta": { + "@nuxt/schema": { + "optional": true + } + } + }, + "node_modules/@nuxt/cli/node_modules/citty": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", + "license": "MIT" + }, + "node_modules/@nuxt/cli/node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/@nuxt/content": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@nuxt/content/-/content-3.13.0.tgz", + "integrity": "sha512-ZpZ1l0yGzK/Y9QjBT8uReJ62DnOKDMlw+vkzSnkc8YDyZ0ZNhFj1fviMwDhEkArwvQTRfxi12GqzB/wxu01vEw==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.4.2", + "@nuxtjs/mdc": "^0.21.0", + "@shikijs/langs": "^4.0.2", + "@sqlite.org/sqlite-wasm": "3.50.4-build1", + "@standard-schema/spec": "^1.1.0", + "@webcontainer/env": "^1.1.1", + "c12": "^3.3.3", + "chokidar": "^5.0.0", + "consola": "^3.4.2", + "db0": "^0.3.4", + "defu": "^6.1.4", + "destr": "^2.0.5", + "git-url-parse": "^16.1.0", + "hookable": "^5.5.3", + "isomorphic-git": "^1.37.4", + "jiti": "^2.6.1", + "json-schema-to-typescript-lite": "^15.0.0", + "mdast-util-to-hast": "^13.2.1", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.2", + "micromark-util-character": "^2.1.1", + "micromark-util-chunked": "^2.0.1", + "micromark-util-resolve-all": "^2.0.1", + "micromark-util-sanitize-uri": "^2.0.1", + "micromatch": "^4.0.8", + "minimark": "^0.2.0", + "minimatch": "^10.2.4", + "nuxt-component-meta": "0.17.2", + "nypm": "^0.6.5", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "remark-mdc": "^3.10.0", + "scule": "^1.3.0", + "shiki": "^4.0.2", + "slugify": "^1.6.8", + "socket.io-client": "^4.8.3", + "std-env": "^4.0.0", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "unified": "^11.0.5", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.1.0", + "unplugin": "^3.0.0", + "zod": "^3.25.76", + "zod-to-json-schema": "^3.25.2" + }, + "engines": { + "node": ">= 20.19.0" + }, + "peerDependencies": { + "@electric-sql/pglite": "*", + "@libsql/client": "*", + "@valibot/to-json-schema": "^1.5.0", + "better-sqlite3": "^12.5.0", + "sqlite3": "*", + "valibot": "^1.2.0" + }, + "peerDependenciesMeta": { + "@electric-sql/pglite": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "@valibot/to-json-schema": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "valibot": { + "optional": true + } + } + }, + "node_modules/@nuxt/devalue": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@nuxt/devalue/-/devalue-2.0.2.tgz", + "integrity": "sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==", + "license": "MIT" + }, + "node_modules/@nuxt/devtools": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@nuxt/devtools/-/devtools-3.2.4.tgz", + "integrity": "sha512-VPbFy7hlPzWpEZk4BsuVpNuHq1ZYGV9xezjb7/NGuePuNLqeNn74YZugU+PCtva7OwKhEeTXmMK0Mqo/6+nwNA==", + "license": "MIT", + "dependencies": { + "@nuxt/devtools-kit": "3.2.4", + "@nuxt/devtools-wizard": "3.2.4", + "@nuxt/kit": "^4.4.2", + "@vue/devtools-core": "^8.1.0", + "@vue/devtools-kit": "^8.1.0", + "birpc": "^4.0.0", + "consola": "^3.4.2", + "destr": "^2.0.5", + "error-stack-parser-es": "^1.0.5", + "execa": "^8.0.1", + "fast-npm-meta": "^1.4.2", + "get-port-please": "^3.2.0", + "hookable": "^6.1.0", + "image-meta": "^0.2.2", + "is-installed-globally": "^1.0.0", + "launch-editor": "^2.13.1", + "local-pkg": "^1.1.2", + "magicast": "^0.5.2", + "nypm": "^0.6.5", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.0", + "semver": "^7.7.4", + "simple-git": "^3.33.0", + "sirv": "^3.0.2", + "structured-clone-es": "^2.0.0", + "tinyglobby": "^0.2.15", + "vite-plugin-inspect": "^11.3.3", + "vite-plugin-vue-tracer": "^1.3.0", + "which": "^6.0.1", + "ws": "^8.19.0" + }, + "bin": { + "devtools": "cli.mjs" + }, + "peerDependencies": { + "@vitejs/devtools": "*", + "vite": ">=6.0" + }, + "peerDependenciesMeta": { + "@vitejs/devtools": { + "optional": true + } + } + }, + "node_modules/@nuxt/devtools-kit": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@nuxt/devtools-kit/-/devtools-kit-3.2.4.tgz", + "integrity": "sha512-Yxy2Xgmq5hf3dQy983V0xh0OJV2mYwRZz9eVIGc3EaribdFGPDNGMMbYqX9qCty3Pbxn/bCF3J0UyPaNlHVayQ==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.4.2", + "execa": "^8.0.1" + }, + "peerDependencies": { + "vite": ">=6.0" + } + }, + "node_modules/@nuxt/devtools-wizard": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@nuxt/devtools-wizard/-/devtools-wizard-3.2.4.tgz", + "integrity": "sha512-5tu2+Quu9XTxwtpzM8CUN0UKn/bzZIfJcoGd+at5Yy1RiUQJ4E52tRK0idW1rMSUDkbkvX3dSnu8Tpj7SAtWdQ==", + "license": "MIT", + "dependencies": { + "@clack/prompts": "^1.1.0", + "consola": "^3.4.2", + "diff": "^8.0.3", + "execa": "^8.0.1", + "magicast": "^0.5.2", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "semver": "^7.7.4" + }, + "bin": { + "devtools-wizard": "cli.mjs" + } + }, + "node_modules/@nuxt/devtools/node_modules/hookable": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", + "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", + "license": "MIT" + }, + "node_modules/@nuxt/devtools/node_modules/isexe": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=20" + } + }, + "node_modules/@nuxt/devtools/node_modules/which": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", + "license": "ISC", + "dependencies": { + "isexe": "^4.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@nuxt/image": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@nuxt/image/-/image-1.11.0.tgz", + "integrity": "sha512-4kzhvb2tJfxMsa/JZeYn1sMiGbx2J/S6BQrQSdXNsHgSvywGVkFhTiQGjoP6O49EsXyAouJrer47hMeBcTcfXQ==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.18.0", + "consola": "^3.4.2", + "defu": "^6.1.4", + "h3": "^1.15.3", + "image-meta": "^0.2.1", + "knitwork": "^1.2.0", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "std-env": "^3.9.0", + "ufo": "^1.6.1" + }, + "engines": { + "node": ">=18.20.6" + }, + "optionalDependencies": { + "ipx": "^2.1.1" + } + }, + "node_modules/@nuxt/image/node_modules/@nuxt/kit": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.2.tgz", + "integrity": "sha512-Bd6m6mrDrqpBEbX+g0rc66/ALd1sxlgdx5nfK9MAYO0yKLTOSK7McSYz1KcOYn3LQFCXOWfvXwaqih/b+REI1g==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^3.0.0", + "scule": "^1.3.0", + "semver": "^7.7.4", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/image/node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/@nuxt/kit": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-4.4.2.tgz", + "integrity": "sha512-5+IPRNX2CjkBhuWUwz0hBuLqiaJPRoKzQ+SvcdrQDbAyE+VDeFt74VpSFr5/R0ujrK4b+XnSHUJWdS72w6hsog==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "mlly": "^1.8.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^3.0.0", + "scule": "^1.3.0", + "semver": "^7.7.4", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/nitro-server": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@nuxt/nitro-server/-/nitro-server-4.4.2.tgz", + "integrity": "sha512-iMTfraWcpA0MuEnnEI8JFK/4DODY4ss1CfB8m3sBVOqW9jpY1Z6hikxzrtN+CadtepW2aOI5d8TdX5hab+Sb4Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-typescript": "^7.28.6", + "@nuxt/devalue": "^2.0.2", + "@nuxt/kit": "4.4.2", + "@unhead/vue": "^2.1.12", + "@vue/shared": "^3.5.30", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "devalue": "^5.6.3", + "errx": "^0.1.0", + "escape-string-regexp": "^5.0.0", + "exsolve": "^1.0.8", + "h3": "^1.15.6", + "impound": "^1.1.5", + "klona": "^2.0.6", + "mocked-exports": "^0.1.1", + "nitropack": "^2.13.1", + "nypm": "^0.6.5", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rou3": "^0.8.1", + "std-env": "^4.0.0", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "unstorage": "^1.17.4", + "vue": "^3.5.30", + "vue-bundle-renderer": "^2.2.0", + "vue-devtools-stub": "^0.1.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@babel/plugin-proposal-decorators": "^7.25.0", + "@rollup/plugin-babel": "^6.0.0 || ^7.0.0", + "nuxt": "^4.4.2" + }, + "peerDependenciesMeta": { + "@babel/plugin-proposal-decorators": { + "optional": true + }, + "@rollup/plugin-babel": { + "optional": true + } + } + }, + "node_modules/@nuxt/schema": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-4.4.2.tgz", + "integrity": "sha512-/q6C7Qhiricgi+PKR7ovBnJlKTL0memCbA1CzRT+itCW/oeYzUfeMdQ35mGntlBoyRPNrMXbzuSUhfDbSCU57w==", + "license": "MIT", + "dependencies": { + "@vue/shared": "^3.5.30", + "defu": "^6.1.4", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "std-env": "^4.0.0" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/@nuxt/telemetry": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@nuxt/telemetry/-/telemetry-2.8.0.tgz", + "integrity": "sha512-zAwXY24KYvpLTmiV+osagd2EHkfs5IF+7oDZYTQoit5r0kPlwaCNlzHp5I/wUAWT4LBw6lG8gZ6bWidAdv/erQ==", + "license": "MIT", + "dependencies": { + "citty": "^0.2.1", + "consola": "^3.4.2", + "ofetch": "^2.0.0-alpha.3", + "rc9": "^3.0.0", + "std-env": "^4.0.0" + }, + "bin": { + "nuxt-telemetry": "bin/nuxt-telemetry.mjs" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@nuxt/kit": ">=3.0.0" + } + }, + "node_modules/@nuxt/telemetry/node_modules/citty": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", + "license": "MIT" + }, + "node_modules/@nuxt/telemetry/node_modules/ofetch": { + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-2.0.0-alpha.3.tgz", + "integrity": "sha512-zpYTCs2byOuft65vI3z43Dd6iSdFbOZZLb9/d21aCpx2rGastVU9dOCv0lu4ykc1Ur1anAYjDi3SUvR0vq50JA==", + "license": "MIT" + }, + "node_modules/@nuxt/vite-builder": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@nuxt/vite-builder/-/vite-builder-4.4.2.tgz", + "integrity": "sha512-fJaIwMA8ID6BU5EqmoDvnhq4qYDJeWjdHk4jfqy8D3Nm7CoUW0BvX7Ee92XoO05rtUiClGlk/NQ1Ii8hs3ZIbw==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "4.4.2", + "@rollup/plugin-replace": "^6.0.3", + "@vitejs/plugin-vue": "^6.0.4", + "@vitejs/plugin-vue-jsx": "^5.1.4", + "autoprefixer": "^10.4.27", + "consola": "^3.4.2", + "cssnano": "^7.1.3", + "defu": "^6.1.4", + "escape-string-regexp": "^5.0.0", + "exsolve": "^1.0.8", + "get-port-please": "^3.2.0", + "jiti": "^2.6.1", + "knitwork": "^1.3.0", + "magic-string": "^0.30.21", + "mlly": "^1.8.1", + "mocked-exports": "^0.1.1", + "nypm": "^0.6.5", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "postcss": "^8.5.8", + "seroval": "^1.5.1", + "std-env": "^4.0.0", + "ufo": "^1.6.3", + "unenv": "^2.0.0-rc.24", + "vite": "^7.3.1", + "vite-node": "^5.3.0", + "vite-plugin-checker": "^0.12.0", + "vue-bundle-renderer": "^2.2.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@babel/plugin-proposal-decorators": "^7.25.0", + "@babel/plugin-syntax-jsx": "^7.25.0", + "nuxt": "4.4.2", + "rolldown": "^1.0.0-beta.38", + "rollup-plugin-visualizer": "^6.0.0 || ^7.0.1", + "vue": "^3.3.4" + }, + "peerDependenciesMeta": { + "@babel/plugin-proposal-decorators": { + "optional": true + }, + "@babel/plugin-syntax-jsx": { + "optional": true + }, + "rolldown": { + "optional": true + }, + "rollup-plugin-visualizer": { + "optional": true + } + } + }, + "node_modules/@nuxtjs/mdc": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@nuxtjs/mdc/-/mdc-0.21.1.tgz", + "integrity": "sha512-DIeUD7IahWVUSoZExysxH9dX51Io6hcQYgGJODq0cMTGqaoDD32lRfHBJxYUmy+sUCV1+1hfa2ixspgJgEd2GA==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.4.2", + "@shikijs/core": "^4.0.2", + "@shikijs/engine-javascript": "^4.0.2", + "@shikijs/langs": "^4.0.2", + "@shikijs/themes": "^4.0.2", + "@shikijs/transformers": "^4.0.2", + "@types/hast": "^3.0.4", + "@types/mdast": "^4.0.4", + "@vue/compiler-core": "^3.5.31", + "consola": "^3.4.2", + "debug": "^4.4.3", + "defu": "^6.1.4", + "destr": "^2.0.5", + "detab": "^3.0.2", + "github-slugger": "^2.0.0", + "hast-util-format": "^1.1.0", + "hast-util-to-mdast": "^10.1.2", + "hast-util-to-string": "^3.0.1", + "mdast-util-to-hast": "^13.2.1", + "micromark-util-sanitize-uri": "^2.0.1", + "parse5": "^8.0.0", + "pathe": "^2.0.3", + "property-information": "^7.1.0", + "rehype-external-links": "^3.0.0", + "rehype-minify-whitespace": "^6.0.2", + "rehype-raw": "^7.0.0", + "rehype-remark": "^10.0.1", + "rehype-slug": "^6.0.0", + "rehype-sort-attribute-values": "^5.0.1", + "rehype-sort-attributes": "^5.0.1", + "remark-emoji": "^5.0.2", + "remark-gfm": "^4.0.1", + "remark-mdc": "^3.10.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.2", + "remark-stringify": "^11.0.0", + "scule": "^1.3.0", + "shiki": "^4.0.2", + "ufo": "^1.6.3", + "unified": "^11.0.5", + "unist-builder": "^4.0.0", + "unist-util-visit": "^5.1.0", + "unwasm": "^0.5.3", + "vfile": "^6.0.3" + } + }, + "node_modules/@nuxtjs/robots": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@nuxtjs/robots/-/robots-5.7.1.tgz", + "integrity": "sha512-1y1pW8Dh2gqJGFpXwkTin1KokBofYAG91C1gqxR4XbI7Xkl7DAXQ+BropHF2AeCV/uCxs6qz28ONp0+60TSw1Q==", + "license": "MIT", + "dependencies": { + "@fingerprintjs/botd": "^2.0.0", + "@nuxt/devtools-kit": "^3.2.2", + "@nuxt/kit": "^4.3.1", + "consola": "^3.4.2", + "defu": "^6.1.4", + "h3": "^1.15.5", + "nuxt-site-config": "^3.2.21", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "sirv": "^3.0.2", + "std-env": "^3.10.0", + "ufo": "^1.6.3" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + }, + "peerDependencies": { + "zod": ">=3" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, + "node_modules/@nuxtjs/robots/node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/@nuxtjs/sitemap": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@nuxtjs/sitemap/-/sitemap-7.6.0.tgz", + "integrity": "sha512-JuWwAFn9MDHWFO5C7lpV6DS86ZIrJItGfzCK1kN9WvgvDmTgal3xbfGCADmAaCWOVl2+dcPGHH6BCypQvUX0aQ==", + "license": "MIT", + "dependencies": { + "@nuxt/devtools-kit": "^3.1.1", + "@nuxt/kit": "^4.3.0", + "chalk": "^5.6.2", + "defu": "^6.1.4", + "fast-xml-parser": "^5.3.3", + "nuxt-site-config": "^3.2.18", + "ofetch": "^1.5.1", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "radix3": "^1.1.2", + "semver": "^7.7.3", + "sirv": "^3.0.2", + "std-env": "^3.10.0", + "ufo": "^1.6.3", + "ultrahtml": "^1.6.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + }, + "peerDependencies": { + "zod": ">=3" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, + "node_modules/@nuxtjs/sitemap/node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/@oxc-minify/binding-android-arm-eabi": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-android-arm-eabi/-/binding-android-arm-eabi-0.117.0.tgz", + "integrity": "sha512-5Hf2KsGRjxp3HnPU/mse7cQJa5tWfMFUPZQcgSMVsv2JZnGFFOIDzA0Oja2KDD+VPJqMpEJKc2dCHAGZgJxsGg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-android-arm64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-android-arm64/-/binding-android-arm64-0.117.0.tgz", + "integrity": "sha512-uuxGwxA5J4Sap+gz4nxyM/rer6q2A4X1Oe8HpE0CZQyb5cSBULQ15btZiVG3xOBctI5O+c2dwR1aZAP4oGKcLw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-darwin-arm64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-darwin-arm64/-/binding-darwin-arm64-0.117.0.tgz", + "integrity": "sha512-lLBf75cxUSLydumToKtGTwbLqO/1urScblJ33Vx0uF38M2ZbL2x51AybBV5vlfLjYNrxvQ8ov0Bj/OhsVO/biA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-darwin-x64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-darwin-x64/-/binding-darwin-x64-0.117.0.tgz", + "integrity": "sha512-wBWwP1voLZMuN4hpe1HRtkPBd4/o/1qan5XssmmI/hewBvGHEHkyvVLS0zu+cKqXDxYzYvb/p+EqU+xSXhEl4A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-freebsd-x64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-freebsd-x64/-/binding-freebsd-x64-0.117.0.tgz", + "integrity": "sha512-pYSacHw698oH2vb70iP1cHk6x0zhvAuOvdskvNtEqvfziu8MSjKXa699vA9Cx72+DH5rwVuj1I3f+7no2fWglA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-arm-gnueabihf": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.117.0.tgz", + "integrity": "sha512-Ugm4Qj7F2+bccjhHCjjnSNHBDPyvjPXWrntID4WJpSrPqt+Az/o0EGdty9sWOjQXRZiTVpa80uqCWZQUn94yTA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-arm-musleabihf": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.117.0.tgz", + "integrity": "sha512-qrY6ZviO9wVRI/jl4nRZO4B9os8jaJQemMeWIyFInZNk3lhqihId8iBqMKibJnRaf+JRxLM9j68atXkFRhOHrg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-arm64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.117.0.tgz", + "integrity": "sha512-2VLJHKEFBRhCihT/8uesuDPhXpbWu1OlHCxqQ7pdFVqKik1Maj5E9oSDcYzxqfaCRStvTHkmLVWJBK5CVcIadg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-arm64-musl": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.117.0.tgz", + "integrity": "sha512-C3zapJconWpl2Y7LR3GkRkH6jxpuV2iVUfkFcHT5Ffn4Zu7l88mZa2dhcfdULZDybN1Phka/P34YUzuskUUrXw==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-ppc64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.117.0.tgz", + "integrity": "sha512-2T/Bm+3/qTfuNS4gKSzL8qbiYk+ErHW2122CtDx+ilZAzvWcJ8IbqdZIbEWOlwwe03lESTxPwTBLFqVgQU2OeQ==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-riscv64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.117.0.tgz", + "integrity": "sha512-MKLjpldYkeoB4T+yAi4aIAb0waifxUjLcKkCUDmYAY3RqBJTvWK34KtfaKZL0IBMIXfD92CbKkcxQirDUS9Xcg==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-riscv64-musl": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.117.0.tgz", + "integrity": "sha512-UFVcbPvKUStry6JffriobBp8BHtjmLLPl4bCY+JMxIn/Q3pykCpZzRwFTcDurG/kY8tm+uSNfKKdRNa5Nh9A7g==", + "cpu": [ + "riscv64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-s390x-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.117.0.tgz", + "integrity": "sha512-B9GyPQ1NKbvpETVAMyJMfRlD3c6UJ7kiuFUAlx9LTYiQL+YIyT6vpuRlq1zgsXxavZluVrfeJv6x0owV4KDx4Q==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-x64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.117.0.tgz", + "integrity": "sha512-fXfhtr+WWBGNy4M5GjAF5vu/lpulR4Me34FjTyaK9nDrTZs7LM595UDsP1wliksqp4hD/KdoqHGmbCrC+6d4vA==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-linux-x64-musl": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-linux-x64-musl/-/binding-linux-x64-musl-0.117.0.tgz", + "integrity": "sha512-jFBgGbx1oLadb83ntJmy1dWlAHSQanXTS21G4PgkxyONmxZdZ/UMKr7KsADzMuoPsd2YhJHxzRpwJd9U+4BFBw==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-openharmony-arm64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-openharmony-arm64/-/binding-openharmony-arm64-0.117.0.tgz", + "integrity": "sha512-nxPd9vx1vYz8IlIMdl9HFdOK/ood1H5hzbSFsyO8JU55tkcJoBL8TLCbuFf9pHpOy27l2gcPyV6z3p4eAcTH5Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-wasm32-wasi": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-wasm32-wasi/-/binding-wasm32-wasi-0.117.0.tgz", + "integrity": "sha512-pSvjJ6cCCfEXSteWSiVfZhdRzvpmS3tLhlXrXTYiuTDFrkRCobRP39SRwAzK23rE9i/m2JAaES2xPEW6+xu85g==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-minify/binding-win32-arm64-msvc": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.117.0.tgz", + "integrity": "sha512-9NoT9baFrWPdJRIZVQ1jzPZW9TjPT2sbzQyDdoK7uD1V8JXCe1L2y7sp9k2ldZZheaIcmtNwHc7jyD7kYz/0XQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-win32-ia32-msvc": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.117.0.tgz", + "integrity": "sha512-E51LTjkRei5u2dpFiYSObuh+e43xg45qlmilSTd0XDGFdYJCOv62Q0MEn61TR+efQYPNleYwWdTS9t+tp9p/4w==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-minify/binding-win32-x64-msvc": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-minify/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.117.0.tgz", + "integrity": "sha512-I8vniPOxWQdxfIbXNvQLaJ1n8SrnqES6wuiAX10CU72sKsizkds9kDaJ1KzWvDy39RKhTBmD1cJsU2uxPFgizQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-android-arm-eabi": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.117.0.tgz", + "integrity": "sha512-XarGPJpaobgKjfm7xRfCGWWszuPbm/OeP91NdMhxtcLZ/qLTmWF0P0z0gqmr0Uysi1F1v1BNtcST11THMrcEOw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-android-arm64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.117.0.tgz", + "integrity": "sha512-EPTs2EBijGmyhPso4rXAL0NSpECXER9IaVKFZEv83YcA6h4uhKW47kmYt+OZcSp130zhHx+lTWILDQ/LDkCRNA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-darwin-arm64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.117.0.tgz", + "integrity": "sha512-3bAEpyih6r/Kb+Xzn1em1qBMClOS7NsVWgF86k95jpysR5ix/HlKFKSy7cax6PcS96HeHR4kjlME20n/XK1zNg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-darwin-x64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.117.0.tgz", + "integrity": "sha512-W7S99zFwVZhSbCxvjfZkioStFU249DBc4TJw/kK6kfKwx2Zew+jvizX5Y3ZPkAh7fBVUSNOdSeOqLBHLiP50tw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-freebsd-x64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.117.0.tgz", + "integrity": "sha512-xH76lqSdjCSY0KUMPwLXlvQ3YEm3FFVEQmgiOCGNf+stZ6E4Mo3nC102Bo8yKd7aW0foIPAFLYsHgj7vVI/axw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.117.0.tgz", + "integrity": "sha512-9Hdm1imzrn4RdMYnQKKcy+7p7QsSPIrgVIZmpGSJT02nYDuBWLdG1pdYMPFoEo46yiXry3tS3RoHIpNbT1IiyQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.117.0.tgz", + "integrity": "sha512-Itszer/VCeYhYVJLcuKnHktlY8QyGnVxapltP68S1XRGlV6IsM9HQAElJRMwQhT6/GkMjOhANmkv2Qu/9v44lw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.117.0.tgz", + "integrity": "sha512-jBxD7DtlHQ36ivjjZdH0noQJgWNouenzpLmXNKnYaCsBfo3jY95m5iyjYQEiWkvkhJ3TJUAs7tQ1/kEpY7x/Kg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-arm64-musl": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.117.0.tgz", + "integrity": "sha512-QagKTDF4lrz8bCXbUi39Uq5xs7C7itAseKm51f33U+Dyar9eJY/zGKqfME9mKLOiahX7Fc1J3xMWVS0AdDXLPg==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-ppc64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.117.0.tgz", + "integrity": "sha512-RPddpcE/0xxWaommWy0c5i/JdrXcXAkxBS2GOrAUh5LKmyCh03hpJedOAWszG4ADsKQwoUQQ1/tZVGRhZIWtKA==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.117.0.tgz", + "integrity": "sha512-ur/WVZF9FSOiZGxyP+nfxZzuv6r5OJDYoVxJnUR7fM/hhXLh4V/be6rjbzm9KLCDBRwYCEKJtt+XXNccwd06IA==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-riscv64-musl": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.117.0.tgz", + "integrity": "sha512-ujGcAx8xAMvhy7X5sBFi3GXML1EtyORuJZ5z2T6UV3U416WgDX/4OCi3GnoteeenvxIf6JgP45B+YTHpt71vpA==", + "cpu": [ + "riscv64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-s390x-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.117.0.tgz", + "integrity": "sha512-hbsfKjUwRjcMZZvvmpZSc+qS0bHcHRu8aV/I3Ikn9BzOA0ZAgUE7ctPtce5zCU7bM8dnTLi4sJ1Pi9YHdx6Urw==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-x64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.117.0.tgz", + "integrity": "sha512-1QrTrf8rige7UPJrYuDKJLQOuJlgkt+nRSJLBMHWNm9TdivzP48HaK3f4q18EjNlglKtn03lgjMu4fryDm8X4A==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-x64-musl": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.117.0.tgz", + "integrity": "sha512-gRvK6HPzF5ITRL68fqb2WYYs/hGviPIbkV84HWCgiJX+LkaOpp+HIHQl3zVZdyKHwopXToTbXbtx/oFjDjl8pg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-openharmony-arm64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.117.0.tgz", + "integrity": "sha512-QPJvFbnnDZZY7xc+xpbIBWLThcGBakwaYA9vKV8b3+oS5MGfAZUoTFJcix5+Zg2Ri46sOfrUim6Y6jsKNcssAQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-wasm32-wasi": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-wasm32-wasi/-/binding-wasm32-wasi-0.117.0.tgz", + "integrity": "sha512-+XRSNA0xt3pk/6CUHM7pykVe7M8SdifJk8LX1+fIp/zefvR3HBieZCbwG5un8gogNgh7srLycoh/cQA9uozv5g==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-parser/binding-win32-arm64-msvc": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.117.0.tgz", + "integrity": "sha512-GpxeGS+Vo030DsrXeRPc7OSJOQIyAHkM3mzwBcnQjg/79XnOIDDMXJ5X6/aNdkVt/+Pv35pqKzGA4TQau97x8w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-win32-ia32-msvc": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.117.0.tgz", + "integrity": "sha512-tchWEYiso1+objTZirmlR+w3fcIel6PVBOJ8NuC2Jr30dxBOiKUfFLovJLANwHg1+TzeD6pVSLIIIEf2T5o5lQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-win32-x64-msvc": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.117.0.tgz", + "integrity": "sha512-ysRJAjIbB4e5y+t9PZs7TwbgOV/GVT//s30AORLCT/pedYwpYzHq6ApXK7is9fvyfZtgT3anNir8+esurmyaDw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.117.0.tgz", + "integrity": "sha512-C/kPXBphID44fXdsa2xSOCuzX8fKZiFxPsvucJ6Yfkr6CJlMA+kNLPNKyLoI+l9XlDsNxBrz6h7IIjKU8pB69w==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxc-transform/binding-android-arm-eabi": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-android-arm-eabi/-/binding-android-arm-eabi-0.117.0.tgz", + "integrity": "sha512-17giX7h5VR9Eodru4OoSCFdgwLFIaUxeEn8JWe0vMZrAuRbT9NiDTy5dXdbGQBoO8aXPkbGS38FGlvbi31aujw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-android-arm64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-android-arm64/-/binding-android-arm64-0.117.0.tgz", + "integrity": "sha512-1LrDd1CPochtLx04pAafdah6QtOQQj0/Evttevi+0u8rCI5FKucIG7pqBHkIQi/y7pycFYIj+GebhET80maeUg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-darwin-arm64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-darwin-arm64/-/binding-darwin-arm64-0.117.0.tgz", + "integrity": "sha512-K1Xo52xJOvFfHSkz2ax9X5Qsku23RCfTIPbHZWdUCAQ1TQooI+sFcewSubhVUJ4DVK12/tYT//XXboumin+FHA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-darwin-x64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-darwin-x64/-/binding-darwin-x64-0.117.0.tgz", + "integrity": "sha512-ftFT/8Laolfq49mRRWLkIhd1AbJ0MI5bW3LwddvdoAg9zXwkx4qhzTYyBPRZhvXWftts+NjlHfHsXCOqI4tPtw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-freebsd-x64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-freebsd-x64/-/binding-freebsd-x64-0.117.0.tgz", + "integrity": "sha512-QDRyw0atg9BMnwOwnJeW6REzWPLEjiWtsCc2Sj612F1hCdvP+n0L3o8sHinEWM+BiOkOYtUxHA69WjUslc3G+g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-arm-gnueabihf": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.117.0.tgz", + "integrity": "sha512-UvpvOjyQVgiIJahIpMT0qAsLJT8O1ibHTBgXGOsZkQgw1xmjARPQ07dpRcucPPn6cqCF3wrxfbqtr2vFHaMkdA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-arm-musleabihf": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.117.0.tgz", + "integrity": "sha512-cIhztGFjKk8ngP+/7EPkEhzWMGr2neezxgWirSn/f/MirjH234oHHGJ2diKIbGQEsy0aOuJMTkL9NLfzfmH51A==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-arm64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.117.0.tgz", + "integrity": "sha512-mXbDfvDN0RZVg7v4LohNzU0kK3fMAZgkUKTkpFVgxEvzibEG5VpSznkypUwHI4a8U8pz+K6mGaLetX3Xt+CvvA==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-arm64-musl": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.117.0.tgz", + "integrity": "sha512-ykxpPQp0eAcSmhy0Y3qKvdanHY4d8THPonDfmCoktUXb6r0X6qnjpJB3V+taN1wevW55bOEZd97kxtjTKjqhmg==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-ppc64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.117.0.tgz", + "integrity": "sha512-Rvspti4Kr7eq6zSrURK5WjscfWQPvmy/KjJZV45neRKW8RLonE3r9+NgrwSLGoHvQ3F24fbqlkplox1RtlhH5A==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-riscv64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.117.0.tgz", + "integrity": "sha512-Dr2ZW9ZZ4l1eQ5JUEUY3smBh4JFPCPuybWaDZTLn3ADZjyd8ZtNXEjeMT8rQbbhbgSL9hEgbwaqraole3FNThQ==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-riscv64-musl": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.117.0.tgz", + "integrity": "sha512-oD1Bnes1bIC3LVBSrWEoSUBj6fvatESPwAVWfJVGVQlqWuOs/ZBn1e4Nmbipo3KGPHK7DJY75r/j7CQCxhrOFQ==", + "cpu": [ + "riscv64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-s390x-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.117.0.tgz", + "integrity": "sha512-qT//IAPLvse844t99Kff5j055qEbXfwzWgvCMb0FyjisnB8foy25iHZxZIocNBe6qwrCYWUP1M8rNrB/WyfS1Q==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-x64-gnu": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.117.0.tgz", + "integrity": "sha512-2YEO5X+KgNzFqRVO5dAkhjcI5gwxus4NSWVl/+cs2sI6P0MNPjqE3VWPawl4RTC11LvetiiZdHcujUCPM8aaUw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-linux-x64-musl": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-linux-x64-musl/-/binding-linux-x64-musl-0.117.0.tgz", + "integrity": "sha512-3wqWbTSaIFZvDr1aqmTul4cg8PRWYh6VC52E8bLI7ytgS/BwJLW+sDUU2YaGIds4sAf/1yKeJRmudRCDPW9INg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-openharmony-arm64": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-openharmony-arm64/-/binding-openharmony-arm64-0.117.0.tgz", + "integrity": "sha512-Ebxx6NPqhzlrjvx4+PdSqbOq+li0f7X59XtJljDghkbJsbnkHvhLmPR09ifHt5X32UlZN63ekjwcg/nbmHLLlA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-wasm32-wasi": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-wasm32-wasi/-/binding-wasm32-wasi-0.117.0.tgz", + "integrity": "sha512-Nn8mmcBiQ0XKHLTb05QBlH+CDkn7jf5YDVv9FtKhy4zJT0NEU9y3dXVbfcurOpsVrG9me4ktzDQNCaAoJjUQyw==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oxc-transform/binding-win32-arm64-msvc": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.117.0.tgz", + "integrity": "sha512-15cbsF8diXWGnHrTsVgVeabETiT/KdMAfRAcot99xsaVecJs3pITNNjC6Qj+/TPNpehbgIFjlhhxOVSbQsTBgg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-win32-ia32-msvc": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.117.0.tgz", + "integrity": "sha512-I6DkhCuFX6p9rckdWiLuZfBWrrYUC7sNX+zLaCfa5zvrPNwo1/29KkefvqXVxu3AWT/6oZAbtc0A8/mqhETJPQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-transform/binding-win32-x64-msvc": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/@oxc-transform/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.117.0.tgz", + "integrity": "sha512-V7YzavQnYcRJBeJkp0qpb3FKrlm5I57XJetCYB4jsjStuboQmnFMZ/XQH55Szlf/kVyeU9ddQwv72gJJ5BrGjQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", + "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", + "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", + "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", + "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", + "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", + "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", + "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", + "cpu": [ + "arm" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", + "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", + "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", + "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", + "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-wasm": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.5.6.tgz", + "integrity": "sha512-byAiBZ1t3tXQvc8dMD/eoyE7lTXYorhn+6uVW5AC+JGI1KtJC/LvDche5cfUE+qiefH+Ybq0bUCJU0aB1cSHUA==", + "bundleDependencies": [ + "napi-wasm" + ], + "license": "MIT", + "dependencies": { + "is-glob": "^4.0.3", + "napi-wasm": "^1.1.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", + "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", + "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", + "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "license": "MIT" + }, + "node_modules/@poppinss/colors": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz", + "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==", + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5" + } + }, + "node_modules/@poppinss/dumper": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.7.0.tgz", + "integrity": "sha512-0UTYalzk2t6S4rA2uHOz5bSSW2CHdv4vggJI6Alg90yvl0UgXs6XSXpH96OH+bRkX4J/06djv29pqXJ0lq5Kag==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.5", + "@sindresorhus/is": "^7.0.2", + "supports-color": "^10.0.0" + } + }, + "node_modules/@poppinss/dumper/node_modules/@sindresorhus/is": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@poppinss/exception": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz", + "integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==", + "license": "MIT" + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.13.tgz", + "integrity": "sha512-3ngTAv6F/Py35BsYbeeLeecvhMKdsKm4AoOETVhAA+Qc8nrA2I0kF7oa93mE9qnIurngOSpMnQ0x2nQY2FPviA==", + "license": "MIT" + }, + "node_modules/@rollup/plugin-alias": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-6.0.0.tgz", + "integrity": "sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==", + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "rollup": ">=4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "29.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.2.tgz", + "integrity": "sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", + "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz", + "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.3.tgz", + "integrity": "sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-1.0.0.tgz", + "integrity": "sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==", + "license": "MIT", + "dependencies": { + "serialize-javascript": "^7.0.3", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", + "integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz", + "integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz", + "integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz", + "integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz", + "integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz", + "integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz", + "integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz", + "integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==", + "cpu": [ + "arm" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz", + "integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz", + "integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz", + "integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==", + "cpu": [ + "loong64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz", + "integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==", + "cpu": [ + "loong64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz", + "integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz", + "integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==", + "cpu": [ + "ppc64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz", + "integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz", + "integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==", + "cpu": [ + "riscv64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz", + "integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz", + "integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz", + "integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz", + "integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz", + "integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz", + "integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz", + "integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz", + "integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz", + "integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shikijs/core": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.0.2.tgz", + "integrity": "sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw==", + "license": "MIT", + "dependencies": { + "@shikijs/primitive": "4.0.2", + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.0.2.tgz", + "integrity": "sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.0.2.tgz", + "integrity": "sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/langs": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.0.2.tgz", + "integrity": "sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/primitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.0.2.tgz", + "integrity": "sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/themes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.0.2.tgz", + "integrity": "sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/transformers": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-4.0.2.tgz", + "integrity": "sha512-1+L0gf9v+SdDXs08vjaLb3mBFa8U7u37cwcBQIv/HCocLwX69Tt6LpUCjtB+UUTvQxI7BnjZKhN/wMjhHBcJGg==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "4.0.2", + "@shikijs/types": "4.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/types": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.0.2.tgz", + "integrity": "sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "license": "MIT" + }, + "node_modules/@simple-git/args-pathspec": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@simple-git/args-pathspec/-/args-pathspec-1.0.3.tgz", + "integrity": "sha512-ngJMaHlsWDTfjyq9F3VIQ8b7NXbBLq5j9i5bJ6XLYtD6qlDXT7fdKY2KscWWUF8t18xx052Y/PUO1K1TRc9yKA==", + "license": "MIT" + }, + "node_modules/@simple-git/argv-parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@simple-git/argv-parser/-/argv-parser-1.1.1.tgz", + "integrity": "sha512-Q9lBcfQ+VQCpQqGJFHe5yooOS5hGdLFFbJ5R+R5aDsnkPCahtn1hSkMcORX65J2Z5lxSkD0lQorMsncuBQxYUw==", + "license": "MIT", + "dependencies": { + "@simple-git/args-pathspec": "^1.0.3" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "license": "MIT" + }, + "node_modules/@speed-highlight/core": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.15.tgz", + "integrity": "sha512-BMq1K3DsElxDWawkX6eLg9+CKJrTVGCBAWVuHXVUV2u0s2711qiChLSId6ikYPfxhdYocLNt3wWwSvDiTvFabw==", + "license": "CC0-1.0" + }, + "node_modules/@sqlite.org/sqlite-wasm": { + "version": "3.50.4-build1", + "resolved": "https://registry.npmjs.org/@sqlite.org/sqlite-wasm/-/sqlite-wasm-3.50.4-build1.tgz", + "integrity": "sha512-Qig2Wso7gPkU1PtXwFzndh+CTRzrIFxVGqv6eCetjU7YqxlHItj+GvQYwYTppCRgAPawtRN/4AJcEgB9xDHGug==", + "license": "Apache-2.0", + "bin": { + "sqlite-wasm": "bin/index.js" + } + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/parse-path": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/parse-path/-/parse-path-7.0.3.tgz", + "integrity": "sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==", + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@unhead/vue": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-2.1.13.tgz", + "integrity": "sha512-HYy0shaHRnLNW9r85gppO8IiGz0ONWVV3zGdlT8CQ0tbTwixznJCIiyqV4BSV1aIF1jJIye0pd1p/k6Eab8Z/A==", + "license": "MIT", + "dependencies": { + "hookable": "^6.0.1", + "unhead": "2.1.13" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + }, + "peerDependencies": { + "vue": ">=3.5.18" + } + }, + "node_modules/@unhead/vue/node_modules/hookable": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", + "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", + "license": "MIT" + }, + "node_modules/@vercel/nft": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-1.5.0.tgz", + "integrity": "sha512-IWTDeIoWhQ7ZtRO/JRKH+jhmeQvZYhtGPmzw/QGDY+wDCQqfm25P9yIdoAFagu4fWsK4IwZXDFIjrmp5rRm/sA==", + "license": "MIT", + "dependencies": { + "@mapbox/node-pre-gyp": "^2.0.0", + "@rollup/pluginutils": "^5.1.3", + "acorn": "^8.6.0", + "acorn-import-attributes": "^1.9.5", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^13.0.0", + "graceful-fs": "^4.2.9", + "node-gyp-build": "^4.2.2", + "picomatch": "^4.0.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "nft": "out/cli.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.6.tgz", + "integrity": "sha512-u9HHgfrq3AjXlysn0eINFnWQOJQLO9WN6VprZ8FXl7A2bYisv3Hui9Ij+7QZ41F/WYWarHjwBbXtD7dKg3uxbg==", + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-rc.13" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-5.1.5.tgz", + "integrity": "sha512-jIAsvHOEtWpslLOI2MeElGFxH7M8pM83BU/Tor4RLyiwH0FM4nUW3xdvbw20EeU9wc5IspQwMq225K3CMnJEpA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.29.0", + "@babel/plugin-syntax-typescript": "^7.28.6", + "@babel/plugin-transform-typescript": "^7.28.6", + "@rolldown/pluginutils": "^1.0.0-rc.2", + "@vue/babel-plugin-jsx": "^2.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", + "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.28" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", + "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz", + "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==", + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue-macros/common": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-3.1.2.tgz", + "integrity": "sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==", + "license": "MIT", + "dependencies": { + "@vue/compiler-sfc": "^3.5.22", + "ast-kit": "^2.1.2", + "local-pkg": "^1.1.2", + "magic-string-ast": "^1.0.2", + "unplugin-utils": "^0.3.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/vue-macros" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.2.25" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-2.0.1.tgz", + "integrity": "sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA==", + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-2.0.1.tgz", + "integrity": "sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@vue/babel-helper-vue-transform-on": "2.0.1", + "@vue/babel-plugin-resolve-type": "2.0.1", + "@vue/shared": "^3.5.22" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-2.0.1.tgz", + "integrity": "sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/parser": "^7.28.4", + "@vue/compiler-sfc": "^3.5.22" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.32.tgz", + "integrity": "sha512-4x74Tbtqnda8s/NSD6e1Dr5p1c8HdMU5RWSjMSUzb8RTcUQqevDCxVAitcLBKT+ie3o0Dl9crc/S/opJM7qBGQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/shared": "3.5.32", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.32.tgz", + "integrity": "sha512-ybHAu70NtiEI1fvAUz3oXZqkUYEe5J98GjMDpTGl5iHb0T15wQYLR4wE3h9xfuTNA+Cm2f4czfe8B4s+CCH57Q==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.32", + "@vue/shared": "3.5.32" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.32.tgz", + "integrity": "sha512-8UYUYo71cP/0YHMO814TRZlPuUUw3oifHuMR7Wp9SNoRSrxRQnhMLNlCeaODNn6kNTJsjFoQ/kqIj4qGvya4Xg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/compiler-core": "3.5.32", + "@vue/compiler-dom": "3.5.32", + "@vue/compiler-ssr": "3.5.32", + "@vue/shared": "3.5.32", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.8", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.32.tgz", + "integrity": "sha512-Gp4gTs22T3DgRotZ8aA/6m2jMR+GMztvBXUBEUOYOcST+giyGWJ4WvFd7QLHBkzTxkfOt8IELKNdpzITLbA2rw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.32", + "@vue/shared": "3.5.32" + } + }, + "node_modules/@vue/devtools-api": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-8.1.1.tgz", + "integrity": "sha512-bsDMJ07b3GN1puVwJb/fyFnj/U2imyswK5UQVLZwVl7O05jDrt6BHxeG5XffmOOdasOj/bOmIjxJvGPxU7pcqw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^8.1.1" + } + }, + "node_modules/@vue/devtools-core": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-8.1.1.tgz", + "integrity": "sha512-bCCsSABp1/ot4j8xJEycM6Mtt2wbuucfByr6hMgjbYhrtlscOJypZKvy8f1FyWLYrLTchB5Qz216Lm92wfbq0A==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^8.1.1", + "@vue/devtools-shared": "^8.1.1" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.1.1.tgz", + "integrity": "sha512-gVBaBv++i+adg4JpH71k9ppl4soyR7Y2McEqO5YNgv0BI1kMZ7BDX5gnwkZ5COYgiCyhejZG+yGNrBAjj6Coqg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^8.1.1", + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "perfect-debounce": "^2.0.0" + } + }, + "node_modules/@vue/devtools-kit/node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.1.1.tgz", + "integrity": "sha512-+h4ttmJYl/txpxHKaoZcaKpC+pvckgLzIDiSQlaQ7kKthKh8KuwoLW2D8hPJEnqKzXOvu15UHEoGyngAXCz0EQ==", + "license": "MIT" + }, + "node_modules/@vue/language-core": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.6.tgz", + "integrity": "sha512-xYYYX3/aVup576tP/23sEUpgiEnujrENaoNRbaozC1/MA9I6EGFQRJb4xrt/MmUCAGlxTKL2RmT8JLTPqagCkg==", + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "@vue/compiler-dom": "^3.5.0", + "@vue/shared": "^3.5.0", + "alien-signals": "^3.0.0", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "picomatch": "^4.0.2" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.32.tgz", + "integrity": "sha512-/ORasxSGvZ6MN5gc+uE364SxFdJ0+WqVG0CENXaGW58TOCdrAW76WWaplDtECeS1qphvtBZtR+3/o1g1zL4xPQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.32" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.32.tgz", + "integrity": "sha512-pDrXCejn4UpFDFmMd27AcJEbHaLemaE5o4pbb7sLk79SRIhc6/t34BQA7SGNgYtbMnvbF/HHOftYBgFJtUoJUQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.32", + "@vue/shared": "3.5.32" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.32.tgz", + "integrity": "sha512-1CDVv7tv/IV13V8Nip1k/aaObVbWqRlVCVezTwx3K07p7Vxossp5JU1dcPNhJk3w347gonIUT9jQOGutyJrSVQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.32", + "@vue/runtime-core": "3.5.32", + "@vue/shared": "3.5.32", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.32.tgz", + "integrity": "sha512-IOjm2+JQwRFS7W28HNuJeXQle9KdZbODFY7hFGVtnnghF51ta20EWAZJHX+zLGtsHhaU6uC9BGPV52KVpYryMQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.32", + "@vue/shared": "3.5.32" + }, + "peerDependencies": { + "vue": "3.5.32" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.32.tgz", + "integrity": "sha512-ksNyrmRQzWJJ8n3cRDuSF7zNNontuJg1YHnmWRJd2AMu8Ij2bqwiiri2lH5rHtYPZjj4STkNcgcmiQqlOjiYGg==", + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.9.0.tgz", + "integrity": "sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "13.9.0", + "@vueuse/shared": "13.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.9.0.tgz", + "integrity": "sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/nuxt": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/nuxt/-/nuxt-13.9.0.tgz", + "integrity": "sha512-n/9BRU3nLl2mVI6rYbB3jOctCmQD0xT799hXPCwCn1PyvK7r6O9Nt1dxfVCMfKCDAiCi8Fz2IqPC6Zs2Dv1pVA==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.18.1", + "@vueuse/core": "13.9.0", + "@vueuse/metadata": "13.9.0", + "local-pkg": "^1.1.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "nuxt": "^3.0.0 || ^4.0.0-0", + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/nuxt/node_modules/@nuxt/kit": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.21.2.tgz", + "integrity": "sha512-Bd6m6mrDrqpBEbX+g0rc66/ALd1sxlgdx5nfK9MAYO0yKLTOSK7McSYz1KcOYn3LQFCXOWfvXwaqih/b+REI1g==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.3", + "consola": "^3.4.2", + "defu": "^6.1.4", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "rc9": "^3.0.0", + "scule": "^1.3.0", + "semver": "^7.7.4", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@vueuse/shared": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.9.0.tgz", + "integrity": "sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@webcontainer/env": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@webcontainer/env/-/env-1.1.1.tgz", + "integrity": "sha512-6aN99yL695Hi9SuIk1oC88l9o0gmxL1nGWWQ/kNy81HigJ0FoaoTXpytCj6ItzgyCEwA9kF1wixsTuv5cjsgng==", + "license": "MIT" + }, + "node_modules/abbrev": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", + "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/alien-signals": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz", + "integrity": "sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==", + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz", + "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==", + "license": "ISC", + "engines": { + "node": ">=14" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/archiver-utils/node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/archiver-utils/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/archiver-utils/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/ast-kit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-2.2.0.tgz", + "integrity": "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "pathe": "^2.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-walker-scope": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.8.3.tgz", + "integrity": "sha512-cbdCP0PGOBq0ASG+sjnKIoYkWMKhhz+F/h9pRexUdX2Hd38+WOlBkRKlqkGOSm0YQpcFMQBJeK4WspUAkwsEdg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.4", + "ast-kit": "^2.1.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/async-lock": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", + "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==", + "license": "MIT" + }, + "node_modules/async-sema": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz", + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/b4a": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", + "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/bare-fs": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.1.tgz", + "integrity": "sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.8.7", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.8.7.tgz", + "integrity": "sha512-G4Gr1UsGeEy2qtDTZwL7JFLo2wapUarz7iTMcYcMFdS89AIQuBoyjgXZz0Utv7uHs3xA9LckhVbeBi8lEQrC+w==", + "license": "Apache-2.0", + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "license": "Apache-2.0", + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.0.tgz", + "integrity": "sha512-3zAJRZMDFGjdn+RVnNpF9kuELw+0Fl3lpndM4NcEOhb9zwtSo/deETfuIwMSE5BXanA0FrN1qVjffGwAg2Y7EA==", + "license": "Apache-2.0", + "dependencies": { + "streamx": "^2.25.0", + "teex": "^1.0.1" + }, + "peerDependencies": { + "bare-abort-controller": "*", + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + }, + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-url": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.0.tgz", + "integrity": "sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==", + "license": "Apache-2.0", + "dependencies": { + "bare-path": "^3.0.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.19.tgz", + "integrity": "sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/better-sqlite3": { + "version": "12.9.0", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.9.0.tgz", + "integrity": "sha512-wqUv4Gm3toFpHDQmaKD4QhZm3g1DjUBI0yzS4UBl6lElUmXFYdTQmmEDpAFa5o8FiFiymURypEnfVHzILKaxqQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bindings": "^1.5.0", + "prebuild-install": "^7.1.1" + }, + "engines": { + "node": "20.x || 22.x || 23.x || 24.x || 25.x" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/birpc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-4.0.0.tgz", + "integrity": "sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/c12": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.4.tgz", + "integrity": "sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==", + "license": "MIT", + "dependencies": { + "chokidar": "^5.0.0", + "confbox": "^0.2.4", + "defu": "^6.1.6", + "dotenv": "^17.3.1", + "exsolve": "^1.0.8", + "giget": "^3.2.0", + "jiti": "^2.6.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.0", + "rc9": "^3.0.1" + }, + "peerDependencies": { + "magicast": "*" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001788", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz", + "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/clean-git-ref": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-2.0.1.tgz", + "integrity": "sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==", + "license": "Apache-2.0" + }, + "node_modules/cliui": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", + "license": "ISC", + "dependencies": { + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/compatx": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/compatx/-/compatx-0.2.0.tgz", + "integrity": "sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==", + "license": "MIT" + }, + "node_modules/compress-commons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/compress-commons/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie-es": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz", + "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==", + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/croner": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/croner/-/croner-10.0.1.tgz", + "integrity": "sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g==", + "funding": [ + { + "type": "other", + "url": "https://paypal.me/hexagonpp" + }, + { + "type": "github", + "url": "https://github.com/sponsors/hexagon" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz", + "integrity": "sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==", + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "optional": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", + "license": "MIT", + "optional": true + }, + "node_modules/cssnano": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.5.tgz", + "integrity": "sha512-4yEvjF2zcoAOWfNq6X687ORJc5SvM5xbg6EGuLSBmGoWZbsL69wpmw1tA3fZt7OwIG+G4ndjF95RSS4luvim7A==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^7.0.13", + "lilconfig": "^3.1.3" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/cssnano-preset-default": { + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.13.tgz", + "integrity": "sha512-/XvjNeb+oitOT9ks3Tg0UAsnXeHR1dh3wBMK/D/zN8gqvAHOp25FZGiLoQbvBBU203WXVNITkaqyFp4O/Rns4w==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.1", + "postcss-calc": "^10.1.1", + "postcss-colormin": "^7.0.8", + "postcss-convert-values": "^7.0.10", + "postcss-discard-comments": "^7.0.6", + "postcss-discard-duplicates": "^7.0.2", + "postcss-discard-empty": "^7.0.1", + "postcss-discard-overridden": "^7.0.1", + "postcss-merge-longhand": "^7.0.5", + "postcss-merge-rules": "^7.0.9", + "postcss-minify-font-values": "^7.0.1", + "postcss-minify-gradients": "^7.0.3", + "postcss-minify-params": "^7.0.7", + "postcss-minify-selectors": "^7.0.6", + "postcss-normalize-charset": "^7.0.1", + "postcss-normalize-display-values": "^7.0.1", + "postcss-normalize-positions": "^7.0.1", + "postcss-normalize-repeat-style": "^7.0.1", + "postcss-normalize-string": "^7.0.1", + "postcss-normalize-timing-functions": "^7.0.1", + "postcss-normalize-unicode": "^7.0.7", + "postcss-normalize-url": "^7.0.1", + "postcss-normalize-whitespace": "^7.0.1", + "postcss-ordered-values": "^7.0.2", + "postcss-reduce-initial": "^7.0.7", + "postcss-reduce-transforms": "^7.0.1", + "postcss-svgo": "^7.1.1", + "postcss-unique-selectors": "^7.0.5" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/cssnano-utils": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", + "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/db0": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/db0/-/db0-0.3.4.tgz", + "integrity": "sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==", + "license": "MIT", + "peerDependencies": { + "@electric-sql/pglite": "*", + "@libsql/client": "*", + "better-sqlite3": "*", + "drizzle-orm": "*", + "mysql2": "*", + "sqlite3": "*" + }, + "peerDependenciesMeta": { + "@electric-sql/pglite": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "drizzle-orm": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "sqlite3": { + "optional": true + } + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/detab": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/detab/-/detab-3.0.2.tgz", + "integrity": "sha512-7Bp16Bk8sk0Y6gdXiCtnpGbghn8atnTJdd/82aWvS5ESnlcNvgUc10U2NYS0PAiDSGjWiI8qs/Cv1b2uSGdQ8w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.7.1.tgz", + "integrity": "sha512-MUbZ586EgQqdRnC4yDrlod3BEdyvE4TapGYHMW2CiaW+KkkFmWEFqBUaLltEZCGi0iFXCEjRF0OjF0DV2QHjOA==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff3": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", + "integrity": "sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==", + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-10.1.0.tgz", + "integrity": "sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==", + "license": "MIT", + "dependencies": { + "type-fest": "^5.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.339", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.339.tgz", + "integrity": "sha512-Is+0BBHJ4NrdpAYiperrmp53pLywG/yV/6lIMTAnhxvzj/Cmn5Q/ogSHC6AKe7X+8kPLxxFk0cs5oc/3j/fxIg==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT" + }, + "node_modules/emoticon": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", + "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.4.tgz", + "integrity": "sha512-+kjUJnZGwzewFDw951CDWcwj35vMNf2fcj7xQWOctq1F2i1jkDdVvdFG9kM/BEChymCH36KgjnW0NsL58JYRxw==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.18.3", + "xmlhttprequest-ssl": "~2.1.1" + } + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", + "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/errx": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/errx/-/errx-0.1.0.tgz", + "integrity": "sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-npm-meta": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/fast-npm-meta/-/fast-npm-meta-1.5.0.tgz", + "integrity": "sha512-71pTBPrA9WPPsJQ0Q06ZlTQQVJPYd87xZsvFwxFqru7a6kdriMVW1Hjd37W3W13ZuF/K/Zzq6eVlAHVoZCHuQw==", + "license": "MIT", + "bin": { + "fast-npm-meta": "dist/cli.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/fast-string-truncated-width": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-1.2.1.tgz", + "integrity": "sha512-Q9acT/+Uu3GwGj+5w/zsGuQjh9O1TyywhIwAxHudtWrgF09nHOPrvTLhQevPbttcxjr/SNN7mJmfOw/B1bXgow==", + "license": "MIT" + }, + "node_modules/fast-string-width": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-1.1.0.tgz", + "integrity": "sha512-O3fwIVIH5gKB38QNbdg+3760ZmGz0SZMgvwJbA1b2TGXceKE6A2cOlfogh1iw8lr049zPyd7YADHy+B7U4W9bQ==", + "license": "MIT", + "dependencies": { + "fast-string-truncated-width": "^1.2.0" + } + }, + "node_modules/fast-wrap-ansi": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.1.6.tgz", + "integrity": "sha512-HlUwET7a5gqjURj70D5jl7aC3Zmy4weA1SHUfM0JFI0Ptq987NH2TwbBFLoERhfwk+E+eaq4EK3jXoT+R3yp3w==", + "license": "MIT", + "dependencies": { + "fast-string-width": "^1.1.0" + } + }, + "node_modules/fast-xml-builder": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.4.tgz", + "integrity": "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "path-expression-matcher": "^1.1.3" + } + }, + "node_modules/fast-xml-parser": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.6.0.tgz", + "integrity": "sha512-5G+uaEBbOm9M4dgMOV3K/rBzfUNGqGqoUTaYJM3hBwM8t71w07gxLQZoTsjkY8FtfjabqgQHEkeIySBDYeBmJw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "@nodable/entities": "^1.1.0", + "fast-xml-builder": "^1.1.4", + "path-expression-matcher": "^1.5.0", + "strnum": "^2.2.3" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-6.0.1.tgz", + "integrity": "sha512-/3FfIa8mbrg3xE7+wAhWeV+bd7L2Mof+xtZb5dRDKZ+wDvYJK4WDYeIOuOhre5Yv5aQObZrlbRmk3RTSiuQBtw==", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuse.js": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.3.0.tgz", + "integrity": "sha512-plz8RVjfcDedTGfVngWH1jmJvBvAwi1v2jecfDerbEnMcmOYUEEwKFTHbNoCiYyzaK2Ws8lABkTCcRSqCY1q4w==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/krisk" + } + }, + "node_modules/fzf": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fzf/-/fzf-0.5.2.tgz", + "integrity": "sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==", + "license": "BSD-3-Clause" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port-please": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.2.0.tgz", + "integrity": "sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==", + "license": "MIT" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/giget": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/giget/-/giget-3.2.0.tgz", + "integrity": "sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==", + "license": "MIT", + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/git-up": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-8.1.1.tgz", + "integrity": "sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==", + "license": "MIT", + "dependencies": { + "is-ssh": "^1.4.0", + "parse-url": "^9.2.0" + } + }, + "node_modules/git-url-parse": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-16.1.0.tgz", + "integrity": "sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==", + "license": "MIT", + "dependencies": { + "git-up": "^8.1.0" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT" + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "license": "MIT", + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.0.tgz", + "integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==", + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.5", + "is-path-inside": "^4.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.4.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/gzip-size": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-7.0.0.tgz", + "integrity": "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/h3": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz", + "integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.3", + "crossws": "^0.3.5", + "defu": "^6.1.6", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.4", + "radix3": "^1.1.2", + "ufo": "^1.6.3", + "uncrypto": "^0.1.3" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-embedded": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-3.0.0.tgz", + "integrity": "sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-is-element": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-format": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-format/-/hast-util-format-1.1.0.tgz", + "integrity": "sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-minify-whitespace": "^1.0.0", + "hast-util-phrasing": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "html-whitespace-sensitive-tag-names": "^3.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-has-property": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz", + "integrity": "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-heading-rank": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", + "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-body-ok-link": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-3.0.1.tgz", + "integrity": "sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-minify-whitespace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hast-util-minify-whitespace/-/hast-util-minify-whitespace-1.0.1.tgz", + "integrity": "sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-has-property": "^3.0.0", + "hast-util-is-body-ok-link": "^3.0.0", + "hast-util-is-element": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/hast-util-raw/node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-mdast": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/hast-util-to-mdast/-/hast-util-to-mdast-10.1.2.tgz", + "integrity": "sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-phrasing": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "hast-util-to-text": "^4.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-minify-whitespace": "^6.0.0", + "trim-trailing-lines": "^2.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-whitespace-sensitive-tag-names": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-3.0.1.tgz", + "integrity": "sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-shutdown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", + "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/httpxy": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/httpxy/-/httpxy-0.5.0.tgz", + "integrity": "sha512-qwX7QX/rK2visT10/b7bSeZWQOMlSm3svTD0pZpU+vJjNUP0YHtNv4c3z+MO+MSnGuRFWJFdCZiV+7F7dXIOzg==", + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-meta": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/image-meta/-/image-meta-0.2.2.tgz", + "integrity": "sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==", + "license": "MIT" + }, + "node_modules/impound": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/impound/-/impound-1.1.5.tgz", + "integrity": "sha512-5AUn+QE0UofqNHu5f2Skf6Svukdg4ehOIq8O0EtqIx4jta0CDZYBPqpIHt0zrlUTiFVYlLpeH39DoikXBjPKpA==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "es-module-lexer": "^2.0.0", + "pathe": "^2.0.3", + "unplugin": "^3.0.0", + "unplugin-utils": "^0.3.1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ioredis": { + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.10.1.tgz", + "integrity": "sha512-HuEDBTI70aYdx1v6U97SbNx9F1+svQKBDo30o0b9fw055LMepzpOOd0Ccg9Q6tbqmBSJaMuY0fB7yw9/vjBYCA==", + "license": "MIT", + "dependencies": { + "@ioredis/commands": "1.5.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/ipx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ipx/-/ipx-2.1.1.tgz", + "integrity": "sha512-XuM9FEGOT+/45mfAWZ5ykwkZ/oE7vWpd1iWjRffMWlwAYIRzb/xD6wZhQ4BzmPMX6Ov5dqK0wUyD0OEN9oWT6g==", + "license": "MIT", + "optional": true, + "dependencies": { + "@fastify/accept-negotiator": "^1.1.0", + "citty": "^0.1.5", + "consola": "^3.2.3", + "defu": "^6.1.4", + "destr": "^2.0.2", + "etag": "^1.8.1", + "h3": "^1.10.0", + "image-meta": "^0.2.0", + "listhen": "^1.5.6", + "ofetch": "^1.3.3", + "pathe": "^1.1.2", + "sharp": "^0.32.6", + "svgo": "^3.2.0", + "ufo": "^1.3.2", + "unstorage": "^1.10.1", + "xss": "^1.0.14" + }, + "bin": { + "ipx": "bin/ipx.mjs" + } + }, + "node_modules/ipx/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT", + "optional": true + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-absolute-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", + "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT", + "optional": true + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-1.0.0.tgz", + "integrity": "sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==", + "license": "MIT", + "dependencies": { + "global-directory": "^4.0.1", + "is-path-inside": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-ssh": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz", + "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==", + "license": "MIT", + "dependencies": { + "protocols": "^2.0.1" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isomorphic-git": { + "version": "1.37.5", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.37.5.tgz", + "integrity": "sha512-wek54c5uFvd3WsxewLWt6h0GXKWQh0P8rRXns9bN1rHNjcgCb3+0lmyAsP594NeTtQFeCJQVS9b0kjbkD1l5qg==", + "license": "MIT", + "dependencies": { + "async-lock": "^1.4.1", + "clean-git-ref": "^2.0.1", + "crc-32": "^1.2.0", + "diff3": "0.0.3", + "ignore": "^5.1.4", + "minimisted": "^2.0.0", + "pako": "^1.0.10", + "pify": "^4.0.1", + "readable-stream": "^4.0.0", + "sha.js": "^2.4.12", + "simple-get": "^4.0.1" + }, + "bin": { + "isogit": "cli.cjs" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/isomorphic-git/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-schema-to-typescript-lite": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/json-schema-to-typescript-lite/-/json-schema-to-typescript-lite-15.0.0.tgz", + "integrity": "sha512-5mMORSQm9oTLyjM4mWnyNBi2T042Fhg1/0gCIB6X8U/LVpM2A+Nmj2yEyArqVouDmFThDxpEXcnTgSrjkGJRFA==", + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^14.1.1", + "@types/json-schema": "^7.0.15" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/knitwork": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/knitwork/-/knitwork-1.3.0.tgz", + "integrity": "sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==", + "license": "MIT" + }, + "node_modules/launch-editor": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.2.tgz", + "integrity": "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/listhen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.9.1.tgz", + "integrity": "sha512-4EhoyVcXEpNlY5HJRSQpH7Rba94M8N2JmI62ePjl0lrJKXSfG0F1FAgHGxBoz/T3pe41sUEwkIRRIcaUL0/Ofw==", + "license": "MIT", + "dependencies": { + "@parcel/watcher": "^2.5.6", + "@parcel/watcher-wasm": "^2.5.6", + "citty": "^0.2.2", + "consola": "^3.4.2", + "crossws": ">=0.2.0 <0.5.0", + "defu": "^6.1.6", + "get-port-please": "^3.2.0", + "h3": "^1.15.11", + "http-shutdown": "^1.2.2", + "jiti": "^2.6.1", + "mlly": "^1.8.2", + "node-forge": "^1.4.0", + "pathe": "^2.0.3", + "std-env": "^4.0.0", + "tinyclip": "^0.1.12", + "ufo": "^1.6.3", + "untun": "^0.1.3", + "uqr": "^0.1.2" + }, + "bin": { + "listen": "bin/listhen.mjs", + "listhen": "bin/listhen.mjs" + } + }, + "node_modules/listhen/node_modules/citty": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", + "license": "MIT" + }, + "node_modules/local-pkg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "license": "MIT" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-regexp": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/magic-regexp/-/magic-regexp-0.10.0.tgz", + "integrity": "sha512-Uly1Bu4lO1hwHUW0CQeSWuRtzCMNO00CmXtS8N6fyvB3B979GOEEeAkiTUDsmbYLAbvpUS/Kt5c4ibosAzVyVg==", + "license": "MIT", + "dependencies": { + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12", + "mlly": "^1.7.2", + "regexp-tree": "^0.1.27", + "type-level-regexp": "~0.1.17", + "ufo": "^1.5.4", + "unplugin": "^2.0.0" + } + }, + "node_modules/magic-regexp/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/magic-regexp/node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magic-string-ast": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-1.0.3.tgz", + "integrity": "sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==", + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.19" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/magicast": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", + "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "source-map-js": "^1.2.1" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0", + "optional": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.1.0.tgz", + "integrity": "sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==", + "funding": [ + "https://github.com/sponsors/broofa" + ], + "license": "MIT", + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimark": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/minimark/-/minimark-0.2.0.tgz", + "integrity": "sha512-AmtWU9pO0C2/3AM2pikaVhJ//8E5rOpJ7+ioFQfjIq+wCsBeuZoxPd97hBFZ9qrI7DMHZudwGH3r8A7BMnsIew==", + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimisted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz", + "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/mocked-exports": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/mocked-exports/-/mocked-exports-0.1.1.tgz", + "integrity": "sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==", + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanotar": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/nanotar/-/nanotar-0.3.0.tgz", + "integrity": "sha512-Kv2JYYiCzt16Kt5QwAc9BFG89xfPNBx+oQL4GQXD9nLqPkZBiNaqaCWtwnbk/q7UVsTYevvM1b0UF8zmEI4pCg==", + "license": "MIT" + }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "license": "MIT" + }, + "node_modules/nitropack": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/nitropack/-/nitropack-2.13.3.tgz", + "integrity": "sha512-C8vO7RxkU0AQ3HbYUumuG6MVM5JjRaBchke/rYFOp3EvrLtTBHZYhDVGECdpa27vNuOYRzm3GtQMn2YDOjDJLA==", + "license": "MIT", + "dependencies": { + "@cloudflare/kv-asset-handler": "^0.4.2", + "@rollup/plugin-alias": "^6.0.0", + "@rollup/plugin-commonjs": "^29.0.2", + "@rollup/plugin-inject": "^5.0.5", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-replace": "^6.0.3", + "@rollup/plugin-terser": "^1.0.0", + "@vercel/nft": "^1.5.0", + "archiver": "^7.0.1", + "c12": "^3.3.4", + "chokidar": "^5.0.0", + "citty": "^0.2.2", + "compatx": "^0.2.0", + "confbox": "^0.2.4", + "consola": "^3.4.2", + "cookie-es": "^2.0.1", + "croner": "^10.0.1", + "crossws": "^0.3.5", + "db0": "^0.3.4", + "defu": "^6.1.6", + "destr": "^2.0.5", + "dot-prop": "^10.1.0", + "esbuild": "^0.27.5", + "escape-string-regexp": "^5.0.0", + "etag": "^1.8.1", + "exsolve": "^1.0.8", + "globby": "^16.2.0", + "gzip-size": "^7.0.0", + "h3": "^1.15.10", + "hookable": "^5.5.3", + "httpxy": "^0.5.0", + "ioredis": "^5.10.1", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "listhen": "^1.9.1", + "magic-string": "^0.30.21", + "magicast": "^0.5.2", + "mime": "^4.1.0", + "mlly": "^1.8.2", + "node-fetch-native": "^1.6.7", + "node-mock-http": "^1.0.4", + "ofetch": "^1.5.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.0", + "pretty-bytes": "^7.1.0", + "radix3": "^1.1.2", + "rollup": "^4.60.1", + "rollup-plugin-visualizer": "^7.0.1", + "scule": "^1.3.0", + "semver": "^7.7.4", + "serve-placeholder": "^2.0.2", + "serve-static": "^2.2.1", + "source-map": "^0.7.6", + "std-env": "^4.0.0", + "ufo": "^1.6.3", + "ultrahtml": "^1.6.0", + "uncrypto": "^0.1.3", + "unctx": "^2.5.0", + "unenv": "2.0.0-rc.24", + "unimport": "^6.0.2", + "unplugin-utils": "^0.3.1", + "unstorage": "^1.17.5", + "untyped": "^2.0.0", + "unwasm": "^0.5.3", + "youch": "^4.1.1", + "youch-core": "^0.3.3" + }, + "bin": { + "nitro": "dist/cli/index.mjs", + "nitropack": "dist/cli/index.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "xml2js": "^0.6.2" + }, + "peerDependenciesMeta": { + "xml2js": { + "optional": true + } + } + }, + "node_modules/nitropack/node_modules/citty": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", + "license": "MIT" + }, + "node_modules/nitropack/node_modules/cookie-es": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.1.tgz", + "integrity": "sha512-aVf4A4hI2w70LnF7GG+7xDQUkliwiXWXFvTjkip4+b64ygDQ2sJPRSKFDHbxn8o0xu9QzPkMuuiWIXyFSE2slA==", + "license": "MIT" + }, + "node_modules/node-abi": { + "version": "3.89.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.89.0.tgz", + "integrity": "sha512-6u9UwL0HlAl21+agMN3YAMXcKByMqwGx+pq+P76vii5f7hTPtKDp08/H9py6DY+cfDw7kQNTGEj/rly3IgbNQA==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, + "node_modules/node-emoji": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" + }, + "node_modules/node-forge": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-mock-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz", + "integrity": "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "license": "MIT" + }, + "node_modules/nopt": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", + "license": "ISC", + "dependencies": { + "abbrev": "^3.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nuxt": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/nuxt/-/nuxt-4.4.2.tgz", + "integrity": "sha512-iWVFpr/YEqVU/CenqIHMnIkvb2HE/9f+q8oxZ+pj2et+60NljGRClCgnmbvGPdmNFE0F1bEhoBCYfqbDOCim3Q==", + "license": "MIT", + "dependencies": { + "@dxup/nuxt": "^0.4.0", + "@nuxt/cli": "^3.34.0", + "@nuxt/devtools": "^3.2.3", + "@nuxt/kit": "4.4.2", + "@nuxt/nitro-server": "4.4.2", + "@nuxt/schema": "4.4.2", + "@nuxt/telemetry": "^2.7.0", + "@nuxt/vite-builder": "4.4.2", + "@unhead/vue": "^2.1.12", + "@vue/shared": "^3.5.30", + "c12": "^3.3.3", + "chokidar": "^5.0.0", + "compatx": "^0.2.0", + "consola": "^3.4.2", + "cookie-es": "^2.0.0", + "defu": "^6.1.4", + "devalue": "^5.6.3", + "errx": "^0.1.0", + "escape-string-regexp": "^5.0.0", + "exsolve": "^1.0.8", + "hookable": "^6.0.1", + "ignore": "^7.0.5", + "impound": "^1.1.5", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "magic-string": "^0.30.21", + "mlly": "^1.8.1", + "nanotar": "^0.3.0", + "nypm": "^0.6.5", + "ofetch": "^1.5.1", + "ohash": "^2.0.11", + "on-change": "^6.0.2", + "oxc-minify": "^0.117.0", + "oxc-parser": "^0.117.0", + "oxc-transform": "^0.117.0", + "oxc-walker": "^0.7.0", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "picomatch": "^4.0.3", + "pkg-types": "^2.3.0", + "rou3": "^0.8.1", + "scule": "^1.3.0", + "semver": "^7.7.4", + "std-env": "^4.0.0", + "tinyglobby": "^0.2.15", + "ufo": "^1.6.3", + "ultrahtml": "^1.6.0", + "uncrypto": "^0.1.3", + "unctx": "^2.5.0", + "unimport": "^6.0.1", + "unplugin": "^3.0.0", + "unrouting": "^0.1.5", + "untyped": "^2.0.0", + "vue": "^3.5.30", + "vue-router": "^5.0.3" + }, + "bin": { + "nuxi": "bin/nuxt.mjs", + "nuxt": "bin/nuxt.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@parcel/watcher": "^2.1.0", + "@types/node": ">=18.12.0" + }, + "peerDependenciesMeta": { + "@parcel/watcher": { + "optional": true + }, + "@types/node": { + "optional": true + } + } + }, + "node_modules/nuxt-component-meta": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/nuxt-component-meta/-/nuxt-component-meta-0.17.2.tgz", + "integrity": "sha512-2/mSSqutOX8t+r8cAX1yUYwAPBqicPO5Rfum3XaHVszxKCF4tXEXBiPGfJY9Zn69x/CIeOdw+aM9wmHzQ5Q+lA==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.2.2", + "citty": "^0.1.6", + "mlly": "^1.8.0", + "ohash": "^2.0.11", + "scule": "^1.3.0", + "typescript": "^5.9.3", + "ufo": "^1.6.2", + "vue-component-meta": "^3.2.2" + }, + "bin": { + "nuxt-component-meta": "bin/nuxt-component-meta.mjs" + } + }, + "node_modules/nuxt-site-config": { + "version": "3.2.21", + "resolved": "https://registry.npmjs.org/nuxt-site-config/-/nuxt-site-config-3.2.21.tgz", + "integrity": "sha512-WCqo4cirBc+GLPBZOU1ye5+f4xjC7Sf7qbKt/zpeCtEUqJLHDR0MoKICfsGt/8EdkSDYUo+m5BNZ1oxai0isgQ==", + "license": "MIT", + "dependencies": { + "@nuxt/devtools-kit": "^3.2.1", + "@nuxt/kit": "^4.3.1", + "h3": "^1.15.5", + "nuxt-site-config-kit": "3.2.21", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "sirv": "^3.0.2", + "site-config-stack": "3.2.21", + "ufo": "^1.6.3" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/nuxt-site-config-kit": { + "version": "3.2.21", + "resolved": "https://registry.npmjs.org/nuxt-site-config-kit/-/nuxt-site-config-kit-3.2.21.tgz", + "integrity": "sha512-fvvAyv/mBUqnzsqro4iuXHypFtEUVIPYVW7e5j1/oP9JANfHFrGqosUhY8FAkI21HZgJ8H/8GdcQtnnN2xk+QA==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.3.1", + "pkg-types": "^2.3.0", + "site-config-stack": "3.2.21", + "std-env": "^3.10.0", + "ufo": "^1.6.3" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/nuxt-site-config-kit/node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/nuxt/node_modules/cookie-es": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.1.tgz", + "integrity": "sha512-aVf4A4hI2w70LnF7GG+7xDQUkliwiXWXFvTjkip4+b64ygDQ2sJPRSKFDHbxn8o0xu9QzPkMuuiWIXyFSE2slA==", + "license": "MIT" + }, + "node_modules/nuxt/node_modules/hookable": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", + "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", + "license": "MIT" + }, + "node_modules/nypm": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.5.tgz", + "integrity": "sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ==", + "license": "MIT", + "dependencies": { + "citty": "^0.2.0", + "pathe": "^2.0.3", + "tinyexec": "^1.0.2" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/nypm/node_modules/citty": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz", + "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==", + "license": "MIT" + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT" + }, + "node_modules/on-change": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/on-change/-/on-change-6.0.2.tgz", + "integrity": "sha512-08+12qcOVEA0fS9g/VxKS27HaT94nRutUT77J2dr8zv/unzXopvhBuF8tNLWsoLQ5IgrQ6eptGeGqUYat82U1w==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/on-change?sponsor=1" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/oniguruma-parser": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", + "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.5.tgz", + "integrity": "sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==", + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.1", + "regex": "^6.1.0", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/open": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", + "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.4.0", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.1.0", + "wsl-utils": "^0.3.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/oxc-minify": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/oxc-minify/-/oxc-minify-0.117.0.tgz", + "integrity": "sha512-JHsv/b+bmBJkAzkHXgTN7RThloVxLHPT0ojHfjqxVeHuQB7LPpLUbJ2qfwz37sto9stZ9+AVwUP4b3gtR7p/Tw==", + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-minify/binding-android-arm-eabi": "0.117.0", + "@oxc-minify/binding-android-arm64": "0.117.0", + "@oxc-minify/binding-darwin-arm64": "0.117.0", + "@oxc-minify/binding-darwin-x64": "0.117.0", + "@oxc-minify/binding-freebsd-x64": "0.117.0", + "@oxc-minify/binding-linux-arm-gnueabihf": "0.117.0", + "@oxc-minify/binding-linux-arm-musleabihf": "0.117.0", + "@oxc-minify/binding-linux-arm64-gnu": "0.117.0", + "@oxc-minify/binding-linux-arm64-musl": "0.117.0", + "@oxc-minify/binding-linux-ppc64-gnu": "0.117.0", + "@oxc-minify/binding-linux-riscv64-gnu": "0.117.0", + "@oxc-minify/binding-linux-riscv64-musl": "0.117.0", + "@oxc-minify/binding-linux-s390x-gnu": "0.117.0", + "@oxc-minify/binding-linux-x64-gnu": "0.117.0", + "@oxc-minify/binding-linux-x64-musl": "0.117.0", + "@oxc-minify/binding-openharmony-arm64": "0.117.0", + "@oxc-minify/binding-wasm32-wasi": "0.117.0", + "@oxc-minify/binding-win32-arm64-msvc": "0.117.0", + "@oxc-minify/binding-win32-ia32-msvc": "0.117.0", + "@oxc-minify/binding-win32-x64-msvc": "0.117.0" + } + }, + "node_modules/oxc-parser": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.117.0.tgz", + "integrity": "sha512-l3cbgK5wUvWDVNWM/JFU77qDdGZK1wudnLsFcrRyNo/bL1CyU8pC25vDhMHikVY29lbK2InTWsX42RxVSutUdQ==", + "license": "MIT", + "dependencies": { + "@oxc-project/types": "^0.117.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-parser/binding-android-arm-eabi": "0.117.0", + "@oxc-parser/binding-android-arm64": "0.117.0", + "@oxc-parser/binding-darwin-arm64": "0.117.0", + "@oxc-parser/binding-darwin-x64": "0.117.0", + "@oxc-parser/binding-freebsd-x64": "0.117.0", + "@oxc-parser/binding-linux-arm-gnueabihf": "0.117.0", + "@oxc-parser/binding-linux-arm-musleabihf": "0.117.0", + "@oxc-parser/binding-linux-arm64-gnu": "0.117.0", + "@oxc-parser/binding-linux-arm64-musl": "0.117.0", + "@oxc-parser/binding-linux-ppc64-gnu": "0.117.0", + "@oxc-parser/binding-linux-riscv64-gnu": "0.117.0", + "@oxc-parser/binding-linux-riscv64-musl": "0.117.0", + "@oxc-parser/binding-linux-s390x-gnu": "0.117.0", + "@oxc-parser/binding-linux-x64-gnu": "0.117.0", + "@oxc-parser/binding-linux-x64-musl": "0.117.0", + "@oxc-parser/binding-openharmony-arm64": "0.117.0", + "@oxc-parser/binding-wasm32-wasi": "0.117.0", + "@oxc-parser/binding-win32-arm64-msvc": "0.117.0", + "@oxc-parser/binding-win32-ia32-msvc": "0.117.0", + "@oxc-parser/binding-win32-x64-msvc": "0.117.0" + } + }, + "node_modules/oxc-transform": { + "version": "0.117.0", + "resolved": "https://registry.npmjs.org/oxc-transform/-/oxc-transform-0.117.0.tgz", + "integrity": "sha512-u1Stl2uhDh9bFuOGjGXQIqx46IRUNMyHQkq59LayXNGS2flNv7RpZpRSWs5S5deuNP6jJZ12gtMBze+m4dOhmw==", + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-transform/binding-android-arm-eabi": "0.117.0", + "@oxc-transform/binding-android-arm64": "0.117.0", + "@oxc-transform/binding-darwin-arm64": "0.117.0", + "@oxc-transform/binding-darwin-x64": "0.117.0", + "@oxc-transform/binding-freebsd-x64": "0.117.0", + "@oxc-transform/binding-linux-arm-gnueabihf": "0.117.0", + "@oxc-transform/binding-linux-arm-musleabihf": "0.117.0", + "@oxc-transform/binding-linux-arm64-gnu": "0.117.0", + "@oxc-transform/binding-linux-arm64-musl": "0.117.0", + "@oxc-transform/binding-linux-ppc64-gnu": "0.117.0", + "@oxc-transform/binding-linux-riscv64-gnu": "0.117.0", + "@oxc-transform/binding-linux-riscv64-musl": "0.117.0", + "@oxc-transform/binding-linux-s390x-gnu": "0.117.0", + "@oxc-transform/binding-linux-x64-gnu": "0.117.0", + "@oxc-transform/binding-linux-x64-musl": "0.117.0", + "@oxc-transform/binding-openharmony-arm64": "0.117.0", + "@oxc-transform/binding-wasm32-wasi": "0.117.0", + "@oxc-transform/binding-win32-arm64-msvc": "0.117.0", + "@oxc-transform/binding-win32-ia32-msvc": "0.117.0", + "@oxc-transform/binding-win32-x64-msvc": "0.117.0" + } + }, + "node_modules/oxc-walker": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/oxc-walker/-/oxc-walker-0.7.0.tgz", + "integrity": "sha512-54B4KUhrzbzc4sKvKwVYm7E2PgeROpGba0/2nlNZMqfDyca+yOor5IMb4WLGBatGDT0nkzYdYuzylg7n3YfB7A==", + "license": "MIT", + "dependencies": { + "magic-regexp": "^0.10.0" + }, + "peerDependencies": { + "oxc-parser": ">=0.98.0" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-path": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz", + "integrity": "sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==", + "license": "MIT", + "dependencies": { + "protocols": "^2.0.0" + } + }, + "node_modules/parse-url": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-9.2.0.tgz", + "integrity": "sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==", + "license": "MIT", + "dependencies": { + "@types/parse-path": "^7.0.0", + "parse-path": "^7.0.0" + }, + "engines": { + "node": ">=14.13.0" + } + }, + "node_modules/parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", + "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, + "node_modules/path-expression-matcher": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz", + "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", + "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12 || ^20.9 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" + } + }, + "node_modules/postcss-colormin": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.8.tgz", + "integrity": "sha512-VX0JOZx0jECwGK0GZejIKvXIU+80S1zkjet31FVUYPZ4O+IPU3ZlntrPdPKT2HnKRMOkc0wy3m/v+c4UNta02g==", + "license": "MIT", + "dependencies": { + "@colordx/core": "^5.0.3", + "browserslist": "^4.28.2", + "caniuse-api": "^3.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-convert-values": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.10.tgz", + "integrity": "sha512-hVqVH3cDkPyxL4Q0xpCquRAXjJDZ6hbpjC+PNWn8ZgHmNX3RZxLtruC3U2LY9EuNe+tp4QkcsZxg0htokmjydg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-comments": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.6.tgz", + "integrity": "sha512-Sq+Fzj1Eg5/CPf1ERb0wS1Im5cvE2gDXCE+si4HCn1sf+jpQZxDI4DXEp8t77B/ImzDceWE2ebJQFXdqZ6GRJw==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", + "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-empty": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", + "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", + "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", + "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.5" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-merge-rules": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.9.tgz", + "integrity": "sha512-XKMXkHAegyLeIymVylg1Ro4NNHITInHPvmvybsIUximYfsg5fRw2b5TeqLTQwwg5cXEDVa556AAxvMve1MJuJA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.1", + "postcss-selector-parser": "^7.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", + "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.3.tgz", + "integrity": "sha512-2znRFq3Pg+Zo0ttzQxO7qIJdY2er1TOZbclHW2qMqBcHMmz+i6nn3roAyG3kuEDQTzbzd3gn24TAIifEfth1PQ==", + "license": "MIT", + "dependencies": { + "@colordx/core": "^5.0.3", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-params": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.7.tgz", + "integrity": "sha512-OPmvW/9sjPEPQYnS2Sh6jvMW54wqk1IjjEMB8k/7V8SUIie71yMy3HQ9+w/ZHoL1YvgDGBQ/mCxP3n0Y/RxgqA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.6.tgz", + "integrity": "sha512-lIbC0jy3AAwDxEgciZlBullDiMBeBCT+fz5G8RcA9MWqh/hfUkpOI3vNDUNEZHgokaoiv0juB9Y8fGcON7rU/A==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "postcss-selector-parser": "^7.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", + "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", + "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", + "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", + "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-string": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", + "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", + "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.7.tgz", + "integrity": "sha512-Kfm0mC3gTnOC+SsLgxQqNEZStRxJgBaYrMpBe9fDVB0/MjC1G++FAeDW2YxYc5Mbvav12/7mOBSOTW7HK9Knwg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-url": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", + "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", + "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-ordered-values": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", + "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.7.tgz", + "integrity": "sha512-evetDQPqkgrzHoP8g3HjE3KgH0j2W0je2Vt1pfTaO2KvmjulStxGC2IGeI2y0pdLi6ryEGc4nD08zpDRP9ge8w==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", + "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.1.tgz", + "integrity": "sha512-zU9H9oEDrUFKa0JB7w+IYL7Qs9ey1mZyjhbf0KLxwJDdDRtoPvCmaEfknzqfHj44QS9VD6c5sJnBAVYTLRg/Sg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^4.0.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "license": "CC0-1.0" + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", + "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.5.tgz", + "integrity": "sha512-3QoYmEt4qg/rUWDn6Tc8+ZVPmbp4G1hXDtCNWDx0st8SjtCbRcxRXDDM1QrEiXGG3A45zscSJFb4QH90LViyxg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild-install/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" + }, + "node_modules/prebuild-install/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prebuild-install/node_modules/tar-fs": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/prebuild-install/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pretty-bytes": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-7.1.0.tgz", + "integrity": "sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/protocols": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz", + "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/rc9": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-3.0.1.tgz", + "integrity": "sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==", + "license": "MIT", + "dependencies": { + "defu": "^6.1.6", + "destr": "^2.0.5" + } + }, + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "license": "MIT", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/rehype-external-links": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", + "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-is-element": "^3.0.0", + "is-absolute-url": "^4.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-minify-whitespace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-6.0.2.tgz", + "integrity": "sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-minify-whitespace": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-remark": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/rehype-remark/-/rehype-remark-10.0.1.tgz", + "integrity": "sha512-EmDndlb5NVwXGfUa4c9GPK+lXeItTilLhE6ADSaQuHr4JUlKw9MidzGzx4HpqZrNCt6vnHmEifXQiiA+CEnjYQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "hast-util-to-mdast": "^10.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-slug": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", + "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "github-slugger": "^2.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-sort-attribute-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rehype-sort-attribute-values/-/rehype-sort-attribute-values-5.0.1.tgz", + "integrity": "sha512-lU3ABJO5frbUgV132YS6SL7EISf//irIm9KFMaeu5ixHfgWf6jhe+09Uf/Ef8pOYUJWKOaQJDRJGCXs6cNsdsQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-sort-attributes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rehype-sort-attributes/-/rehype-sort-attributes-5.0.1.tgz", + "integrity": "sha512-Bxo+AKUIELcnnAZwJDt5zUDDRpt4uzhfz9d0PVGhcxYWsbFj5Cv35xuWxu5r1LeYNFNhgGqsr9Q2QiIOM/Qctg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-emoji": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-5.0.2.tgz", + "integrity": "sha512-IyIqGELcyK5AVdLFafoiNww+Eaw/F+rGrNSXoKucjo95uL267zrddgxGM83GN1wFIb68pyDuAsY3m5t2Cav1pQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.4", + "emoticon": "^4.0.1", + "mdast-util-find-and-replace": "^3.0.1", + "node-emoji": "^2.1.3", + "unified": "^11.0.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdc": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/remark-mdc/-/remark-mdc-3.10.0.tgz", + "integrity": "sha512-gJhrSs4bGyqr7eSuLoaLlpmiDZrJ9fP/8gTA/w1CnKnW/mfxc9VKM+ndzpOxHQnpAU4tjD8QqF6SMLiOvIVTYA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.4", + "@types/unist": "^3.0.3", + "flat": "^6.0.1", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-to-markdown": "^2.1.2", + "micromark": "^4.0.2", + "micromark-core-commonmark": "^2.0.3", + "micromark-factory-space": "^2.0.1", + "micromark-factory-whitespace": "^2.0.1", + "micromark-util-character": "^2.1.1", + "micromark-util-types": "^2.0.2", + "parse-entities": "^4.0.2", + "scule": "^1.3.0", + "stringify-entities": "^4.0.4", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.2", + "yaml": "^2.8.2" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz", + "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.1", + "@rollup/rollup-android-arm64": "4.60.1", + "@rollup/rollup-darwin-arm64": "4.60.1", + "@rollup/rollup-darwin-x64": "4.60.1", + "@rollup/rollup-freebsd-arm64": "4.60.1", + "@rollup/rollup-freebsd-x64": "4.60.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", + "@rollup/rollup-linux-arm-musleabihf": "4.60.1", + "@rollup/rollup-linux-arm64-gnu": "4.60.1", + "@rollup/rollup-linux-arm64-musl": "4.60.1", + "@rollup/rollup-linux-loong64-gnu": "4.60.1", + "@rollup/rollup-linux-loong64-musl": "4.60.1", + "@rollup/rollup-linux-ppc64-gnu": "4.60.1", + "@rollup/rollup-linux-ppc64-musl": "4.60.1", + "@rollup/rollup-linux-riscv64-gnu": "4.60.1", + "@rollup/rollup-linux-riscv64-musl": "4.60.1", + "@rollup/rollup-linux-s390x-gnu": "4.60.1", + "@rollup/rollup-linux-x64-gnu": "4.60.1", + "@rollup/rollup-linux-x64-musl": "4.60.1", + "@rollup/rollup-openbsd-x64": "4.60.1", + "@rollup/rollup-openharmony-arm64": "4.60.1", + "@rollup/rollup-win32-arm64-msvc": "4.60.1", + "@rollup/rollup-win32-ia32-msvc": "4.60.1", + "@rollup/rollup-win32-x64-gnu": "4.60.1", + "@rollup/rollup-win32-x64-msvc": "4.60.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-visualizer": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-7.0.1.tgz", + "integrity": "sha512-UJUT4+1Ho4OcWmPYU3sYXgUqI8B8Ayfe06MX7y0qCJ1K8aGoKtR/NDd/2nZqM7ADkrzny+I99Ul7GgyoiVNAgg==", + "license": "MIT", + "dependencies": { + "open": "^11.0.0", + "picomatch": "^4.0.2", + "source-map": "^0.7.4", + "yargs": "^18.0.0" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=22" + }, + "peerDependencies": { + "rolldown": "1.x || ^1.0.0-beta || ^1.0.0-rc", + "rollup": "2.x || 3.x || 4.x" + }, + "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/rou3": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/rou3/-/rou3-0.8.1.tgz", + "integrity": "sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA==", + "license": "MIT" + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serialize-javascript": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz", + "integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/seroval": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.5.2.tgz", + "integrity": "sha512-xcRN39BdsnO9Tf+VzsE7b3JyTJASItIV1FVFewJKCFcW4s4haIKS3e6vj8PGB9qBwC7tnuOywQMdv5N4qkzi7Q==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/serve-placeholder": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/serve-placeholder/-/serve-placeholder-2.0.2.tgz", + "integrity": "sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==", + "license": "MIT", + "dependencies": { + "defu": "^6.1.4" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" + }, + "bin": { + "sha.js": "bin.js" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sharp": { + "version": "0.32.6", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", + "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "node-addon-api": "^6.1.0", + "prebuild-install": "^7.1.1", + "semver": "^7.5.4", + "simple-get": "^4.0.1", + "tar-fs": "^3.0.4", + "tunnel-agent": "^0.6.0" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "license": "MIT", + "optional": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shiki": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.0.2.tgz", + "integrity": "sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "4.0.2", + "@shikijs/engine-javascript": "4.0.2", + "@shikijs/engine-oniguruma": "4.0.2", + "@shikijs/langs": "4.0.2", + "@shikijs/themes": "4.0.2", + "@shikijs/types": "4.0.2", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-git": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.36.0.tgz", + "integrity": "sha512-cGQjLjK8bxJw4QuYT7gxHw3/IouVESbhahSsHrX97MzCL1gu2u7oy38W6L2ZIGECEfIBG4BabsWDPjBxJENv9Q==", + "license": "MIT", + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "@simple-git/args-pathspec": "^1.0.3", + "@simple-git/argv-parser": "^1.1.0", + "debug": "^4.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/steveukx/git-js?sponsor=1" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/site-config-stack": { + "version": "3.2.21", + "resolved": "https://registry.npmjs.org/site-config-stack/-/site-config-stack-3.2.21.tgz", + "integrity": "sha512-Ry/kCqXV9QTbaXHk1PNlVAlwWojgaKzRb0hxxnmwpg24/QoitME2U1iBZqQUAMsf7gzDOqczvNrqmeyPUzDEXw==", + "license": "MIT", + "dependencies": { + "ufo": "^1.6.3" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + }, + "peerDependencies": { + "vue": "^3" + } + }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slugify": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.9.tgz", + "integrity": "sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/smob": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.1.tgz", + "integrity": "sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/socket.io-client": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.3.tgz", + "integrity": "sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1", + "engine.io-client": "~6.6.1", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.6.tgz", + "integrity": "sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/srvx": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/srvx/-/srvx-0.11.15.tgz", + "integrity": "sha512-iXsux0UcOjdvs0LCMa2Ws3WwcDUozA3JN3BquNXkaFPP7TpRqgunKdEgoZ/uwb1J6xaYHfxtz9Twlh6yzwM6Tg==", + "license": "MIT", + "bin": { + "srvx": "bin/srvx.mjs" + }, + "engines": { + "node": ">=20.16.0" + } + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", + "license": "MIT" + }, + "node_modules/streamx": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", + "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-literal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "license": "MIT" + }, + "node_modules/strnum": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.3.tgz", + "integrity": "sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, + "node_modules/structured-clone-es": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/structured-clone-es/-/structured-clone-es-2.0.0.tgz", + "integrity": "sha512-5UuAHmBLXYPCl22xWJrFuGmIhBKQzxISPVz6E7nmTmTcAOpUzlbjKJsRrCE4vADmMQ0dzeCnlWn9XufnAGf76Q==", + "license": "ISC" + }, + "node_modules/stylehacks": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.9.tgz", + "integrity": "sha512-dgipCLBa16sZDoQ8BmXdRwV4SmFAxZ4KtbMhV0buow62M/2l6Jq6AkVsKUY/QFr8+VjgzXO5UVHx1f+vvY9DXw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "postcss-selector-parser": "^7.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.3.tgz", + "integrity": "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==", + "license": "MIT", + "optional": true, + "dependencies": { + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/swiper": { + "version": "11.2.10", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.10.tgz", + "integrity": "sha512-RMeVUUjTQH+6N3ckimK93oxz6Sn5la4aDlgPzB+rBrG/smPdCTicXyhxa+woIpopz+jewEloiEE3lKo1h9w2YQ==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "license": "MIT", + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tar": { + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz", + "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar-fs": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz", + "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==", + "license": "MIT", + "optional": true, + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz", + "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "bare-fs": "^4.5.5", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "license": "MIT", + "dependencies": { + "streamx": "^2.12.5" + } + }, + "node_modules/terser": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", + "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/text-decoder": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", + "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/three": { + "version": "0.179.1", + "resolved": "https://registry.npmjs.org/three/-/three-0.179.1.tgz", + "integrity": "sha512-5y/elSIQbrvKOISxpwXCR4sQqHtGiOI+MKLc3SsBdDXA2hz3Mdp3X59aUp8DyybMa34aeBwbFTpdoLJaUDEWSw==", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tinyclip": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/tinyclip/-/tinyclip-0.1.12.tgz", + "integrity": "sha512-Ae3OVUqifDw0wBriIBS7yVaW44Dp6eSHQcyq4Igc7eN2TJH/2YsicswaW+J/OuMvhpDPOKEgpAZCjkb4hpoyeA==", + "license": "MIT", + "engines": { + "node": "^16.14.0 || >= 17.3.0" + } + }, + "node_modules/tinyexec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz", + "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trim-trailing-lines": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-2.1.0.tgz", + "integrity": "sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "optional": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-fest": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.5.0.tgz", + "integrity": "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==", + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-level-regexp": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/type-level-regexp/-/type-level-regexp-0.1.17.tgz", + "integrity": "sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==", + "license": "MIT" + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", + "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", + "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==", + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, + "node_modules/unctx": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/unctx/-/unctx-2.5.0.tgz", + "integrity": "sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==", + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21", + "unplugin": "^2.3.11" + } + }, + "node_modules/unctx/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/unctx/node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unenv": { + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz", + "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==", + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3" + } + }, + "node_modules/unhead": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-2.1.13.tgz", + "integrity": "sha512-jO9M1sI6b2h/1KpIu4Jeu+ptumLmUKboRRLxys5pYHFeT+lqTzfNHbYUX9bxVDhC1FBszAGuWcUVlmvIPsah8Q==", + "license": "MIT", + "dependencies": { + "hookable": "^6.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/unhead/node_modules/hookable": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", + "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", + "license": "MIT" + }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicorn-magic": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz", + "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unimport": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unimport/-/unimport-6.1.0.tgz", + "integrity": "sha512-ocgNKyiqj7Hw7oHt7A7D3za3fq28eShe1EloL6hsoQgn7CF51Y4CqFT9ISG3rEy0JpA8CCz/sY5h5OovOn62VQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "local-pkg": "^1.1.2", + "magic-string": "^0.30.21", + "mlly": "^1.8.2", + "pathe": "^2.0.3", + "picomatch": "^4.0.4", + "pkg-types": "^2.3.0", + "scule": "^1.3.0", + "strip-literal": "^3.1.0", + "tinyglobby": "^0.2.16", + "unplugin": "^3.0.0", + "unplugin-utils": "^0.3.1" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unimport/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/unist-builder": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-4.0.0.tgz", + "integrity": "sha512-wmRFnH+BLpZnTKpc5L7O67Kac89s9HMrtELpnNaE6TAobq5DTZZs5YaTQfAZBA9bFPECx2uVAPO31c+GVug8mg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unplugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.0.0.tgz", + "integrity": "sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/unplugin-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz", + "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==", + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/unrouting": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/unrouting/-/unrouting-0.1.7.tgz", + "integrity": "sha512-+0hfD+CVWtD636rc5Fn9VEjjTEDhdqgMpbwAuVoUmydSHDaMNiFW93SJG4LV++RoGSEAyvQN5uABAscYpDphpQ==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^5.0.0", + "ufo": "^1.6.3" + } + }, + "node_modules/unstorage": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz", + "integrity": "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^5.0.0", + "destr": "^2.0.5", + "h3": "^1.15.10", + "lru-cache": "^11.2.7", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.3" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6 || ^7 || ^8", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1 || ^2 || ^3", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/unstorage/node_modules/lru-cache": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/untun": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/untun/-/untun-0.1.3.tgz", + "integrity": "sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==", + "license": "MIT", + "dependencies": { + "citty": "^0.1.5", + "consola": "^3.2.3", + "pathe": "^1.1.1" + }, + "bin": { + "untun": "bin/untun.mjs" + } + }, + "node_modules/untun/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/untyped": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz", + "integrity": "sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==", + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "defu": "^6.1.4", + "jiti": "^2.4.2", + "knitwork": "^1.2.0", + "scule": "^1.3.0" + }, + "bin": { + "untyped": "dist/cli.mjs" + } + }, + "node_modules/unwasm": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/unwasm/-/unwasm-0.5.3.tgz", + "integrity": "sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw==", + "license": "MIT", + "dependencies": { + "exsolve": "^1.0.8", + "knitwork": "^1.3.0", + "magic-string": "^0.30.21", + "mlly": "^1.8.0", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uqr": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.3.tgz", + "integrity": "sha512-0rjE8iEJe4YmT9TOhwsZtqCMRLc5DXZUI2UEYUUg63ikBkqqE5EYWaI0etFe/5KUcmcYwLih2RND1kq+hrUJXA==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-dev-rpc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vite-dev-rpc/-/vite-dev-rpc-1.1.0.tgz", + "integrity": "sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==", + "license": "MIT", + "dependencies": { + "birpc": "^2.4.0", + "vite-hot-client": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0" + } + }, + "node_modules/vite-dev-rpc/node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/vite-hot-client": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-2.1.0.tgz", + "integrity": "sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" + } + }, + "node_modules/vite-node": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-5.3.0.tgz", + "integrity": "sha512-8f20COPYJujc3OKPX6OuyBy3ZIv2det4eRRU4GY1y2MjbeGSUmPjedxg1b72KnTagCofwvZ65ThzjxDW2AtQFQ==", + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "es-module-lexer": "^2.0.0", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "vite": "^7.3.1" + }, + "bin": { + "vite-node": "dist/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://opencollective.com/antfu" + } + }, + "node_modules/vite-plugin-checker": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.12.0.tgz", + "integrity": "sha512-CmdZdDOGss7kdQwv73UyVgLPv0FVYe5czAgnmRX2oKljgEvSrODGuClaV3PDR2+3ou7N/OKGauDDBjy2MB07Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "chokidar": "^4.0.3", + "npm-run-path": "^6.0.0", + "picocolors": "^1.1.1", + "picomatch": "^4.0.3", + "tiny-invariant": "^1.3.3", + "tinyglobby": "^0.2.15", + "vscode-uri": "^3.1.0" + }, + "engines": { + "node": ">=16.11" + }, + "peerDependencies": { + "@biomejs/biome": ">=1.7", + "eslint": ">=9.39.1", + "meow": "^13.2.0", + "optionator": "^0.9.4", + "oxlint": ">=1", + "stylelint": ">=16", + "typescript": "*", + "vite": ">=5.4.21", + "vls": "*", + "vti": "*", + "vue-tsc": "~2.2.10 || ^3.0.0" + }, + "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, + "eslint": { + "optional": true + }, + "meow": { + "optional": true + }, + "optionator": { + "optional": true + }, + "oxlint": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vls": { + "optional": true + }, + "vti": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/vite-plugin-checker/node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-checker/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-checker/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/vite-plugin-checker/node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-11.3.3.tgz", + "integrity": "sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==", + "license": "MIT", + "dependencies": { + "ansis": "^4.1.0", + "debug": "^4.4.1", + "error-stack-parser-es": "^1.0.5", + "ohash": "^2.0.11", + "open": "^10.2.0", + "perfect-debounce": "^2.0.0", + "sirv": "^3.0.1", + "unplugin-utils": "^0.3.0", + "vite-dev-rpc": "^1.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-inspect/node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-inspect/node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-vue-tracer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-tracer/-/vite-plugin-vue-tracer-1.3.0.tgz", + "integrity": "sha512-Cgfce6VikzOw5MUJTpeg50s5rRjzU1Vr61ZjuHunVVHLjZZ5AUlgyExHthZ3r59vtoz9W2rDt23FYG81avYBKw==", + "license": "MIT", + "dependencies": { + "estree-walker": "^3.0.3", + "exsolve": "^1.0.8", + "magic-string": "^0.30.21", + "pathe": "^2.0.3", + "source-map-js": "^1.2.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0", + "vue": "^3.5.0" + } + }, + "node_modules/vite-plugin-vue-tracer/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.32.tgz", + "integrity": "sha512-vM4z4Q9tTafVfMAK7IVzmxg34rSzTFMyIe0UUEijUCkn9+23lj0WRfA83dg7eQZIUlgOSGrkViIaCfqSAUXsMw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.32", + "@vue/compiler-sfc": "3.5.32", + "@vue/runtime-dom": "3.5.32", + "@vue/server-renderer": "3.5.32", + "@vue/shared": "3.5.32" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-bundle-renderer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vue-bundle-renderer/-/vue-bundle-renderer-2.2.0.tgz", + "integrity": "sha512-sz/0WEdYH1KfaOm0XaBmRZOWgYTEvUDt6yPYaUzl4E52qzgWLlknaPPTTZmp6benaPTlQAI/hN1x3tAzZygycg==", + "license": "MIT", + "dependencies": { + "ufo": "^1.6.1" + } + }, + "node_modules/vue-component-meta": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/vue-component-meta/-/vue-component-meta-3.2.6.tgz", + "integrity": "sha512-Tlo84lGrHrsE5nJ2lAQDiN+hP9nagKxR3E7kXEidAyYrQzBixaDD/6jwLgDYlmIoyjGCn3BLEC7gGNGObU2Y7w==", + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.28", + "@vue/language-core": "3.2.6", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-devtools-stub": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/vue-devtools-stub/-/vue-devtools-stub-0.1.0.tgz", + "integrity": "sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==", + "license": "MIT" + }, + "node_modules/vue-router": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.0.4.tgz", + "integrity": "sha512-lCqDLCI2+fKVRl2OzXuzdSWmxXFLQRxQbmHugnRpTMyYiT+hNaycV0faqG5FBHDXoYrZ6MQcX87BvbY8mQ20Bg==", + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.28.6", + "@vue-macros/common": "^3.1.1", + "@vue/devtools-api": "^8.0.6", + "ast-walker-scope": "^0.8.3", + "chokidar": "^5.0.0", + "json5": "^2.2.3", + "local-pkg": "^1.1.2", + "magic-string": "^0.30.21", + "mlly": "^1.8.0", + "muggle-string": "^0.4.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "scule": "^1.3.0", + "tinyglobby": "^0.2.15", + "unplugin": "^3.0.0", + "unplugin-utils": "^0.3.1", + "yaml": "^2.8.2" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@pinia/colada": ">=0.21.2", + "@vue/compiler-sfc": "^3.5.17", + "pinia": "^3.0.4", + "vue": "^3.5.0" + }, + "peerDependenciesMeta": { + "@pinia/colada": { + "optional": true + }, + "@vue/compiler-sfc": { + "optional": true + }, + "pinia": { + "optional": true + } + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", + "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xss": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz", + "integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==", + "license": "MIT", + "optional": true, + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xss/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT", + "optional": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz", + "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==", + "license": "MIT", + "dependencies": { + "cliui": "^9.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "string-width": "^7.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^22.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yargs-parser": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/youch": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.1.tgz", + "integrity": "sha512-mxW3qiSnl+GRxXsaUMzv2Mbada1Y8CDltET9UxejDQe6DBYlSekghl5U5K0ReAikcHDi0G1vKZEmmo/NWAGKLA==", + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.6", + "@poppinss/dumper": "^0.7.0", + "@speed-highlight/core": "^1.2.14", + "cookie-es": "^3.0.1", + "youch-core": "^0.3.3" + } + }, + "node_modules/youch-core": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz", + "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==", + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.2", + "error-stack-parser-es": "^1.0.5" + } + }, + "node_modules/youch/node_modules/cookie-es": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-3.1.1.tgz", + "integrity": "sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==", + "license": "MIT" + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", + "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.25.28 || ^4" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/nuxt-web/package.json b/nuxt-web/package.json new file mode 100644 index 0000000..3d325ed --- /dev/null +++ b/nuxt-web/package.json @@ -0,0 +1,27 @@ +{ + "name": "nuxt-web", + "type": "module", + "private": true, + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview", + "postinstall": "nuxt prepare" + }, + "dependencies": { + "@fancyapps/ui": "^6.1.0", + "@nuxt/content": "^3.8.1", + "@nuxt/image": "^1.11.0", + "@nuxtjs/robots": "^5.5.6", + "@nuxtjs/sitemap": "^7.4.7", + "@vueuse/nuxt": "^13.6.0", + "better-sqlite3": "^12.9.0", + "nuxt": "^4.4.2", + "swiper": "^11.2.10", + "three": "^0.179.1", + "typescript": "^5.9.2", + "vue": "^3.5.32", + "vue-router": "^5.0.4" + } +} diff --git a/nuxt-web/pages/cases/[slug].vue b/nuxt-web/pages/cases/[slug].vue new file mode 100644 index 0000000..a06b6ca --- /dev/null +++ b/nuxt-web/pages/cases/[slug].vue @@ -0,0 +1,46 @@ + + + diff --git a/nuxt-web/pages/cases/index.vue b/nuxt-web/pages/cases/index.vue new file mode 100644 index 0000000..c4de9c0 --- /dev/null +++ b/nuxt-web/pages/cases/index.vue @@ -0,0 +1,132 @@ + + + diff --git a/nuxt-web/pages/company/culture.vue b/nuxt-web/pages/company/culture.vue new file mode 100644 index 0000000..d60d36d --- /dev/null +++ b/nuxt-web/pages/company/culture.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/nuxt-web/pages/company/index.vue b/nuxt-web/pages/company/index.vue new file mode 100644 index 0000000..fff8c4f --- /dev/null +++ b/nuxt-web/pages/company/index.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/nuxt-web/pages/company/joinus.vue b/nuxt-web/pages/company/joinus.vue new file mode 100644 index 0000000..b9d2fdc --- /dev/null +++ b/nuxt-web/pages/company/joinus.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/nuxt-web/pages/company/tech.vue b/nuxt-web/pages/company/tech.vue new file mode 100644 index 0000000..59f7c73 --- /dev/null +++ b/nuxt-web/pages/company/tech.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/nuxt-web/pages/contact.vue b/nuxt-web/pages/contact.vue new file mode 100644 index 0000000..99cdb73 --- /dev/null +++ b/nuxt-web/pages/contact.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/nuxt-web/pages/index.vue b/nuxt-web/pages/index.vue new file mode 100644 index 0000000..43a2f6a --- /dev/null +++ b/nuxt-web/pages/index.vue @@ -0,0 +1,433 @@ + + + + + diff --git a/nuxt-web/pages/news/[slug].vue b/nuxt-web/pages/news/[slug].vue new file mode 100644 index 0000000..cc0202d --- /dev/null +++ b/nuxt-web/pages/news/[slug].vue @@ -0,0 +1,75 @@ + + + + + diff --git a/nuxt-web/pages/news/index.vue b/nuxt-web/pages/news/index.vue new file mode 100644 index 0000000..cdfa990 --- /dev/null +++ b/nuxt-web/pages/news/index.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/nuxt-web/pages/products/ecommerce/bctp.vue b/nuxt-web/pages/products/ecommerce/bctp.vue new file mode 100644 index 0000000..7e337ac --- /dev/null +++ b/nuxt-web/pages/products/ecommerce/bctp.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/ecommerce/freight-booking.vue b/nuxt-web/pages/products/ecommerce/freight-booking.vue new file mode 100644 index 0000000..40cd2f3 --- /dev/null +++ b/nuxt-web/pages/products/ecommerce/freight-booking.vue @@ -0,0 +1,28 @@ + + + diff --git a/nuxt-web/pages/products/ecommerce/index.vue b/nuxt-web/pages/products/ecommerce/index.vue new file mode 100644 index 0000000..fef3965 --- /dev/null +++ b/nuxt-web/pages/products/ecommerce/index.vue @@ -0,0 +1,69 @@ + + + diff --git a/nuxt-web/pages/products/ecommerce/net-cargo.vue b/nuxt-web/pages/products/ecommerce/net-cargo.vue new file mode 100644 index 0000000..59a5936 --- /dev/null +++ b/nuxt-web/pages/products/ecommerce/net-cargo.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/ecommerce/obh.vue b/nuxt-web/pages/products/ecommerce/obh.vue new file mode 100644 index 0000000..21d9f04 --- /dev/null +++ b/nuxt-web/pages/products/ecommerce/obh.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/logistics/cargo-agent.vue b/nuxt-web/pages/products/logistics/cargo-agent.vue new file mode 100644 index 0000000..da90172 --- /dev/null +++ b/nuxt-web/pages/products/logistics/cargo-agent.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/logistics/index.vue b/nuxt-web/pages/products/logistics/index.vue new file mode 100644 index 0000000..c933c9d --- /dev/null +++ b/nuxt-web/pages/products/logistics/index.vue @@ -0,0 +1,69 @@ + + + diff --git a/nuxt-web/pages/products/logistics/platform.vue b/nuxt-web/pages/products/logistics/platform.vue new file mode 100644 index 0000000..e41a14e --- /dev/null +++ b/nuxt-web/pages/products/logistics/platform.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/logistics/ship-agent.vue b/nuxt-web/pages/products/logistics/ship-agent.vue new file mode 100644 index 0000000..6dc9440 --- /dev/null +++ b/nuxt-web/pages/products/logistics/ship-agent.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/logistics/vehicle-transport.vue b/nuxt-web/pages/products/logistics/vehicle-transport.vue new file mode 100644 index 0000000..bb0bafe --- /dev/null +++ b/nuxt-web/pages/products/logistics/vehicle-transport.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/logistics/warehouse.vue b/nuxt-web/pages/products/logistics/warehouse.vue new file mode 100644 index 0000000..050f019 --- /dev/null +++ b/nuxt-web/pages/products/logistics/warehouse.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/port/cdi-bulk.vue b/nuxt-web/pages/products/port/cdi-bulk.vue new file mode 100644 index 0000000..fea3680 --- /dev/null +++ b/nuxt-web/pages/products/port/cdi-bulk.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/port/cdi-container.vue b/nuxt-web/pages/products/port/cdi-container.vue new file mode 100644 index 0000000..3075dd0 --- /dev/null +++ b/nuxt-web/pages/products/port/cdi-container.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/port/cdi.vue b/nuxt-web/pages/products/port/cdi.vue new file mode 100644 index 0000000..08726e9 --- /dev/null +++ b/nuxt-web/pages/products/port/cdi.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/port/cloud-yard.vue b/nuxt-web/pages/products/port/cloud-yard.vue new file mode 100644 index 0000000..7bb9828 --- /dev/null +++ b/nuxt-web/pages/products/port/cloud-yard.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/port/index.vue b/nuxt-web/pages/products/port/index.vue new file mode 100644 index 0000000..395b0bf --- /dev/null +++ b/nuxt-web/pages/products/port/index.vue @@ -0,0 +1,69 @@ + + + diff --git a/nuxt-web/pages/products/shipping/boat.vue b/nuxt-web/pages/products/shipping/boat.vue new file mode 100644 index 0000000..7c1366b --- /dev/null +++ b/nuxt-web/pages/products/shipping/boat.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/shipping/company.vue b/nuxt-web/pages/products/shipping/company.vue new file mode 100644 index 0000000..148543a --- /dev/null +++ b/nuxt-web/pages/products/shipping/company.vue @@ -0,0 +1,15 @@ + + + diff --git a/nuxt-web/pages/products/shipping/index.vue b/nuxt-web/pages/products/shipping/index.vue new file mode 100644 index 0000000..6e580d4 --- /dev/null +++ b/nuxt-web/pages/products/shipping/index.vue @@ -0,0 +1,69 @@ + + + diff --git a/nuxt-web/pages/services/changzhan.vue b/nuxt-web/pages/services/changzhan.vue new file mode 100644 index 0000000..78fa73d --- /dev/null +++ b/nuxt-web/pages/services/changzhan.vue @@ -0,0 +1,9 @@ + + + diff --git a/nuxt-web/pages/services/chuandai.vue b/nuxt-web/pages/services/chuandai.vue new file mode 100644 index 0000000..b279c5c --- /dev/null +++ b/nuxt-web/pages/services/chuandai.vue @@ -0,0 +1,9 @@ + + + diff --git a/nuxt-web/pages/services/dianshang.vue b/nuxt-web/pages/services/dianshang.vue new file mode 100644 index 0000000..87c47d8 --- /dev/null +++ b/nuxt-web/pages/services/dianshang.vue @@ -0,0 +1,9 @@ + + + diff --git a/nuxt-web/pages/services/ilog.vue b/nuxt-web/pages/services/ilog.vue new file mode 100644 index 0000000..7de7e67 --- /dev/null +++ b/nuxt-web/pages/services/ilog.vue @@ -0,0 +1,9 @@ + + + diff --git a/nuxt-web/pages/services/jining.vue b/nuxt-web/pages/services/jining.vue new file mode 100644 index 0000000..d55778e --- /dev/null +++ b/nuxt-web/pages/services/jining.vue @@ -0,0 +1,9 @@ + + + diff --git a/nuxt-web/pages/services/yunmatou.vue b/nuxt-web/pages/services/yunmatou.vue new file mode 100644 index 0000000..53db2e5 --- /dev/null +++ b/nuxt-web/pages/services/yunmatou.vue @@ -0,0 +1,9 @@ + + + diff --git a/nuxt-web/pages/solutions/inland-river-shipping.vue b/nuxt-web/pages/solutions/inland-river-shipping.vue new file mode 100644 index 0000000..6642353 --- /dev/null +++ b/nuxt-web/pages/solutions/inland-river-shipping.vue @@ -0,0 +1,9 @@ + + + diff --git a/nuxt-web/pages/solutions/logistics-chain.vue b/nuxt-web/pages/solutions/logistics-chain.vue new file mode 100644 index 0000000..bc303f9 --- /dev/null +++ b/nuxt-web/pages/solutions/logistics-chain.vue @@ -0,0 +1,9 @@ + + + diff --git a/nuxt-web/pages/solutions/port-supply-chain.vue b/nuxt-web/pages/solutions/port-supply-chain.vue new file mode 100644 index 0000000..4a52cb1 --- /dev/null +++ b/nuxt-web/pages/solutions/port-supply-chain.vue @@ -0,0 +1,9 @@ + + + diff --git a/nuxt-web/pages/solutions/supply-chain.vue b/nuxt-web/pages/solutions/supply-chain.vue new file mode 100644 index 0000000..734c460 --- /dev/null +++ b/nuxt-web/pages/solutions/supply-chain.vue @@ -0,0 +1,9 @@ + + + diff --git a/nuxt-web/public/_robots.txt b/nuxt-web/public/_robots.txt new file mode 100644 index 0000000..0ad279c --- /dev/null +++ b/nuxt-web/public/_robots.txt @@ -0,0 +1,2 @@ +User-Agent: * +Disallow: diff --git a/nuxt-web/public/favicon.ico b/nuxt-web/public/favicon.ico new file mode 100644 index 0000000..18993ad Binary files /dev/null and b/nuxt-web/public/favicon.ico differ diff --git a/nuxt-web/public/fonts/Flaticon.woff b/nuxt-web/public/fonts/Flaticon.woff new file mode 100644 index 0000000..902dc5d Binary files /dev/null and b/nuxt-web/public/fonts/Flaticon.woff differ diff --git a/nuxt-web/public/fonts/Flaticon.woff.woff2 b/nuxt-web/public/fonts/Flaticon.woff.woff2 new file mode 100644 index 0000000..13bf518 Binary files /dev/null and b/nuxt-web/public/fonts/Flaticon.woff.woff2 differ diff --git a/nuxt-web/public/fonts/Flaticon.woff2 b/nuxt-web/public/fonts/Flaticon.woff2 new file mode 100644 index 0000000..cd852f0 Binary files /dev/null and b/nuxt-web/public/fonts/Flaticon.woff2 differ diff --git a/nuxt-web/public/fonts/cangchu.woff2 b/nuxt-web/public/fonts/cangchu.woff2 new file mode 100644 index 0000000..13bf518 Binary files /dev/null and b/nuxt-web/public/fonts/cangchu.woff2 differ diff --git a/nuxt-web/public/fonts/dingcang.woff2 b/nuxt-web/public/fonts/dingcang.woff2 new file mode 100644 index 0000000..13bf518 Binary files /dev/null and b/nuxt-web/public/fonts/dingcang.woff2 differ diff --git a/nuxt-web/public/fonts/jizhuangxiang.woff2 b/nuxt-web/public/fonts/jizhuangxiang.woff2 new file mode 100644 index 0000000..13bf518 Binary files /dev/null and b/nuxt-web/public/fonts/jizhuangxiang.woff2 differ diff --git a/nuxt-web/public/fonts/matou.woff2 b/nuxt-web/public/fonts/matou.woff2 new file mode 100644 index 0000000..13bf518 Binary files /dev/null and b/nuxt-web/public/fonts/matou.woff2 differ diff --git a/nuxt-web/public/fonts/themify.woff b/nuxt-web/public/fonts/themify.woff new file mode 100644 index 0000000..847ebd1 Binary files /dev/null and b/nuxt-web/public/fonts/themify.woff differ diff --git a/nuxt-web/public/images/640.webp b/nuxt-web/public/images/640.webp new file mode 100644 index 0000000..ace22ba Binary files /dev/null and b/nuxt-web/public/images/640.webp differ diff --git a/nuxt-web/public/images/SHUTTERSTOCK_730919290_Huge.webp b/nuxt-web/public/images/SHUTTERSTOCK_730919290_Huge.webp new file mode 100644 index 0000000..280847f Binary files /dev/null and b/nuxt-web/public/images/SHUTTERSTOCK_730919290_Huge.webp differ diff --git a/nuxt-web/public/images/a19.png b/nuxt-web/public/images/a19.png new file mode 100644 index 0000000..7ff06a7 Binary files /dev/null and b/nuxt-web/public/images/a19.png differ diff --git a/nuxt-web/public/images/about/1.webp b/nuxt-web/public/images/about/1.webp new file mode 100644 index 0000000..46d84ba Binary files /dev/null and b/nuxt-web/public/images/about/1.webp differ diff --git a/nuxt-web/public/images/about/10.webp b/nuxt-web/public/images/about/10.webp new file mode 100644 index 0000000..ab8be11 Binary files /dev/null and b/nuxt-web/public/images/about/10.webp differ diff --git a/nuxt-web/public/images/about/11.webp b/nuxt-web/public/images/about/11.webp new file mode 100644 index 0000000..14af5ff Binary files /dev/null and b/nuxt-web/public/images/about/11.webp differ diff --git a/nuxt-web/public/images/about/12.webp b/nuxt-web/public/images/about/12.webp new file mode 100644 index 0000000..89f08a8 Binary files /dev/null and b/nuxt-web/public/images/about/12.webp differ diff --git a/nuxt-web/public/images/about/13.webp b/nuxt-web/public/images/about/13.webp new file mode 100644 index 0000000..ca2869b Binary files /dev/null and b/nuxt-web/public/images/about/13.webp differ diff --git a/nuxt-web/public/images/about/14.JPG b/nuxt-web/public/images/about/14.JPG new file mode 100644 index 0000000..ba374ac Binary files /dev/null and b/nuxt-web/public/images/about/14.JPG differ diff --git a/nuxt-web/public/images/about/2.webp b/nuxt-web/public/images/about/2.webp new file mode 100644 index 0000000..24e5d4b Binary files /dev/null and b/nuxt-web/public/images/about/2.webp differ diff --git a/nuxt-web/public/images/about/3.webp b/nuxt-web/public/images/about/3.webp new file mode 100644 index 0000000..e1db322 Binary files /dev/null and b/nuxt-web/public/images/about/3.webp differ diff --git a/nuxt-web/public/images/about/4.webp b/nuxt-web/public/images/about/4.webp new file mode 100644 index 0000000..8a013d3 Binary files /dev/null and b/nuxt-web/public/images/about/4.webp differ diff --git a/nuxt-web/public/images/about/5.webp b/nuxt-web/public/images/about/5.webp new file mode 100644 index 0000000..335246f Binary files /dev/null and b/nuxt-web/public/images/about/5.webp differ diff --git a/nuxt-web/public/images/about/6.webp b/nuxt-web/public/images/about/6.webp new file mode 100644 index 0000000..92529e8 Binary files /dev/null and b/nuxt-web/public/images/about/6.webp differ diff --git a/nuxt-web/public/images/about/7.JPG.webp b/nuxt-web/public/images/about/7.JPG.webp new file mode 100644 index 0000000..30ab5a7 Binary files /dev/null and b/nuxt-web/public/images/about/7.JPG.webp differ diff --git a/nuxt-web/public/images/about/7.png.webp b/nuxt-web/public/images/about/7.png.webp new file mode 100644 index 0000000..ba36e2b Binary files /dev/null and b/nuxt-web/public/images/about/7.png.webp differ diff --git a/nuxt-web/public/images/about/8.webp b/nuxt-web/public/images/about/8.webp new file mode 100644 index 0000000..bc8c118 Binary files /dev/null and b/nuxt-web/public/images/about/8.webp differ diff --git a/nuxt-web/public/images/about/img-1.jpg b/nuxt-web/public/images/about/img-1.jpg new file mode 100644 index 0000000..3de1bce Binary files /dev/null and b/nuxt-web/public/images/about/img-1.jpg differ diff --git a/nuxt-web/public/images/about/img-2.jpg b/nuxt-web/public/images/about/img-2.jpg new file mode 100644 index 0000000..f823ada Binary files /dev/null and b/nuxt-web/public/images/about/img-2.jpg differ diff --git a/nuxt-web/public/images/about/img-3.jpg b/nuxt-web/public/images/about/img-3.jpg new file mode 100644 index 0000000..827ce2b Binary files /dev/null and b/nuxt-web/public/images/about/img-3.jpg differ diff --git a/nuxt-web/public/images/about/slide-1.webp b/nuxt-web/public/images/about/slide-1.webp new file mode 100644 index 0000000..c389609 Binary files /dev/null and b/nuxt-web/public/images/about/slide-1.webp differ diff --git a/nuxt-web/public/images/anzhida.png b/nuxt-web/public/images/anzhida.png new file mode 100644 index 0000000..e804396 Binary files /dev/null and b/nuxt-web/public/images/anzhida.png differ diff --git a/nuxt-web/public/images/arr_b.png b/nuxt-web/public/images/arr_b.png new file mode 100644 index 0000000..48d333b Binary files /dev/null and b/nuxt-web/public/images/arr_b.png differ diff --git a/nuxt-web/public/images/arr_t.png b/nuxt-web/public/images/arr_t.png new file mode 100644 index 0000000..e26a48e Binary files /dev/null and b/nuxt-web/public/images/arr_t.png differ diff --git a/nuxt-web/public/images/beian.png b/nuxt-web/public/images/beian.png new file mode 100644 index 0000000..751d9fb Binary files /dev/null and b/nuxt-web/public/images/beian.png differ diff --git a/nuxt-web/public/images/bg_2.webp b/nuxt-web/public/images/bg_2.webp new file mode 100644 index 0000000..87ec039 Binary files /dev/null and b/nuxt-web/public/images/bg_2.webp differ diff --git a/nuxt-web/public/images/blog/pro1.webp b/nuxt-web/public/images/blog/pro1.webp new file mode 100644 index 0000000..bd98b8e Binary files /dev/null and b/nuxt-web/public/images/blog/pro1.webp differ diff --git a/nuxt-web/public/images/blog/pro2.webp b/nuxt-web/public/images/blog/pro2.webp new file mode 100644 index 0000000..41ba58a Binary files /dev/null and b/nuxt-web/public/images/blog/pro2.webp differ diff --git a/nuxt-web/public/images/blog/pro3.webp b/nuxt-web/public/images/blog/pro3.webp new file mode 100644 index 0000000..3e09bcb Binary files /dev/null and b/nuxt-web/public/images/blog/pro3.webp differ diff --git a/nuxt-web/public/images/blog/pro4.webp b/nuxt-web/public/images/blog/pro4.webp new file mode 100644 index 0000000..1e5a70c Binary files /dev/null and b/nuxt-web/public/images/blog/pro4.webp differ diff --git a/nuxt-web/public/images/blog/pro5.webp b/nuxt-web/public/images/blog/pro5.webp new file mode 100644 index 0000000..261cfa9 Binary files /dev/null and b/nuxt-web/public/images/blog/pro5.webp differ diff --git a/nuxt-web/public/images/blog/pro6.webp b/nuxt-web/public/images/blog/pro6.webp new file mode 100644 index 0000000..0a31505 Binary files /dev/null and b/nuxt-web/public/images/blog/pro6.webp differ diff --git a/nuxt-web/public/images/blog/yunmatou.jpg b/nuxt-web/public/images/blog/yunmatou.jpg new file mode 100644 index 0000000..4fc087d Binary files /dev/null and b/nuxt-web/public/images/blog/yunmatou.jpg differ diff --git a/nuxt-web/public/images/button-l.png b/nuxt-web/public/images/button-l.png new file mode 100644 index 0000000..317b8a1 Binary files /dev/null and b/nuxt-web/public/images/button-l.png differ diff --git a/nuxt-web/public/images/button-r.png b/nuxt-web/public/images/button-r.png new file mode 100644 index 0000000..93a7871 Binary files /dev/null and b/nuxt-web/public/images/button-r.png differ diff --git a/nuxt-web/public/images/call 2.png b/nuxt-web/public/images/call 2.png new file mode 100644 index 0000000..e3aca44 Binary files /dev/null and b/nuxt-web/public/images/call 2.png differ diff --git a/nuxt-web/public/images/call.png b/nuxt-web/public/images/call.png new file mode 100644 index 0000000..e3aca44 Binary files /dev/null and b/nuxt-web/public/images/call.png differ diff --git a/nuxt-web/public/images/changzhan.jpg b/nuxt-web/public/images/changzhan.jpg new file mode 100644 index 0000000..194b848 Binary files /dev/null and b/nuxt-web/public/images/changzhan.jpg differ diff --git a/nuxt-web/public/images/chanpin-bg.webp b/nuxt-web/public/images/chanpin-bg.webp new file mode 100644 index 0000000..2d9c2c6 Binary files /dev/null and b/nuxt-web/public/images/chanpin-bg.webp differ diff --git a/nuxt-web/public/images/chanpin-bg1.webp b/nuxt-web/public/images/chanpin-bg1.webp new file mode 100644 index 0000000..44b8ed6 Binary files /dev/null and b/nuxt-web/public/images/chanpin-bg1.webp differ diff --git a/nuxt-web/public/images/chengtong.png b/nuxt-web/public/images/chengtong.png new file mode 100644 index 0000000..d405a5b Binary files /dev/null and b/nuxt-web/public/images/chengtong.png differ diff --git a/nuxt-web/public/images/chuandai.webp b/nuxt-web/public/images/chuandai.webp new file mode 100644 index 0000000..669907e Binary files /dev/null and b/nuxt-web/public/images/chuandai.webp differ diff --git a/nuxt-web/public/images/classiccase/example.webp b/nuxt-web/public/images/classiccase/example.webp new file mode 100644 index 0000000..2e88782 Binary files /dev/null and b/nuxt-web/public/images/classiccase/example.webp differ diff --git a/nuxt-web/public/images/clock.png b/nuxt-web/public/images/clock.png new file mode 100644 index 0000000..f15cfc7 Binary files /dev/null and b/nuxt-web/public/images/clock.png differ diff --git a/nuxt-web/public/images/dandong.png b/nuxt-web/public/images/dandong.png new file mode 100644 index 0000000..adc7d1b Binary files /dev/null and b/nuxt-web/public/images/dandong.png differ diff --git a/nuxt-web/public/images/dian.png b/nuxt-web/public/images/dian.png new file mode 100644 index 0000000..74a904e Binary files /dev/null and b/nuxt-web/public/images/dian.png differ diff --git a/nuxt-web/public/images/dian2.png b/nuxt-web/public/images/dian2.png new file mode 100644 index 0000000..dcb87d1 Binary files /dev/null and b/nuxt-web/public/images/dian2.png differ diff --git a/nuxt-web/public/images/dian3.png b/nuxt-web/public/images/dian3.png new file mode 100644 index 0000000..697c84d Binary files /dev/null and b/nuxt-web/public/images/dian3.png differ diff --git a/nuxt-web/public/images/ditu.webp b/nuxt-web/public/images/ditu.webp new file mode 100644 index 0000000..ca6f714 Binary files /dev/null and b/nuxt-web/public/images/ditu.webp differ diff --git a/nuxt-web/public/images/dongfangguoji.jpg b/nuxt-web/public/images/dongfangguoji.jpg new file mode 100644 index 0000000..80b4fb8 Binary files /dev/null and b/nuxt-web/public/images/dongfangguoji.jpg differ diff --git a/nuxt-web/public/images/dotted-map.png b/nuxt-web/public/images/dotted-map.png new file mode 100644 index 0000000..848c09d Binary files /dev/null and b/nuxt-web/public/images/dotted-map.png differ diff --git a/nuxt-web/public/images/fangcheng.png b/nuxt-web/public/images/fangcheng.png new file mode 100644 index 0000000..d7eb550 Binary files /dev/null and b/nuxt-web/public/images/fangcheng.png differ diff --git a/nuxt-web/public/images/favicon.ico b/nuxt-web/public/images/favicon.ico new file mode 100644 index 0000000..be5562e Binary files /dev/null and b/nuxt-web/public/images/favicon.ico differ diff --git a/nuxt-web/public/images/footer-logo.png b/nuxt-web/public/images/footer-logo.png new file mode 100644 index 0000000..72d99a8 Binary files /dev/null and b/nuxt-web/public/images/footer-logo.png differ diff --git a/nuxt-web/public/images/gaungzhougang.jpg b/nuxt-web/public/images/gaungzhougang.jpg new file mode 100644 index 0000000..5ff7984 Binary files /dev/null and b/nuxt-web/public/images/gaungzhougang.jpg differ diff --git a/nuxt-web/public/images/guangzhougang.jpg b/nuxt-web/public/images/guangzhougang.jpg new file mode 100644 index 0000000..5ff7984 Binary files /dev/null and b/nuxt-web/public/images/guangzhougang.jpg differ diff --git a/nuxt-web/public/images/guangzhougang.png b/nuxt-web/public/images/guangzhougang.png new file mode 100644 index 0000000..90f02d4 Binary files /dev/null and b/nuxt-web/public/images/guangzhougang.png differ diff --git a/nuxt-web/public/images/guangzhougangwuju.jpg b/nuxt-web/public/images/guangzhougangwuju.jpg new file mode 100644 index 0000000..ccffe4c Binary files /dev/null and b/nuxt-web/public/images/guangzhougangwuju.jpg differ diff --git a/nuxt-web/public/images/haihua.jpg b/nuxt-web/public/images/haihua.jpg new file mode 100644 index 0000000..ae98e1c Binary files /dev/null and b/nuxt-web/public/images/haihua.jpg differ diff --git a/nuxt-web/public/images/haili.png b/nuxt-web/public/images/haili.png new file mode 100644 index 0000000..7121d3e Binary files /dev/null and b/nuxt-web/public/images/haili.png differ diff --git a/nuxt-web/public/images/haitong.png b/nuxt-web/public/images/haitong.png new file mode 100644 index 0000000..e51fb11 Binary files /dev/null and b/nuxt-web/public/images/haitong.png differ diff --git a/nuxt-web/public/images/haixia.png b/nuxt-web/public/images/haixia.png new file mode 100644 index 0000000..5821dc6 Binary files /dev/null and b/nuxt-web/public/images/haixia.png differ diff --git a/nuxt-web/public/images/haiying.png b/nuxt-web/public/images/haiying.png new file mode 100644 index 0000000..cb173b6 Binary files /dev/null and b/nuxt-web/public/images/haiying.png differ diff --git a/nuxt-web/public/images/hanghai.png b/nuxt-web/public/images/hanghai.png new file mode 100644 index 0000000..f01da46 Binary files /dev/null and b/nuxt-web/public/images/hanghai.png differ diff --git a/nuxt-web/public/images/hanghuac.webp b/nuxt-web/public/images/hanghuac.webp new file mode 100644 index 0000000..a341767 Binary files /dev/null and b/nuxt-web/public/images/hanghuac.webp differ diff --git a/nuxt-web/public/images/hani.png b/nuxt-web/public/images/hani.png new file mode 100644 index 0000000..7158732 Binary files /dev/null and b/nuxt-web/public/images/hani.png differ diff --git a/nuxt-web/public/images/hefei.png b/nuxt-web/public/images/hefei.png new file mode 100644 index 0000000..7bebbfc Binary files /dev/null and b/nuxt-web/public/images/hefei.png differ diff --git a/nuxt-web/public/images/hengtong.png b/nuxt-web/public/images/hengtong.png new file mode 100644 index 0000000..dc3dd76 Binary files /dev/null and b/nuxt-web/public/images/hengtong.png differ diff --git a/nuxt-web/public/images/history_bg.webp b/nuxt-web/public/images/history_bg.webp new file mode 100644 index 0000000..6e9abdf Binary files /dev/null and b/nuxt-web/public/images/history_bg.webp differ diff --git a/nuxt-web/public/images/history_start.png b/nuxt-web/public/images/history_start.png new file mode 100644 index 0000000..aa64637 Binary files /dev/null and b/nuxt-web/public/images/history_start.png differ diff --git a/nuxt-web/public/images/huagang.jpg b/nuxt-web/public/images/huagang.jpg new file mode 100644 index 0000000..45b8bee Binary files /dev/null and b/nuxt-web/public/images/huagang.jpg differ diff --git a/nuxt-web/public/images/huagang.png b/nuxt-web/public/images/huagang.png new file mode 100644 index 0000000..54ec3d8 Binary files /dev/null and b/nuxt-web/public/images/huagang.png differ diff --git a/nuxt-web/public/images/huahai.png b/nuxt-web/public/images/huahai.png new file mode 100644 index 0000000..24673c5 Binary files /dev/null and b/nuxt-web/public/images/huahai.png differ diff --git a/nuxt-web/public/images/huanghua.jpg b/nuxt-web/public/images/huanghua.jpg new file mode 100644 index 0000000..d68474f Binary files /dev/null and b/nuxt-web/public/images/huanghua.jpg differ diff --git a/nuxt-web/public/images/ictb.png b/nuxt-web/public/images/ictb.png new file mode 100644 index 0000000..cf2e351 Binary files /dev/null and b/nuxt-web/public/images/ictb.png differ diff --git a/nuxt-web/public/images/index/bk.webp b/nuxt-web/public/images/index/bk.webp new file mode 100644 index 0000000..052716a Binary files /dev/null and b/nuxt-web/public/images/index/bk.webp differ diff --git a/nuxt-web/public/images/index/map_bk.webp b/nuxt-web/public/images/index/map_bk.webp new file mode 100644 index 0000000..0b0bda1 Binary files /dev/null and b/nuxt-web/public/images/index/map_bk.webp differ diff --git a/nuxt-web/public/images/index/top-origin.webp b/nuxt-web/public/images/index/top-origin.webp new file mode 100644 index 0000000..acfcda9 Binary files /dev/null and b/nuxt-web/public/images/index/top-origin.webp differ diff --git a/nuxt-web/public/images/index/top.png b/nuxt-web/public/images/index/top.png new file mode 100644 index 0000000..ec957aa Binary files /dev/null and b/nuxt-web/public/images/index/top.png differ diff --git a/nuxt-web/public/images/jiahua.jpg b/nuxt-web/public/images/jiahua.jpg new file mode 100644 index 0000000..edebe72 Binary files /dev/null and b/nuxt-web/public/images/jiahua.jpg differ diff --git a/nuxt-web/public/images/jian.png b/nuxt-web/public/images/jian.png new file mode 100644 index 0000000..d3ccfbb Binary files /dev/null and b/nuxt-web/public/images/jian.png differ diff --git a/nuxt-web/public/images/jiaotong.png b/nuxt-web/public/images/jiaotong.png new file mode 100644 index 0000000..0b2a47e Binary files /dev/null and b/nuxt-web/public/images/jiaotong.png differ diff --git a/nuxt-web/public/images/jibao.jpg b/nuxt-web/public/images/jibao.jpg new file mode 100644 index 0000000..3dd12dd Binary files /dev/null and b/nuxt-web/public/images/jibao.jpg differ diff --git a/nuxt-web/public/images/jining.png b/nuxt-web/public/images/jining.png new file mode 100644 index 0000000..916329c Binary files /dev/null and b/nuxt-web/public/images/jining.png differ diff --git a/nuxt-web/public/images/jinjiang.png b/nuxt-web/public/images/jinjiang.png new file mode 100644 index 0000000..a6a443a Binary files /dev/null and b/nuxt-web/public/images/jinjiang.png differ diff --git a/nuxt-web/public/images/jinjinghangyun.png b/nuxt-web/public/images/jinjinghangyun.png new file mode 100644 index 0000000..9881222 Binary files /dev/null and b/nuxt-web/public/images/jinjinghangyun.png differ diff --git a/nuxt-web/public/images/jutong.png b/nuxt-web/public/images/jutong.png new file mode 100644 index 0000000..595e1cb Binary files /dev/null and b/nuxt-web/public/images/jutong.png differ diff --git a/nuxt-web/public/images/liandai.png b/nuxt-web/public/images/liandai.png new file mode 100644 index 0000000..d339080 Binary files /dev/null and b/nuxt-web/public/images/liandai.png differ diff --git a/nuxt-web/public/images/lianyungang.jpg b/nuxt-web/public/images/lianyungang.jpg new file mode 100644 index 0000000..4a1a07f Binary files /dev/null and b/nuxt-web/public/images/lianyungang.jpg differ diff --git a/nuxt-web/public/images/lingao.png b/nuxt-web/public/images/lingao.png new file mode 100644 index 0000000..1ca0675 Binary files /dev/null and b/nuxt-web/public/images/lingao.png differ diff --git a/nuxt-web/public/images/logo-2.webp b/nuxt-web/public/images/logo-2.webp new file mode 100644 index 0000000..971cecf Binary files /dev/null and b/nuxt-web/public/images/logo-2.webp differ diff --git a/nuxt-web/public/images/logo.jpg b/nuxt-web/public/images/logo.jpg new file mode 100644 index 0000000..5d553ba Binary files /dev/null and b/nuxt-web/public/images/logo.jpg differ diff --git a/nuxt-web/public/images/logo.png.webp b/nuxt-web/public/images/logo.png.webp new file mode 100644 index 0000000..d25c1b0 Binary files /dev/null and b/nuxt-web/public/images/logo.png.webp differ diff --git a/nuxt-web/public/images/logo1.jpg b/nuxt-web/public/images/logo1.jpg new file mode 100644 index 0000000..3a25cc1 Binary files /dev/null and b/nuxt-web/public/images/logo1.jpg differ diff --git a/nuxt-web/public/images/logo2.jpg b/nuxt-web/public/images/logo2.jpg new file mode 100644 index 0000000..ed768a6 Binary files /dev/null and b/nuxt-web/public/images/logo2.jpg differ diff --git a/nuxt-web/public/images/logo3.jpg b/nuxt-web/public/images/logo3.jpg new file mode 100644 index 0000000..1cf2ef9 Binary files /dev/null and b/nuxt-web/public/images/logo3.jpg differ diff --git a/nuxt-web/public/images/logo4.jpg b/nuxt-web/public/images/logo4.jpg new file mode 100644 index 0000000..3969655 Binary files /dev/null and b/nuxt-web/public/images/logo4.jpg differ diff --git a/nuxt-web/public/images/logo5.jpg b/nuxt-web/public/images/logo5.jpg new file mode 100644 index 0000000..b1017b0 Binary files /dev/null and b/nuxt-web/public/images/logo5.jpg differ diff --git a/nuxt-web/public/images/logo7.jpg b/nuxt-web/public/images/logo7.jpg new file mode 100644 index 0000000..d856ff2 Binary files /dev/null and b/nuxt-web/public/images/logo7.jpg differ diff --git a/nuxt-web/public/images/mail.png b/nuxt-web/public/images/mail.png new file mode 100644 index 0000000..ac2eaad Binary files /dev/null and b/nuxt-web/public/images/mail.png differ diff --git a/nuxt-web/public/images/mail2.png b/nuxt-web/public/images/mail2.png new file mode 100644 index 0000000..af70c68 Binary files /dev/null and b/nuxt-web/public/images/mail2.png differ diff --git a/nuxt-web/public/images/map .png b/nuxt-web/public/images/map .png new file mode 100644 index 0000000..f6060ca Binary files /dev/null and b/nuxt-web/public/images/map .png differ diff --git a/nuxt-web/public/images/map 2.png b/nuxt-web/public/images/map 2.png new file mode 100644 index 0000000..f6060ca Binary files /dev/null and b/nuxt-web/public/images/map 2.png differ diff --git a/nuxt-web/public/images/map.png b/nuxt-web/public/images/map.png new file mode 100644 index 0000000..f6060ca Binary files /dev/null and b/nuxt-web/public/images/map.png differ diff --git a/nuxt-web/public/images/morelink.gif b/nuxt-web/public/images/morelink.gif new file mode 100644 index 0000000..e1f1655 Binary files /dev/null and b/nuxt-web/public/images/morelink.gif differ diff --git a/nuxt-web/public/images/msg.png b/nuxt-web/public/images/msg.png new file mode 100644 index 0000000..1af2859 Binary files /dev/null and b/nuxt-web/public/images/msg.png differ diff --git a/nuxt-web/public/images/new1.webp b/nuxt-web/public/images/new1.webp new file mode 100644 index 0000000..d7cc8aa Binary files /dev/null and b/nuxt-web/public/images/new1.webp differ diff --git a/nuxt-web/public/images/new2.webp b/nuxt-web/public/images/new2.webp new file mode 100644 index 0000000..b808eb4 Binary files /dev/null and b/nuxt-web/public/images/new2.webp differ diff --git a/nuxt-web/public/images/new3.webp b/nuxt-web/public/images/new3.webp new file mode 100644 index 0000000..68cea69 Binary files /dev/null and b/nuxt-web/public/images/new3.webp differ diff --git a/nuxt-web/public/images/new4.webp b/nuxt-web/public/images/new4.webp new file mode 100644 index 0000000..9f32e98 Binary files /dev/null and b/nuxt-web/public/images/new4.webp differ diff --git a/nuxt-web/public/images/new_1.webp b/nuxt-web/public/images/new_1.webp new file mode 100644 index 0000000..7ef9081 Binary files /dev/null and b/nuxt-web/public/images/new_1.webp differ diff --git a/nuxt-web/public/images/new_2.webp b/nuxt-web/public/images/new_2.webp new file mode 100644 index 0000000..ba4d5b5 Binary files /dev/null and b/nuxt-web/public/images/new_2.webp differ diff --git a/nuxt-web/public/images/page-title1.png b/nuxt-web/public/images/page-title1.png new file mode 100644 index 0000000..1a5135c Binary files /dev/null and b/nuxt-web/public/images/page-title1.png differ diff --git a/nuxt-web/public/images/page-title1.webp b/nuxt-web/public/images/page-title1.webp new file mode 100644 index 0000000..cd047f1 Binary files /dev/null and b/nuxt-web/public/images/page-title1.webp differ diff --git a/nuxt-web/public/images/page-title2.webp b/nuxt-web/public/images/page-title2.webp new file mode 100644 index 0000000..6838611 Binary files /dev/null and b/nuxt-web/public/images/page-title2.webp differ diff --git a/nuxt-web/public/images/page-title3.png b/nuxt-web/public/images/page-title3.png new file mode 100644 index 0000000..bc59975 Binary files /dev/null and b/nuxt-web/public/images/page-title3.png differ diff --git a/nuxt-web/public/images/page-title4.webp b/nuxt-web/public/images/page-title4.webp new file mode 100644 index 0000000..b78ef8c Binary files /dev/null and b/nuxt-web/public/images/page-title4.webp differ diff --git a/nuxt-web/public/images/page-title5.png b/nuxt-web/public/images/page-title5.png new file mode 100644 index 0000000..4b1b415 Binary files /dev/null and b/nuxt-web/public/images/page-title5.png differ diff --git a/nuxt-web/public/images/page-title6.jpg.webp b/nuxt-web/public/images/page-title6.jpg.webp new file mode 100644 index 0000000..e2a1451 Binary files /dev/null and b/nuxt-web/public/images/page-title6.jpg.webp differ diff --git a/nuxt-web/public/images/page-title6.png.webp b/nuxt-web/public/images/page-title6.png.webp new file mode 100644 index 0000000..0a3ee14 Binary files /dev/null and b/nuxt-web/public/images/page-title6.png.webp differ diff --git a/nuxt-web/public/images/pagination_1.png b/nuxt-web/public/images/pagination_1.png new file mode 100644 index 0000000..7f18eac Binary files /dev/null and b/nuxt-web/public/images/pagination_1.png differ diff --git a/nuxt-web/public/images/partners/beibuwan.png b/nuxt-web/public/images/partners/beibuwan.png new file mode 100644 index 0000000..cd450b8 Binary files /dev/null and b/nuxt-web/public/images/partners/beibuwan.png differ diff --git a/nuxt-web/public/images/partners/dongfangguoji.png b/nuxt-web/public/images/partners/dongfangguoji.png new file mode 100644 index 0000000..b489876 Binary files /dev/null and b/nuxt-web/public/images/partners/dongfangguoji.png differ diff --git a/nuxt-web/public/images/partners/gangwuju.png b/nuxt-web/public/images/partners/gangwuju.png new file mode 100644 index 0000000..0bf870b Binary files /dev/null and b/nuxt-web/public/images/partners/gangwuju.png differ diff --git a/nuxt-web/public/images/partners/hainanlingao.png b/nuxt-web/public/images/partners/hainanlingao.png new file mode 100644 index 0000000..8a91142 Binary files /dev/null and b/nuxt-web/public/images/partners/hainanlingao.png differ diff --git a/nuxt-web/public/images/partners/haixiagufen.png b/nuxt-web/public/images/partners/haixiagufen.png new file mode 100644 index 0000000..31e6766 Binary files /dev/null and b/nuxt-web/public/images/partners/haixiagufen.png differ diff --git a/nuxt-web/public/images/partners/hefei.png b/nuxt-web/public/images/partners/hefei.png new file mode 100644 index 0000000..186aed4 Binary files /dev/null and b/nuxt-web/public/images/partners/hefei.png differ diff --git a/nuxt-web/public/images/partners/jining.png b/nuxt-web/public/images/partners/jining.png new file mode 100644 index 0000000..afb4926 Binary files /dev/null and b/nuxt-web/public/images/partners/jining.png differ diff --git a/nuxt-web/public/images/partners/jinjiang.png b/nuxt-web/public/images/partners/jinjiang.png new file mode 100644 index 0000000..97a005c Binary files /dev/null and b/nuxt-web/public/images/partners/jinjiang.png differ diff --git a/nuxt-web/public/images/partners/liandai.png b/nuxt-web/public/images/partners/liandai.png new file mode 100644 index 0000000..656afb9 Binary files /dev/null and b/nuxt-web/public/images/partners/liandai.png differ diff --git a/nuxt-web/public/images/partners/qiaoyi.png b/nuxt-web/public/images/partners/qiaoyi.png new file mode 100644 index 0000000..5fc30b1 Binary files /dev/null and b/nuxt-web/public/images/partners/qiaoyi.png differ diff --git a/nuxt-web/public/images/partners/qinhuangdao.png b/nuxt-web/public/images/partners/qinhuangdao.png new file mode 100644 index 0000000..6b4a81f Binary files /dev/null and b/nuxt-web/public/images/partners/qinhuangdao.png differ diff --git a/nuxt-web/public/images/partners/rizhao.png b/nuxt-web/public/images/partners/rizhao.png new file mode 100644 index 0000000..bc18419 Binary files /dev/null and b/nuxt-web/public/images/partners/rizhao.png differ diff --git a/nuxt-web/public/images/partners/shanghaihanghua.png b/nuxt-web/public/images/partners/shanghaihanghua.png new file mode 100644 index 0000000..065e698 Binary files /dev/null and b/nuxt-web/public/images/partners/shanghaihanghua.png differ diff --git a/nuxt-web/public/images/partners/tangshangang.png b/nuxt-web/public/images/partners/tangshangang.png new file mode 100644 index 0000000..86f5add Binary files /dev/null and b/nuxt-web/public/images/partners/tangshangang.png differ diff --git a/nuxt-web/public/images/partners/weihaigang.png b/nuxt-web/public/images/partners/weihaigang.png new file mode 100644 index 0000000..b129855 Binary files /dev/null and b/nuxt-web/public/images/partners/weihaigang.png differ diff --git a/nuxt-web/public/images/partners/wuzhou.png b/nuxt-web/public/images/partners/wuzhou.png new file mode 100644 index 0000000..c4f5867 Binary files /dev/null and b/nuxt-web/public/images/partners/wuzhou.png differ diff --git a/nuxt-web/public/images/partners/zhongshanganghang.png b/nuxt-web/public/images/partners/zhongshanganghang.png new file mode 100644 index 0000000..1a058d9 Binary files /dev/null and b/nuxt-web/public/images/partners/zhongshanganghang.png differ diff --git a/nuxt-web/public/images/partners/zhongyunjituan.png b/nuxt-web/public/images/partners/zhongyunjituan.png new file mode 100644 index 0000000..d870e43 Binary files /dev/null and b/nuxt-web/public/images/partners/zhongyunjituan.png differ diff --git a/nuxt-web/public/images/partners/zhujiangchuanwu.png b/nuxt-web/public/images/partners/zhujiangchuanwu.png new file mode 100644 index 0000000..19732d8 Binary files /dev/null and b/nuxt-web/public/images/partners/zhujiangchuanwu.png differ diff --git a/nuxt-web/public/images/pic1.png b/nuxt-web/public/images/pic1.png new file mode 100644 index 0000000..77cabb0 Binary files /dev/null and b/nuxt-web/public/images/pic1.png differ diff --git a/nuxt-web/public/images/pic2.png b/nuxt-web/public/images/pic2.png new file mode 100644 index 0000000..c37c1be Binary files /dev/null and b/nuxt-web/public/images/pic2.png differ diff --git a/nuxt-web/public/images/pic3.png b/nuxt-web/public/images/pic3.png new file mode 100644 index 0000000..79eb87b Binary files /dev/null and b/nuxt-web/public/images/pic3.png differ diff --git a/nuxt-web/public/images/portfolio/img-1.jpg b/nuxt-web/public/images/portfolio/img-1.jpg new file mode 100644 index 0000000..8484065 Binary files /dev/null and b/nuxt-web/public/images/portfolio/img-1.jpg differ diff --git a/nuxt-web/public/images/portfolio/img-2.webp b/nuxt-web/public/images/portfolio/img-2.webp new file mode 100644 index 0000000..c524839 Binary files /dev/null and b/nuxt-web/public/images/portfolio/img-2.webp differ diff --git a/nuxt-web/public/images/portfolio/img-3.webp b/nuxt-web/public/images/portfolio/img-3.webp new file mode 100644 index 0000000..7420c4e Binary files /dev/null and b/nuxt-web/public/images/portfolio/img-3.webp differ diff --git a/nuxt-web/public/images/portfolio/img-4.webp b/nuxt-web/public/images/portfolio/img-4.webp new file mode 100644 index 0000000..acf0ca5 Binary files /dev/null and b/nuxt-web/public/images/portfolio/img-4.webp differ diff --git a/nuxt-web/public/images/portfolio/img-5.webp b/nuxt-web/public/images/portfolio/img-5.webp new file mode 100644 index 0000000..140a197 Binary files /dev/null and b/nuxt-web/public/images/portfolio/img-5.webp differ diff --git a/nuxt-web/public/images/pro/hongyuan.webp b/nuxt-web/public/images/pro/hongyuan.webp new file mode 100644 index 0000000..788a08e Binary files /dev/null and b/nuxt-web/public/images/pro/hongyuan.webp differ diff --git a/nuxt-web/public/images/pro/pro-10.webp b/nuxt-web/public/images/pro/pro-10.webp new file mode 100644 index 0000000..afa6dee Binary files /dev/null and b/nuxt-web/public/images/pro/pro-10.webp differ diff --git a/nuxt-web/public/images/pro/pro-11.webp b/nuxt-web/public/images/pro/pro-11.webp new file mode 100644 index 0000000..bce3f27 Binary files /dev/null and b/nuxt-web/public/images/pro/pro-11.webp differ diff --git a/nuxt-web/public/images/pro/pro-12.webp b/nuxt-web/public/images/pro/pro-12.webp new file mode 100644 index 0000000..d1ecd21 Binary files /dev/null and b/nuxt-web/public/images/pro/pro-12.webp differ diff --git a/nuxt-web/public/images/pro/pro-13.webp b/nuxt-web/public/images/pro/pro-13.webp new file mode 100644 index 0000000..a4950ac Binary files /dev/null and b/nuxt-web/public/images/pro/pro-13.webp differ diff --git a/nuxt-web/public/images/pro/pro-14.webp b/nuxt-web/public/images/pro/pro-14.webp new file mode 100644 index 0000000..d181b77 Binary files /dev/null and b/nuxt-web/public/images/pro/pro-14.webp differ diff --git a/nuxt-web/public/images/pro/pro-15.webp b/nuxt-web/public/images/pro/pro-15.webp new file mode 100644 index 0000000..9e8a277 Binary files /dev/null and b/nuxt-web/public/images/pro/pro-15.webp differ diff --git a/nuxt-web/public/images/pro/pro-16.webp b/nuxt-web/public/images/pro/pro-16.webp new file mode 100644 index 0000000..7221ab0 Binary files /dev/null and b/nuxt-web/public/images/pro/pro-16.webp differ diff --git a/nuxt-web/public/images/pro/pro-17.webp b/nuxt-web/public/images/pro/pro-17.webp new file mode 100644 index 0000000..f5aca36 Binary files /dev/null and b/nuxt-web/public/images/pro/pro-17.webp differ diff --git a/nuxt-web/public/images/pro/pro-18.webp b/nuxt-web/public/images/pro/pro-18.webp new file mode 100644 index 0000000..279e701 Binary files /dev/null and b/nuxt-web/public/images/pro/pro-18.webp differ diff --git a/nuxt-web/public/images/pro/pro-19.webp b/nuxt-web/public/images/pro/pro-19.webp new file mode 100644 index 0000000..b12aab9 Binary files /dev/null and b/nuxt-web/public/images/pro/pro-19.webp differ diff --git a/nuxt-web/public/images/pro/pro-4.webp b/nuxt-web/public/images/pro/pro-4.webp new file mode 100644 index 0000000..e32ac0c Binary files /dev/null and b/nuxt-web/public/images/pro/pro-4.webp differ diff --git a/nuxt-web/public/images/pro/pro-5.webp b/nuxt-web/public/images/pro/pro-5.webp new file mode 100644 index 0000000..4bf71cd Binary files /dev/null and b/nuxt-web/public/images/pro/pro-5.webp differ diff --git a/nuxt-web/public/images/pro/pro-6.webp b/nuxt-web/public/images/pro/pro-6.webp new file mode 100644 index 0000000..70ee5a5 Binary files /dev/null and b/nuxt-web/public/images/pro/pro-6.webp differ diff --git a/nuxt-web/public/images/pro/pro-7.webp b/nuxt-web/public/images/pro/pro-7.webp new file mode 100644 index 0000000..a79c8a6 Binary files /dev/null and b/nuxt-web/public/images/pro/pro-7.webp differ diff --git a/nuxt-web/public/images/pro/pro-8.webp b/nuxt-web/public/images/pro/pro-8.webp new file mode 100644 index 0000000..55eacdf Binary files /dev/null and b/nuxt-web/public/images/pro/pro-8.webp differ diff --git a/nuxt-web/public/images/pro/pro-9.webp b/nuxt-web/public/images/pro/pro-9.webp new file mode 100644 index 0000000..caaefba Binary files /dev/null and b/nuxt-web/public/images/pro/pro-9.webp differ diff --git a/nuxt-web/public/images/product/bctp/chuanhuotong.png b/nuxt-web/public/images/product/bctp/chuanhuotong.png new file mode 100644 index 0000000..5df171d Binary files /dev/null and b/nuxt-web/public/images/product/bctp/chuanhuotong.png differ diff --git a/nuxt-web/public/images/product/bctp/jiagou.png b/nuxt-web/public/images/product/bctp/jiagou.png new file mode 100644 index 0000000..4fa06d0 Binary files /dev/null and b/nuxt-web/public/images/product/bctp/jiagou.png differ diff --git a/nuxt-web/public/images/product/bctp/sanweiwuzhou.png b/nuxt-web/public/images/product/bctp/sanweiwuzhou.png new file mode 100644 index 0000000..3609c67 Binary files /dev/null and b/nuxt-web/public/images/product/bctp/sanweiwuzhou.png differ diff --git a/nuxt-web/public/images/product/bctp/wudaozhi.png b/nuxt-web/public/images/product/bctp/wudaozhi.png new file mode 100644 index 0000000..0e6e1d4 Binary files /dev/null and b/nuxt-web/public/images/product/bctp/wudaozhi.png differ diff --git a/nuxt-web/public/images/product/bctp/wujiujishuyi.png b/nuxt-web/public/images/product/bctp/wujiujishuyi.png new file mode 100644 index 0000000..86e965d Binary files /dev/null and b/nuxt-web/public/images/product/bctp/wujiujishuyi.png differ diff --git a/nuxt-web/public/images/product/bctp/wumaoyi.png b/nuxt-web/public/images/product/bctp/wumaoyi.png new file mode 100644 index 0000000..b701bff Binary files /dev/null and b/nuxt-web/public/images/product/bctp/wumaoyi.png differ diff --git a/nuxt-web/public/images/product/bctp/xiaochengxuzuoye.png b/nuxt-web/public/images/product/bctp/xiaochengxuzuoye.png new file mode 100644 index 0000000..ca59927 Binary files /dev/null and b/nuxt-web/public/images/product/bctp/xiaochengxuzuoye.png differ diff --git a/nuxt-web/public/images/product/cangchu/kucunshishizhuizong.png b/nuxt-web/public/images/product/cangchu/kucunshishizhuizong.png new file mode 100644 index 0000000..07afe6f Binary files /dev/null and b/nuxt-web/public/images/product/cangchu/kucunshishizhuizong.png differ diff --git a/nuxt-web/public/images/product/cangchu/shujuqudongjuece.png b/nuxt-web/public/images/product/cangchu/shujuqudongjuece.png new file mode 100644 index 0000000..c1f9608 Binary files /dev/null and b/nuxt-web/public/images/product/cangchu/shujuqudongjuece.png differ diff --git a/nuxt-web/public/images/product/cangchu/zhinenghuoweibuju.png b/nuxt-web/public/images/product/cangchu/zhinenghuoweibuju.png new file mode 100644 index 0000000..fcf2715 Binary files /dev/null and b/nuxt-web/public/images/product/cangchu/zhinenghuoweibuju.png differ diff --git a/nuxt-web/public/images/product/cangchu/zuoyezidonghua.png b/nuxt-web/public/images/product/cangchu/zuoyezidonghua.png new file mode 100644 index 0000000..c4df20e Binary files /dev/null and b/nuxt-web/public/images/product/cangchu/zuoyezidonghua.png differ diff --git a/nuxt-web/public/images/product/cheliangyunshu/chengbenjingxihesuan.png b/nuxt-web/public/images/product/cheliangyunshu/chengbenjingxihesuan.png new file mode 100644 index 0000000..c0c4266 Binary files /dev/null and b/nuxt-web/public/images/product/cheliangyunshu/chengbenjingxihesuan.png differ diff --git a/nuxt-web/public/images/product/cheliangyunshu/feiyongzidongjiesuan.png b/nuxt-web/public/images/product/cheliangyunshu/feiyongzidongjiesuan.png new file mode 100644 index 0000000..fa7a2fe Binary files /dev/null and b/nuxt-web/public/images/product/cheliangyunshu/feiyongzidongjiesuan.png differ diff --git a/nuxt-web/public/images/product/cheliangyunshu/yichangkuaisuchuli.png b/nuxt-web/public/images/product/cheliangyunshu/yichangkuaisuchuli.png new file mode 100644 index 0000000..f727a4f Binary files /dev/null and b/nuxt-web/public/images/product/cheliangyunshu/yichangkuaisuchuli.png differ diff --git a/nuxt-web/public/images/product/cheliangyunshu/yunshushijiankeshihua.png b/nuxt-web/public/images/product/cheliangyunshu/yunshushijiankeshihua.png new file mode 100644 index 0000000..16c177a Binary files /dev/null and b/nuxt-web/public/images/product/cheliangyunshu/yunshushijiankeshihua.png differ diff --git a/nuxt-web/public/images/product/cheliangyunshu/zhinengluxianguihua.png b/nuxt-web/public/images/product/cheliangyunshu/zhinengluxianguihua.png new file mode 100644 index 0000000..8bf24eb Binary files /dev/null and b/nuxt-web/public/images/product/cheliangyunshu/zhinengluxianguihua.png differ diff --git a/nuxt-web/public/images/product/chuanbodaili/aizhinenyunzuo.png b/nuxt-web/public/images/product/chuanbodaili/aizhinenyunzuo.png new file mode 100644 index 0000000..928009a Binary files /dev/null and b/nuxt-web/public/images/product/chuanbodaili/aizhinenyunzuo.png differ diff --git a/nuxt-web/public/images/product/chuanbodaili/edipeizhi.png b/nuxt-web/public/images/product/chuanbodaili/edipeizhi.png new file mode 100644 index 0000000..66a4c28 Binary files /dev/null and b/nuxt-web/public/images/product/chuanbodaili/edipeizhi.png differ diff --git a/nuxt-web/public/images/product/chuanbodaili/jituanduogongsiguanli.png b/nuxt-web/public/images/product/chuanbodaili/jituanduogongsiguanli.png new file mode 100644 index 0000000..2d6f19f Binary files /dev/null and b/nuxt-web/public/images/product/chuanbodaili/jituanduogongsiguanli.png differ diff --git a/nuxt-web/public/images/product/chuanbodaili/quandaofuwu.png b/nuxt-web/public/images/product/chuanbodaili/quandaofuwu.png new file mode 100644 index 0000000..18d0538 Binary files /dev/null and b/nuxt-web/public/images/product/chuanbodaili/quandaofuwu.png differ diff --git a/nuxt-web/public/images/product/chuanbodaili/shujukeshihua.png b/nuxt-web/public/images/product/chuanbodaili/shujukeshihua.png new file mode 100644 index 0000000..c7c1b27 Binary files /dev/null and b/nuxt-web/public/images/product/chuanbodaili/shujukeshihua.png differ diff --git a/nuxt-web/public/images/product/chuanbodaili/yecaiyitihua.png b/nuxt-web/public/images/product/chuanbodaili/yecaiyitihua.png new file mode 100644 index 0000000..62031dc Binary files /dev/null and b/nuxt-web/public/images/product/chuanbodaili/yecaiyitihua.png differ diff --git a/nuxt-web/public/images/product/chuanboguanli/bikanban.png b/nuxt-web/public/images/product/chuanboguanli/bikanban.png new file mode 100644 index 0000000..8d7b00d Binary files /dev/null and b/nuxt-web/public/images/product/chuanboguanli/bikanban.png differ diff --git a/nuxt-web/public/images/product/chuanboguanli/chanpinzonglan.png b/nuxt-web/public/images/product/chuanboguanli/chanpinzonglan.png new file mode 100644 index 0000000..3a33b93 Binary files /dev/null and b/nuxt-web/public/images/product/chuanboguanli/chanpinzonglan.png differ diff --git a/nuxt-web/public/images/product/chuanboguanli/chuanyuanxinzizidong.png b/nuxt-web/public/images/product/chuanboguanli/chuanyuanxinzizidong.png new file mode 100644 index 0000000..091c29e Binary files /dev/null and b/nuxt-web/public/images/product/chuanboguanli/chuanyuanxinzizidong.png differ diff --git a/nuxt-web/public/images/product/chuanboguanli/feiyongbaoxiaotongyi.png b/nuxt-web/public/images/product/chuanboguanli/feiyongbaoxiaotongyi.png new file mode 100644 index 0000000..33f0c72 Binary files /dev/null and b/nuxt-web/public/images/product/chuanboguanli/feiyongbaoxiaotongyi.png differ diff --git a/nuxt-web/public/images/product/chuanboguanli/gongzuoliuchengtongyi.png b/nuxt-web/public/images/product/chuanboguanli/gongzuoliuchengtongyi.png new file mode 100644 index 0000000..52355cf Binary files /dev/null and b/nuxt-web/public/images/product/chuanboguanli/gongzuoliuchengtongyi.png differ diff --git a/nuxt-web/public/images/product/chuanboguanli/tixiwendangwuzhihua.png b/nuxt-web/public/images/product/chuanboguanli/tixiwendangwuzhihua.png new file mode 100644 index 0000000..f93d3db Binary files /dev/null and b/nuxt-web/public/images/product/chuanboguanli/tixiwendangwuzhihua.png differ diff --git a/nuxt-web/public/images/product/chuanboguanli/yecaiduidong.png b/nuxt-web/public/images/product/chuanboguanli/yecaiduidong.png new file mode 100644 index 0000000..e831648 Binary files /dev/null and b/nuxt-web/public/images/product/chuanboguanli/yecaiduidong.png differ diff --git a/nuxt-web/public/images/product/chuanboguanli/zhengshuyujing.png b/nuxt-web/public/images/product/chuanboguanli/zhengshuyujing.png new file mode 100644 index 0000000..3ce0d14 Binary files /dev/null and b/nuxt-web/public/images/product/chuanboguanli/zhengshuyujing.png differ diff --git a/nuxt-web/public/images/product/chuangongsi/chanpinzonglan.png b/nuxt-web/public/images/product/chuangongsi/chanpinzonglan.png new file mode 100644 index 0000000..2afd929 Binary files /dev/null and b/nuxt-web/public/images/product/chuangongsi/chanpinzonglan.png differ diff --git a/nuxt-web/public/images/product/chuangongsi/chuanbodongtaiguanli.png b/nuxt-web/public/images/product/chuangongsi/chuanbodongtaiguanli.png new file mode 100644 index 0000000..a847d69 Binary files /dev/null and b/nuxt-web/public/images/product/chuangongsi/chuanbodongtaiguanli.png differ diff --git a/nuxt-web/public/images/product/chuangongsi/ediwufengjiaohuan.png b/nuxt-web/public/images/product/chuangongsi/ediwufengjiaohuan.png new file mode 100644 index 0000000..7013b61 Binary files /dev/null and b/nuxt-web/public/images/product/chuangongsi/ediwufengjiaohuan.png differ diff --git a/nuxt-web/public/images/product/chuangongsi/juecekanban.png b/nuxt-web/public/images/product/chuangongsi/juecekanban.png new file mode 100644 index 0000000..51b00a2 Binary files /dev/null and b/nuxt-web/public/images/product/chuangongsi/juecekanban.png differ diff --git a/nuxt-web/public/images/product/chuangongsi/quanqiuheguishipei.png b/nuxt-web/public/images/product/chuangongsi/quanqiuheguishipei.png new file mode 100644 index 0000000..8b26dbd Binary files /dev/null and b/nuxt-web/public/images/product/chuangongsi/quanqiuheguishipei.png differ diff --git a/nuxt-web/public/images/product/chuangongsi/yecailiandong.png b/nuxt-web/public/images/product/chuangongsi/yecailiandong.png new file mode 100644 index 0000000..80bb2cd Binary files /dev/null and b/nuxt-web/public/images/product/chuangongsi/yecailiandong.png differ diff --git a/nuxt-web/public/images/product/chuangongsi/yewuzhinengcaozuo.png b/nuxt-web/public/images/product/chuangongsi/yewuzhinengcaozuo.png new file mode 100644 index 0000000..c1295c5 Binary files /dev/null and b/nuxt-web/public/images/product/chuangongsi/yewuzhinengcaozuo.png differ diff --git a/nuxt-web/public/images/product/haiyundingcang/chanpinjieshao.png b/nuxt-web/public/images/product/haiyundingcang/chanpinjieshao.png new file mode 100644 index 0000000..8359a56 Binary files /dev/null and b/nuxt-web/public/images/product/haiyundingcang/chanpinjieshao.png differ diff --git a/nuxt-web/public/images/product/haiyundingcang/duoduanxietongchuda.png b/nuxt-web/public/images/product/haiyundingcang/duoduanxietongchuda.png new file mode 100644 index 0000000..d06bc2f Binary files /dev/null and b/nuxt-web/public/images/product/haiyundingcang/duoduanxietongchuda.png differ diff --git a/nuxt-web/public/images/product/haiyundingcang/fuwuchanpinhua.png b/nuxt-web/public/images/product/haiyundingcang/fuwuchanpinhua.png new file mode 100644 index 0000000..3e3c8da Binary files /dev/null and b/nuxt-web/public/images/product/haiyundingcang/fuwuchanpinhua.png differ diff --git a/nuxt-web/public/images/product/haiyundingcang/quanchenglukeshihuagenzong.png b/nuxt-web/public/images/product/haiyundingcang/quanchenglukeshihuagenzong.png new file mode 100644 index 0000000..a1574b4 Binary files /dev/null and b/nuxt-web/public/images/product/haiyundingcang/quanchenglukeshihuagenzong.png differ diff --git a/nuxt-web/public/images/product/haiyundingcang/zhinengyingxiaozhongxin.png b/nuxt-web/public/images/product/haiyundingcang/zhinengyingxiaozhongxin.png new file mode 100644 index 0000000..55866ba Binary files /dev/null and b/nuxt-web/public/images/product/haiyundingcang/zhinengyingxiaozhongxin.png differ diff --git a/nuxt-web/public/images/product/haiyundingcang/zidonghuaguizeyinqing.png b/nuxt-web/public/images/product/haiyundingcang/zidonghuaguizeyinqing.png new file mode 100644 index 0000000..dfa6fe7 Binary files /dev/null and b/nuxt-web/public/images/product/haiyundingcang/zidonghuaguizeyinqing.png differ diff --git a/nuxt-web/public/images/product/huoyundaili/edizidongduijie.png b/nuxt-web/public/images/product/huoyundaili/edizidongduijie.png new file mode 100644 index 0000000..7263aa8 Binary files /dev/null and b/nuxt-web/public/images/product/huoyundaili/edizidongduijie.png differ diff --git a/nuxt-web/public/images/product/huoyundaili/jifeilinghuohua.png b/nuxt-web/public/images/product/huoyundaili/jifeilinghuohua.png new file mode 100644 index 0000000..fd036f3 Binary files /dev/null and b/nuxt-web/public/images/product/huoyundaili/jifeilinghuohua.png differ diff --git a/nuxt-web/public/images/product/huoyundaili/liuchengbiaozhunhua.png b/nuxt-web/public/images/product/huoyundaili/liuchengbiaozhunhua.png new file mode 100644 index 0000000..d8d0e98 Binary files /dev/null and b/nuxt-web/public/images/product/huoyundaili/liuchengbiaozhunhua.png differ diff --git a/nuxt-web/public/images/product/huoyundaili/ludanzhinenghua.png b/nuxt-web/public/images/product/huoyundaili/ludanzhinenghua.png new file mode 100644 index 0000000..55e41cc Binary files /dev/null and b/nuxt-web/public/images/product/huoyundaili/ludanzhinenghua.png differ diff --git a/nuxt-web/public/images/product/ilog/chanpinjieshao.png b/nuxt-web/public/images/product/ilog/chanpinjieshao.png new file mode 100644 index 0000000..addcc40 Binary files /dev/null and b/nuxt-web/public/images/product/ilog/chanpinjieshao.png differ diff --git a/nuxt-web/public/images/product/ilog/duiwaixitongduijie.png b/nuxt-web/public/images/product/ilog/duiwaixitongduijie.png new file mode 100644 index 0000000..48fffa8 Binary files /dev/null and b/nuxt-web/public/images/product/ilog/duiwaixitongduijie.png differ diff --git a/nuxt-web/public/images/product/ilog/duoduanxietongbangong.png b/nuxt-web/public/images/product/ilog/duoduanxietongbangong.png new file mode 100644 index 0000000..af8fdd9 Binary files /dev/null and b/nuxt-web/public/images/product/ilog/duoduanxietongbangong.png differ diff --git a/nuxt-web/public/images/product/ilog/jituantongyiguanli.png b/nuxt-web/public/images/product/ilog/jituantongyiguanli.png new file mode 100644 index 0000000..39dae5e Binary files /dev/null and b/nuxt-web/public/images/product/ilog/jituantongyiguanli.png differ diff --git a/nuxt-web/public/images/product/ilog/mokuaihuapeizhi.png b/nuxt-web/public/images/product/ilog/mokuaihuapeizhi.png new file mode 100644 index 0000000..8f05020 Binary files /dev/null and b/nuxt-web/public/images/product/ilog/mokuaihuapeizhi.png differ diff --git a/nuxt-web/public/images/product/ilog/shujuzidongliuzhuan.png b/nuxt-web/public/images/product/ilog/shujuzidongliuzhuan.png new file mode 100644 index 0000000..b37851e Binary files /dev/null and b/nuxt-web/public/images/product/ilog/shujuzidongliuzhuan.png differ diff --git a/nuxt-web/public/images/product/jizhuangxiang/chanpinjieshao.png b/nuxt-web/public/images/product/jizhuangxiang/chanpinjieshao.png new file mode 100644 index 0000000..917d66e Binary files /dev/null and b/nuxt-web/public/images/product/jizhuangxiang/chanpinjieshao.png differ diff --git a/nuxt-web/public/images/product/jizhuangxiang/chayanzuoyequanliuchengkeshihua.png b/nuxt-web/public/images/product/jizhuangxiang/chayanzuoyequanliuchengkeshihua.png new file mode 100644 index 0000000..6193744 Binary files /dev/null and b/nuxt-web/public/images/product/jizhuangxiang/chayanzuoyequanliuchengkeshihua.png differ diff --git a/nuxt-web/public/images/product/jizhuangxiang/duichangquanjingkeshihua.png b/nuxt-web/public/images/product/jizhuangxiang/duichangquanjingkeshihua.png new file mode 100644 index 0000000..b603896 Binary files /dev/null and b/nuxt-web/public/images/product/jizhuangxiang/duichangquanjingkeshihua.png differ diff --git a/nuxt-web/public/images/product/jizhuangxiang/duoluzuoyezhinengjunheng.png b/nuxt-web/public/images/product/jizhuangxiang/duoluzuoyezhinengjunheng.png new file mode 100644 index 0000000..bf2bae8 Binary files /dev/null and b/nuxt-web/public/images/product/jizhuangxiang/duoluzuoyezhinengjunheng.png differ diff --git a/nuxt-web/public/images/product/jizhuangxiang/quanzidongduichangjihua.png b/nuxt-web/public/images/product/jizhuangxiang/quanzidongduichangjihua.png new file mode 100644 index 0000000..f0e59c3 Binary files /dev/null and b/nuxt-web/public/images/product/jizhuangxiang/quanzidongduichangjihua.png differ diff --git a/nuxt-web/public/images/product/jizhuangxiang/wurenzhishouzidonghuazhakou.png b/nuxt-web/public/images/product/jizhuangxiang/wurenzhishouzidonghuazhakou.png new file mode 100644 index 0000000..152e0f2 Binary files /dev/null and b/nuxt-web/public/images/product/jizhuangxiang/wurenzhishouzidonghuazhakou.png differ diff --git a/nuxt-web/public/images/product/jizhuangxiang/zhinengchuanbopeizai.png b/nuxt-web/public/images/product/jizhuangxiang/zhinengchuanbopeizai.png new file mode 100644 index 0000000..77f7b3d Binary files /dev/null and b/nuxt-web/public/images/product/jizhuangxiang/zhinengchuanbopeizai.png differ diff --git a/nuxt-web/public/images/product/jizhuangxiang/zhinengduichangyouhua.png b/nuxt-web/public/images/product/jizhuangxiang/zhinengduichangyouhua.png new file mode 100644 index 0000000..edb3d1e Binary files /dev/null and b/nuxt-web/public/images/product/jizhuangxiang/zhinengduichangyouhua.png differ diff --git a/nuxt-web/public/images/product/sanzahuo/bsjiagoubianjieshiyong.png b/nuxt-web/public/images/product/sanzahuo/bsjiagoubianjieshiyong.png new file mode 100644 index 0000000..3121cc1 Binary files /dev/null and b/nuxt-web/public/images/product/sanzahuo/bsjiagoubianjieshiyong.png differ diff --git a/nuxt-web/public/images/product/sanzahuo/chanpinjieshao.png b/nuxt-web/public/images/product/sanzahuo/chanpinjieshao.png new file mode 100644 index 0000000..f5d415b Binary files /dev/null and b/nuxt-web/public/images/product/sanzahuo/chanpinjieshao.png differ diff --git a/nuxt-web/public/images/product/sanzahuo/duomatoutongyiguankong.png b/nuxt-web/public/images/product/sanzahuo/duomatoutongyiguankong.png new file mode 100644 index 0000000..df6d903 Binary files /dev/null and b/nuxt-web/public/images/product/sanzahuo/duomatoutongyiguankong.png differ diff --git a/nuxt-web/public/images/product/sanzahuo/guojihuaduoyuyanzhichi.png b/nuxt-web/public/images/product/sanzahuo/guojihuaduoyuyanzhichi.png new file mode 100644 index 0000000..64e403e Binary files /dev/null and b/nuxt-web/public/images/product/sanzahuo/guojihuaduoyuyanzhichi.png differ diff --git a/nuxt-web/public/images/product/sanzahuo/huowushishidingweiyuzhuizong.png b/nuxt-web/public/images/product/sanzahuo/huowushishidingweiyuzhuizong.png new file mode 100644 index 0000000..0caf284 Binary files /dev/null and b/nuxt-web/public/images/product/sanzahuo/huowushishidingweiyuzhuizong.png differ diff --git a/nuxt-web/public/images/product/sanzahuo/shangxiayouxitongduijie.png b/nuxt-web/public/images/product/sanzahuo/shangxiayouxitongduijie.png new file mode 100644 index 0000000..8cfcacb Binary files /dev/null and b/nuxt-web/public/images/product/sanzahuo/shangxiayouxitongduijie.png differ diff --git a/nuxt-web/public/images/product/sanzahuo/yecaiyitihuaguanli.png b/nuxt-web/public/images/product/sanzahuo/yecaiyitihuaguanli.png new file mode 100644 index 0000000..70598ac Binary files /dev/null and b/nuxt-web/public/images/product/sanzahuo/yecaiyitihuaguanli.png differ diff --git a/nuxt-web/public/images/product/sanzahuo/zhinengzhaokouyuzidongshibie.png b/nuxt-web/public/images/product/sanzahuo/zhinengzhaokouyuzidongshibie.png new file mode 100644 index 0000000..a35e439 Binary files /dev/null and b/nuxt-web/public/images/product/sanzahuo/zhinengzhaokouyuzidongshibie.png differ diff --git a/nuxt-web/public/images/product/wangluohuoyun/huowuquanchengzhuisu.png b/nuxt-web/public/images/product/wangluohuoyun/huowuquanchengzhuisu.png new file mode 100644 index 0000000..5ef5a47 Binary files /dev/null and b/nuxt-web/public/images/product/wangluohuoyun/huowuquanchengzhuisu.png differ diff --git a/nuxt-web/public/images/product/wangluohuoyun/jiangdijishuyunchengben.png b/nuxt-web/public/images/product/wangluohuoyun/jiangdijishuyunchengben.png new file mode 100644 index 0000000..5e97b22 Binary files /dev/null and b/nuxt-web/public/images/product/wangluohuoyun/jiangdijishuyunchengben.png differ diff --git a/nuxt-web/public/images/product/wangluohuoyun/tishengfuwujingzhengli.png b/nuxt-web/public/images/product/wangluohuoyun/tishengfuwujingzhengli.png new file mode 100644 index 0000000..095603d Binary files /dev/null and b/nuxt-web/public/images/product/wangluohuoyun/tishengfuwujingzhengli.png differ diff --git a/nuxt-web/public/images/product/wangluohuoyun/tishengjishuyunnengli.png b/nuxt-web/public/images/product/wangluohuoyun/tishengjishuyunnengli.png new file mode 100644 index 0000000..b20776a Binary files /dev/null and b/nuxt-web/public/images/product/wangluohuoyun/tishengjishuyunnengli.png differ diff --git a/nuxt-web/public/images/product/wangluohuoyun/xietongdashujufenxi.png b/nuxt-web/public/images/product/wangluohuoyun/xietongdashujufenxi.png new file mode 100644 index 0000000..dd90e68 Binary files /dev/null and b/nuxt-web/public/images/product/wangluohuoyun/xietongdashujufenxi.png differ diff --git a/nuxt-web/public/images/product/wangshangyewudating/aifuzhushenhe.png b/nuxt-web/public/images/product/wangshangyewudating/aifuzhushenhe.png new file mode 100644 index 0000000..b6bf9c2 Binary files /dev/null and b/nuxt-web/public/images/product/wangshangyewudating/aifuzhushenhe.png differ diff --git a/nuxt-web/public/images/product/wangshangyewudating/chanpingailan.png b/nuxt-web/public/images/product/wangshangyewudating/chanpingailan.png new file mode 100644 index 0000000..a572d64 Binary files /dev/null and b/nuxt-web/public/images/product/wangshangyewudating/chanpingailan.png differ diff --git a/nuxt-web/public/images/product/wangshangyewudating/guanlikeshihua.png b/nuxt-web/public/images/product/wangshangyewudating/guanlikeshihua.png new file mode 100644 index 0000000..16d4b38 Binary files /dev/null and b/nuxt-web/public/images/product/wangshangyewudating/guanlikeshihua.png differ diff --git a/nuxt-web/public/images/product/wangshangyewudating/qianhouduanliandong.png b/nuxt-web/public/images/product/wangshangyewudating/qianhouduanliandong.png new file mode 100644 index 0000000..759194c Binary files /dev/null and b/nuxt-web/public/images/product/wangshangyewudating/qianhouduanliandong.png differ diff --git a/nuxt-web/public/images/product/wangshangyewudating/yidongbangong.png b/nuxt-web/public/images/product/wangshangyewudating/yidongbangong.png new file mode 100644 index 0000000..c64de0d Binary files /dev/null and b/nuxt-web/public/images/product/wangshangyewudating/yidongbangong.png differ diff --git a/nuxt-web/public/images/product/wangshangyewudating/zhifuyitihua.png b/nuxt-web/public/images/product/wangshangyewudating/zhifuyitihua.png new file mode 100644 index 0000000..2a90b2e Binary files /dev/null and b/nuxt-web/public/images/product/wangshangyewudating/zhifuyitihua.png differ diff --git a/nuxt-web/public/images/product/wangshangyewudating/zhinengliuchengtixiao.png b/nuxt-web/public/images/product/wangshangyewudating/zhinengliuchengtixiao.png new file mode 100644 index 0000000..bb34493 Binary files /dev/null and b/nuxt-web/public/images/product/wangshangyewudating/zhinengliuchengtixiao.png differ diff --git a/nuxt-web/public/images/product/yitihua/bsjiagoubianjieshiyong.png b/nuxt-web/public/images/product/yitihua/bsjiagoubianjieshiyong.png new file mode 100644 index 0000000..29b1d65 Binary files /dev/null and b/nuxt-web/public/images/product/yitihua/bsjiagoubianjieshiyong.png differ diff --git a/nuxt-web/public/images/product/yitihua/chanpinjieshao.png b/nuxt-web/public/images/product/yitihua/chanpinjieshao.png new file mode 100644 index 0000000..0e95941 Binary files /dev/null and b/nuxt-web/public/images/product/yitihua/chanpinjieshao.png differ diff --git a/nuxt-web/public/images/product/yitihua/chayanzuoyequanliuchengkeshihua.png b/nuxt-web/public/images/product/yitihua/chayanzuoyequanliuchengkeshihua.png new file mode 100644 index 0000000..b95b41d Binary files /dev/null and b/nuxt-web/public/images/product/yitihua/chayanzuoyequanliuchengkeshihua.png differ diff --git a/nuxt-web/public/images/product/yitihua/duichangquanjingkeshihua.png b/nuxt-web/public/images/product/yitihua/duichangquanjingkeshihua.png new file mode 100644 index 0000000..020421a Binary files /dev/null and b/nuxt-web/public/images/product/yitihua/duichangquanjingkeshihua.png differ diff --git a/nuxt-web/public/images/product/yitihua/duoluzuoyezhinengjunheng.png b/nuxt-web/public/images/product/yitihua/duoluzuoyezhinengjunheng.png new file mode 100644 index 0000000..663fe00 Binary files /dev/null and b/nuxt-web/public/images/product/yitihua/duoluzuoyezhinengjunheng.png differ diff --git a/nuxt-web/public/images/product/yitihua/quanzidongduichangjihua.png b/nuxt-web/public/images/product/yitihua/quanzidongduichangjihua.png new file mode 100644 index 0000000..6e646bc Binary files /dev/null and b/nuxt-web/public/images/product/yitihua/quanzidongduichangjihua.png differ diff --git a/nuxt-web/public/images/product/yitihua/wurenzhishouzidonghuazhakou.png b/nuxt-web/public/images/product/yitihua/wurenzhishouzidonghuazhakou.png new file mode 100644 index 0000000..368377b Binary files /dev/null and b/nuxt-web/public/images/product/yitihua/wurenzhishouzidonghuazhakou.png differ diff --git a/nuxt-web/public/images/product/yitihua/zhinengchuanbopeizai.png b/nuxt-web/public/images/product/yitihua/zhinengchuanbopeizai.png new file mode 100644 index 0000000..3d3b509 Binary files /dev/null and b/nuxt-web/public/images/product/yitihua/zhinengchuanbopeizai.png differ diff --git a/nuxt-web/public/images/product/yitihua/zhinengduichangyouhua.png b/nuxt-web/public/images/product/yitihua/zhinengduichangyouhua.png new file mode 100644 index 0000000..29b1d65 Binary files /dev/null and b/nuxt-web/public/images/product/yitihua/zhinengduichangyouhua.png differ diff --git a/nuxt-web/public/images/product/yunchangzhan/duichangtuxinghuaquanjingkeshihua.png b/nuxt-web/public/images/product/yunchangzhan/duichangtuxinghuaquanjingkeshihua.png new file mode 100644 index 0000000..19771eb Binary files /dev/null and b/nuxt-web/public/images/product/yunchangzhan/duichangtuxinghuaquanjingkeshihua.png differ diff --git a/nuxt-web/public/images/product/yunchangzhan/duoluzuoyezhinengjunhengdiaodu.png b/nuxt-web/public/images/product/yunchangzhan/duoluzuoyezhinengjunhengdiaodu.png new file mode 100644 index 0000000..a598ddc Binary files /dev/null and b/nuxt-web/public/images/product/yunchangzhan/duoluzuoyezhinengjunhengdiaodu.png differ diff --git a/nuxt-web/public/images/product/yunchangzhan/jituanguankongyushujujuece.png b/nuxt-web/public/images/product/yunchangzhan/jituanguankongyushujujuece.png new file mode 100644 index 0000000..77daca3 Binary files /dev/null and b/nuxt-web/public/images/product/yunchangzhan/jituanguankongyushujujuece.png differ diff --git a/nuxt-web/public/images/product/yunchangzhan/wurenzhishouzhinengzhakou.png b/nuxt-web/public/images/product/yunchangzhan/wurenzhishouzhinengzhakou.png new file mode 100644 index 0000000..e8a355e Binary files /dev/null and b/nuxt-web/public/images/product/yunchangzhan/wurenzhishouzhinengzhakou.png differ diff --git a/nuxt-web/public/images/product/yunchangzhan/yidongzuoyewuzhihuashishicaiji.png b/nuxt-web/public/images/product/yunchangzhan/yidongzuoyewuzhihuashishicaiji.png new file mode 100644 index 0000000..6399a98 Binary files /dev/null and b/nuxt-web/public/images/product/yunchangzhan/yidongzuoyewuzhihuashishicaiji.png differ diff --git a/nuxt-web/public/images/product/yunchangzhan/zhinengduichangjihuayuzidongpaiwei.png b/nuxt-web/public/images/product/yunchangzhan/zhinengduichangjihuayuzidongpaiwei.png new file mode 100644 index 0000000..450fea4 Binary files /dev/null and b/nuxt-web/public/images/product/yunchangzhan/zhinengduichangjihuayuzidongpaiwei.png differ diff --git a/nuxt-web/public/images/product/yunchangzhan/zhinengjifeiyuzidongjiesuan.png b/nuxt-web/public/images/product/yunchangzhan/zhinengjifeiyuzidongjiesuan.png new file mode 100644 index 0000000..ca9c3ec Binary files /dev/null and b/nuxt-web/public/images/product/yunchangzhan/zhinengjifeiyuzidongjiesuan.png differ diff --git a/nuxt-web/public/images/project/agNetCargoPlatform/product_architecture.webp b/nuxt-web/public/images/project/agNetCargoPlatform/product_architecture.webp new file mode 100644 index 0000000..33886eb Binary files /dev/null and b/nuxt-web/public/images/project/agNetCargoPlatform/product_architecture.webp differ diff --git a/nuxt-web/public/images/project/agNetCargoPlatform/top-origin.webp b/nuxt-web/public/images/project/agNetCargoPlatform/top-origin.webp new file mode 100644 index 0000000..467937a Binary files /dev/null and b/nuxt-web/public/images/project/agNetCargoPlatform/top-origin.webp differ diff --git a/nuxt-web/public/images/project/agNetCargoPlatform/top.webp b/nuxt-web/public/images/project/agNetCargoPlatform/top.webp new file mode 100644 index 0000000..34c77e3 Binary files /dev/null and b/nuxt-web/public/images/project/agNetCargoPlatform/top.webp differ diff --git a/nuxt-web/public/images/project/agNetCargoPlatform/top2.png b/nuxt-web/public/images/project/agNetCargoPlatform/top2.png new file mode 100644 index 0000000..54e0edb Binary files /dev/null and b/nuxt-web/public/images/project/agNetCargoPlatform/top2.png differ diff --git a/nuxt-web/public/images/project/agNetCargoPlatform/top3.png b/nuxt-web/public/images/project/agNetCargoPlatform/top3.png new file mode 100644 index 0000000..ed5af3c Binary files /dev/null and b/nuxt-web/public/images/project/agNetCargoPlatform/top3.png differ diff --git a/nuxt-web/public/images/project/agNetCargoPlatform/top4.png b/nuxt-web/public/images/project/agNetCargoPlatform/top4.png new file mode 100644 index 0000000..e374cc7 Binary files /dev/null and b/nuxt-web/public/images/project/agNetCargoPlatform/top4.png differ diff --git a/nuxt-web/public/images/project/common/Group-10-Copy-4.svg b/nuxt-web/public/images/project/common/Group-10-Copy-4.svg new file mode 100644 index 0000000..41ce408 --- /dev/null +++ b/nuxt-web/public/images/project/common/Group-10-Copy-4.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/Group-121-Copy.svg b/nuxt-web/public/images/project/common/Group-121-Copy.svg new file mode 100644 index 0000000..e3ead7f --- /dev/null +++ b/nuxt-web/public/images/project/common/Group-121-Copy.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/Group-124-Copy-1.svg b/nuxt-web/public/images/project/common/Group-124-Copy-1.svg new file mode 100644 index 0000000..62b5ce3 --- /dev/null +++ b/nuxt-web/public/images/project/common/Group-124-Copy-1.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/Group-15-Copy-3.svg b/nuxt-web/public/images/project/common/Group-15-Copy-3.svg new file mode 100644 index 0000000..9f97677 --- /dev/null +++ b/nuxt-web/public/images/project/common/Group-15-Copy-3.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/Group-21.svg b/nuxt-web/public/images/project/common/Group-21.svg new file mode 100644 index 0000000..ec06b19 --- /dev/null +++ b/nuxt-web/public/images/project/common/Group-21.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/Group-4-Copy-4.svg b/nuxt-web/public/images/project/common/Group-4-Copy-4.svg new file mode 100644 index 0000000..b7c2809 --- /dev/null +++ b/nuxt-web/public/images/project/common/Group-4-Copy-4.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/Group-5-Copy-3.svg b/nuxt-web/public/images/project/common/Group-5-Copy-3.svg new file mode 100644 index 0000000..e229218 --- /dev/null +++ b/nuxt-web/public/images/project/common/Group-5-Copy-3.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/Group-60.svg b/nuxt-web/public/images/project/common/Group-60.svg new file mode 100644 index 0000000..afeb6e9 --- /dev/null +++ b/nuxt-web/public/images/project/common/Group-60.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/Group.svg b/nuxt-web/public/images/project/common/Group.svg new file mode 100644 index 0000000..9ac10a9 --- /dev/null +++ b/nuxt-web/public/images/project/common/Group.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/智慧物业-copy-2.svg b/nuxt-web/public/images/project/common/智慧物业-copy-2.svg new file mode 100644 index 0000000..115ed08 --- /dev/null +++ b/nuxt-web/public/images/project/common/智慧物业-copy-2.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/编组-14.svg b/nuxt-web/public/images/project/common/编组-14.svg new file mode 100644 index 0000000..eb9bee7 --- /dev/null +++ b/nuxt-web/public/images/project/common/编组-14.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/编组-2-copy-5.svg b/nuxt-web/public/images/project/common/编组-2-copy-5.svg new file mode 100644 index 0000000..1123fb9 --- /dev/null +++ b/nuxt-web/public/images/project/common/编组-2-copy-5.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/资源_10.svg b/nuxt-web/public/images/project/common/资源_10.svg new file mode 100644 index 0000000..30a2f6f --- /dev/null +++ b/nuxt-web/public/images/project/common/资源_10.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/资源_2.svg b/nuxt-web/public/images/project/common/资源_2.svg new file mode 100644 index 0000000..3241b1e --- /dev/null +++ b/nuxt-web/public/images/project/common/资源_2.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/资源_3.svg b/nuxt-web/public/images/project/common/资源_3.svg new file mode 100644 index 0000000..3dbf3d9 --- /dev/null +++ b/nuxt-web/public/images/project/common/资源_3.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/资源_4.svg b/nuxt-web/public/images/project/common/资源_4.svg new file mode 100644 index 0000000..aea2613 --- /dev/null +++ b/nuxt-web/public/images/project/common/资源_4.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/资源_5.svg b/nuxt-web/public/images/project/common/资源_5.svg new file mode 100644 index 0000000..9ff1dc5 --- /dev/null +++ b/nuxt-web/public/images/project/common/资源_5.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/资源_6.svg b/nuxt-web/public/images/project/common/资源_6.svg new file mode 100644 index 0000000..4739e1d --- /dev/null +++ b/nuxt-web/public/images/project/common/资源_6.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/资源_8.svg b/nuxt-web/public/images/project/common/资源_8.svg new file mode 100644 index 0000000..f0b386c --- /dev/null +++ b/nuxt-web/public/images/project/common/资源_8.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/common/资源_9.svg b/nuxt-web/public/images/project/common/资源_9.svg new file mode 100644 index 0000000..2b95cf3 --- /dev/null +++ b/nuxt-web/public/images/project/common/资源_9.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nuxt-web/public/images/project/ecommerce/bctp.webp b/nuxt-web/public/images/project/ecommerce/bctp.webp new file mode 100644 index 0000000..7678c83 Binary files /dev/null and b/nuxt-web/public/images/project/ecommerce/bctp.webp differ diff --git a/nuxt-web/public/images/project/ecommerce/booking.webp b/nuxt-web/public/images/project/ecommerce/booking.webp new file mode 100644 index 0000000..320f875 Binary files /dev/null and b/nuxt-web/public/images/project/ecommerce/booking.webp differ diff --git a/nuxt-web/public/images/project/ecommerce/cargo.webp b/nuxt-web/public/images/project/ecommerce/cargo.webp new file mode 100644 index 0000000..e1897f5 Binary files /dev/null and b/nuxt-web/public/images/project/ecommerce/cargo.webp differ diff --git a/nuxt-web/public/images/project/ecommerce/obh.webp b/nuxt-web/public/images/project/ecommerce/obh.webp new file mode 100644 index 0000000..e8906a5 Binary files /dev/null and b/nuxt-web/public/images/project/ecommerce/obh.webp differ diff --git a/nuxt-web/public/images/project/port/bulk.webp b/nuxt-web/public/images/project/port/bulk.webp new file mode 100644 index 0000000..61aed9e Binary files /dev/null and b/nuxt-web/public/images/project/port/bulk.webp differ diff --git a/nuxt-web/public/images/project/port/cdi.webp b/nuxt-web/public/images/project/port/cdi.webp new file mode 100644 index 0000000..53634f1 Binary files /dev/null and b/nuxt-web/public/images/project/port/cdi.webp differ diff --git a/nuxt-web/public/images/project/port/cdi2.webp b/nuxt-web/public/images/project/port/cdi2.webp new file mode 100644 index 0000000..e857366 Binary files /dev/null and b/nuxt-web/public/images/project/port/cdi2.webp differ diff --git a/nuxt-web/public/images/project/port/yunchangzhan.png b/nuxt-web/public/images/project/port/yunchangzhan.png new file mode 100644 index 0000000..103eab2 Binary files /dev/null and b/nuxt-web/public/images/project/port/yunchangzhan.png differ diff --git a/nuxt-web/public/images/project/product_full_logistics_chain_platform/car_management.webp b/nuxt-web/public/images/project/product_full_logistics_chain_platform/car_management.webp new file mode 100644 index 0000000..08a062f Binary files /dev/null and b/nuxt-web/public/images/project/product_full_logistics_chain_platform/car_management.webp differ diff --git a/nuxt-web/public/images/project/product_full_logistics_chain_platform/cargo_agent.webp b/nuxt-web/public/images/project/product_full_logistics_chain_platform/cargo_agent.webp new file mode 100644 index 0000000..76e03b2 Binary files /dev/null and b/nuxt-web/public/images/project/product_full_logistics_chain_platform/cargo_agent.webp differ diff --git a/nuxt-web/public/images/project/product_full_logistics_chain_platform/platform.webp b/nuxt-web/public/images/project/product_full_logistics_chain_platform/platform.webp new file mode 100644 index 0000000..974b3fd Binary files /dev/null and b/nuxt-web/public/images/project/product_full_logistics_chain_platform/platform.webp differ diff --git a/nuxt-web/public/images/project/product_full_logistics_chain_platform/ship_agent.webp b/nuxt-web/public/images/project/product_full_logistics_chain_platform/ship_agent.webp new file mode 100644 index 0000000..949a29b Binary files /dev/null and b/nuxt-web/public/images/project/product_full_logistics_chain_platform/ship_agent.webp differ diff --git a/nuxt-web/public/images/project/product_full_logistics_chain_platform/warehouse.webp b/nuxt-web/public/images/project/product_full_logistics_chain_platform/warehouse.webp new file mode 100644 index 0000000..9977154 Binary files /dev/null and b/nuxt-web/public/images/project/product_full_logistics_chain_platform/warehouse.webp differ diff --git a/nuxt-web/public/images/project/shipping/boat.webp b/nuxt-web/public/images/project/shipping/boat.webp new file mode 100644 index 0000000..9369b5a Binary files /dev/null and b/nuxt-web/public/images/project/shipping/boat.webp differ diff --git a/nuxt-web/public/images/project/shipping/company.webp b/nuxt-web/public/images/project/shipping/company.webp new file mode 100644 index 0000000..f2f2f3e Binary files /dev/null and b/nuxt-web/public/images/project/shipping/company.webp differ diff --git a/nuxt-web/public/images/qiaoyilogo.png b/nuxt-web/public/images/qiaoyilogo.png new file mode 100644 index 0000000..e667645 Binary files /dev/null and b/nuxt-web/public/images/qiaoyilogo.png differ diff --git a/nuxt-web/public/images/rizhao.png b/nuxt-web/public/images/rizhao.png new file mode 100644 index 0000000..0455c74 Binary files /dev/null and b/nuxt-web/public/images/rizhao.png differ diff --git a/nuxt-web/public/images/rongyu.webp b/nuxt-web/public/images/rongyu.webp new file mode 100644 index 0000000..80636cd Binary files /dev/null and b/nuxt-web/public/images/rongyu.webp differ diff --git a/nuxt-web/public/images/sanshui.png b/nuxt-web/public/images/sanshui.png new file mode 100644 index 0000000..120f6ca Binary files /dev/null and b/nuxt-web/public/images/sanshui.png differ diff --git a/nuxt-web/public/images/shanghaigang.png b/nuxt-web/public/images/shanghaigang.png new file mode 100644 index 0000000..5347ab5 Binary files /dev/null and b/nuxt-web/public/images/shanghaigang.png differ diff --git a/nuxt-web/public/images/shanghaihede.webp b/nuxt-web/public/images/shanghaihede.webp new file mode 100644 index 0000000..0fea912 Binary files /dev/null and b/nuxt-web/public/images/shanghaihede.webp differ diff --git a/nuxt-web/public/images/shanghaipenghua 2.jpg b/nuxt-web/public/images/shanghaipenghua 2.jpg new file mode 100644 index 0000000..2754af2 Binary files /dev/null and b/nuxt-web/public/images/shanghaipenghua 2.jpg differ diff --git a/nuxt-web/public/images/shanghaipenghua.jpg b/nuxt-web/public/images/shanghaipenghua.jpg new file mode 100644 index 0000000..2754af2 Binary files /dev/null and b/nuxt-web/public/images/shanghaipenghua.jpg differ diff --git a/nuxt-web/public/images/shiyou.png b/nuxt-web/public/images/shiyou.png new file mode 100644 index 0000000..3a3326a Binary files /dev/null and b/nuxt-web/public/images/shiyou.png differ diff --git a/nuxt-web/public/images/site.png b/nuxt-web/public/images/site.png new file mode 100644 index 0000000..0f1220f Binary files /dev/null and b/nuxt-web/public/images/site.png differ diff --git a/nuxt-web/public/images/sj.png b/nuxt-web/public/images/sj.png new file mode 100644 index 0000000..d1a3274 Binary files /dev/null and b/nuxt-web/public/images/sj.png differ diff --git a/nuxt-web/public/images/slider/slide-1.jpg.webp b/nuxt-web/public/images/slider/slide-1.jpg.webp new file mode 100644 index 0000000..cf65c07 Binary files /dev/null and b/nuxt-web/public/images/slider/slide-1.jpg.webp differ diff --git a/nuxt-web/public/images/slider/slide-1.png b/nuxt-web/public/images/slider/slide-1.png new file mode 100644 index 0000000..9237d7e Binary files /dev/null and b/nuxt-web/public/images/slider/slide-1.png differ diff --git a/nuxt-web/public/images/slider/slide-2-origin.webp b/nuxt-web/public/images/slider/slide-2-origin.webp new file mode 100644 index 0000000..5efff13 Binary files /dev/null and b/nuxt-web/public/images/slider/slide-2-origin.webp differ diff --git a/nuxt-web/public/images/slider/slide-2.png b/nuxt-web/public/images/slider/slide-2.png new file mode 100644 index 0000000..a3ec238 Binary files /dev/null and b/nuxt-web/public/images/slider/slide-2.png differ diff --git a/nuxt-web/public/images/slider/slide-2.webp b/nuxt-web/public/images/slider/slide-2.webp new file mode 100644 index 0000000..e954656 Binary files /dev/null and b/nuxt-web/public/images/slider/slide-2.webp differ diff --git a/nuxt-web/public/images/slider/slide-3.jpg b/nuxt-web/public/images/slider/slide-3.jpg new file mode 100644 index 0000000..fea5f61 Binary files /dev/null and b/nuxt-web/public/images/slider/slide-3.jpg differ diff --git a/nuxt-web/public/images/sol-img-4.webp b/nuxt-web/public/images/sol-img-4.webp new file mode 100644 index 0000000..62630eb Binary files /dev/null and b/nuxt-web/public/images/sol-img-4.webp differ diff --git a/nuxt-web/public/images/solution/bg.png b/nuxt-web/public/images/solution/bg.png new file mode 100644 index 0000000..45fc044 Binary files /dev/null and b/nuxt-web/public/images/solution/bg.png differ diff --git a/nuxt-web/public/images/solution/chain.webp b/nuxt-web/public/images/solution/chain.webp new file mode 100644 index 0000000..350cd07 Binary files /dev/null and b/nuxt-web/public/images/solution/chain.webp differ diff --git a/nuxt-web/public/images/solution/dazong.png b/nuxt-web/public/images/solution/dazong.png new file mode 100644 index 0000000..d9f33fb Binary files /dev/null and b/nuxt-web/public/images/solution/dazong.png differ diff --git a/nuxt-web/public/images/solution/gangkou.png b/nuxt-web/public/images/solution/gangkou.png new file mode 100644 index 0000000..b4206a3 Binary files /dev/null and b/nuxt-web/public/images/solution/gangkou.png differ diff --git a/nuxt-web/public/images/solution/neihe.png b/nuxt-web/public/images/solution/neihe.png new file mode 100644 index 0000000..f579bb1 Binary files /dev/null and b/nuxt-web/public/images/solution/neihe.png differ diff --git a/nuxt-web/public/images/solution/neihe.webp b/nuxt-web/public/images/solution/neihe.webp new file mode 100644 index 0000000..3dceace Binary files /dev/null and b/nuxt-web/public/images/solution/neihe.webp differ diff --git a/nuxt-web/public/images/solution/port_supply_chain.webp b/nuxt-web/public/images/solution/port_supply_chain.webp new file mode 100644 index 0000000..d098124 Binary files /dev/null and b/nuxt-web/public/images/solution/port_supply_chain.webp differ diff --git a/nuxt-web/public/images/solution/quancheng.png b/nuxt-web/public/images/solution/quancheng.png new file mode 100644 index 0000000..2ed8e05 Binary files /dev/null and b/nuxt-web/public/images/solution/quancheng.png differ diff --git a/nuxt-web/public/images/solution/supply_chain_goods.webp b/nuxt-web/public/images/solution/supply_chain_goods.webp new file mode 100644 index 0000000..92db582 Binary files /dev/null and b/nuxt-web/public/images/solution/supply_chain_goods.webp differ diff --git a/nuxt-web/public/images/tangshangang.jpg b/nuxt-web/public/images/tangshangang.jpg new file mode 100644 index 0000000..76c7c20 Binary files /dev/null and b/nuxt-web/public/images/tangshangang.jpg differ diff --git a/nuxt-web/public/images/testimonials-bg-2.png b/nuxt-web/public/images/testimonials-bg-2.png new file mode 100644 index 0000000..6458a55 Binary files /dev/null and b/nuxt-web/public/images/testimonials-bg-2.png differ diff --git a/nuxt-web/public/images/testimonials-bg.png b/nuxt-web/public/images/testimonials-bg.png new file mode 100644 index 0000000..4b300fb Binary files /dev/null and b/nuxt-web/public/images/testimonials-bg.png differ diff --git a/nuxt-web/public/images/testimonials/img-1.jpg b/nuxt-web/public/images/testimonials/img-1.jpg new file mode 100644 index 0000000..4601f5c Binary files /dev/null and b/nuxt-web/public/images/testimonials/img-1.jpg differ diff --git a/nuxt-web/public/images/testimonials/img-2.jpg b/nuxt-web/public/images/testimonials/img-2.jpg new file mode 100644 index 0000000..fac8995 Binary files /dev/null and b/nuxt-web/public/images/testimonials/img-2.jpg differ diff --git a/nuxt-web/public/images/testimonials/img-3.jpg b/nuxt-web/public/images/testimonials/img-3.jpg new file mode 100644 index 0000000..7c81fb5 Binary files /dev/null and b/nuxt-web/public/images/testimonials/img-3.jpg differ diff --git a/nuxt-web/public/images/testimonials/img-4.jpg b/nuxt-web/public/images/testimonials/img-4.jpg new file mode 100644 index 0000000..f07c1b6 Binary files /dev/null and b/nuxt-web/public/images/testimonials/img-4.jpg differ diff --git a/nuxt-web/public/images/testimonials/man.png b/nuxt-web/public/images/testimonials/man.png new file mode 100644 index 0000000..67482b0 Binary files /dev/null and b/nuxt-web/public/images/testimonials/man.png differ diff --git a/nuxt-web/public/images/tianjinzhongyun.jpg b/nuxt-web/public/images/tianjinzhongyun.jpg new file mode 100644 index 0000000..a6e7063 Binary files /dev/null and b/nuxt-web/public/images/tianjinzhongyun.jpg differ diff --git a/nuxt-web/public/images/tinified/全程物流链.png b/nuxt-web/public/images/tinified/全程物流链.png new file mode 100644 index 0000000..504a7fc Binary files /dev/null and b/nuxt-web/public/images/tinified/全程物流链.png differ diff --git a/nuxt-web/public/images/tinified/内河一体化解决方案banner.png b/nuxt-web/public/images/tinified/内河一体化解决方案banner.png new file mode 100644 index 0000000..7f0c9b2 Binary files /dev/null and b/nuxt-web/public/images/tinified/内河一体化解决方案banner.png differ diff --git a/nuxt-web/public/images/tinified/图片3.png b/nuxt-web/public/images/tinified/图片3.png new file mode 100644 index 0000000..ec957aa Binary files /dev/null and b/nuxt-web/public/images/tinified/图片3.png differ diff --git a/nuxt-web/public/images/tinified/大宗货物.png b/nuxt-web/public/images/tinified/大宗货物.png new file mode 100644 index 0000000..b0514b8 Binary files /dev/null and b/nuxt-web/public/images/tinified/大宗货物.png differ diff --git a/nuxt-web/public/images/tinified/未标题-1.png b/nuxt-web/public/images/tinified/未标题-1.png new file mode 100644 index 0000000..0e87400 Binary files /dev/null and b/nuxt-web/public/images/tinified/未标题-1.png differ diff --git a/nuxt-web/public/images/tinified/未标题-2.png b/nuxt-web/public/images/tinified/未标题-2.png new file mode 100644 index 0000000..9f0ede3 Binary files /dev/null and b/nuxt-web/public/images/tinified/未标题-2.png differ diff --git a/nuxt-web/public/images/tinified/未标题-3.png b/nuxt-web/public/images/tinified/未标题-3.png new file mode 100644 index 0000000..532e95c Binary files /dev/null and b/nuxt-web/public/images/tinified/未标题-3.png differ diff --git a/nuxt-web/public/images/tinified/港口供应链.png b/nuxt-web/public/images/tinified/港口供应链.png new file mode 100644 index 0000000..6590741 Binary files /dev/null and b/nuxt-web/public/images/tinified/港口供应链.png differ diff --git a/nuxt-web/public/images/uniF10B.png b/nuxt-web/public/images/uniF10B.png new file mode 100644 index 0000000..f81600f Binary files /dev/null and b/nuxt-web/public/images/uniF10B.png differ diff --git a/nuxt-web/public/images/vertical.png b/nuxt-web/public/images/vertical.png new file mode 100644 index 0000000..93afdc6 Binary files /dev/null and b/nuxt-web/public/images/vertical.png differ diff --git a/nuxt-web/public/images/wechat.webp b/nuxt-web/public/images/wechat.webp new file mode 100644 index 0000000..d6c9257 Binary files /dev/null and b/nuxt-web/public/images/wechat.webp differ diff --git a/nuxt-web/public/images/weihaigang.jpg b/nuxt-web/public/images/weihaigang.jpg new file mode 100644 index 0000000..5950bae Binary files /dev/null and b/nuxt-web/public/images/weihaigang.jpg differ diff --git a/nuxt-web/public/images/wuzhou.png b/nuxt-web/public/images/wuzhou.png new file mode 100644 index 0000000..4ab0bb8 Binary files /dev/null and b/nuxt-web/public/images/wuzhou.png differ diff --git a/nuxt-web/public/images/xianglongwuliu.jpg b/nuxt-web/public/images/xianglongwuliu.jpg new file mode 100644 index 0000000..4fc35cf Binary files /dev/null and b/nuxt-web/public/images/xianglongwuliu.jpg differ diff --git a/nuxt-web/public/images/xiaolan.jpg b/nuxt-web/public/images/xiaolan.jpg new file mode 100644 index 0000000..aea7e62 Binary files /dev/null and b/nuxt-web/public/images/xiaolan.jpg differ diff --git a/nuxt-web/public/images/xinhai.jpg b/nuxt-web/public/images/xinhai.jpg new file mode 100644 index 0000000..e3cf3aa Binary files /dev/null and b/nuxt-web/public/images/xinhai.jpg differ diff --git a/nuxt-web/public/images/yulong.jpg b/nuxt-web/public/images/yulong.jpg new file mode 100644 index 0000000..fb27216 Binary files /dev/null and b/nuxt-web/public/images/yulong.jpg differ diff --git a/nuxt-web/public/images/yunmatou.jpg b/nuxt-web/public/images/yunmatou.jpg new file mode 100644 index 0000000..4fc087d Binary files /dev/null and b/nuxt-web/public/images/yunmatou.jpg differ diff --git a/nuxt-web/public/images/zhishichanquan.webp b/nuxt-web/public/images/zhishichanquan.webp new file mode 100644 index 0000000..dd052bb Binary files /dev/null and b/nuxt-web/public/images/zhishichanquan.webp differ diff --git a/nuxt-web/public/images/zhongshanganghang.jpg b/nuxt-web/public/images/zhongshanganghang.jpg new file mode 100644 index 0000000..41563f2 Binary files /dev/null and b/nuxt-web/public/images/zhongshanganghang.jpg differ diff --git a/nuxt-web/public/images/zhujiang.png b/nuxt-web/public/images/zhujiang.png new file mode 100644 index 0000000..d1ae886 Binary files /dev/null and b/nuxt-web/public/images/zhujiang.png differ diff --git a/nuxt-web/scripts/generate-prerender-routes.mjs b/nuxt-web/scripts/generate-prerender-routes.mjs new file mode 100644 index 0000000..adb8950 --- /dev/null +++ b/nuxt-web/scripts/generate-prerender-routes.mjs @@ -0,0 +1,64 @@ +import { promises as fs } from 'node:fs' +import path from 'node:path' + +const appRoot = process.cwd() +const newsDir = path.join(appRoot, 'content', 'news') +const casesDir = path.join(appRoot, 'content', 'cases') + +const markdownFiles = async (dir) => { + const entries = await fs.readdir(dir, { withFileTypes: true }) + return entries + .filter((entry) => entry.isFile() && entry.name.endsWith('.md')) + .map((entry) => entry.name.replace(/\.md$/, '')) + .sort() +} + +const buildRoutes = async () => { + const news = await markdownFiles(newsDir) + const cases = await markdownFiles(casesDir) + + return [ + '/', + '/contact', + '/company', + '/company/culture', + '/company/tech', + '/company/joinus', + '/products/ecommerce', + '/products/ecommerce/freight-booking', + '/products/ecommerce/net-cargo', + '/products/ecommerce/bctp', + '/products/ecommerce/obh', + '/products/logistics', + '/products/logistics/platform', + '/products/logistics/cargo-agent', + '/products/logistics/ship-agent', + '/products/logistics/vehicle-transport', + '/products/logistics/warehouse', + '/products/port', + '/products/port/cdi', + '/products/port/cdi-bulk', + '/products/port/cdi-container', + '/products/port/cloud-yard', + '/products/shipping', + '/products/shipping/boat', + '/products/shipping/company', + '/solutions/inland-river-shipping', + '/solutions/logistics-chain', + '/solutions/port-supply-chain', + '/solutions/supply-chain', + '/services/chuandai', + '/services/yunmatou', + '/services/jining', + '/services/dianshang', + '/services/ilog', + '/services/changzhan', + '/news', + '/cases', + ...news.map((slug) => `/news/${slug}`), + ...cases.map((slug) => `/cases/${slug}`) + ] +} + +const routes = await buildRoutes() +process.stdout.write(`${JSON.stringify(routes, null, 2)}\n`) diff --git a/nuxt-web/scripts/init-nuxt-foundation.sh b/nuxt-web/scripts/init-nuxt-foundation.sh new file mode 100755 index 0000000..23011a7 --- /dev/null +++ b/nuxt-web/scripts/init-nuxt-foundation.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +set -euo pipefail + +SEED_DIR=/tmp/agweb-nuxt-seed + +echo "Creating Nuxt seed in $SEED_DIR" +rm -rf "$SEED_DIR" +CI=1 npx create-nuxt@latest "$SEED_DIR" --template minimal --packageManager npm --no-install --force --gitInit false || true + +echo "Creating nuxt-web target directories" +mkdir -p nuxt-web +mkdir -p nuxt-web/pages nuxt-web/layouts nuxt-web/components nuxt-web/composables nuxt-web/public nuxt-web/assets/styles nuxt-web/scripts + +echo "Copying baseline files into nuxt-web/" +cp "$SEED_DIR/package.json" nuxt-web/ +cp "$SEED_DIR/tsconfig.json" nuxt-web/ +cp "$SEED_DIR/.gitignore" nuxt-web/ +cp "$SEED_DIR/nuxt.config.ts" nuxt-web/ +cp "$SEED_DIR/public/favicon.ico" nuxt-web/public/ +cp "$SEED_DIR/public/robots.txt" nuxt-web/public/ + +cat <<'EOF' +Nuxt foundation seed copied into nuxt-web/. + +Next manual steps: +1. Review and rewrite nuxt-web/package.json for AgWeb dependencies. +2. cd nuxt-web && npm install +3. cd nuxt-web && npm install @nuxt/content @nuxt/image @nuxtjs/sitemap @nuxtjs/robots @vueuse/nuxt swiper @fancyapps/ui three +4. Add AgWeb baseline files: app.vue, layouts/default.vue, pages/index.vue, content.config.ts, assets/styles/main.css +5. Verify with: + cd nuxt-web && npm run dev + cd nuxt-web && npm run generate +EOF diff --git a/nuxt-web/scripts/verify-generated-site.sh b/nuxt-web/scripts/verify-generated-site.sh new file mode 100755 index 0000000..c2bd6a1 --- /dev/null +++ b/nuxt-web/scripts/verify-generated-site.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +set -euo pipefail + +OUTPUT_DIR="${OUTPUT_DIR:-.output/public}" + +if [[ ! -d "$OUTPUT_DIR" ]]; then + echo "Missing generated output directory: $OUTPUT_DIR" >&2 + echo "Run 'npm run generate' inside nuxt-web first." >&2 + exit 1 +fi + +check_file_contains() { + local file="$1" + local label="$2" + local pattern="$3" + + if [[ ! -f "$file" ]]; then + echo "Missing $label file: $file" >&2 + exit 1 + fi + + if ! rg -q "$pattern" "$file"; then + echo "Missing expected content in $label file: $file" >&2 + echo "Pattern: $pattern" >&2 + exit 1 + fi +} + +index_file="$OUTPUT_DIR/index.html" +news_index_file="$OUTPUT_DIR/news/index.html" +cases_index_file="$OUTPUT_DIR/cases/index.html" + +check_file_contains "$index_file" "homepage" "<(main|section|h1|h2)" +check_file_contains "$news_index_file" "news index" "<(article|main|h1|h2|h3)" +check_file_contains "$cases_index_file" "cases index" "<(article|main|h1|h2|h3)" + +news_detail_file="$(find "$OUTPUT_DIR/news" -mindepth 2 -maxdepth 2 -type f -name 'index.html' | head -n 1)" +if [[ -z "${news_detail_file:-}" ]]; then + echo "Missing generated news detail pages under $OUTPUT_DIR/news" >&2 + exit 1 +fi + +case_detail_file="$(find "$OUTPUT_DIR/cases" -mindepth 2 -maxdepth 2 -type f -name 'index.html' | head -n 1)" +if [[ -z "${case_detail_file:-}" ]]; then + echo "Missing generated case detail pages under $OUTPUT_DIR/cases" >&2 + exit 1 +fi + +check_file_contains "$news_detail_file" "news detail" "<(article|main|p|h1|h2)" +check_file_contains "$case_detail_file" "case detail" "<(article|main|p|h1|h2)" + +echo "verify-generated-site.sh: PASS" diff --git a/nuxt-web/tsconfig.json b/nuxt-web/tsconfig.json new file mode 100644 index 0000000..307b213 --- /dev/null +++ b/nuxt-web/tsconfig.json @@ -0,0 +1,18 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "files": [], + "references": [ + { + "path": "./.nuxt/tsconfig.app.json" + }, + { + "path": "./.nuxt/tsconfig.server.json" + }, + { + "path": "./.nuxt/tsconfig.shared.json" + }, + { + "path": "./.nuxt/tsconfig.node.json" + } + ] +}