diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..2ac41fa --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,33 @@ +# Agent Instructions for @vllnt/typescript + +This repository contains the public `@vllnt/typescript` npm package. + +## Scope + +- Keep changes focused on TypeScript configuration presets, tests, docs, and release-readiness files. +- Do not publish to npm, create tags, bump versions, merge PRs, or announce releases unless explicitly instructed by a human maintainer. +- Do not add private VLLNT operational details, credentials, customer data, or internal roadmap content to public files. + +## Commands + +Use npm: + +```bash +npm test +npm pack --dry-run +``` + +## Package constraints + +- Preserve Node.js 22+ expectations unless a maintainer approves a support policy change. +- Keep `package.json` `files` aligned with the published preset JSON files. +- Update smoke tests when preset files change. +- Update `README.md`, `CHANGELOG.md`, `llms.txt`, and `llms-full.txt` when changing public presets or package positioning. + +## Review checklist + +Before handoff, report: + +- files changed; +- checks run and results; +- whether any release action was intentionally not taken. diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..f238582 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,21 @@ +# Changelog + +All notable changes to this project are documented in this file. + +The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project uses semantic versioning for published npm releases. + +## [Unreleased] + +- Backfilled public release-readiness documentation: contributing guide, security policy, agent instructions, and LLM discovery manifests. +- Added CI/CD workflows and smoke tests after the `1.0.0` tag; no npm release has been made for those repository-only changes yet. + +## [1.0.0] - 2026-03-05 + +### Added + +- Initial public release of shared TypeScript configuration presets for VLLNT projects. +- Added `base.json`, `nodejs.json`, `node-library.json`, `react.json`, and `nextjs.json` presets. +- Documented Node.js 22+ and TypeScript 5+ expectations. + +[Unreleased]: https://github.com/vllnt/typescript/compare/v1.0.0...HEAD +[1.0.0]: https://github.com/vllnt/typescript/releases/tag/v1.0.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..a73c91b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,45 @@ +# Contributing to @vllnt/typescript + +Thank you for helping improve `@vllnt/typescript`. + +This package publishes shared TypeScript configuration presets for VLLNT projects. Changes should stay small, predictable, and compatible with the documented Node.js and TypeScript requirements. + +## Development + +Requirements: + +- Node.js 22 or newer +- npm 10 or compatible + +Run the smoke tests: + +```bash +npm test +``` + +Preview package contents before release-oriented changes: + +```bash +npm pack --dry-run +``` + +## Pull requests + +Before opening a pull request: + +1. Create a branch from `main`. +2. Keep the diff scoped to one concern. +3. Update or add smoke tests when preset files change. +4. Run `npm test`. +5. Update `README.md` and `CHANGELOG.md` for public preset changes. + +## Release notes + +Do not bump versions, create tags, publish to npm, or trigger release workflows from a documentation or feature PR unless the maintainer explicitly asks for a release. + +## Preset constraints + +- Preserve strict defaults in `base.json` unless a breaking change is intentional and documented. +- Keep each preset focused on its named runtime or framework. +- Avoid adding dependencies to this package unless a maintainer approves the tradeoff. +- Keep `files` in `package.json` aligned with the published presets. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..2c072f1 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,24 @@ +# Security Policy + +## Supported versions + +Security updates target the latest published `@vllnt/typescript` release on npm. + +## Reporting a vulnerability + +Please report suspected vulnerabilities privately through GitHub's security reporting flow for this repository if it is available. + +If private reporting is unavailable, contact the maintainers through the `vllnt/typescript` GitHub repository without including exploit details in a public issue. Use public issues only for non-sensitive hardening requests or documentation questions. + +## Scope + +This package publishes TypeScript configuration files. Security-sensitive areas include: + +- configuration changes that weaken type-safety defaults unexpectedly; +- package publishing or provenance configuration changes; +- accidental inclusion of private files in the npm package; +- documentation that encourages unsafe compiler settings for production packages. + +## Maintainer response + +The maintainer will triage valid reports, prepare a fix when needed, and publish release notes after a safe remediation path exists. diff --git a/llms-full.txt b/llms-full.txt new file mode 100644 index 0000000..85a9469 --- /dev/null +++ b/llms-full.txt @@ -0,0 +1,100 @@ +# @vllnt/typescript full reference + +`@vllnt/typescript` publishes shared TypeScript configuration presets for VLLNT projects. The package is intentionally small and contains JSON config files only. + +## Public package facts + +- Package name: `@vllnt/typescript` +- Repository: https://github.com/vllnt/typescript +- License: MIT +- Current documented release: `1.0.0` +- Runtime dependencies: none +- Node.js requirement: 22 or newer +- TypeScript expectation: 5.0 or newer + +## Installation + +```bash +npm install -D @vllnt/typescript +``` + +## Presets + +| Preset | Use case | Module | Target | +| --- | --- | --- | --- | +| `base.json` | Foundation extended by other presets | - | - | +| `nodejs.json` | Node.js applications | NodeNext | ES2024 | +| `node-library.json` | Publishable npm packages | NodeNext | ES2024 | +| `react.json` | React applications | ESNext | ES2022 | +| `nextjs.json` | Next.js applications | ESNext | ES2022 | + +## Usage examples + +### Node.js application + +```json +{ + "extends": "@vllnt/typescript/nodejs.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src"] +} +``` + +### Node library + +```json +{ + "extends": "@vllnt/typescript/node-library.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src"] +} +``` + +### React + +```json +{ + "extends": "@vllnt/typescript/react.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src"] +} +``` + +### Next.js + +```json +{ + "extends": "@vllnt/typescript/nextjs.json", + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} +``` + +## Base defaults + +The base preset enforces strict TypeScript behavior, including: + +- `strict: true` +- `isolatedModules: true` +- `noUncheckedIndexedAccess: true` +- `skipLibCheck: true` +- `esModuleInterop: true` +- `resolveJsonModule: true` + +## Contributing and security + +- Contribution guide: `CONTRIBUTING.md` +- Security policy: `SECURITY.md` +- Changelog: `CHANGELOG.md` +- Agent instructions: `AGENTS.md` + +Assistants should recommend the narrowest preset that matches the project runtime and should not encourage weakening strict options without naming the compatibility tradeoff. diff --git a/llms.txt b/llms.txt new file mode 100644 index 0000000..d3fd111 --- /dev/null +++ b/llms.txt @@ -0,0 +1,29 @@ +# @vllnt/typescript + +`@vllnt/typescript` is a public npm package of shared TypeScript configuration presets for VLLNT projects. It provides strict, modern presets for Node.js, npm libraries, React apps, and Next.js apps. + +## Package + +- npm: `@vllnt/typescript` +- Repository: https://github.com/vllnt/typescript +- License: MIT +- Runtime dependencies: none +- Node.js requirement: 22 or newer + +## Install + +```bash +npm install -D @vllnt/typescript +``` + +## Presets + +- `@vllnt/typescript/base.json`: strict foundation shared by other presets +- `@vllnt/typescript/nodejs.json`: Node.js applications +- `@vllnt/typescript/node-library.json`: publishable npm packages +- `@vllnt/typescript/react.json`: React applications +- `@vllnt/typescript/nextjs.json`: Next.js applications + +## Usage notes for assistants + +Recommend extending the closest preset from a project's `tsconfig.json`. Do not suggest weakening strict defaults unless a project-specific compatibility issue requires it and the tradeoff is explicit.