Skip to content

Commit de4e677

Browse files
committed
initial commit
0 parents  commit de4e677

29 files changed

Lines changed: 9565 additions & 0 deletions

.github/workflows/ci.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
lint:
11+
name: Lint
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Setup Node.js
17+
uses: actions/setup-node@v4
18+
with:
19+
node-version: '20'
20+
cache: 'npm'
21+
22+
- name: Install dependencies
23+
run: npm ci
24+
25+
- name: Run ESLint
26+
run: npm run lint
27+
28+
- name: Check formatting
29+
run: npm run format:check
30+
31+
typecheck:
32+
name: Type Check
33+
runs-on: ubuntu-latest
34+
steps:
35+
- uses: actions/checkout@v4
36+
37+
- name: Setup Node.js
38+
uses: actions/setup-node@v4
39+
with:
40+
node-version: '20'
41+
cache: 'npm'
42+
43+
- name: Install dependencies
44+
run: npm ci
45+
46+
- name: Run TypeScript type check
47+
run: npm run typecheck
48+
49+
test:
50+
name: Test
51+
runs-on: ubuntu-latest
52+
steps:
53+
- uses: actions/checkout@v4
54+
55+
- name: Setup Node.js
56+
uses: actions/setup-node@v4
57+
with:
58+
node-version: '20'
59+
cache: 'npm'
60+
61+
- name: Install dependencies
62+
run: npm ci
63+
64+
- name: Run tests with coverage
65+
run: npm run test:coverage
66+
67+
- name: Upload coverage report
68+
uses: actions/upload-artifact@v4
69+
with:
70+
name: coverage-report
71+
path: coverage/
72+
73+
build:
74+
name: Build
75+
runs-on: ubuntu-latest
76+
needs: [lint, typecheck, test]
77+
steps:
78+
- uses: actions/checkout@v4
79+
80+
- name: Setup Node.js
81+
uses: actions/setup-node@v4
82+
with:
83+
node-version: '20'
84+
cache: 'npm'
85+
86+
- name: Install dependencies
87+
run: npm ci
88+
89+
- name: Build package
90+
run: npm run build
91+
92+
- name: Upload build artifacts
93+
uses: actions/upload-artifact@v4
94+
with:
95+
name: dist
96+
path: dist/

.github/workflows/publish.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Publish to NPM
2+
3+
on:
4+
release:
5+
types: [created]
6+
7+
jobs:
8+
publish:
9+
name: Publish
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: read
13+
id-token: write
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Setup Node.js
18+
uses: actions/setup-node@v4
19+
with:
20+
node-version: '20'
21+
cache: 'npm'
22+
registry-url: 'https://registry.npmjs.org'
23+
24+
- name: Install dependencies
25+
run: npm ci
26+
27+
- name: Run tests
28+
run: npm run test
29+
30+
- name: Build package
31+
run: npm run build
32+
33+
- name: Publish to NPM
34+
run: npm publish --access public --provenance
35+
env:
36+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.gitignore

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Dependencies
2+
node_modules/
3+
4+
# Build output
5+
dist/
6+
7+
# Test coverage
8+
coverage/
9+
10+
# IDE
11+
.vscode/
12+
.idea/
13+
*.swp
14+
*.swo
15+
*~
16+
17+
# OS files
18+
.DS_Store
19+
Thumbs.db
20+
21+
# Logs
22+
*.log
23+
npm-debug.log*
24+
yarn-debug.log*
25+
yarn-error.log*
26+
27+
# Environment files
28+
.env
29+
.env.local
30+
.env.*.local
31+
32+
# TypeScript cache
33+
*.tsbuildinfo
34+
35+
# Package manager locks (optional - keep if you prefer)
36+
# package-lock.json
37+
# yarn.lock
38+
39+
# Vitest
40+
.vitest/
41+
42+
# Temporary files
43+
tmp/
44+
temp/
45+
*.tmp

LICENSE

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# License
2+
3+
This project is dual-licensed under your choice of either:
4+
5+
* **MIT License** ([LICENSE-MIT](./LICENSE-MIT))
6+
* **Apache License 2.0** ([LICENSE-APACHE](./LICENSE-APACHE))
7+
8+
## Choosing a License
9+
10+
You may use this software under the terms of either license, at your option.
11+
12+
### MIT License
13+
The MIT License is a permissive license that is short and to the point. It lets people do almost anything they want with your project, like making and distributing closed source versions.
14+
15+
### Apache License 2.0
16+
The Apache License 2.0 is also a permissive license, similar to MIT, but it also provides an express grant of patent rights from contributors to users.
17+
18+
## Contribution
19+
20+
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you shall be dual-licensed as above, without any additional terms or conditions.
21+
22+
---
23+
24+
Copyright (c) 2026 Predicate Systems Contributors

0 commit comments

Comments
 (0)