npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@a4sex/gitemplate

v1.14.5

Published

Модульная CLI‑утилита для работы с шаблонами (templates) и фрагментами (fragments) кода. Помогает быстро стартовать новые проекты и поддерживать стандарты в существующих за счёт применения готовых архивов и обязательных блоков конфигурации. Поддерживает и

Readme

Gitemplate

Модульная CLI‑утилита для работы с шаблонами (templates) и фрагментами (fragments) кода. Помогает быстро стартовать новые проекты и поддерживать стандарты в существующих за счёт применения готовых архивов и обязательных блоков конфигурации. Поддерживает интерактивный режим и работу в CI.

Содержание

Установка

yarn add @a4sex/gitemplate --dev

yarn global add @a4sex/gitemplate

yarn global upgrade @a4sex/gitemplate

Быстрый старт

# Применить шаблон по имени из реестра
gitemplate template <name> \
  --registry https://gitlab.com/a4sex/giget-registry/-/raw/main/templates \
  --directory ./my-app

# Применить фрагмент к локальному файлу
gitemplate fragment \
  --link https://example.com/fragment.txt \
  --filename README.md \
  --strategy contains \
  --mode merge

# Выполнить действия из локального .gitemplate (если есть)
gitemplate

Использование

Краткий справочник по командам и флагам доступен в руководстве.

  • Команда template — загрузка и распаковка шаблона по имени из реестра
  • Команда fragment — применение фрагментов к локальным файлам
  • Команда registry — просмотр дерева и генерация registry.yaml
  • Команда config — печать/инициализация локального .gitemplate

Подробнее со сценариями и примерами см. docs/cli.md.

Документация

  • Обзор и концепции: docs/concepts.md
  • Шаблоны: docs/templates.md
  • Фрагменты: docs/fragments.md
  • Реестр и форматы: docs/registry.md
  • Интерактивный режим: docs/interactive.md
  • Стиль CLI/тексты помощи: docs/develop/cli-styleguide.md
  • Аутентификация/секреты: docs/security/authentication.md

Генерация и проверка документации кода

Проект использует единые стандарты документирования кода с автоматической генерацией и валидацией.

Стандарты документирования

  • JavaScript/TypeScript: TSDoc с JSDoc-совместимыми тегами
  • Видимость: @public/@beta/@alpha/@internal для контроля API
  • Обязательные блоки: @remarks, @example, @throws для публичных API
  • Типы: не дублировать из сигнатур, фокус на назначении и примерах

Инструменты

  • Линтинг: eslint-plugin-jsdoc с правилами для TSDoc
  • Генерация: TypeDoc для HTML/Markdown документации
  • API контроль: @microsoft/api-extractor для стабильности публичного API

Команды

# Генерация полной документации (TypeDoc + API отчеты)
yarn docs

# Только TypeDoc (HTML/Markdown)
yarn docs:js

# API Extractor отчет (контроль публичного API)
yarn api:report

# Линтинг JSDoc комментариев
yarn lint:jsdoc

CI/CD интеграция

Документация автоматически проверяется в CI:

  • Линтинг комментариев на каждый PR
  • Генерация и публикация артефактов
  • Контроль breaking changes в публичном API

Конфигурация

Локальный файл .gitemplate описывает реестр, шаблоны и фрагменты, которые нужно применить за один запуск.

# .gitemplate
registry:
  url: https://gitlab.com/a4sex/giget-registry/-/raw/main/templates

templates:
  - name: npm-lib-startpoint
    directory: ./lib
    # subpath, ignore, files — при необходимости

fragments:
  - link: https://example.com/fragment.txt
    strategy: block
    mode: merge
    filename: .gitlab-ci.yml
    markerStart: "# BEGIN: JOB: deploy"
    markerEnd:   "# END: JOB: deploy"

# По желанию: глобальный режим поведения для fragments
fragmentsMode: notify

Авторизация при доступе к реестру/архивам

Поддерживаются несколько типов токенов. Источники в порядке приоритета:

  1. CLI: --auth <token>
  2. Переменные окружения: REGISTRY_TOKEN, GITLAB_TOKEN, PRIVATE_TOKEN, GL_TOKEN, GITLAB_PRIVATE_TOKEN
  3. OAuth/Bearer: GITLAB_OAUTH_TOKEN, OAUTH_TOKEN, ACCESS_TOKEN, BEARER_TOKEN
  4. GitLab CI: CI_JOB_TOKEN

Заголовки запроса:

  • Обычные токены: PRIVATE-TOKEN: <token>
  • OAuth/Bearer: Authorization: Bearer <token>
  • GitLab CI: JOB-TOKEN: <token>

Дорожная карта

См. ROADMAP.md.

Вклад

Приветствуются pull‑request'ы и улучшения документации. Соблюдайте локальные правила и стиль CLI.

  • Стиль CLI и тексты помощи: docs/develop/cli-styleguide.md
  • Архитектурные материалы: docs/develop/architecture.md
  • Разделы для разработчиков: docs/develop/*

Безопасность

  • Не храните токены/пароли в коде и истории git
  • Используйте переменные окружения и .env (см. docs/security/authentication.md)
  • Перед коммитом можно выполнить проверку:
git diff --cached | grep -iE "(api_key|token|password|secret)" || true

Лицензия

MIT — см. LICENSE.