Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 33 additions & 33 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,70 +1,70 @@
version: 2

updates:
- package-ecosystem: "npm"
directory: "/"
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: "cron"
cronjob: "0 9 1-7 * 1"
timezone: "America/Toronto"
interval: 'cron'
cronjob: '0 9 1-7 * 1'
timezone: 'America/Toronto'

open-pull-requests-limit: 3

commit-message:
prefix: "chore"
include: "scope"
prefix: 'chore'
include: 'scope'

groups:
oxlint:
patterns:
- "oxlint"
- "oxlint-*"
- 'oxlint'
- 'oxlint-*'
update-types:
- "minor"
- "patch"
- 'minor'
- 'patch'

test-tooling:
patterns:
- "vitest"
- "@vitest/*"
- 'vitest'
- '@vitest/*'
update-types:
- "minor"
- "patch"
- 'minor'
- 'patch'

formatting:
patterns:
- "oxfmt"
- "@oxfmt/*"
- 'oxfmt'
- '@oxfmt/*'
update-types:
- "minor"
- "patch"
- 'minor'
- 'patch'

npm-prod-minor-and-patch:
dependency-type: "production"
dependency-type: 'production'
update-types:
- "minor"
- "patch"
- 'minor'
- 'patch'

npm-dev-minor-and-patch:
dependency-type: "development"
dependency-type: 'development'
update-types:
- "minor"
- "patch"
- 'minor'
- 'patch'

- package-ecosystem: "github-actions"
directory: "/"
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: "cron"
cronjob: "0 9 1-7 * 1"
timezone: "America/Toronto"
interval: 'cron'
cronjob: '0 9 1-7 * 1'
timezone: 'America/Toronto'

open-pull-requests-limit: 2

commit-message:
prefix: "ci"
include: "scope"
prefix: 'ci'
include: 'scope'

groups:
github-actions:
patterns:
- "*"
- '*'
109 changes: 56 additions & 53 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,60 +1,63 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]
push:
branches: [main]
pull_request:
branches: [main]

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true

jobs:
ci:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
strategy:
fail-fast: false
matrix:
node-version: [22, 24]
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: yarn
- run: |
git config --global user.name "CI"
git config --global user.email "ci@localhost"
git config --global init.defaultBranch main
- run: yarn install --frozen-lockfile
- run: yarn format:check
- run: yarn lint --format=github
- run: yarn test:coverage
- name: Report coverage
if: matrix.node-version == 24
uses: davelosert/vitest-coverage-report-action@02f3c2e641286b7fa308cd3e430783103ce6103b # v2
- name: Extract coverage percentage
id: coverage
if: matrix.node-version == 24 && github.event_name == 'push'
run: echo "percentage=$(jq '.total.lines.pct' coverage/coverage-summary.json)" >> $GITHUB_OUTPUT
- name: Update coverage badge
if: matrix.node-version == 24 && github.event_name == 'push'
uses: schneegans/dynamic-badges-action@0e50b8bad39e7e1afd3e4e9c2b7dd145fad07501 # v1.8.0
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: ${{ vars.COVERAGE_GIST_ID }}
filename: coverage.json
label: coverage
message: ${{ steps.coverage.outputs.percentage }}%
valColorRange: ${{ steps.coverage.outputs.percentage }}
maxColorRange: 100
minColorRange: 0
- name: Update coverage report in Gist
if: matrix.node-version == 24 && github.event_name == 'push'
env:
COVERAGE_GIST_ID: ${{ vars.COVERAGE_GIST_ID }}
GIST_SECRET: ${{ secrets.GIST_SECRET }}
run: node scripts/update-coverage-gist.mjs
ci:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
strategy:
fail-fast: false
matrix:
node-version: [22, 24]
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- run: corepack enable
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: ${{ matrix.node-version }}
cache: yarn
- run: |
git config --global user.name "CI"
git config --global user.email "ci@localhost"
git config --global init.defaultBranch main
- run: yarn install --immutable
- run: yarn format:check
- run: yarn lint:ci
- run: yarn test:coverage
- name: Report coverage
if: matrix.node-version == 24
uses: davelosert/vitest-coverage-report-action@02f3c2e641286b7fa308cd3e430783103ce6103b # v2
- name: Extract coverage percentage
id: coverage
if: matrix.node-version == 24 && github.event_name == 'push'
run: echo "percentage=$(jq '.total.lines.pct' coverage/coverage-summary.json)" >> "$GITHUB_OUTPUT"
- name: Update coverage badge
if: matrix.node-version == 24 && github.event_name == 'push'
uses: schneegans/dynamic-badges-action@0e50b8bad39e7e1afd3e4e9c2b7dd145fad07501 # v1.8.0
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: ${{ vars.COVERAGE_GIST_ID }}
filename: coverage.json
label: coverage
message: ${{ steps.coverage.outputs.percentage }}%
valColorRange: ${{ steps.coverage.outputs.percentage }}
maxColorRange: 100
minColorRange: 0
- name: Update coverage report in Gist
if: matrix.node-version == 24 && github.event_name == 'push'
env:
COVERAGE_GIST_ID: ${{ vars.COVERAGE_GIST_ID }}
GIST_SECRET: ${{ secrets.GIST_SECRET }}
run: node scripts/update-coverage-gist.mjs
23 changes: 17 additions & 6 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
name: 'CodeQL'

on:
push:
branches: ["main"]
branches: ['main']
pull_request:
# The branches below must be a subset of the branches above
branches: ["main"]
branches: ['main']
schedule:
- cron: "17 10 * * 6"
- cron: '17 10 * * 6'

jobs:
analyze:
Expand All @@ -32,13 +32,24 @@ jobs:
strategy:
fail-fast: false
matrix:
language: ["typescript"]
language: ['typescript']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

- run: corepack enable

- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 24
cache: yarn

- run: yarn install --immutable

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand Down
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@ typings/
# Yarn Integrity file
.yarn-integrity

# Yarn modern local state
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

# dotenv environment variables file
.env
.env.test
Expand Down
3 changes: 1 addition & 2 deletions .oxfmtrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@
"useTabs": false,
"sortPackageJson": false,
"ignorePatterns": [
"*.yaml",
"*.yml",
"package-lock.json",
"yarn.lock",
".yarn/sdks",
"dist",
"node_modules"
]
Expand Down
7 changes: 6 additions & 1 deletion .oxlintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,12 @@
"env": {
"builtin": true
},
"ignorePatterns": ["dist/**", "coverage/**", "node_modules/**"],
"ignorePatterns": [
"dist/**",
"coverage/**",
".yarn/sdks/**",
"node_modules/**"
],
"rules": {
"constructor-super": "error",
"for-direction": "error",
Expand Down
1 change: 1 addition & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"arcanis.vscode-zipfs",
"bierner.markdown-checkbox",
"bierner.markdown-emoji",
"bierner.markdown-mermaid",
Expand Down
8 changes: 7 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,11 @@
"*.jsonc": "jsonc",
".markdownlint.jsonc": "jsonc",
".markdownlint-cli2.jsonc": "jsonc"
}
},
"search.exclude": {
"**/.yarn": true,
"**/.pnp.*": true
},
"typescript.tsdk": ".yarn/sdks/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}
5 changes: 5 additions & 0 deletions .yarn/sdks/integrations.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# This file is automatically generated by @yarnpkg/sdks.
# Manual changes might be lost!

integrations:
- vscode
32 changes: 32 additions & 0 deletions .yarn/sdks/typescript/bin/tsc
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env node

const {existsSync} = require(`fs`);
const {createRequire, register} = require(`module`);
const {resolve} = require(`path`);
const {pathToFileURL} = require(`url`);

const relPnpApiPath = "../../../../.pnp.cjs";

const absPnpApiPath = resolve(__dirname, relPnpApiPath);
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
const absRequire = createRequire(absPnpApiPath);

const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);

if (existsSync(absPnpApiPath)) {
if (!process.versions.pnp) {
// Setup the environment to be able to require typescript/bin/tsc
require(absPnpApiPath).setup();
if (isPnpLoaderEnabled && register) {
register(pathToFileURL(absPnpLoaderPath));
}
}
}

const wrapWithUserWrapper = existsSync(absUserWrapperPath)
? exports => absRequire(absUserWrapperPath)(exports)
: exports => exports;

// Defer to the real typescript/bin/tsc your application uses
module.exports = wrapWithUserWrapper(absRequire(`typescript/bin/tsc`));
Loading