diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 162fc103..00000000 --- a/.babelrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "presets": [ - "@babel/preset-env", - "@babel/preset-typescript" - ], - "plugins": [ - [ - "babel-plugin-inline-import", - { - "extensions": [ - ".ttl" - ] - } - ] - ] -} diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 5ebc18e4..00000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -dist -lib -typings/rdflib diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 71495a2b..00000000 --- a/.eslintrc +++ /dev/null @@ -1,26 +0,0 @@ -{ - "root": true, - "env": { - "browser": true, - "es6": true, - "node": true - }, - "globals": { - "Atomics": "readonly", - "SharedArrayBuffer": "readonly" - }, - "parser": "@typescript-eslint/parser", - "plugins": [ - "@typescript-eslint" - ], - "rules": { - "no-unused-vars": ["warn", { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_" - }], - "@typescript-eslint/no-unused-vars": ["warn", { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_" - }] - } -} diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..a201914c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + # Check for updates to GitHub Actions every week + interval: "weekly" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a03daac9..d61948e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,27 +6,23 @@ name: CI on: push: branches: - - "**" + - main pull_request: branches: - - "**" + - main workflow_dispatch: jobs: build: - runs-on: ubuntu-latest - strategy: matrix: - node-version: - - 16.x - - 18.x + node-version: [20, 22] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v6 with: node-version: ${{ matrix.node-version }} - run: npm ci @@ -34,49 +30,71 @@ jobs: - run: npm test - run: npm run build --if-present - name: Save build - if: matrix.node-version == '16.x' - uses: actions/upload-artifact@v2 + if: matrix.node-version == 20 + uses: actions/upload-artifact@v6 with: name: build path: | . !node_modules retention-days: 1 + + dependabot: + name: 'Dependabot' + needs: build # After the E2E and build jobs, if one of them fails, it won't merge the PR. + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' && github.event_name == 'pull_request'}} # Detect that the PR author is dependabot + steps: + - name: Enable auto-merge for Dependabot PRs + run: gh pr merge --auto --merge "$PR_URL" # Use Github CLI to merge automatically the PR + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} npm-publish-build: needs: build runs-on: ubuntu-latest + permissions: + id-token: write + contents: read steps: - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v7 with: name: build - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v6 with: - node-version: 16.x + node-version: 20 + registry-url: 'https://registry.npmjs.org' + - name: Update npm to latest (required for OIDC) + run: npm install -g npm@latest - uses: rlespinasse/github-slug-action@v3.x - name: Append commit hash to package version run: 'sed -i -E "s/(\"version\": *\"[^\"]+)/\1-${GITHUB_SHA_SHORT}/" package.json' - name: Disable pre- and post-publish actions run: 'sed -i -E "s/\"((pre|post)publish)/\"ignore:\1/" package.json' - - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - tag: ${{ env.GITHUB_REF_SLUG }} + - name: Publish to npm + if: github.actor != 'dependabot[bot]' && github.actor != 'dependabot-preview[bot]' + run: npm publish --tag ${{ env.GITHUB_REF_SLUG }} npm-publish-latest: - needs: build + needs: [build, npm-publish-build] runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' + permissions: + id-token: write # Required for OIDC + contents: read steps: - - uses: actions/download-artifact@v2 + - uses: actions/download-artifact@v7 with: name: build - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v6 with: - node-version: 16.x + node-version: 20 + registry-url: 'https://registry.npmjs.org' + - name: Update npm to latest (required for OIDC) + run: npm install -g npm@latest - name: Disable pre- and post-publish actions run: 'sed -i -E "s/\"((pre|post)publish)/\"ignore:\1/" package.json' - - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - tag: latest + - name: Publish to npm + if: github.actor != 'dependabot[bot]' && github.actor != 'dependabot-preview[bot]' + run: npm publish --tag latest diff --git a/.gitignore b/.gitignore index 8512bffb..d62d2a65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # Built code dist lib +dist-dev src/versionInfo.ts # Logs diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 2ac7451c..00000000 --- a/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -# This file primarily exists to prevent ./dist from being ignored when publishing. -# (Because it's listed in .gitignore). - -coverage \ No newline at end of file diff --git a/.nvmrc b/.nvmrc index eb800ed4..1d898f1f 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18.19.0 +v20.19.2 diff --git a/babel.config.mjs b/babel.config.mjs new file mode 100644 index 00000000..d5db5463 --- /dev/null +++ b/babel.config.mjs @@ -0,0 +1,19 @@ +export default { + presets: [ + ['@babel/preset-env', { + targets: { + browsers: ['> 1%', 'last 3 versions', 'not dead'] + } + }], + '@babel/preset-typescript' + ], + plugins: [ + [ + 'babel-plugin-inline-import', { + extensions: [ + '.ttl' + ] + } + ] + ] +} diff --git a/src/global.d.ts b/declarations.d.ts similarity index 100% rename from src/global.d.ts rename to declarations.d.ts diff --git a/dev/index.html b/dev/index.html index 9ddeef1a..515ef587 100644 --- a/dev/index.html +++ b/dev/index.html @@ -3,6 +3,16 @@