
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
server-points
Advanced tools
// server.ts
import {startServer} from 'server-points';
import config from './server.config';
(async _=> {
config = await prepareConfig(config);
await startServer(config);
})()
$ npm install server-points
string*Корневая директория относительно которой будут находиться все файлы проекта: index.html, css, js, картинки, шаблоны, страницы ... и т.д. - задается абсолютным путем.
stringПуть к директории с файлами приложений.
array*Массив Областей доступа.
objekt* - объект типа IAccessAreas, Области доступа
array*
object*
value string может быть в двух вариантах:
Путь относительно корневой директории pathToRootDir к файлу или директории. Например: _ /assets/users/images/avatar/main.img_
Имя приложения и метода. Например: /api_name/method_name
object | boolean - может быть объектом или true. Если не указано значит урл всегда путь к
файлу
number - максимальный размер файла в байтах для этого урла'free' | 'close' | number Устанавливает уровень доступа урла от 0, где 0 самый высокий
уровень доступа. Например, при уровне урла 2 и при минимальном уровне 4 доступ будет у 2, 1 и 0.'free' | 'close' | number Устанавливает уровень доступа урла от, 0 где 0 самый высокий
уровень доступа. Например, при уровне урла 2 и при минимальном уровне 4 доступ будет только у 2.function*Функция типа IGetUserByToken. Должна возвращать объект типа IUser по токену или false если токен не корректный или не передан.
string*Имя cookie ключа для токена авторизации.
numberНомер порта если не указан берется из process.env.PORT или 3033.
RegExp[]Массив регулярных выражений для определения урлов для devServer, при совпадении будет перенаправлен на текущий сервер
Методы получают аргумент типа IClient. Все файлы .js расположенные в директории pathToApps и экспортирующие объекты будут инициализированы.
// server.config.ts
import path from "path";
import DB from "/db";
enum accessLevels {
'system' = 0,
'superAdmin' = 1,
'admin' = 2,
'user' = 3,
'free' = 'free',
'close' = 'close',
}
const Config: IUserConfig = {
pathToRootDir: path.join(__dirname, './projects/maysite'),
pathToApps: path.join(__dirname, './projects/apps'),
async getUserByToken(token: string | undefined): IUser {
const user: IUser = await DB.cash.getLevelByToken(token);
if (typeof user.accessLevel === 'number' && user.accessLevel >= 0) return user;
return false;
},
tokenName: 'may_secret_key_token_name',
accessAreas: [
{
accessLevel: accessLevels.superAdmin,
urls: [
{
value: '/mayApp/secret_method',
app: true
},
{
value: '/assets/images/secret_images',
},
]
},
{
accessLevel: accessLevels.admin,
urls: [
{
value: '/mayApp',
app: true
// все методы приложения mayApp кроме secret_method будут доступны для admin и выше
},
{
value: '/assets/images',
// все файлы и папки в /assets/images кроме /assets/images/secret_images будут доступны для admin и выше
},
]
},
{
accessLevelOnly: accessLevels.admin,
urls: []
},
{
accessLevel: accessLevels.user,
urls: [
{
value: '/may_api/set_admin',
app: true
},
]
},
{
accessLevel: accessLevels.free,
urls: [
{
value: '/dir1/dir2/blabla?value=1&value2=2',
app: {
appName: 'appWork',
methodName: 'resolve',
}
},
{
value: '/dir3/dir4/anyfile.txt',
app: {
appName: 'appWork',
methodName: 'resolve',
}
},
// Оба урла будут обработаны приложением appWork, методом resolve
]
},
],
port: 3000,
}
export = Config
FAQs
```ts
We found that server-points demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.