Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 668b7ae8cd |
77
ИП/css/mainstyle.css
Normal file
@@ -0,0 +1,77 @@
|
||||
body {
|
||||
color: #c5c6c7;
|
||||
background-color: #0b0c10;
|
||||
}
|
||||
|
||||
.message-body{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.all-message-div {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
width: 30%;
|
||||
min-height: 90vh;
|
||||
padding: 20px;
|
||||
|
||||
background-color: #1F2833;
|
||||
border: 1px solid #66fcf1;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.message-div {
|
||||
width: 90%;
|
||||
background-color: #66fcf1;
|
||||
padding: 15px;
|
||||
margin: 10px 0;
|
||||
border-radius: 10px;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
color: #1F2833;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 50%;
|
||||
background-color: #c5c6c7;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-weight: bold;
|
||||
color: #1F2833;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.message-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.nickname {
|
||||
font-weight: bold;
|
||||
color: #c5c6c7;
|
||||
}
|
||||
|
||||
.text {
|
||||
color: #c5c6c7;
|
||||
}
|
||||
|
||||
a {
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:link{
|
||||
color: #66fcf1;
|
||||
}
|
||||
a:visited{
|
||||
color: #66fcf1;
|
||||
}
|
||||
a:hover{
|
||||
color: #c5c6c7;
|
||||
}
|
||||
19
ИП/index.html
Normal file
@@ -0,0 +1,19 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Моя социальная сеть</title>
|
||||
<link rel="stylesheet" href="css/mainstyle.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Добро пожжаловать в мою социальную сеть!!!</h1>
|
||||
<p>Далее будет представлен список возможных страниц:</p>
|
||||
<ul>
|
||||
<li><a href="profile.html">Профиль</a></li>
|
||||
<li><a href="lenta.html">Лента новостей</a></li>
|
||||
<li><a href="messages.html">Сообщения</a></li>
|
||||
<li><a href="settings.html">Настройки</a></li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
31
ИП/lenta.html
Normal file
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Лента новостей</title>
|
||||
<link rel="stylesheet" href="css/mainstyle.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Лента новостей</h1>
|
||||
<p>Какие-то мемы</p>
|
||||
|
||||
<h3>Какая-то группа 1</h3>
|
||||
<img src="source/meme1.jpg" alt="Мем1" width="500"/>
|
||||
|
||||
<h3>Какая-то группа 2</h3>
|
||||
<img src="source/meme2.jpg" alt="Мем2" width="500"/>
|
||||
|
||||
<h3>Какая-то группа 1</h3>
|
||||
<img src="source/meme3.jpg" alt="Мем3" width="500"/>
|
||||
|
||||
<h3>Какая-то группа 3</h3>
|
||||
<img src="source/meme4.jpg" alt="Мем4" width="500"/>
|
||||
<p>Горшок для ФИСТа, в котором хранится прах студентов, которые не сдали сессию</p>
|
||||
|
||||
<h3>Какая-то группа 3</h3>
|
||||
<img src="source/meme5.jpg" alt="Мем5" width="500"/>
|
||||
|
||||
<p><a href="index.html">Возврат на главную</a></p>
|
||||
</body>
|
||||
</html>
|
||||
19
ИП/messages.html
Normal file
@@ -0,0 +1,19 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Сообщения</title>
|
||||
<link rel="stylesheet" href="css/mainstyle.css" />
|
||||
</head>
|
||||
|
||||
<body class="message-body">
|
||||
<div class="all-message-div">
|
||||
<div class="message-div">Диалог 1</div>
|
||||
<div class="message-div">Диалог 2</div>
|
||||
<div class="message-div">Диалог 3</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
22
ИП/profile.html
Normal file
@@ -0,0 +1,22 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Ваш профиль</title>
|
||||
<link rel="stylesheet" href="css/mainstyle.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Ваш профиль</h1>
|
||||
<img src="source/photo.jpg" alt="Фото профиля" width="100" />
|
||||
|
||||
<p>Контактная информация:</p>
|
||||
<ul>
|
||||
<li>ФИО: ... ... ...</li>
|
||||
<li>Электронная почта: ...</li>
|
||||
<li>Телефон: ...</li>
|
||||
</ul>
|
||||
|
||||
<a href="index.html">Возврат на главную</a>
|
||||
</body>
|
||||
</html>
|
||||
23
ИП/settings.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Настройки</title>
|
||||
<link rel="stylesheet" href="css/mainstyle.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<ul>
|
||||
<li><p>Настройка 1</p></li>
|
||||
<li><p>Настройка 2</p></li>
|
||||
<li><p>Настройка 3</p></li>
|
||||
<li><p>Настройка 4</p></li>
|
||||
</ul>
|
||||
<a href="index.html">Возврат на главную</a>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
BIN
ИП/source/photo.jpg
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
ИП/Отчет_1.docx
Normal file
@@ -1,73 +0,0 @@
|
||||
body {
|
||||
color: #c5c6c7;
|
||||
background-color: #0b0c10;
|
||||
}
|
||||
|
||||
|
||||
/* Шапка */
|
||||
header .container-fluid {
|
||||
border-bottom: 3px solid #BF1723;
|
||||
border-bottom-right-radius: 25px;
|
||||
border-bottom-left-radius: 25px;
|
||||
}
|
||||
|
||||
.first-part {
|
||||
color:#FCD116;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
.last-part {
|
||||
color: #BF1723;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.right-part > nav > ul > li > a {
|
||||
border: 0.5px solid #FFF;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Блок регистрации */
|
||||
.login-page {
|
||||
background-color: #222222;
|
||||
border-radius: 15%;
|
||||
border: 0.5px solid #BF1723;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.remember-forgot label input {
|
||||
accent-color: #BF1723;
|
||||
}
|
||||
|
||||
.login-page .btn {
|
||||
background-color: #BF1723;
|
||||
border-radius: 10px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.input-box input {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.input-box input:focus {
|
||||
border-color: #BF1723;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Ссылки */
|
||||
a {
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:link{
|
||||
color: #FCD116;
|
||||
}
|
||||
a:visited{
|
||||
color: #FCD116;
|
||||
}
|
||||
a:hover{
|
||||
color: #c5c6c7;
|
||||
}
|
||||
@@ -1,208 +0,0 @@
|
||||
body {
|
||||
color: #c5c6c7;
|
||||
background-color: #141414;
|
||||
}
|
||||
|
||||
a:link {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:visited {
|
||||
color: white;
|
||||
}
|
||||
a:hover {
|
||||
color: #BF1723;
|
||||
background-color: #2a2a2a;
|
||||
}
|
||||
a:active {
|
||||
color: #FCD116;
|
||||
}
|
||||
img {
|
||||
width: 50px;
|
||||
}
|
||||
li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Шапка */
|
||||
header .container-fluid {
|
||||
border-bottom: 3px solid #BF1723;
|
||||
border-bottom-right-radius: 25px;
|
||||
border-bottom-left-radius: 25px;
|
||||
}
|
||||
|
||||
.right-part > img {
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Основная страница */
|
||||
.leftbar {
|
||||
width: 10%;
|
||||
background-color: #222222;
|
||||
border-radius: 15px;
|
||||
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
.leftbar-content > a {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.leftbar-settings {
|
||||
border-top: 1px solid rgba(128, 128, 128, 0.479);
|
||||
}
|
||||
|
||||
.leftbar-settings > a{
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.footer {
|
||||
border-top: 1px solid rgba(128, 128, 128, 0.479);
|
||||
}
|
||||
|
||||
.footer > span {
|
||||
z-index: 1;
|
||||
cursor: pointer;
|
||||
color: white;
|
||||
}
|
||||
|
||||
span:hover {
|
||||
color: #BF1723;
|
||||
}
|
||||
|
||||
.footer:hover .footer-menu {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
top: 150%;
|
||||
left: -6%;
|
||||
|
||||
width: 110%;
|
||||
|
||||
position: absolute;
|
||||
|
||||
background-color: #222222;
|
||||
border-radius: 10px;
|
||||
|
||||
padding: 10px;
|
||||
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
.footer-menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.footer-menu > a {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.content {
|
||||
background-color: #222222;
|
||||
border-radius: 15px;
|
||||
border: 0.1px solid #BF1723;
|
||||
|
||||
min-width: 250px;
|
||||
}
|
||||
|
||||
.post-header {
|
||||
color: #fff;
|
||||
border-top: 0.5px solid #BF1723;
|
||||
padding-top: 3%;
|
||||
}
|
||||
|
||||
.image .post-img {
|
||||
border-radius: 2%;
|
||||
}
|
||||
|
||||
.post-footer {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.rightbar {
|
||||
height: 100%;
|
||||
width: 10%;
|
||||
background-color: #222222;
|
||||
border-radius: 15px;
|
||||
|
||||
min-width: 150px;
|
||||
}
|
||||
|
||||
.rightbar-content > a {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.bottombar{
|
||||
bottom: 0;
|
||||
border-top: 3px solid #BF1723;
|
||||
border-top-right-radius: 25px;
|
||||
border-top-left-radius: 25px;
|
||||
background-color: #222222;
|
||||
}
|
||||
|
||||
.bottombar > a > img {
|
||||
width: 25px;
|
||||
}
|
||||
|
||||
|
||||
/*Форма для добавления*/
|
||||
.formContainer{
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
background-color: #f9f9f9;
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Обновлённые стили для кнопок управления постом */
|
||||
.post-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.post-actions {
|
||||
margin-left: auto;
|
||||
display: flex;
|
||||
gap: 5px;
|
||||
}
|
||||
|
||||
.post-actions button {
|
||||
font-size: 0.8rem;
|
||||
padding: 0.1rem 0.4rem;
|
||||
}
|
||||
|
||||
/* Стили для изображений */
|
||||
.image-preview {
|
||||
max-width: 100%;
|
||||
max-height: 200px;
|
||||
margin-top: 10px;
|
||||
display: none;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.post-img {
|
||||
border-radius: 8px;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.like-btn {
|
||||
cursor: pointer;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.like-btn.text-danger {
|
||||
color: #dc3545 !important;
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
body {
|
||||
color: #c5c6c7;
|
||||
background-color: #141414;
|
||||
}
|
||||
|
||||
a:link {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:visited {
|
||||
color: white;
|
||||
}
|
||||
a:hover {
|
||||
color: #BF1723;
|
||||
background-color: #2a2a2a;
|
||||
}
|
||||
a:active {
|
||||
color: #FCD116;
|
||||
}
|
||||
img {
|
||||
width: 50px;
|
||||
}
|
||||
li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Шапка */
|
||||
header .container-fluid {
|
||||
border-bottom: 3px solid #BF1723;
|
||||
border-bottom-right-radius: 25px;
|
||||
border-bottom-left-radius: 25px;
|
||||
}
|
||||
|
||||
.right-part > img {
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Основная страница */
|
||||
.leftbar {
|
||||
width: 10%;
|
||||
background-color: #222222;
|
||||
border-radius: 15px;
|
||||
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
.leftbar-content > a {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.leftbar-settings {
|
||||
border-top: 1px solid rgba(128, 128, 128, 0.479);
|
||||
}
|
||||
|
||||
.leftbar-settings > a{
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.footer {
|
||||
border-top: 1px solid rgba(128, 128, 128, 0.479);
|
||||
}
|
||||
|
||||
.footer > span {
|
||||
z-index: 1;
|
||||
cursor: pointer;
|
||||
color: white;
|
||||
}
|
||||
|
||||
span:hover {
|
||||
color: #BF1723;
|
||||
}
|
||||
|
||||
.footer:hover .footer-menu {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
top: 150%;
|
||||
left: -6%;
|
||||
|
||||
width: 110%;
|
||||
|
||||
position: absolute;
|
||||
|
||||
background-color: #222222;
|
||||
border-radius: 10px;
|
||||
|
||||
padding: 10px;
|
||||
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
.footer-menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.footer-menu > a {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.content {
|
||||
background-color: #222222;
|
||||
border-radius: 15px;
|
||||
border: 0.1px solid #BF1723;
|
||||
|
||||
min-width: 250px;
|
||||
}
|
||||
|
||||
.chat {
|
||||
border-bottom: 0.5px solid rgba(128, 128, 128, 0.479);
|
||||
}
|
||||
|
||||
.chat > .avatar > img {
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
.username {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.message {
|
||||
color: rgb(158, 158, 158);
|
||||
}
|
||||
|
||||
|
||||
|
||||
.rightbar {
|
||||
height: 100%;
|
||||
width: 10%;
|
||||
background-color: #222222;
|
||||
border-radius: 15px;
|
||||
|
||||
min-width: 150px;
|
||||
}
|
||||
|
||||
.rightbar-content > a {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.bottombar{
|
||||
bottom: 0;
|
||||
border-top: 3px solid #BF1723;
|
||||
border-top-right-radius: 25px;
|
||||
border-top-left-radius: 25px;
|
||||
background-color: #222222;
|
||||
}
|
||||
|
||||
.bottombar > a > img {
|
||||
width: 25px;
|
||||
}
|
||||
@@ -1,176 +0,0 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
color: #c5c6c7;
|
||||
background-color: #141414;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
a:link {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:visited {
|
||||
color: white;
|
||||
}
|
||||
a:hover {
|
||||
color: #BF1723;
|
||||
background-color: #2a2a2a;
|
||||
}
|
||||
a:active {
|
||||
color: #FCD116;
|
||||
}
|
||||
img {
|
||||
width: 50px;
|
||||
}
|
||||
li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Шапка */
|
||||
header .container-fluid {
|
||||
border-bottom: 3px solid #BF1723;
|
||||
border-bottom-right-radius: 25px;
|
||||
border-bottom-left-radius: 25px;
|
||||
}
|
||||
|
||||
.right-part > img {
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Основная страница */
|
||||
.leftbar {
|
||||
width: 10%;
|
||||
background-color: #222222;
|
||||
border-radius: 15px;
|
||||
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
.leftbar-content > a {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.leftbar-settings {
|
||||
border-top: 1px solid rgba(128, 128, 128, 0.479);
|
||||
}
|
||||
|
||||
.leftbar-settings > a{
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.footer {
|
||||
border-top: 1px solid rgba(128, 128, 128, 0.479);
|
||||
}
|
||||
|
||||
.footer > span {
|
||||
z-index: 1;
|
||||
cursor: pointer;
|
||||
color: white;
|
||||
}
|
||||
|
||||
span:hover {
|
||||
color: #BF1723;
|
||||
}
|
||||
|
||||
.footer:hover .footer-menu {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
top: 150%;
|
||||
left: -6%;
|
||||
|
||||
width: 110%;
|
||||
|
||||
position: absolute;
|
||||
|
||||
background-color: #222222;
|
||||
border-radius: 10px;
|
||||
|
||||
padding: 10px;
|
||||
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
.footer-menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.footer-menu > a {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.profile-card {
|
||||
max-width: 250px;
|
||||
width: 100%;
|
||||
background-color: #222222;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
.image {
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
border-radius: 50%;
|
||||
background-color: #FCD116;
|
||||
}
|
||||
|
||||
.image .profile-img {
|
||||
border-radius: 50%;
|
||||
border: 3px solid #FFF;
|
||||
}
|
||||
|
||||
.text-data .name {
|
||||
font-size: 22px;
|
||||
font-weight: 500;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.text-data .about {
|
||||
font-size: 15px;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.profile-card .more-info {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.rightbar {
|
||||
height: 100%;
|
||||
width: 10%;
|
||||
background-color: #222222;
|
||||
border-radius: 15px;
|
||||
|
||||
min-width: 150px;
|
||||
}
|
||||
|
||||
.rightbar-content > a {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.bottombar{
|
||||
bottom: 0;
|
||||
border-top: 3px solid #BF1723;
|
||||
border-top-right-radius: 25px;
|
||||
border-top-left-radius: 25px;
|
||||
background-color: #222222;
|
||||
}
|
||||
|
||||
.bottombar > a > img {
|
||||
width: 25px;
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
body {
|
||||
color: #c5c6c7;
|
||||
background-color: #0b0c10;
|
||||
}
|
||||
|
||||
|
||||
/* Шапка */
|
||||
header .container-fluid {
|
||||
border-bottom: 3px solid #BF1723;
|
||||
border-bottom-right-radius: 25px;
|
||||
border-bottom-left-radius: 25px;
|
||||
}
|
||||
|
||||
.first-part {
|
||||
color:#FCD116;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
.last-part {
|
||||
color: #BF1723;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.right-part > nav > ul > li > a {
|
||||
border: 0.5px solid #FFF;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Блок регистрации */
|
||||
.login-page {
|
||||
background-color: #222222;
|
||||
border-radius: 15%;
|
||||
border: 0.5px solid #BF1723;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.remember-forgot label input {
|
||||
accent-color: #BF1723;
|
||||
}
|
||||
|
||||
.login-page .btn {
|
||||
background-color: #BF1723;
|
||||
border-radius: 10px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.input-box input {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.input-box input:focus {
|
||||
border-color: #BF1723;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Ссылки */
|
||||
a {
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:link{
|
||||
color: #FCD116;
|
||||
}
|
||||
a:visited{
|
||||
color: #FCD116;
|
||||
}
|
||||
a:hover{
|
||||
color: #c5c6c7;
|
||||
}
|
||||
|
||||
|
||||
|
||||
79
ИП4/db.json
@@ -1,70 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>СОЦИАЛьная сеть</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="css/index-style.css" />
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<div class="container-fluid d-flex justify-content-evenly">
|
||||
<div class="left-part d-flex">
|
||||
<img src="source/logo.svg" alt="Logo" width="50">
|
||||
<div class="d-flex align-items-center pt-3">
|
||||
<p class="first-part ms-3">СОЦИАЛ</p>
|
||||
<p class="last-part">ьная сеть</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="right-part d-none d-sm-flex me-4 pt-3">
|
||||
<nav>
|
||||
<ul class="d-flex list-unstyled p-0 m-0">
|
||||
<li><a class="d-block me-2 p-2" href="messages.html" >Войти</a></li>
|
||||
<li><a class="d-block me-2 p-2" href="signup.html">Зарегистрироваться</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
<section>
|
||||
<div class="container-fluid d-flex justify-content-center align-items-center" style="height: calc(100vh - 200px);">
|
||||
<div class="login-page" style="min-width: 300px; max-width: 400px; width: 100%;">
|
||||
<form class="px-3">
|
||||
<h1 class="text-center">Авторизация</h1>
|
||||
|
||||
<div class="input-div d-flex flex-column align-items-center mb-2">
|
||||
<div class="input-box my-1">
|
||||
<input type="text" placeholder="Логин">
|
||||
<i class="bi bi-person"></i>
|
||||
</div>
|
||||
<div class="input-box my-1">
|
||||
<input type="password" placeholder="Пароль">
|
||||
<i class="bi bi-shield-lock"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="remember-forgot d-flex justify-content-evenly mb-2 px-2">
|
||||
<label><input type="checkbox"> Запомнить меня</label>
|
||||
<a href="#">Забыли пароль?</a>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn w-100">Войти</button>
|
||||
|
||||
<div class="register-link d-flex justify-content-evenly align-items-center">
|
||||
<p class="pt-3">У меня нет аккаунта</p>
|
||||
<a href="signup.html">Зарегистрироваться</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,451 +0,0 @@
|
||||
// Модель
|
||||
class PostModel {
|
||||
constructor() {
|
||||
this.apiUrl = 'http://localhost:3000/posts';
|
||||
}
|
||||
|
||||
async getAllPosts() {
|
||||
try {
|
||||
const response = await fetch(this.apiUrl);
|
||||
return await response.json();
|
||||
} catch (error) {
|
||||
console.error('Error fetching posts:', error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
async getPostById(id) {
|
||||
try {
|
||||
const response = await fetch(`${this.apiUrl}/${id}`);
|
||||
return await response.json();
|
||||
} catch (error) {
|
||||
console.error(`Error fetching post ${id}:`, error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async createPost(postData) {
|
||||
try {
|
||||
const response = await fetch(this.apiUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify(postData),
|
||||
});
|
||||
return await response.json();
|
||||
} catch (error) {
|
||||
console.error('Error creating post:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async updatePost(id, postData) {
|
||||
try {
|
||||
const response = await fetch(`${this.apiUrl}/${id}`, {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify(postData),
|
||||
});
|
||||
return await response.json();
|
||||
} catch (error) {
|
||||
console.error(`Error updating post ${id}:`, error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async deletePost(id) {
|
||||
try {
|
||||
const response = await fetch(`${this.apiUrl}/${id}`, {
|
||||
method: 'DELETE',
|
||||
});
|
||||
return response.ok;
|
||||
} catch (error) {
|
||||
console.error(`Error deleting post ${id}:`, error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Представление
|
||||
class PostView {
|
||||
constructor() {
|
||||
this.app = document.querySelector('.content');
|
||||
this.postTemplate = this.createPostTemplate();
|
||||
}
|
||||
|
||||
createPostTemplate() {
|
||||
const template = document.createElement('template');
|
||||
template.innerHTML = `
|
||||
<div class="post mb-3">
|
||||
<div class="post-header mb-2">
|
||||
<i class='bi bi-people'></i>
|
||||
<label class="group-name"></label>
|
||||
<div class="post-actions">
|
||||
<button class="btn btn-sm btn-outline-secondary edit-post"><i class="bi bi-pencil"></i></button>
|
||||
<button class="btn btn-sm btn-outline-danger delete-post"><i class="bi bi-trash"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="image position-relative w-98 p-1 mb-2">
|
||||
<img class="post-img w-100 h-100 object-fit-cover"/>
|
||||
</div>
|
||||
<p class="post-text p-2"></p>
|
||||
<div class="post-footer p-1">
|
||||
<i class='bi bi-heart me-2 like-btn'><span class="ms-1 likes-count">0</span></i>
|
||||
<i class='bi bi-chat-left me-2'><span class="ms-1 comments-count">0</span></i>
|
||||
<i class='bi bi-reply me-2'><span class="ms-1 shares-count">0</span></i>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
return template;
|
||||
}
|
||||
|
||||
renderPosts(posts) {
|
||||
// Очищаем контейнер с постами
|
||||
const oldPosts = this.app.querySelectorAll('.post');
|
||||
oldPosts.forEach(post => {
|
||||
if (!post.id.startsWith('post-form')) {
|
||||
post.remove();
|
||||
}
|
||||
});
|
||||
|
||||
// Добавляем новые посты
|
||||
posts.forEach(post => {
|
||||
const postElement = this.postTemplate.content.cloneNode(true);
|
||||
const postNode = postElement.querySelector('.post');
|
||||
postNode.id = `post-${post.id}`;
|
||||
|
||||
postNode.querySelector('.group-name').textContent = post.groupName || 'Моя группа';
|
||||
postNode.querySelector('.post-text').textContent = post.text || '';
|
||||
|
||||
const imgElement = postNode.querySelector('.post-img');
|
||||
if (post.image) {
|
||||
// Используем полный путь к изображению или base64 данные
|
||||
if (post.image.startsWith('data:')) {
|
||||
imgElement.src = post.image;
|
||||
} else {
|
||||
imgElement.src = post.image;
|
||||
}
|
||||
imgElement.alt = post.text || 'Post image';
|
||||
} else {
|
||||
imgElement.parentElement.remove();
|
||||
}
|
||||
|
||||
postNode.querySelector('.likes-count').textContent = post.likes || 0;
|
||||
postNode.querySelector('.comments-count').textContent = post.comments || 0;
|
||||
postNode.querySelector('.shares-count').textContent = post.shares || 0;
|
||||
|
||||
// Добавляем обработчики для кнопок
|
||||
postNode.querySelector('.edit-post').addEventListener('click', () => {
|
||||
this.onEditPost(post.id);
|
||||
});
|
||||
|
||||
postNode.querySelector('.delete-post').addEventListener('click', () => {
|
||||
this.onDeletePost(post.id);
|
||||
});
|
||||
|
||||
postNode.querySelector('.like-btn').addEventListener('click', () => {
|
||||
this.onLikePost(post.id);
|
||||
});
|
||||
|
||||
this.app.appendChild(postNode);
|
||||
});
|
||||
}
|
||||
|
||||
renderPostForm(post = null) {
|
||||
// Удаляем существующую форму, если есть
|
||||
const existingForm = document.getElementById('post-form');
|
||||
if (existingForm) {
|
||||
existingForm.remove();
|
||||
}
|
||||
|
||||
// Создаем новую форму
|
||||
const formTemplate = document.createElement('template');
|
||||
formTemplate.innerHTML = `
|
||||
<div class="add-post-form mb-4 pb-3" id="post-form">
|
||||
<h5>${post ? 'Редактировать пост' : 'Новый пост'}</h5>
|
||||
<form id="${post ? 'editPostForm' : 'createPostForm'}">
|
||||
<div class="mb-3">
|
||||
<textarea id="postText" class="form-control" placeholder="Напишите что-нибудь..." rows="3">${post ? post.text : ''}</textarea>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="postImage" class="btn btn-outline-secondary">
|
||||
<i class="bi bi-image"></i> ${post && post.image ? 'Заменить изображение' : 'Выбрать изображение'}
|
||||
</label>
|
||||
<input type="file" id="postImage" accept="image/*" class="d-none">
|
||||
${post && post.image ? `<img src="${post.image}" id="imagePreview" class="image-preview" style="display: block;">` : '<img id="imagePreview" class="image-preview">'}
|
||||
</div>
|
||||
<input type="hidden" id="postId" value="${post ? post.id : ''}">
|
||||
<div class="d-flex justify-content-between">
|
||||
<button type="button" id="cancelPostBtn" class="btn btn-outline-secondary">
|
||||
Отмена
|
||||
</button>
|
||||
<button type="submit" class="btn btn-danger">
|
||||
<i class="bi bi-send"></i> ${post ? 'Обновить' : 'Опубликовать'}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
`;
|
||||
|
||||
const formNode = formTemplate.content.cloneNode(true);
|
||||
this.app.insertBefore(formNode, this.app.firstChild);
|
||||
|
||||
// Обработка загрузки изображения
|
||||
document.getElementById('postImage')?.addEventListener('change', (e) => {
|
||||
const file = e.target.files[0];
|
||||
if (file) {
|
||||
const reader = new FileReader();
|
||||
reader.onload = (event) => {
|
||||
const preview = document.getElementById('imagePreview');
|
||||
preview.src = event.target.result;
|
||||
preview.style.display = 'block';
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
});
|
||||
|
||||
// Обработка отмены
|
||||
document.getElementById('cancelPostBtn')?.addEventListener('click', () => {
|
||||
document.getElementById('post-form').remove();
|
||||
document.getElementById('showFormBtn').classList.remove('d-none');
|
||||
});
|
||||
}
|
||||
|
||||
bindCreatePost(handler) {
|
||||
document.getElementById('showFormBtn')?.addEventListener('click', () => {
|
||||
this.renderPostForm();
|
||||
document.getElementById('showFormBtn').classList.add('d-none');
|
||||
});
|
||||
|
||||
document.addEventListener('submit', (e) => {
|
||||
if (e.target.id === 'createPostForm') {
|
||||
e.preventDefault();
|
||||
const text = document.getElementById('postText').value;
|
||||
const imageFile = document.getElementById('postImage').files[0];
|
||||
handler({ text, imageFile });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
bindEditPost(handler) {
|
||||
document.addEventListener('submit', (e) => {
|
||||
if (e.target.id === 'editPostForm') {
|
||||
e.preventDefault();
|
||||
const id = document.getElementById('postId').value;
|
||||
const text = document.getElementById('postText').value;
|
||||
const imageFile = document.getElementById('postImage').files[0];
|
||||
handler(id, { text, imageFile });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
bindDeletePost(handler) {
|
||||
this.onDeletePost = handler;
|
||||
}
|
||||
|
||||
bindLikePost(handler) {
|
||||
this.onLikePost = handler;
|
||||
}
|
||||
|
||||
bindOnEditPost(handler) {
|
||||
this.onEditPost = handler;
|
||||
}
|
||||
}
|
||||
|
||||
// Контроллер
|
||||
class PostController {
|
||||
constructor(model, view) {
|
||||
this.model = model;
|
||||
this.view = view;
|
||||
|
||||
// Привязываем обработчики событий
|
||||
this.view.bindCreatePost(this.handleCreatePost.bind(this));
|
||||
this.view.bindEditPost(this.handleUpdatePost.bind(this));
|
||||
this.view.bindDeletePost(this.handleDeletePost.bind(this));
|
||||
this.view.bindLikePost(this.handleLikePost.bind(this));
|
||||
this.view.bindOnEditPost(this.handleEditPost.bind(this));
|
||||
|
||||
// Загружаем начальные данные
|
||||
this.initialize();
|
||||
}
|
||||
|
||||
async initialize() {
|
||||
const posts = await this.model.getAllPosts();
|
||||
|
||||
//Сортировка по дате
|
||||
const sortedPosts = posts.sort((a, b) => {
|
||||
const dateA = new Date(a.createdAt || 0);
|
||||
const dateB = new Date(b.createdAt || 0);
|
||||
return dateB - dateA;
|
||||
});
|
||||
|
||||
|
||||
const postsWithGroups = sortedPosts.map(post => ({
|
||||
...post,
|
||||
groupName: `Какая-то группа`
|
||||
}));
|
||||
|
||||
this.view.renderPosts(postsWithGroups);
|
||||
}
|
||||
|
||||
async checkImageDimensions(file) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const img = new Image();
|
||||
const url = URL.createObjectURL(file);
|
||||
|
||||
img.onload = function() {
|
||||
URL.revokeObjectURL(url);
|
||||
resolve({
|
||||
isSquare: this.width === this.height,
|
||||
width: this.width,
|
||||
height: this.height
|
||||
});
|
||||
};
|
||||
|
||||
img.onerror = function() {
|
||||
URL.revokeObjectURL(url);
|
||||
reject(new Error('Не удалось загрузить изображение'));
|
||||
};
|
||||
|
||||
img.src = url;
|
||||
});
|
||||
}
|
||||
|
||||
async handleCreatePost(postData) {
|
||||
const { text, imageFile } = postData;
|
||||
|
||||
if (!text.trim() && !imageFile) {
|
||||
alert('Добавьте текст или изображение');
|
||||
return;
|
||||
}
|
||||
|
||||
// Если есть изображение, сохраняем его как base64
|
||||
let imageData = null;
|
||||
if (imageFile) {
|
||||
try {
|
||||
const { isSquare, width, height } = await this.checkImageDimensions(imageFile);
|
||||
if (!isSquare) {
|
||||
alert(`Изображение должно быть квадратным! Текущий размер: ${width}×${height}px`);
|
||||
return;
|
||||
}
|
||||
imageData = await this.getImageData(imageFile);
|
||||
} catch (error) {
|
||||
console.error('Ошибка проверки изображения:', error);
|
||||
alert('Не удалось обработать изображение');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const newPost = {
|
||||
text,
|
||||
image: imageData,
|
||||
likes: 0,
|
||||
comments: 0,
|
||||
shares: 0,
|
||||
groupId: 1,
|
||||
createdAt: new Date().toISOString()
|
||||
};
|
||||
|
||||
const createdPost = await this.model.createPost(newPost);
|
||||
if (createdPost) {
|
||||
this.initialize(); // Перезагружаем посты
|
||||
document.getElementById('post-form').remove();
|
||||
document.getElementById('showFormBtn').classList.remove('d-none');
|
||||
}
|
||||
}
|
||||
|
||||
async handleUpdatePost(id, postData) {
|
||||
const { text, imageFile } = postData;
|
||||
|
||||
if (!text.trim() && !imageFile) {
|
||||
alert('Добавьте текст или изображение');
|
||||
return;
|
||||
}
|
||||
|
||||
const post = await this.model.getPostById(id);
|
||||
if (!post) return;
|
||||
|
||||
// Если есть новое изображение, сохраняем его как base64
|
||||
let imageData = post.image;
|
||||
if (imageFile) {
|
||||
try {
|
||||
const { isSquare, width, height } = await this.checkImageDimensions(imageFile);
|
||||
if (!isSquare) {
|
||||
alert(`Изображение должно быть квадратным! Текущий размер: ${width}×${height}px`);
|
||||
return;
|
||||
}
|
||||
imageData = await this.getImageData(imageFile);
|
||||
} catch (error) {
|
||||
console.error('Ошибка проверки изображения:', error);
|
||||
alert('Не удалось обработать изображение');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const updatedPost = {
|
||||
...post,
|
||||
text,
|
||||
image: imageData
|
||||
};
|
||||
|
||||
const result = await this.model.updatePost(id, updatedPost);
|
||||
if (result) {
|
||||
this.initialize(); // Перезагружаем посты
|
||||
document.getElementById('post-form').remove();
|
||||
document.getElementById('showFormBtn').classList.remove('d-none');
|
||||
}
|
||||
}
|
||||
|
||||
async handleDeletePost(id) {
|
||||
if (confirm('Вы уверены, что хотите удалить этот пост?')) {
|
||||
const success = await this.model.deletePost(id);
|
||||
if (success) {
|
||||
this.initialize(); // Перезагружаем посты
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async handleLikePost(id) {
|
||||
const post = await this.model.getPostById(id);
|
||||
if (!post) return;
|
||||
|
||||
const updatedPost = {
|
||||
...post,
|
||||
likes: (post.likes || 0) + 1
|
||||
};
|
||||
|
||||
const result = await this.model.updatePost(id, updatedPost);
|
||||
if (result) {
|
||||
this.initialize(); // Перезагружаем посты
|
||||
}
|
||||
}
|
||||
|
||||
async handleEditPost(id) {
|
||||
const post = await this.model.getPostById(id);
|
||||
if (post) {
|
||||
this.view.renderPostForm(post);
|
||||
document.getElementById('showFormBtn').classList.add('d-none');
|
||||
}
|
||||
}
|
||||
|
||||
// Преобразование изображения в base64
|
||||
async getImageData(file) {
|
||||
return new Promise((resolve) => {
|
||||
const reader = new FileReader();
|
||||
reader.onload = (event) => {
|
||||
resolve(event.target.result);
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Инициализация приложения
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const model = new PostModel();
|
||||
const view = new PostView();
|
||||
new PostController(model, view);
|
||||
});
|
||||
180
ИП4/lenta.html
@@ -1,180 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Лента новостей</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="css/lenta-style.css" />
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css">
|
||||
</head>
|
||||
<body class="m-0">
|
||||
<header>
|
||||
<div class="container-fluid d-flex justify-content-evenly">
|
||||
<div class="left-part d-flex">
|
||||
<img src="source/logo.svg" alt="Logo" width="50">
|
||||
</div>
|
||||
|
||||
<div class="right-part d-none d-sm-flex me-4 my-1">
|
||||
<img src="source/photo.jpg" alt="" class="account-image">
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
<div class="page d-flex justify-content-center mt-3">
|
||||
<div class="leftbar d-none h-100 m-1 d-sm-flex flex-column">
|
||||
<div class="leftbar-content d-flex flex-column mt-2 mx-2 mb-1">
|
||||
<a class="mb-1 p-1" href="profile.html">Профиль</a>
|
||||
<a class="mb-1 p-1" href="lenta.html">Лента</a>
|
||||
<a class="mb-1 p-1" href="messages.html">Сообщения</a>
|
||||
</div>
|
||||
|
||||
<div class="leftbar-settings d-flex flex-column mt-2 mx-2 mb-0 pt-1">
|
||||
<a class="p-1" href="index.html">Настройки</a>
|
||||
</div>
|
||||
|
||||
<div class="footer position-relative m-2 pt-1">
|
||||
<span class="position-relative">Ещё ▼</span>
|
||||
<div class="footer-menu">
|
||||
<a class="mb-1 p-1" href="#">Разработчикам</a>
|
||||
<a class="mb-1 p-1" href="#">О нас</a>
|
||||
<a class="mb-1 p-1" href="#">Правовая информация</a>
|
||||
<a class="mb-1 p-1" href="#">Помощь</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content h-100 w-25 m-1 p-2 mb-5 d-flex flex-column justify-content-center">
|
||||
<button id="showFormBtn" class="btn btn-danger add-post-btn m-3">
|
||||
<i class="bi bi-plus-circle"></i> Добавить пост
|
||||
</button>
|
||||
|
||||
<div class="add-post-form mb-4 d-none pb-3" id="postFormContainer">
|
||||
<h5>Новый пост</h5>
|
||||
<form id="postForm">
|
||||
<div class="mb-3">
|
||||
<textarea id="postText" class="form-control" placeholder="Напишите что-нибудь..." rows="3"></textarea>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="postImage" class="btn btn-outline-secondary">
|
||||
<i class="bi bi-image"></i> Выбрать изображение
|
||||
</label>
|
||||
<input type="file" id="postImage" accept="image/*" class="d-none">
|
||||
<img id="imagePreview" class="image-preview">
|
||||
</div>
|
||||
<div class="d-flex justify-content-between">
|
||||
<button type="button" id="cancelPostBtn" class="btn btn-outline-secondary">
|
||||
Отмена
|
||||
</button>
|
||||
<button type="submit" class="btn btn-danger">
|
||||
<i class="bi bi-send"></i> Опубликовать
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="post mb-3">
|
||||
<div class="post-header mb-2">
|
||||
<i class='bi bi-people'></i>
|
||||
<label>Какая-то группа 1</label>
|
||||
</div>
|
||||
<div class="image position-relative w-98 p-1 mb-2">
|
||||
<img src="source/meme1.jpg" class="post-img w-100 h-100 object-fit-cover"/>
|
||||
</div>
|
||||
<div class="post-footer p-1">
|
||||
<i class='bi bi-heart me-2' ><span class="ms-1">8</span></i>
|
||||
<i class='bi bi-chat-left me-2' ><span class="ms-1">2</span></i>
|
||||
<i class='bi bi-reply me-2' ><span class="ms-1">1</span></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="post mb-3">
|
||||
<div class="post-header mb-2">
|
||||
<i class='bi bi-people'></i>
|
||||
<label>Какая-то группа 2</label>
|
||||
</div>
|
||||
<div class="image position-relative w-98 p-1 mb-2">
|
||||
<img src="source/meme2.jpg" class="post-img w-100 h-100 object-fit-cover"/>
|
||||
</div>
|
||||
<div class="post-footer p-1">
|
||||
<i class='bi bi-heart me-2' ><span class="ms-1">785</span></i>
|
||||
<i class='bi bi-chat-left me-2' ><span class="ms-1">102</span></i>
|
||||
<i class='bi bi-reply me-2' ><span class="ms-1">14</span></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="post mb-3">
|
||||
<div class="post-header mb-2">
|
||||
<i class='bi bi-people'></i>
|
||||
<label>Какая-то группа 3</label>
|
||||
</div>
|
||||
<div class="image position-relative w-98 p-1 mb-2">
|
||||
<img src="source/meme3.jpg" class="post-img w-100 h-100 object-fit-cover"/>
|
||||
</div>
|
||||
<div class="post-footer p-1">
|
||||
<i class='bi bi-heart me-2' ><span class="ms-1">156</span></i>
|
||||
<i class='bi bi-chat-left me-2' ><span class="ms-1">10</span></i>
|
||||
<i class='bi bi-reply me-2' ><span class="ms-1">0</span></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="post mb-3">
|
||||
<div class="post-header mb-2">
|
||||
<i class='bi bi-people'></i>
|
||||
<label>Какая-то группа 4</label>
|
||||
</div>
|
||||
<div class="image position-relative w-98 p-1 mb-2">
|
||||
<img src="source/meme4.jpg" class="post-img w-100 h-100 object-fit-cover"/>
|
||||
<label>Горшок для ФИСТа, в котором хранится прах студентов, которые не сдали сессию</label>
|
||||
</div>
|
||||
<div class="post-footer p-1">
|
||||
<i class='bi bi-heart me-2' ><span class="ms-1">456</span></i>
|
||||
<i class='bi bi-chat-left me-2' ><span class="ms-1">32</span></i>
|
||||
<i class='bi bi-reply me-2' ><span class="ms-1">4</span></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="post mb-3">
|
||||
<div class="post-header mb-2">
|
||||
<i class='bi bi-people'></i>
|
||||
<label>Какая-то группа 5</label>
|
||||
</div>
|
||||
<div class="image position-relative w-98 p-1 mb-2">
|
||||
<img src="source/meme5.jpg" class="post-img w-100 h-100 object-fit-cover"/>
|
||||
</div>
|
||||
<div class="post-footer p-1">
|
||||
<i class='bi bi-heart me-2' ><span class="ms-1">1067</span></i>
|
||||
<i class='bi bi-chat-left me-2' ><span class="ms-1">467</span></i>
|
||||
<i class='bi bi-reply me-2' ><span class="ms-1">56</span></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="rightbar d-none d-sm-flex m-1">
|
||||
<div class="rightbar-content d-flex flex-column m-2">
|
||||
<a class="mb-1 p-1" href="#">Все</a>
|
||||
<a class="mb-1 p-1" href="#">Непрочитанные</a>
|
||||
<a class="mb-1 p-1" href="#">Архив</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottombar d-flex d-sm-none position-fixed w-100 justify-content-evenly py-2 px-0">
|
||||
<a href="lenta.html"><img src="source/home-icon.svg" alt=""></a>
|
||||
<a href="messages.html"><img src="source/message-icon.svg" alt=""></a>
|
||||
<a href="profile.html"><img src="source/profile-icon.svg" alt=""></a>
|
||||
<a href="index.html"><img src="source/exit-icon.svg" alt=""></a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
|
||||
</script>
|
||||
|
||||
<script src="js/postComponent.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,136 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Сообщения</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="css/message-style.css" />
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<div class="container-fluid d-flex justify-content-evenly">
|
||||
<div class="left-part d-flex">
|
||||
<img src="source/logo.svg" alt="Logo" width="50">
|
||||
</div>
|
||||
|
||||
<div class="right-part d-none d-sm-flex me-4 my-1">
|
||||
<img src="source/photo.jpg" alt="" class="account-image">
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
<div class="page d-flex justify-content-center mt-3">
|
||||
<div class="leftbar d-none h-100 m-1 d-sm-flex flex-column">
|
||||
<div class="leftbar-content d-flex flex-column mt-2 mx-2 mb-1">
|
||||
<a class="mb-1 p-1" href="profile.html">Профиль</a>
|
||||
<a class="mb-1 p-1" href="lenta.html">Лента</a>
|
||||
<a class="mb-1 p-1" href="messages.html">Сообщения</a>
|
||||
</div>
|
||||
|
||||
<div class="leftbar-settings d-flex flex-column mt-2 mx-2 mb-0 pt-1">
|
||||
<a class="p-1" href="index.html">Настройки</a>
|
||||
</div>
|
||||
|
||||
<div class="footer position-relative m-2 pt-1">
|
||||
<span class="position-relative">Ещё ▼</span>
|
||||
<div class="footer-menu">
|
||||
<a class="mb-1 p-1" href="#">Разработчикам</a>
|
||||
<a class="mb-1 p-1" href="#">О нас</a>
|
||||
<a class="mb-1 p-1" href="#">Правовая информация</a>
|
||||
<a class="mb-1 p-1" href="#">Помощь</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content h-100 w-25 m-1 p-2">
|
||||
<div class="chat d-flex align-items-center mb-2 pb-2">
|
||||
<div class="avatar">
|
||||
<img src="source/photo.jpg" alt="" class="avatar">
|
||||
</div>
|
||||
|
||||
<div class="chat-content ms-2">
|
||||
<h3 class="username m-0">username</h3>
|
||||
<p class="message m-0">Сделал вторую лабу</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="chat d-flex align-items-center mb-2 pb-2">
|
||||
<div class="avatar">
|
||||
<img src="source/photo.jpg" alt="" class="avatar">
|
||||
</div>
|
||||
|
||||
<div class="chat-content ms-2">
|
||||
<h3 class="username m-0">username</h3>
|
||||
<p class="message m-0">Сделал вторую лабу</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="chat d-flex align-items-center mb-2 pb-2">
|
||||
<div class="avatar">
|
||||
<img src="source/photo.jpg" alt="" class="avatar">
|
||||
</div>
|
||||
|
||||
<div class="chat-content ms-2">
|
||||
<h3 class="username m-0">username</h3>
|
||||
<p class="message m-0">Сделал вторую лабу</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="chat d-flex align-items-center mb-2 pb-2">
|
||||
<div class="avatar">
|
||||
<img src="source/photo.jpg" alt="" class="avatar">
|
||||
</div>
|
||||
|
||||
<div class="chat-content ms-2">
|
||||
<h3 class="username m-0">username</h3>
|
||||
<p class="message m-0">Сделал вторую лабу</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="chat d-flex align-items-center mb-2 pb-2">
|
||||
<div class="avatar">
|
||||
<img src="source/photo.jpg" alt="" class="avatar">
|
||||
</div>
|
||||
|
||||
<div class="chat-content ms-2">
|
||||
<h3 class="username m-0">username</h3>
|
||||
<p class="message m-0">Сделал вторую лабу</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="chat d-flex align-items-center mb-2 pb-2">
|
||||
<div class="avatar">
|
||||
<img src="source/photo.jpg" alt="" class="avatar">
|
||||
</div>
|
||||
|
||||
<div class="chat-content ms-2">
|
||||
<h3 class="username m-0">username</h3>
|
||||
<p class="message m-0">Сделал вторую лабу</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="rightbar d-none d-sm-flex m-1">
|
||||
<div class="rightbar-content d-flex flex-column m-2">
|
||||
<a class="mb-1 p-1" href="#">Все</a>
|
||||
<a class="mb-1 p-1" href="#">Непрочитанные</a>
|
||||
<a class="mb-1 p-1" href="#">Архив</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottombar d-flex d-sm-none position-fixed w-100 justify-content-evenly py-2 px-0">
|
||||
<a href="lenta.html"><img src="source/home-icon.svg" alt=""></a>
|
||||
<a href="messages.html"><img src="source/message-icon.svg" alt=""></a>
|
||||
<a href="profile.html"><img src="source/profile-icon.svg" alt=""></a>
|
||||
<a href="index.html"><img src="source/exit-icon.svg" alt=""></a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
|
||||
</body>
|
||||
</html>
|
||||
16
ИП4/node_modules/.bin/acorn
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@"
|
||||
else
|
||||
exec node "$basedir/../acorn/bin/acorn" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/acorn.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\acorn\bin\acorn" %*
|
||||
28
ИП4/node_modules/.bin/acorn.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../acorn/bin/acorn" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../acorn/bin/acorn" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../acorn/bin/acorn" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/esbuild
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../esbuild/bin/esbuild" "$@"
|
||||
else
|
||||
exec node "$basedir/../esbuild/bin/esbuild" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/esbuild.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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
ИП4/node_modules/.bin/esbuild.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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
|
||||
16
ИП4/node_modules/.bin/eslint
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../eslint/bin/eslint.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../eslint/bin/eslint.js" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/eslint.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\eslint\bin\eslint.js" %*
|
||||
28
ИП4/node_modules/.bin/eslint.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../eslint/bin/eslint.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../eslint/bin/eslint.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../eslint/bin/eslint.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../eslint/bin/eslint.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/he
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../he/bin/he" "$@"
|
||||
else
|
||||
exec node "$basedir/../he/bin/he" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/he.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\he\bin\he" %*
|
||||
28
ИП4/node_modules/.bin/he.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../he/bin/he" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../he/bin/he" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../he/bin/he" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../he/bin/he" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/http-server
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../http-server/bin/http-server" "$@"
|
||||
else
|
||||
exec node "$basedir/../http-server/bin/http-server" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/http-server.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\http-server\bin\http-server" %*
|
||||
28
ИП4/node_modules/.bin/http-server.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../http-server/bin/http-server" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../http-server/bin/http-server" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../http-server/bin/http-server" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../http-server/bin/http-server" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/js-yaml
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
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
ИП4/node_modules/.bin/js-yaml.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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
ИП4/node_modules/.bin/js-yaml.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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
|
||||
16
ИП4/node_modules/.bin/json-server
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../json-server/lib/bin.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../json-server/lib/bin.js" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/json-server.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\json-server\lib\bin.js" %*
|
||||
28
ИП4/node_modules/.bin/json-server.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../json-server/lib/bin.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../json-server/lib/bin.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../json-server/lib/bin.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../json-server/lib/bin.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/json5
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../json5/lib/cli.js" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/json5.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\json5\lib\cli.js" %*
|
||||
28
ИП4/node_modules/.bin/json5.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../json5/lib/cli.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/mime
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../mime/cli.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../mime/cli.js" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/mime.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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
ИП4/node_modules/.bin/mime.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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
|
||||
16
ИП4/node_modules/.bin/nanoid
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../nanoid/bin/nanoid.cjs" "$@"
|
||||
else
|
||||
exec node "$basedir/../nanoid/bin/nanoid.cjs" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/nanoid.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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
ИП4/node_modules/.bin/nanoid.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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
|
||||
16
ИП4/node_modules/.bin/node-which
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../which/bin/node-which" "$@"
|
||||
else
|
||||
exec node "$basedir/../which/bin/node-which" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/node-which.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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\node-which" %*
|
||||
28
ИП4/node_modules/.bin/node-which.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/node-which" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../which/bin/node-which" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../which/bin/node-which" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../which/bin/node-which" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/npm-run-all
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../npm-run-all/bin/npm-run-all/index.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../npm-run-all/bin/npm-run-all/index.js" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/npm-run-all.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\npm-run-all\bin\npm-run-all\index.js" %*
|
||||
28
ИП4/node_modules/.bin/npm-run-all.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../npm-run-all/bin/npm-run-all/index.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../npm-run-all/bin/npm-run-all/index.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../npm-run-all/bin/npm-run-all/index.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../npm-run-all/bin/npm-run-all/index.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/opener
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../opener/bin/opener-bin.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../opener/bin/opener-bin.js" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/opener.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\opener\bin\opener-bin.js" %*
|
||||
28
ИП4/node_modules/.bin/opener.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../opener/bin/opener-bin.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../opener/bin/opener-bin.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../opener/bin/opener-bin.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../opener/bin/opener-bin.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/pidtree
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../pidtree/bin/pidtree.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../pidtree/bin/pidtree.js" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/pidtree.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\pidtree\bin\pidtree.js" %*
|
||||
28
ИП4/node_modules/.bin/pidtree.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../pidtree/bin/pidtree.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../pidtree/bin/pidtree.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../pidtree/bin/pidtree.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../pidtree/bin/pidtree.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/prettier
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../prettier/bin/prettier.cjs" "$@"
|
||||
else
|
||||
exec node "$basedir/../prettier/bin/prettier.cjs" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/prettier.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\prettier\bin\prettier.cjs" %*
|
||||
28
ИП4/node_modules/.bin/prettier.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../prettier/bin/prettier.cjs" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../prettier/bin/prettier.cjs" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../prettier/bin/prettier.cjs" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../prettier/bin/prettier.cjs" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/resolve
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../resolve/bin/resolve" "$@"
|
||||
else
|
||||
exec node "$basedir/../resolve/bin/resolve" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/resolve.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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
ИП4/node_modules/.bin/resolve.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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
|
||||
16
ИП4/node_modules/.bin/rollup
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../rollup/dist/bin/rollup" "$@"
|
||||
else
|
||||
exec node "$basedir/../rollup/dist/bin/rollup" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/rollup.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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
ИП4/node_modules/.bin/rollup.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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
|
||||
16
ИП4/node_modules/.bin/run-p
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../npm-run-all/bin/run-p/index.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../npm-run-all/bin/run-p/index.js" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/run-p.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\npm-run-all\bin\run-p\index.js" %*
|
||||
28
ИП4/node_modules/.bin/run-p.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../npm-run-all/bin/run-p/index.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../npm-run-all/bin/run-p/index.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../npm-run-all/bin/run-p/index.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../npm-run-all/bin/run-p/index.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/run-s
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../npm-run-all/bin/run-s/index.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../npm-run-all/bin/run-s/index.js" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/run-s.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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%\..\npm-run-all\bin\run-s\index.js" %*
|
||||
28
ИП4/node_modules/.bin/run-s.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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/../npm-run-all/bin/run-s/index.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../npm-run-all/bin/run-s/index.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../npm-run-all/bin/run-s/index.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../npm-run-all/bin/run-s/index.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/semver
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../semver/bin/semver" "$@"
|
||||
else
|
||||
exec node "$basedir/../semver/bin/semver" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/semver.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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" %*
|
||||
28
ИП4/node_modules/.bin/semver.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../semver/bin/semver" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../semver/bin/semver" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../semver/bin/semver" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
ИП4/node_modules/.bin/vite
generated
vendored
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../vite/bin/vite.js" "$@"
|
||||
fi
|
||||
17
ИП4/node_modules/.bin/vite.cmd
generated
vendored
@@ -1,17 +0,0 @@
|
||||
@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
ИП4/node_modules/.bin/vite.ps1
generated
vendored
@@ -1,28 +0,0 @@
|
||||
#!/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
|
||||
4226
ИП4/node_modules/.package-lock.json
generated
vendored
3
ИП4/node_modules/@esbuild/win32-x64/README.md
generated
vendored
@@ -1,3 +0,0 @@
|
||||
# esbuild
|
||||
|
||||
This is the Windows 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
|
||||
BIN
ИП4/node_modules/@esbuild/win32-x64/esbuild.exe
generated
vendored
20
ИП4/node_modules/@esbuild/win32-x64/package.json
generated
vendored
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"name": "@esbuild/win32-x64",
|
||||
"version": "0.25.2",
|
||||
"description": "The Windows 64-bit binary for esbuild, a JavaScript bundler.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/evanw/esbuild.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"preferUnplugged": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"cpu": [
|
||||
"x64"
|
||||
]
|
||||
}
|
||||
21
ИП4/node_modules/@eslint-community/eslint-utils/LICENSE
generated
vendored
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 Toru Nagashima
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
37
ИП4/node_modules/@eslint-community/eslint-utils/README.md
generated
vendored
@@ -1,37 +0,0 @@
|
||||
# @eslint-community/eslint-utils
|
||||
|
||||
[](https://www.npmjs.com/package/@eslint-community/eslint-utils)
|
||||
[](http://www.npmtrends.com/@eslint-community/eslint-utils)
|
||||
[](https://github.com/eslint-community/eslint-utils/actions)
|
||||
[](https://codecov.io/gh/eslint-community/eslint-utils)
|
||||
|
||||
## 🏁 Goal
|
||||
|
||||
This package provides utility functions and classes for make ESLint custom rules.
|
||||
|
||||
For examples:
|
||||
|
||||
- [`getStaticValue`](https://eslint-community.github.io/eslint-utils/api/ast-utils.html#getstaticvalue) evaluates static value on AST.
|
||||
- [`ReferenceTracker`](https://eslint-community.github.io/eslint-utils/api/scope-utils.html#referencetracker-class) checks the members of modules/globals as handling assignments and destructuring.
|
||||
|
||||
## 📖 Usage
|
||||
|
||||
See [documentation](https://eslint-community.github.io/eslint-utils).
|
||||
|
||||
## 📰 Changelog
|
||||
|
||||
See [releases](https://github.com/eslint-community/eslint-utils/releases).
|
||||
|
||||
## ❤️ Contributing
|
||||
|
||||
Welcome contributing!
|
||||
|
||||
Please use GitHub's Issues/PRs.
|
||||
|
||||
### Development Tools
|
||||
|
||||
- `npm test` runs tests and measures coverage.
|
||||
- `npm run clean` removes the coverage result of `npm test` command.
|
||||
- `npm run coverage` shows the coverage result of the last `npm test` command.
|
||||
- `npm run lint` runs ESLint.
|
||||
- `npm run watch` runs tests on each file change.
|
||||
2079
ИП4/node_modules/@eslint-community/eslint-utils/index.js
generated
vendored
1
ИП4/node_modules/@eslint-community/eslint-utils/index.js.map
generated
vendored
2038
ИП4/node_modules/@eslint-community/eslint-utils/index.mjs
generated
vendored
1
ИП4/node_modules/@eslint-community/eslint-utils/index.mjs.map
generated
vendored
201
ИП4/node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys/LICENSE
generated
vendored
@@ -1,201 +0,0 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright contributors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
105
ИП4/node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys/README.md
generated
vendored
@@ -1,105 +0,0 @@
|
||||
# eslint-visitor-keys
|
||||
|
||||
[](https://www.npmjs.com/package/eslint-visitor-keys)
|
||||
[](http://www.npmtrends.com/eslint-visitor-keys)
|
||||
[](https://github.com/eslint/eslint-visitor-keys/actions)
|
||||
|
||||
Constants and utilities about visitor keys to traverse AST.
|
||||
|
||||
## 💿 Installation
|
||||
|
||||
Use [npm] to install.
|
||||
|
||||
```bash
|
||||
$ npm install eslint-visitor-keys
|
||||
```
|
||||
|
||||
### Requirements
|
||||
|
||||
- [Node.js] `^12.22.0`, `^14.17.0`, or `>=16.0.0`
|
||||
|
||||
|
||||
## 📖 Usage
|
||||
|
||||
To use in an ESM file:
|
||||
|
||||
```js
|
||||
import * as evk from "eslint-visitor-keys"
|
||||
```
|
||||
|
||||
To use in a CommonJS file:
|
||||
|
||||
```js
|
||||
const evk = require("eslint-visitor-keys")
|
||||
```
|
||||
|
||||
### evk.KEYS
|
||||
|
||||
> type: `{ [type: string]: string[] | undefined }`
|
||||
|
||||
Visitor keys. This keys are frozen.
|
||||
|
||||
This is an object. Keys are the type of [ESTree] nodes. Their values are an array of property names which have child nodes.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
console.log(evk.KEYS.AssignmentExpression) // → ["left", "right"]
|
||||
```
|
||||
|
||||
### evk.getKeys(node)
|
||||
|
||||
> type: `(node: object) => string[]`
|
||||
|
||||
Get the visitor keys of a given AST node.
|
||||
|
||||
This is similar to `Object.keys(node)` of ES Standard, but some keys are excluded: `parent`, `leadingComments`, `trailingComments`, and names which start with `_`.
|
||||
|
||||
This will be used to traverse unknown nodes.
|
||||
|
||||
For example:
|
||||
|
||||
```js
|
||||
const node = {
|
||||
type: "AssignmentExpression",
|
||||
left: { type: "Identifier", name: "foo" },
|
||||
right: { type: "Literal", value: 0 }
|
||||
}
|
||||
console.log(evk.getKeys(node)) // → ["type", "left", "right"]
|
||||
```
|
||||
|
||||
### evk.unionWith(additionalKeys)
|
||||
|
||||
> type: `(additionalKeys: object) => { [type: string]: string[] | undefined }`
|
||||
|
||||
Make the union set with `evk.KEYS` and the given keys.
|
||||
|
||||
- The order of keys is, `additionalKeys` is at first, then `evk.KEYS` is concatenated after that.
|
||||
- It removes duplicated keys as keeping the first one.
|
||||
|
||||
For example:
|
||||
|
||||
```js
|
||||
console.log(evk.unionWith({
|
||||
MethodDefinition: ["decorators"]
|
||||
})) // → { ..., MethodDefinition: ["decorators", "key", "value"], ... }
|
||||
```
|
||||
|
||||
## 📰 Change log
|
||||
|
||||
See [GitHub releases](https://github.com/eslint/eslint-visitor-keys/releases).
|
||||
|
||||
## 🍻 Contributing
|
||||
|
||||
Welcome. See [ESLint contribution guidelines](https://eslint.org/docs/developer-guide/contributing/).
|
||||
|
||||
### Development commands
|
||||
|
||||
- `npm test` runs tests and measures code coverage.
|
||||
- `npm run lint` checks source codes with ESLint.
|
||||
- `npm run test:open-coverage` opens the code coverage report of the previous test with your default browser.
|
||||
|
||||
|
||||
[npm]: https://www.npmjs.com/
|
||||
[Node.js]: https://nodejs.org/
|
||||
[ESTree]: https://github.com/estree/estree
|
||||
@@ -1,384 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
/**
|
||||
* @typedef {{ readonly [type: string]: ReadonlyArray<string> }} VisitorKeys
|
||||
*/
|
||||
|
||||
/**
|
||||
* @type {VisitorKeys}
|
||||
*/
|
||||
const KEYS = {
|
||||
ArrayExpression: [
|
||||
"elements"
|
||||
],
|
||||
ArrayPattern: [
|
||||
"elements"
|
||||
],
|
||||
ArrowFunctionExpression: [
|
||||
"params",
|
||||
"body"
|
||||
],
|
||||
AssignmentExpression: [
|
||||
"left",
|
||||
"right"
|
||||
],
|
||||
AssignmentPattern: [
|
||||
"left",
|
||||
"right"
|
||||
],
|
||||
AwaitExpression: [
|
||||
"argument"
|
||||
],
|
||||
BinaryExpression: [
|
||||
"left",
|
||||
"right"
|
||||
],
|
||||
BlockStatement: [
|
||||
"body"
|
||||
],
|
||||
BreakStatement: [
|
||||
"label"
|
||||
],
|
||||
CallExpression: [
|
||||
"callee",
|
||||
"arguments"
|
||||
],
|
||||
CatchClause: [
|
||||
"param",
|
||||
"body"
|
||||
],
|
||||
ChainExpression: [
|
||||
"expression"
|
||||
],
|
||||
ClassBody: [
|
||||
"body"
|
||||
],
|
||||
ClassDeclaration: [
|
||||
"id",
|
||||
"superClass",
|
||||
"body"
|
||||
],
|
||||
ClassExpression: [
|
||||
"id",
|
||||
"superClass",
|
||||
"body"
|
||||
],
|
||||
ConditionalExpression: [
|
||||
"test",
|
||||
"consequent",
|
||||
"alternate"
|
||||
],
|
||||
ContinueStatement: [
|
||||
"label"
|
||||
],
|
||||
DebuggerStatement: [],
|
||||
DoWhileStatement: [
|
||||
"body",
|
||||
"test"
|
||||
],
|
||||
EmptyStatement: [],
|
||||
ExperimentalRestProperty: [
|
||||
"argument"
|
||||
],
|
||||
ExperimentalSpreadProperty: [
|
||||
"argument"
|
||||
],
|
||||
ExportAllDeclaration: [
|
||||
"exported",
|
||||
"source"
|
||||
],
|
||||
ExportDefaultDeclaration: [
|
||||
"declaration"
|
||||
],
|
||||
ExportNamedDeclaration: [
|
||||
"declaration",
|
||||
"specifiers",
|
||||
"source"
|
||||
],
|
||||
ExportSpecifier: [
|
||||
"exported",
|
||||
"local"
|
||||
],
|
||||
ExpressionStatement: [
|
||||
"expression"
|
||||
],
|
||||
ForInStatement: [
|
||||
"left",
|
||||
"right",
|
||||
"body"
|
||||
],
|
||||
ForOfStatement: [
|
||||
"left",
|
||||
"right",
|
||||
"body"
|
||||
],
|
||||
ForStatement: [
|
||||
"init",
|
||||
"test",
|
||||
"update",
|
||||
"body"
|
||||
],
|
||||
FunctionDeclaration: [
|
||||
"id",
|
||||
"params",
|
||||
"body"
|
||||
],
|
||||
FunctionExpression: [
|
||||
"id",
|
||||
"params",
|
||||
"body"
|
||||
],
|
||||
Identifier: [],
|
||||
IfStatement: [
|
||||
"test",
|
||||
"consequent",
|
||||
"alternate"
|
||||
],
|
||||
ImportDeclaration: [
|
||||
"specifiers",
|
||||
"source"
|
||||
],
|
||||
ImportDefaultSpecifier: [
|
||||
"local"
|
||||
],
|
||||
ImportExpression: [
|
||||
"source"
|
||||
],
|
||||
ImportNamespaceSpecifier: [
|
||||
"local"
|
||||
],
|
||||
ImportSpecifier: [
|
||||
"imported",
|
||||
"local"
|
||||
],
|
||||
JSXAttribute: [
|
||||
"name",
|
||||
"value"
|
||||
],
|
||||
JSXClosingElement: [
|
||||
"name"
|
||||
],
|
||||
JSXClosingFragment: [],
|
||||
JSXElement: [
|
||||
"openingElement",
|
||||
"children",
|
||||
"closingElement"
|
||||
],
|
||||
JSXEmptyExpression: [],
|
||||
JSXExpressionContainer: [
|
||||
"expression"
|
||||
],
|
||||
JSXFragment: [
|
||||
"openingFragment",
|
||||
"children",
|
||||
"closingFragment"
|
||||
],
|
||||
JSXIdentifier: [],
|
||||
JSXMemberExpression: [
|
||||
"object",
|
||||
"property"
|
||||
],
|
||||
JSXNamespacedName: [
|
||||
"namespace",
|
||||
"name"
|
||||
],
|
||||
JSXOpeningElement: [
|
||||
"name",
|
||||
"attributes"
|
||||
],
|
||||
JSXOpeningFragment: [],
|
||||
JSXSpreadAttribute: [
|
||||
"argument"
|
||||
],
|
||||
JSXSpreadChild: [
|
||||
"expression"
|
||||
],
|
||||
JSXText: [],
|
||||
LabeledStatement: [
|
||||
"label",
|
||||
"body"
|
||||
],
|
||||
Literal: [],
|
||||
LogicalExpression: [
|
||||
"left",
|
||||
"right"
|
||||
],
|
||||
MemberExpression: [
|
||||
"object",
|
||||
"property"
|
||||
],
|
||||
MetaProperty: [
|
||||
"meta",
|
||||
"property"
|
||||
],
|
||||
MethodDefinition: [
|
||||
"key",
|
||||
"value"
|
||||
],
|
||||
NewExpression: [
|
||||
"callee",
|
||||
"arguments"
|
||||
],
|
||||
ObjectExpression: [
|
||||
"properties"
|
||||
],
|
||||
ObjectPattern: [
|
||||
"properties"
|
||||
],
|
||||
PrivateIdentifier: [],
|
||||
Program: [
|
||||
"body"
|
||||
],
|
||||
Property: [
|
||||
"key",
|
||||
"value"
|
||||
],
|
||||
PropertyDefinition: [
|
||||
"key",
|
||||
"value"
|
||||
],
|
||||
RestElement: [
|
||||
"argument"
|
||||
],
|
||||
ReturnStatement: [
|
||||
"argument"
|
||||
],
|
||||
SequenceExpression: [
|
||||
"expressions"
|
||||
],
|
||||
SpreadElement: [
|
||||
"argument"
|
||||
],
|
||||
StaticBlock: [
|
||||
"body"
|
||||
],
|
||||
Super: [],
|
||||
SwitchCase: [
|
||||
"test",
|
||||
"consequent"
|
||||
],
|
||||
SwitchStatement: [
|
||||
"discriminant",
|
||||
"cases"
|
||||
],
|
||||
TaggedTemplateExpression: [
|
||||
"tag",
|
||||
"quasi"
|
||||
],
|
||||
TemplateElement: [],
|
||||
TemplateLiteral: [
|
||||
"quasis",
|
||||
"expressions"
|
||||
],
|
||||
ThisExpression: [],
|
||||
ThrowStatement: [
|
||||
"argument"
|
||||
],
|
||||
TryStatement: [
|
||||
"block",
|
||||
"handler",
|
||||
"finalizer"
|
||||
],
|
||||
UnaryExpression: [
|
||||
"argument"
|
||||
],
|
||||
UpdateExpression: [
|
||||
"argument"
|
||||
],
|
||||
VariableDeclaration: [
|
||||
"declarations"
|
||||
],
|
||||
VariableDeclarator: [
|
||||
"id",
|
||||
"init"
|
||||
],
|
||||
WhileStatement: [
|
||||
"test",
|
||||
"body"
|
||||
],
|
||||
WithStatement: [
|
||||
"object",
|
||||
"body"
|
||||
],
|
||||
YieldExpression: [
|
||||
"argument"
|
||||
]
|
||||
};
|
||||
|
||||
// Types.
|
||||
const NODE_TYPES = Object.keys(KEYS);
|
||||
|
||||
// Freeze the keys.
|
||||
for (const type of NODE_TYPES) {
|
||||
Object.freeze(KEYS[type]);
|
||||
}
|
||||
Object.freeze(KEYS);
|
||||
|
||||
/**
|
||||
* @author Toru Nagashima <https://github.com/mysticatea>
|
||||
* See LICENSE file in root directory for full license.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef {import('./visitor-keys.js').VisitorKeys} VisitorKeys
|
||||
*/
|
||||
|
||||
// List to ignore keys.
|
||||
const KEY_BLACKLIST = new Set([
|
||||
"parent",
|
||||
"leadingComments",
|
||||
"trailingComments"
|
||||
]);
|
||||
|
||||
/**
|
||||
* Check whether a given key should be used or not.
|
||||
* @param {string} key The key to check.
|
||||
* @returns {boolean} `true` if the key should be used.
|
||||
*/
|
||||
function filterKey(key) {
|
||||
return !KEY_BLACKLIST.has(key) && key[0] !== "_";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get visitor keys of a given node.
|
||||
* @param {object} node The AST node to get keys.
|
||||
* @returns {readonly string[]} Visitor keys of the node.
|
||||
*/
|
||||
function getKeys(node) {
|
||||
return Object.keys(node).filter(filterKey);
|
||||
}
|
||||
|
||||
// Disable valid-jsdoc rule because it reports syntax error on the type of @returns.
|
||||
// eslint-disable-next-line valid-jsdoc
|
||||
/**
|
||||
* Make the union set with `KEYS` and given keys.
|
||||
* @param {VisitorKeys} additionalKeys The additional keys.
|
||||
* @returns {VisitorKeys} The union set.
|
||||
*/
|
||||
function unionWith(additionalKeys) {
|
||||
const retv = /** @type {{
|
||||
[type: string]: ReadonlyArray<string>
|
||||
}} */ (Object.assign({}, KEYS));
|
||||
|
||||
for (const type of Object.keys(additionalKeys)) {
|
||||
if (Object.prototype.hasOwnProperty.call(retv, type)) {
|
||||
const keys = new Set(additionalKeys[type]);
|
||||
|
||||
for (const key of retv[type]) {
|
||||
keys.add(key);
|
||||
}
|
||||
|
||||
retv[type] = Object.freeze(Array.from(keys));
|
||||
} else {
|
||||
retv[type] = Object.freeze(Array.from(additionalKeys[type]));
|
||||
}
|
||||
}
|
||||
|
||||
return Object.freeze(retv);
|
||||
}
|
||||
|
||||
exports.KEYS = KEYS;
|
||||
exports.getKeys = getKeys;
|
||||
exports.unionWith = unionWith;
|
||||
@@ -1,27 +0,0 @@
|
||||
type VisitorKeys$1 = {
|
||||
readonly [type: string]: readonly string[];
|
||||
};
|
||||
/**
|
||||
* @typedef {{ readonly [type: string]: ReadonlyArray<string> }} VisitorKeys
|
||||
*/
|
||||
/**
|
||||
* @type {VisitorKeys}
|
||||
*/
|
||||
declare const KEYS: VisitorKeys$1;
|
||||
|
||||
/**
|
||||
* Get visitor keys of a given node.
|
||||
* @param {object} node The AST node to get keys.
|
||||
* @returns {readonly string[]} Visitor keys of the node.
|
||||
*/
|
||||
declare function getKeys(node: object): readonly string[];
|
||||
/**
|
||||
* Make the union set with `KEYS` and given keys.
|
||||
* @param {VisitorKeys} additionalKeys The additional keys.
|
||||
* @returns {VisitorKeys} The union set.
|
||||
*/
|
||||
declare function unionWith(additionalKeys: VisitorKeys): VisitorKeys;
|
||||
|
||||
type VisitorKeys = VisitorKeys$1;
|
||||
|
||||
export { KEYS, VisitorKeys, getKeys, unionWith };
|
||||