初始化提交

This commit is contained in:
MerCry 2026-02-23 10:23:38 +08:00
commit 0cf07bfca6
24441 changed files with 2527752 additions and 0 deletions

BIN
claude_web.db Normal file

Binary file not shown.

12
client/index.html Normal file
View File

@ -0,0 +1,12 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Claude Web</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

173
client/src/App.vue Normal file
View File

@ -0,0 +1,173 @@
<template>
<div class="app">
<TopBar
:tabs="store.tabs"
:activeTabId="store.activeTabId"
@newTab="store.addTab()"
@setActiveTab="(id) => (store.activeTabId = id)"
@layoutPreset="applyLayoutPreset"
@addPane="addPane"
@toggleConfig="showConfig = !showConfig"
@stopAll="stopAll"
/>
<div class="main">
<div class="center">
<PaneGrid
v-if="activeTab"
:tab="activeTab"
:sessions="store.sessions"
@focusPane="(id) => (focusedPaneId = id)"
@send="onSend"
@updateMode="({ sessionId, mode }) => store.setMode(sessionId, mode)"
@respondPermission="onRespondPermission"
@stopSession="stopSession"
@closeSession="closeSession"
/>
</div>
<div class="right" v-if="focusedSession">
<div class="panel">
<div class="panel-title">窗格设置</div>
<div class="field">
<div class="label">模式</div>
<select v-model="focusedSession.mode" class="input" @change="store.saveState()">
<option value="plan">plan</option>
<option value="ask">ask</option>
<option value="auto">auto</option>
</select>
</div>
<div class="field">
<div class="label">工作目录</div>
<input v-model="focusedSession.cwd" class="input" placeholder="如E:\\Projects\\repo" @blur="store.saveState()" />
</div>
<div class="hint">Ask 模式下出现工具请求会在窗格内弹出确认</div>
</div>
</div>
</div>
<div class="bottom" v-if="showConfig">
<ConfigPanel />
</div>
</div>
</template>
<script setup>
import { computed, onMounted, ref } from 'vue';
import TopBar from './components/TopBar.vue';
import PaneGrid from './components/PaneGrid.vue';
import ConfigPanel from './components/ConfigPanel.vue';
import { useSessionStore } from './stores/sessionStore';
const store = useSessionStore();
const showConfig = ref(true);
const focusedPaneId = ref(null);
onMounted(async () => {
store.initSocket();
const restored = await store.fetchState();
if (!restored && store.tabs.length === 0) store.addTab('Tab 1');
await store.fetchConfig().catch(() => {});
});
const activeTab = computed(() => store.tabs.find((t) => t.id === store.activeTabId));
const focusedSession = computed(() => (focusedPaneId.value ? store.sessions[focusedPaneId.value] : null));
function addPane() {
if (!store.activeTabId) return;
store.addPane(store.activeTabId);
}
function onSend({ sessionId, prompt }) {
store.sendMessage(sessionId, prompt);
}
function onRespondPermission({ sessionId, approved }) {
const session = store.sessions[sessionId];
if (!session || !session.permissionRequest || !store.socket) return;
store.socket.emit('confirm_tool', {
sessionId,
toolUseId: session.permissionRequest.toolUseId,
approved
});
session.permissionRequest = null;
}
function stopAll() {
if (!store.socket) return;
store.socket.emit('stop_all');
Object.values(store.sessions).forEach((s) => {
if (s) s.status = 'idle';
});
}
function stopSession(sessionId) {
if (!store.socket) return;
store.socket.emit('stop_session', { sessionId });
const s = store.sessions[sessionId];
if (s) s.status = 'idle';
}
function closeSession(sessionId) {
if (!store.socket) return;
store.socket.emit('close_session', { sessionId });
const tab = activeTab.value;
if (tab) tab.panes = tab.panes.filter((p) => p.i !== sessionId);
if (focusedPaneId.value === sessionId) focusedPaneId.value = null;
delete store.sessions[sessionId];
store.saveState();
}
function applyLayoutPreset(preset) {
const tab = activeTab.value;
if (!tab) return;
const panes = tab.panes;
if (preset === 1) {
if (panes[0]) {
panes[0].x = 0;
panes[0].y = 0;
panes[0].w = 12;
panes[0].h = 12;
}
}
if (preset === 2) {
panes.slice(0, 2).forEach((p, idx) => {
p.x = idx * 6;
p.y = 0;
p.w = 6;
p.h = 12;
});
}
if (preset === 4) {
panes.slice(0, 4).forEach((p, idx) => {
p.w = 6;
p.h = 6;
p.x = (idx % 2) * 6;
p.y = Math.floor(idx / 2) * 6;
});
}
store.saveState();
}
</script>
<style scoped>
.app { display: flex; flex-direction: column; height: 100vh; }
.main { flex: 1; display: flex; min-height: 0; }
.center { flex: 1; min-width: 0; }
.right { width: 320px; border-left: 1px solid #e5e7eb; background: #fafafa; overflow: auto; }
.bottom { height: 260px; border-top: 1px solid #e5e7eb; overflow: auto; }
.panel { padding: 12px; }
.panel-title { font-weight: 600; margin-bottom: 12px; }
.field { margin-bottom: 12px; }
.label { font-size: 12px; color: #6b7280; margin-bottom: 6px; }
.input { width: 100%; padding: 8px; border: 1px solid #d1d5db; border-radius: 8px; }
.hint { font-size: 12px; color: #6b7280; }
</style>

View File

@ -0,0 +1,197 @@
<template>
<div class="pane" @click="$emit('focus')">
<div class="header">
<div class="title">{{ title }}</div>
<div class="actions">
<!-- 模式切换入口 -->
<select :value="mode" @change="e => $emit('updateMode', e.target.value)" class="mode-select">
<option value="ask">Ask 模式</option>
<option value="auto">Auto 模式</option>
<option value="plan">Plan 模式</option>
</select>
<button v-if="status === 'running'" class="btn-icon stop" title="停止" @click="$emit('stop')">
<i class="pi pi-stop-circle"></i>
</button>
<button class="btn-icon close" title="关闭" @click="$emit('close')">
<i class="pi pi-times"></i>
</button>
<div class="status" :class="status">{{ status }}</div>
</div>
</div>
<div class="messages" ref="msgEl">
<div v-for="(m, idx) in messages" :key="idx" class="msg-container" :class="[m.role, m.type]">
<div class="msg-header">
<span class="role-tag">{{ m.role === 'assistant' ? 'Claude' : 'User' }}</span>
<span v-if="m.type === 'thinking'" class="type-tag">思考中...</span>
<span v-else-if="m.type === 'tool_use'" class="type-tag">工具调用</span>
<span v-else-if="m.type === 'tool_result'" class="type-tag">执行结果</span>
<span class="timestamp">{{ new Date(m.timestamp || Date.now()).toLocaleTimeString() }}</span>
</div>
<!-- 普通文本消息 -->
<div v-if="!m.type || m.type === 'text'" class="content-box">
<pre class="content">{{ m.content }}</pre>
</div>
<!-- 思维链块 (Thinking) -->
<div v-else-if="m.type === 'thinking'" class="thinking-box">
<div class="thinking-header" @click="m.collapsed = !m.collapsed">
<i :class="['pi', m.collapsed ? 'pi-chevron-right' : 'pi-chevron-down']"></i>
查看思考过程
</div>
<div v-show="!m.collapsed" class="thinking-content">
{{ m.content }}
</div>
</div>
<!-- 工具调用 (Tool Use) -->
<div v-else-if="m.type === 'tool_use'" class="tool-use-box">
<div class="tool-title">
<i class="pi pi-box"></i>
{{ m.metadata?.name || '未知工具' }}
</div>
<div class="tool-args">
<pre>{{ JSON.stringify(m.metadata?.input || {}, null, 2) }}</pre>
</div>
</div>
<!-- 工具结果 (Tool Result) -->
<div v-else-if="m.type === 'tool_result'" class="tool-result-box" :class="{ error: m.metadata?.subtype !== 'success' }">
<div class="tool-result-header">
<i :class="['pi', m.metadata?.subtype === 'success' ? 'pi-check-circle' : 'pi-exclamation-circle']"></i>
{{ m.metadata?.subtype === 'success' ? '执行成功' : '执行异常' }}
</div>
<div class="tool-result-content">
<pre>{{ m.content }}</pre>
</div>
</div>
</div>
</div>
<div v-if="permissionRequest" class="permission">
<div class="perm-title">工具权限请求</div>
<div class="perm-body">
<div>工具<b>{{ permissionRequest.tool }}</b></div>
<div class="reason" v-if="permissionRequest.reason">原因{{ permissionRequest.reason }}</div>
</div>
<div class="perm-actions">
<button class="btn deny" @click="respond(false)">拒绝</button>
<button class="btn allow" @click="respond(true)">允许</button>
</div>
</div>
<div class="input">
<input
v-model="draft"
class="text"
placeholder="输入指令..."
@keydown.enter.prevent="send"
/>
<button class="send" @click="send" :disabled="!draft || status === 'running'">发送</button>
</div>
</div>
</template>
<script setup>
import { nextTick, ref, watch } from 'vue';
const props = defineProps({
sessionId: { type: String, required: true },
title: { type: String, default: '' },
status: { type: String, default: 'idle' },
mode: { type: String, default: 'ask' },
messages: { type: Array, default: () => [] },
socket: { type: Object, default: null },
permissionRequest: { type: Object, default: null }
});
const emit = defineEmits(['send', 'focus', 'respondPermission', 'stop', 'close', 'updateMode']);
const draft = ref('');
const msgEl = ref(null);
function send() {
const text = draft.value.trim();
if (!text) return;
emit('send', { sessionId: props.sessionId, prompt: text });
draft.value = '';
}
function respond(approved) {
emit('respondPermission', { approved });
}
function scrollToBottom() {
if (!msgEl.value) return;
msgEl.value.scrollTop = msgEl.value.scrollHeight;
}
watch(
() => props.messages.length,
async () => {
await nextTick();
scrollToBottom();
}
);
// store session props.permissionRequest
</script>
<style scoped>
.pane { height: 100%; display:flex; flex-direction:column; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; }
.header { display:flex; justify-content:space-between; align-items:center; padding:8px 10px; border-bottom:1px solid #e5e7eb; background:#f9fafb; }
.title { font-weight:600; font-size:12px; color:#111827; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width: 45%; }
.actions { display:flex; align-items:center; gap:8px; }
.mode-select { font-size:12px; padding:4px 8px; border:1px solid #d1d5db; border-radius:8px; background:#fff; color:#111827; }
.status { font-size:12px; color:#6b7280; }
.status.running { color:#b45309; }
.status.idle { color:#059669; }
.messages { flex:1; min-height:0; overflow:auto; padding:10px; background:#fff; }
/* 消息容器:按 role 分左右 */
.msg-container { display:flex; flex-direction:column; gap:6px; margin-bottom:12px; }
.msg-container.user { align-items:flex-end; }
.msg-container.assistant, .msg-container.system { align-items:flex-start; }
.msg-header { display:flex; align-items:center; gap:6px; font-size:11px; color:#6b7280; }
.role-tag { font-weight:600; color:#374151; }
.type-tag { background:#eef2ff; color:#3730a3; border:1px solid #c7d2fe; padding:1px 6px; border-radius:999px; }
.timestamp { margin-left:auto; opacity:0.8; }
.content-box { max-width: 92%; border-radius:12px; padding:8px 10px; border:1px solid #e5e7eb; background:#f9fafb; }
.msg-container.user .content-box { background:#111827; border-color:#111827; }
.msg-container.user .content { color:#fff; }
.msg-container.assistant .content-box { background:#ffffff; }
.content { margin:0; white-space:pre-wrap; word-break:break-word; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size:12px; color:#111827; }
/* Thinking 折叠块 */
.thinking-box { max-width: 92%; border:1px dashed #d1d5db; background:#fcfcfd; border-radius:12px; overflow:hidden; }
.thinking-header { display:flex; align-items:center; gap:8px; padding:8px 10px; cursor:pointer; font-size:12px; color:#374151; background:#f3f4f6; }
.thinking-content { padding:10px; font-size:12px; color:#111827; white-space:pre-wrap; word-break:break-word; }
/* 工具调用/结果卡片 */
.tool-use-box, .tool-result-box { max-width: 92%; border-radius:12px; border:1px solid #e5e7eb; background:#f8fafc; overflow:hidden; }
.tool-title, .tool-result-header { display:flex; align-items:center; gap:8px; padding:8px 10px; font-weight:600; font-size:12px; color:#111827; background:#eef2f7; }
.tool-args, .tool-result-content { padding:10px; }
.tool-args pre, .tool-result-content pre { margin:0; font-size:12px; white-space:pre-wrap; word-break:break-word; }
.tool-result-box.error { border-color:#fecaca; }
.tool-result-box.error .tool-result-header { background:#fff1f2; color:#991b1b; }
.permission { border-top:1px solid #e5e7eb; background:#fff7ed; padding:10px; }
.perm-title { font-weight:700; font-size:12px; margin-bottom:6px; }
.reason { font-size:12px; color:#6b7280; margin-top:4px; }
.perm-actions { display:flex; gap:8px; margin-top:8px; }
.btn { padding:6px 10px; border-radius:10px; border:1px solid #e5e7eb; background:#fff; cursor:pointer; }
.btn.allow { background:#111827; color:#fff; border-color:#111827; }
.btn.deny { background:#fff; }
.input { display:flex; gap:8px; padding:10px; border-top:1px solid #e5e7eb; background:#fff; }
.text { flex:1; padding:8px; border:1px solid #d1d5db; border-radius:10px; }
.send { padding:8px 12px; border-radius:10px; border:1px solid #111827; background:#111827; color:#fff; cursor:pointer; }
.send:disabled { opacity:0.5; cursor:not-allowed; }
</style>

View File

@ -0,0 +1,209 @@
<template>
<div class="bottom-panel">
<div class="panel-tabs">
<button
class="tab-btn"
:class="{ active: activeTab === 'config' }"
@click="activeTab = 'config'"
>配置查看器</button>
<button
class="tab-btn"
:class="{ active: activeTab === 'logs' }"
@click="activeTab = 'logs'"
>日志搜索与导出</button>
</div>
<div class="panel-content">
<!-- 配置查看器 -->
<div v-if="activeTab === 'config'" class="tab-pane config-pane">
<div class="header">
<div class="title">Claude Code 配置</div>
<button class="refresh-btn" @click="store.fetchConfig()">刷新</button>
</div>
<div class="tree-container">
<div v-if="!store.configs" class="loading">正在加载配置...</div>
<div v-else class="config-tree">
<div v-for="(val, key) in store.configs" :key="key" class="config-item">
<div class="config-key">{{ key }}</div>
<pre class="config-val">{{ JSON.stringify(val, null, 2) }}</pre>
</div>
</div>
</div>
</div>
<!-- 日志搜索与导出 -->
<div v-if="activeTab === 'logs'" class="tab-pane logs-pane">
<div class="header log-header">
<div class="search-filters">
<div class="filter-row">
<input
v-model="searchQuery"
placeholder="搜索关键词..."
class="search-input"
@keyup.enter="searchLogs"
/>
<select v-model="selectedSessionId" class="session-select">
<option value="">所有会话</option>
<option v-for="(s, id) in store.sessions" :key="id" :value="id">{{ id }}</option>
</select>
</div>
<div class="filter-row">
<span class="date-label"></span>
<input type="datetime-local" v-model="dateFrom" class="date-input" />
<span class="date-label"></span>
<input type="datetime-local" v-model="dateTo" class="date-input" />
<button class="action-btn" @click="searchLogs">搜索</button>
</div>
</div>
<div class="export-actions">
<div class="export-group">
<span class="export-label">当前/筛选:</span>
<button
class="action-btn"
:disabled="!selectedSessionId && !searchQuery && !dateFrom && !dateTo"
@click="exportLogs('json')"
>JSON</button>
<button
class="action-btn primary"
:disabled="!selectedSessionId"
@click="exportLogs('markdown')"
>MD</button>
</div>
<div class="export-group">
<span class="export-label">全量:</span>
<button class="action-btn" @click="exportAll('json')">全部 JSON</button>
<button class="action-btn primary" @click="exportAll('markdown')">全部 MD</button>
</div>
</div>
</div>
<div class="log-results" ref="logResultsEl">
<div v-if="searching" class="loading">搜索中...</div>
<div v-else-if="logs.length === 0" class="empty">无匹配结果</div>
<div v-else class="log-list">
<div v-for="log in logs" :key="log.id" class="log-entry">
<div class="log-meta">
<span class="log-role" :class="log.role">{{ log.role }}</span>
<span class="log-session">{{ log.session_id }}</span>
<span class="log-time">{{ new Date(log.timestamp).toLocaleString() }}</span>
</div>
<div class="log-text">{{ log.content }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { ref, onMounted, watch, nextTick } from 'vue';
import { useSessionStore } from '../stores/sessionStore';
import axios from 'axios';
const store = useSessionStore();
const activeTab = ref('config');
//
const searchQuery = ref('');
const selectedSessionId = ref('');
const dateFrom = ref('');
const dateTo = ref('');
const logs = ref([]);
const searching = ref(false);
const logResultsEl = ref(null);
async function searchLogs() {
searching.value = true;
try {
const params = {
query: searchQuery.value,
sessionId: selectedSessionId.value,
from: dateFrom.value,
to: dateTo.value
};
const res = await axios.get('/api/logs/search', { params });
logs.value = res.data;
//
nextTick(() => {
if (logResultsEl.value) {
logResultsEl.value.scrollTop = 0;
}
});
} catch (err) {
console.error('搜索日志失败:', err);
} finally {
searching.value = false;
}
}
// Tab
watch(activeTab, (newTab) => {
if (newTab === 'logs' && logs.value.length === 0) {
searchLogs();
}
});
function exportLogs(format) {
const params = new URLSearchParams({ format });
if (selectedSessionId.value) params.append('sessionId', selectedSessionId.value);
if (searchQuery.value) params.append('query', searchQuery.value);
if (dateFrom.value) params.append('from', dateFrom.value);
if (dateTo.value) params.append('to', dateTo.value);
window.open(`/api/logs/export?${params.toString()}`, '_blank');
}
function exportAll(format) {
window.open(`/api/logs/export?format=${format}`, '_blank');
}
onMounted(() => {
if (activeTab.value === 'logs') searchLogs();
});
</script>
<style scoped>
.bottom-panel { height: 100%; display: flex; flex-direction: column; background: #fff; }
.panel-tabs { display: flex; border-bottom: 1px solid #e5e7eb; background: #f9fafb; padding: 0 10px; }
.tab-btn {
padding: 10px 16px; border: none; background: transparent; cursor: pointer;
font-size: 13px; font-weight: 500; color: #6b7280; border-bottom: 2px solid transparent;
}
.tab-btn.active { color: #111827; border-bottom-color: #111827; }
.panel-content { flex: 1; overflow: hidden; }
.tab-pane { height: 100%; display: flex; flex-direction: column; }
.header { display: flex; justify-content: space-between; align-items: center; padding: 10px 16px; border-bottom: 1px solid #e5e7eb; }
.title { font-weight: 600; font-size: 14px; }
.refresh-btn, .action-btn {
padding: 6px 12px; border: 1px solid #d1d5db; border-radius: 6px;
background: #fff; cursor: pointer; font-size: 12px;
}
.action-btn.primary { background: #111827; color: #fff; border-color: #111827; }
.action-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.tree-container, .log-results { flex: 1; overflow: auto; padding: 16px; }
/* Config styles */
.config-item { margin-bottom: 20px; }
.config-key { font-weight: 700; font-size: 12px; color: #374151; margin-bottom: 8px; text-transform: uppercase; }
.config-val { margin: 0; padding: 12px; background: #f3f4f6; border-radius: 8px; font-size: 12px; overflow: auto; font-family: ui-monospace, monospace; }
/* Log styles */
.log-header { gap: 12px; }
.search-box { display: flex; gap: 8px; flex: 1; }
.search-input { flex: 1; padding: 6px 10px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 13px; }
.session-select { padding: 6px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 13px; }
.log-entry { padding: 10px; border-bottom: 1px solid #f3f4f6; }
.log-meta { display: flex; gap: 10px; margin-bottom: 4px; align-items: center; }
.log-role { font-size: 10px; font-weight: 700; text-transform: uppercase; padding: 2px 6px; border-radius: 4px; }
.log-role.user { background: #dbeafe; color: #1e40af; }
.log-role.assistant { background: #dcfce7; color: #166534; }
.log-session { font-size: 11px; color: #6b7280; font-family: monospace; }
.log-time { font-size: 11px; color: #9ca3af; margin-left: auto; }
.log-text { font-size: 13px; white-space: pre-wrap; color: #374151; line-height: 1.5; }
.loading, .empty { text-align: center; color: #6b7280; padding: 40px; }
</style>

View File

@ -0,0 +1,76 @@
<template>
<GridLayout
:layout="layout"
:col-num="12"
:row-height="30"
:is-draggable="true"
:is-resizable="true"
:vertical-compact="true"
:use-css-transforms="true"
@layout-updated="onLayoutUpdated"
class="grid"
>
<GridItem
v-for="item in layout"
:key="item.i"
:x="item.x"
:y="item.y"
:w="item.w"
:h="item.h"
:i="item.i"
drag-allow-from=".header"
>
<ChatPane
:sessionId="item.i"
:title="item.i"
:mode="sessions[item.i]?.mode || 'ask'"
:status="sessions[item.i]?.status || 'idle'"
:messages="sessions[item.i]?.messages || []"
:socket="store.socket"
:permissionRequest="sessions[item.i]?.permissionRequest || null"
@focus="$emit('focusPane', item.i)"
@send="(payload) => $emit('send', payload)"
@updateMode="(mode) => $emit('updateMode', { sessionId: item.i, mode })"
@respondPermission="({ approved }) => $emit('respondPermission', { sessionId: item.i, approved })"
@stop="$emit('stopSession', item.i)"
@close="$emit('closeSession', item.i)"
/>
</GridItem>
</GridLayout>
</template>
<script setup>
import { computed } from 'vue';
import { GridLayout, GridItem } from 'vue-grid-layout-v3';
import ChatPane from './ChatPane.vue';
import { useSessionStore } from '../stores/sessionStore';
const store = useSessionStore();
const props = defineProps({
tab: { type: Object, required: true },
sessions: { type: Object, required: true }
});
const emit = defineEmits(['focusPane', 'send', 'updateMode', 'respondPermission', 'stopSession', 'closeSession']);
const layout = computed(() => props.tab.panes);
function onLayoutUpdated(newLayout) {
// store
newLayout.forEach(newPos => {
const pane = props.tab.panes.find(p => p.i === newPos.i);
if (pane) {
pane.x = newPos.x;
pane.y = newPos.y;
pane.w = newPos.w;
pane.h = newPos.h;
}
});
store.saveState();
}
</script>
<style scoped>
.grid { width: 100%; height: 100%; background: #f3f4f6; padding: 10px; box-sizing: border-box; }
</style>

View File

@ -0,0 +1,45 @@
<template>
<div class="topbar">
<div class="tabs">
<button class="tab add" @click="$emit('newTab')">+ 新建</button>
<button
v-for="t in tabs"
:key="t.id"
class="tab"
:class="{ active: t.id === activeTabId }"
@click="$emit('setActiveTab', t.id)"
>
{{ t.name }}
</button>
</div>
<div class="actions">
<button class="btn" @click="$emit('layoutPreset', 1)"></button>
<button class="btn" @click="$emit('layoutPreset', 2)"></button>
<button class="btn" @click="$emit('layoutPreset', 4)"></button>
<button class="btn stop" @click="$emit('stopAll')">停止全部</button>
<button class="btn" @click="$emit('addPane')">+ 窗格</button>
<button class="btn" @click="$emit('toggleConfig')">配置</button>
</div>
</div>
</template>
<script setup>
defineProps({
tabs: { type: Array, default: () => [] },
activeTabId: { type: String, default: null }
});
defineEmits(['newTab', 'setActiveTab', 'layoutPreset', 'addPane', 'toggleConfig', 'stopAll']);
</script>
<style scoped>
.topbar { display:flex; align-items:center; justify-content:space-between; padding:10px 12px; border-bottom:1px solid #e5e7eb; background:#fff; }
.tabs { display:flex; gap:8px; align-items:center; overflow:auto; }
.tab { border:1px solid #e5e7eb; background:#f9fafb; padding:6px 10px; border-radius:999px; cursor:pointer; white-space:nowrap; }
.tab.active { background:#111827; color:#fff; border-color:#111827; }
.tab.add { background:#fff; }
.actions { display:flex; gap:8px; }
.btn { border:1px solid #e5e7eb; background:#fff; padding:6px 10px; border-radius:10px; cursor:pointer; }
.btn.stop { color: #dc2626; border-color: #fecaca; }
.btn.stop:hover { background: #fef2f2; }
</style>

14
client/src/main.js Normal file
View File

@ -0,0 +1,14 @@
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import PrimeVue from 'primevue/config';
import ToastService from 'primevue/toastservice';
import App from './App.vue';
import 'primeicons/primeicons.css';
const app = createApp(App);
app.use(createPinia());
app.use(PrimeVue);
app.use(ToastService);
app.mount('#app');

View File

@ -0,0 +1,251 @@
import { defineStore } from 'pinia';
import { io } from 'socket.io-client';
import axios from 'axios';
export const useSessionStore = defineStore('session', {
state: () => ({
tabs: [], // { id, name, panes: [] }
activeTabId: null,
sessions: {}, // { sessionId: { messages: [], mode, cwd, status, permissionRequest? } }
socket: null,
configs: null,
focusedPaneId: null
}),
actions: {
initSocket() {
if (this.socket) return;
const debug = (...args) => {
if (localStorage.getItem('CLAUDE_WEB_DEBUG') === '1') {
console.log('[DEBUG]', ...args);
}
};
debug('initializing connection...');
// 使用相对路径,由 Vite proxy 转发到 3001
this.socket = io('/', {
path: '/socket.io',
transports: ['websocket', 'polling']
});
this.socket.on('connect', () => {
debug('connected:', this.socket.id);
// 连接成功后,确保所有已有 session 都加入房间
Object.keys(this.sessions || {}).forEach((id) => {
debug('re-joining session:', id);
this.socket.emit('join_session', id);
});
});
this.socket.on('connect_error', (e) => {
console.error('[socket] connect_error:', e?.message || e);
});
this.socket.on('disconnect', (reason) => {
console.warn('[socket] disconnected:', reason);
});
this.socket.on('text', ({ sessionId, token }) => {
debug('text', sessionId, token);
const session = this.sessions[sessionId];
if (!session) {
debug('text session not found:', sessionId);
return;
}
const lastMsg = session.messages[session.messages.length - 1];
if (lastMsg && lastMsg.role === 'assistant' && lastMsg.type !== 'thinking') {
lastMsg.content += token;
} else {
session.messages.push({ role: 'assistant', content: token });
}
});
this.socket.on('done', ({ sessionId }) => {
debug('done', sessionId);
if (this.sessions[sessionId]) this.sessions[sessionId].status = 'idle';
});
this.socket.on('error', ({ sessionId, error }) => {
console.error('[socket error]', sessionId, error);
const session = this.sessions[sessionId];
if (session) {
session.status = 'idle';
session.messages.push({
role: 'assistant',
content: `[系统错误] ${error}`
});
}
});
this.socket.on('claude_event', ({ sessionId, message }) => {
debug('claude_event', sessionId, message);
const session = this.sessions[sessionId];
if (!session) return;
// 这里的 message 是 SDK 传回的原始对象,可以包含 thinking, tool_use 等
if (message.type === 'assistant') {
const content = message.content || [];
content.forEach(block => {
if (block.type === 'thinking') {
// 查找是否已有 thinking 块,如果有则追加(流式情况下可能多次收到助理块)
let lastMsg = session.messages[session.messages.length - 1];
if (lastMsg && lastMsg.type === 'thinking' && !lastMsg.finalized) {
lastMsg.content += block.thinking;
} else {
session.messages.push({
role: 'assistant',
type: 'thinking',
content: block.thinking,
collapsed: true
});
}
}
});
} else if (message.type === 'tool_use') {
session.messages.push({
role: 'assistant',
type: 'tool_use',
content: `调用工具: ${message.name}`,
metadata: message
});
} else if (message.type === 'result') {
session.messages.push({
role: 'system',
type: 'tool_result',
content: message.subtype === 'success' ? '工具执行成功' : `工具执行失败: ${message.content}`,
metadata: message
});
}
});
this.socket.on('tool_permission_request', (data) => {
console.warn('[socket tool_permission_request]', data);
const { sessionId } = data;
const session = this.sessions[sessionId];
if (!session) return;
session.permissionRequest = data;
});
},
async fetchState() {
this.initSocket();
try {
const res = await axios.get('/api/state');
if (res.data.tabs) {
this.tabs = res.data.tabs;
if (this.tabs.length > 0 && !this.activeTabId) {
this.activeTabId = this.tabs[0].id;
}
this.sessions = res.data.sessions || {};
// 如果此时已经连接,则立刻 join否则 connect 回调里会统一 join
if (this.socket?.connected) {
Object.keys(this.sessions).forEach((id) => {
this.socket.emit('join_session', id);
});
}
return true;
}
} catch (err) {
console.error('Failed to fetch state:', err);
}
return false;
},
saveState() {
if (!this.socket?.connected) {
return;
}
this.socket.emit('save_state', {
tabs: this.tabs,
sessions: this.sessions
});
},
async fetchConfig() {
try {
const res = await axios.get('/api/config');
this.configs = res.data;
} catch (err) {
// 忽略 config 报错
}
},
setMode(sessionId, mode) {
const session = this.sessions[sessionId];
if (session) {
session.mode = mode;
this.saveState();
}
},
addTab(name = 'New Tab') {
this.initSocket();
const id = Date.now().toString();
this.tabs.push({ id, name, panes: [], layoutConfig: {} });
this.activeTabId = id;
this.addPane(id);
this.saveState();
},
addPane(tabId) {
this.initSocket();
const tab = this.tabs.find((t) => t.id === tabId);
if (tab) {
const paneId = `pane_${Date.now()}`;
const newPane = {
id: paneId,
x: (tab.panes.length * 4) % 12,
y: Math.floor(tab.panes.length / 3) * 4,
w: 4,
h: 6,
i: paneId
};
tab.panes.push(newPane);
this.sessions[paneId] = { messages: [], mode: 'ask', cwd: '', status: 'idle' };
if (this.socket?.connected) {
this.socket.emit('join_session', paneId);
}
this.saveState();
}
},
async sendMessage(sessionId, prompt) {
this.initSocket();
const session = this.sessions[sessionId];
if (!session) {
console.error('[sendMessage] session not found:', sessionId);
return;
}
if (localStorage.getItem('CLAUDE_WEB_DEBUG') === '1') {
console.log('[sendMessage] sending:', { sessionId, prompt, mode: session.mode, cwd: session.cwd });
}
session.status = 'running';
session.messages.push({ role: 'user', content: prompt });
if (!this.socket?.connected) {
session.status = 'idle';
session.messages.push({ role: 'assistant', content: '[错误] Socket 未连接,请刷新页面重试。' });
return;
}
this.socket.emit('send_message', {
sessionId,
prompt,
mode: session.mode,
cwd: session.cwd,
allowedTools: session.allowedTools,
deniedTools: session.deniedTools
});
},
stopSession(sessionId) {
if (this.socket?.connected) {
this.socket.emit('stop_session', { sessionId });
}
}
}
});

27
client/vite.config.js Normal file
View File

@ -0,0 +1,27 @@
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';
export default defineConfig({
plugins: [vue()],
root: path.resolve(__dirname, './'),
base: './',
server: {
port: 3000,
proxy: {
'/api': 'http://localhost:3001',
'/socket.io': {
target: 'http://localhost:3001',
ws: true
}
}
},
resolve: {
alias: {
'@': path.resolve(__dirname, './src')
}
},
build: {
outDir: '../dist'
}
});

12
node_modules/.bin/autoprefixer generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../autoprefixer/bin/autoprefixer" "$@"
else
exec node "$basedir/../autoprefixer/bin/autoprefixer" "$@"
fi

17
node_modules/.bin/autoprefixer.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\autoprefixer\bin\autoprefixer" %*

28
node_modules/.bin/autoprefixer.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args
} else {
& "$basedir/node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args
} else {
& "node$exe" "$basedir/../autoprefixer/bin/autoprefixer" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/baseline-browser-mapping generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../baseline-browser-mapping/dist/cli.js" "$@"
else
exec node "$basedir/../baseline-browser-mapping/dist/cli.js" "$@"
fi

17
node_modules/.bin/baseline-browser-mapping.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\baseline-browser-mapping\dist\cli.js" %*

28
node_modules/.bin/baseline-browser-mapping.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
} else {
& "node$exe" "$basedir/../baseline-browser-mapping/dist/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/browserslist generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@"
else
exec node "$basedir/../browserslist/cli.js" "$@"
fi

17
node_modules/.bin/browserslist.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %*

28
node_modules/.bin/browserslist.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../browserslist/cli.js" $args
} else {
& "node$exe" "$basedir/../browserslist/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/claude-code-config-manager generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../claude-code-config-manager/bin/cli.js" "$@"
else
exec node "$basedir/../claude-code-config-manager/bin/cli.js" "$@"
fi

17
node_modules/.bin/claude-code-config-manager.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\claude-code-config-manager\bin\cli.js" %*

28
node_modules/.bin/claude-code-config-manager.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../claude-code-config-manager/bin/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../claude-code-config-manager/bin/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../claude-code-config-manager/bin/cli.js" $args
} else {
& "node$exe" "$basedir/../claude-code-config-manager/bin/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/conc generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../concurrently/dist/bin/concurrently.js" "$@"
else
exec node "$basedir/../concurrently/dist/bin/concurrently.js" "$@"
fi

17
node_modules/.bin/conc.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\concurrently\dist\bin\concurrently.js" %*

28
node_modules/.bin/conc.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../concurrently/dist/bin/concurrently.js" $args
} else {
& "$basedir/node$exe" "$basedir/../concurrently/dist/bin/concurrently.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../concurrently/dist/bin/concurrently.js" $args
} else {
& "node$exe" "$basedir/../concurrently/dist/bin/concurrently.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/concurrently generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../concurrently/dist/bin/concurrently.js" "$@"
else
exec node "$basedir/../concurrently/dist/bin/concurrently.js" "$@"
fi

17
node_modules/.bin/concurrently.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\concurrently\dist\bin\concurrently.js" %*

28
node_modules/.bin/concurrently.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../concurrently/dist/bin/concurrently.js" $args
} else {
& "$basedir/node$exe" "$basedir/../concurrently/dist/bin/concurrently.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../concurrently/dist/bin/concurrently.js" $args
} else {
& "node$exe" "$basedir/../concurrently/dist/bin/concurrently.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/cssesc generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../cssesc/bin/cssesc" "$@"
else
exec node "$basedir/../cssesc/bin/cssesc" "$@"
fi

17
node_modules/.bin/cssesc.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\cssesc\bin\cssesc" %*

28
node_modules/.bin/cssesc.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args
} else {
& "$basedir/node$exe" "$basedir/../cssesc/bin/cssesc" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../cssesc/bin/cssesc" $args
} else {
& "node$exe" "$basedir/../cssesc/bin/cssesc" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/esbuild generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../esbuild/bin/esbuild" "$@"
else
exec node "$basedir/../esbuild/bin/esbuild" "$@"
fi

17
node_modules/.bin/esbuild.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esbuild\bin\esbuild" %*

28
node_modules/.bin/esbuild.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
} else {
& "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../esbuild/bin/esbuild" $args
} else {
& "node$exe" "$basedir/../esbuild/bin/esbuild" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/esparse generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@"
else
exec node "$basedir/../esprima/bin/esparse.js" "$@"
fi

17
node_modules/.bin/esparse.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esparse.js" %*

28
node_modules/.bin/esparse.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../esprima/bin/esparse.js" $args
} else {
& "$basedir/node$exe" "$basedir/../esprima/bin/esparse.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../esprima/bin/esparse.js" $args
} else {
& "node$exe" "$basedir/../esprima/bin/esparse.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/esvalidate generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@"
else
exec node "$basedir/../esprima/bin/esvalidate.js" "$@"
fi

17
node_modules/.bin/esvalidate.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esvalidate.js" %*

28
node_modules/.bin/esvalidate.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../esprima/bin/esvalidate.js" $args
} else {
& "$basedir/node$exe" "$basedir/../esprima/bin/esvalidate.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args
} else {
& "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/jiti generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../jiti/bin/jiti.js" "$@"
else
exec node "$basedir/../jiti/bin/jiti.js" "$@"
fi

17
node_modules/.bin/jiti.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jiti\bin\jiti.js" %*

28
node_modules/.bin/jiti.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../jiti/bin/jiti.js" $args
} else {
& "$basedir/node$exe" "$basedir/../jiti/bin/jiti.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../jiti/bin/jiti.js" $args
} else {
& "node$exe" "$basedir/../jiti/bin/jiti.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/js-yaml generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@"
else
exec node "$basedir/../js-yaml/bin/js-yaml.js" "$@"
fi

17
node_modules/.bin/js-yaml.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\js-yaml\bin\js-yaml.js" %*

28
node_modules/.bin/js-yaml.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
} else {
& "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
} else {
& "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/mime generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../mime/cli.js" "$@"
else
exec node "$basedir/../mime/cli.js" "$@"
fi

17
node_modules/.bin/mime.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %*

28
node_modules/.bin/mime.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../mime/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../mime/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../mime/cli.js" $args
} else {
& "node$exe" "$basedir/../mime/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/nanoid generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../nanoid/bin/nanoid.cjs" "$@"
else
exec node "$basedir/../nanoid/bin/nanoid.cjs" "$@"
fi

17
node_modules/.bin/nanoid.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %*

28
node_modules/.bin/nanoid.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
} else {
& "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
} else {
& "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/node-which generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../which/bin/which.js" "$@"
else
exec node "$basedir/../which/bin/which.js" "$@"
fi

17
node_modules/.bin/node-which.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\which.js" %*

28
node_modules/.bin/node-which.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../which/bin/which.js" $args
} else {
& "$basedir/node$exe" "$basedir/../which/bin/which.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../which/bin/which.js" $args
} else {
& "node$exe" "$basedir/../which/bin/which.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/nodemon generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@"
else
exec node "$basedir/../nodemon/bin/nodemon.js" "$@"
fi

17
node_modules/.bin/nodemon.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nodemon\bin\nodemon.js" %*

28
node_modules/.bin/nodemon.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args
} else {
& "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args
} else {
& "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/nodetouch generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@"
else
exec node "$basedir/../touch/bin/nodetouch.js" "$@"
fi

17
node_modules/.bin/nodetouch.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\touch\bin\nodetouch.js" %*

28
node_modules/.bin/nodetouch.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args
} else {
& "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args
} else {
& "node$exe" "$basedir/../touch/bin/nodetouch.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/parser generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
else
exec node "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
fi

17
node_modules/.bin/parser.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@babel\parser\bin\babel-parser.js" %*

28
node_modules/.bin/parser.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
} else {
& "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
} else {
& "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/prebuild-install generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../prebuild-install/bin.js" "$@"
else
exec node "$basedir/../prebuild-install/bin.js" "$@"
fi

17
node_modules/.bin/prebuild-install.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\prebuild-install\bin.js" %*

28
node_modules/.bin/prebuild-install.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../prebuild-install/bin.js" $args
} else {
& "$basedir/node$exe" "$basedir/../prebuild-install/bin.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../prebuild-install/bin.js" $args
} else {
& "node$exe" "$basedir/../prebuild-install/bin.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/rc generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../rc/cli.js" "$@"
else
exec node "$basedir/../rc/cli.js" "$@"
fi

17
node_modules/.bin/rc.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rc\cli.js" %*

28
node_modules/.bin/rc.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../rc/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../rc/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../rc/cli.js" $args
} else {
& "node$exe" "$basedir/../rc/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/resolve generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../resolve/bin/resolve" "$@"
else
exec node "$basedir/../resolve/bin/resolve" "$@"
fi

17
node_modules/.bin/resolve.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\resolve\bin\resolve" %*

28
node_modules/.bin/resolve.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args
} else {
& "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../resolve/bin/resolve" $args
} else {
& "node$exe" "$basedir/../resolve/bin/resolve" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/rollup generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../rollup/dist/bin/rollup" "$@"
else
exec node "$basedir/../rollup/dist/bin/rollup" "$@"
fi

17
node_modules/.bin/rollup.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rollup\dist\bin\rollup" %*

28
node_modules/.bin/rollup.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../rollup/dist/bin/rollup" $args
} else {
& "$basedir/node$exe" "$basedir/../rollup/dist/bin/rollup" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../rollup/dist/bin/rollup" $args
} else {
& "node$exe" "$basedir/../rollup/dist/bin/rollup" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/semver generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@"
else
exec node "$basedir/../semver/bin/semver.js" "$@"
fi

17
node_modules/.bin/semver.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %*

28
node_modules/.bin/semver.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
} else {
& "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../semver/bin/semver.js" $args
} else {
& "node$exe" "$basedir/../semver/bin/semver.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/sucrase generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../sucrase/bin/sucrase" "$@"
else
exec node "$basedir/../sucrase/bin/sucrase" "$@"
fi

12
node_modules/.bin/sucrase-node generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../sucrase/bin/sucrase-node" "$@"
else
exec node "$basedir/../sucrase/bin/sucrase-node" "$@"
fi

17
node_modules/.bin/sucrase-node.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sucrase\bin\sucrase-node" %*

28
node_modules/.bin/sucrase-node.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../sucrase/bin/sucrase-node" $args
} else {
& "$basedir/node$exe" "$basedir/../sucrase/bin/sucrase-node" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../sucrase/bin/sucrase-node" $args
} else {
& "node$exe" "$basedir/../sucrase/bin/sucrase-node" $args
}
$ret=$LASTEXITCODE
}
exit $ret

17
node_modules/.bin/sucrase.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sucrase\bin\sucrase" %*

28
node_modules/.bin/sucrase.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../sucrase/bin/sucrase" $args
} else {
& "$basedir/node$exe" "$basedir/../sucrase/bin/sucrase" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../sucrase/bin/sucrase" $args
} else {
& "node$exe" "$basedir/../sucrase/bin/sucrase" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/tailwind generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../tailwindcss/lib/cli.js" "$@"
else
exec node "$basedir/../tailwindcss/lib/cli.js" "$@"
fi

17
node_modules/.bin/tailwind.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\tailwindcss\lib\cli.js" %*

28
node_modules/.bin/tailwind.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
} else {
& "node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/tailwindcss generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../tailwindcss/lib/cli.js" "$@"
else
exec node "$basedir/../tailwindcss/lib/cli.js" "$@"
fi

17
node_modules/.bin/tailwindcss.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\tailwindcss\lib\cli.js" %*

28
node_modules/.bin/tailwindcss.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
} else {
& "node$exe" "$basedir/../tailwindcss/lib/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/tree-kill generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../tree-kill/cli.js" "$@"
else
exec node "$basedir/../tree-kill/cli.js" "$@"
fi

17
node_modules/.bin/tree-kill.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\tree-kill\cli.js" %*

28
node_modules/.bin/tree-kill.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../tree-kill/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../tree-kill/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../tree-kill/cli.js" $args
} else {
& "node$exe" "$basedir/../tree-kill/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/update-browserslist-db generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../update-browserslist-db/cli.js" "$@"
else
exec node "$basedir/../update-browserslist-db/cli.js" "$@"
fi

17
node_modules/.bin/update-browserslist-db.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\update-browserslist-db\cli.js" %*

28
node_modules/.bin/update-browserslist-db.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args
} else {
& "node$exe" "$basedir/../update-browserslist-db/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

12
node_modules/.bin/vite generated vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
else
exec node "$basedir/../vite/bin/vite.js" "$@"
fi

17
node_modules/.bin/vite.cmd generated vendored Normal file
View File

@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vite\bin\vite.js" %*

28
node_modules/.bin/vite.ps1 generated vendored Normal file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../vite/bin/vite.js" $args
} else {
& "$basedir/node$exe" "$basedir/../vite/bin/vite.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../vite/bin/vite.js" $args
} else {
& "node$exe" "$basedir/../vite/bin/vite.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

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