@dpuse/eslint-config-dpuse 1.0.123 → 1.0.126

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +61 -35
  2. package/package.json +14 -19
package/README.md CHANGED
@@ -1,35 +1,44 @@
1
1
  # DPUse ESLint Configuration
2
2
 
3
- [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
4
- [![npm version](https://img.shields.io/npm/v/@dpuse/eslint-config-dpuse.svg)](https://www.npmjs.com/package/@dpuse/eslint-config-dpuse)
5
-
6
3
  <!-- OPENING_START -->
7
4
 
8
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
9
6
  [![DPUse version](https://img.shields.io/github/v/release/dpuse/eslint-config-dpuse?color=f6821f&label=DPUse)](https://github.com/dpuse/eslint-config-dpuse/releases/latest)
7
+ [![npm version](https://img.shields.io/npm/v/@dpuse/eslint-config-dpuse?color=cb3837&label=npm)](https://www.npmjs.com/package/@dpuse/eslint-config-dpuse)
10
8
  [![CI](https://github.com/dpuse/eslint-config-dpuse/actions/workflows/ci.yml/badge.svg)](https://github.com/dpuse/eslint-config-dpuse/actions/workflows/ci.yml)
11
- [![CodeQL](https://github.com/dpuse/eslint-config-dpuse/actions/workflows/codeql.yml/badge.svg)](https://github.com/dpuse/eslint-config-dpuse/actions/workflows/codeql.yml)
12
- [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=dpuse_eslint-config-dpuse&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=dpuse_eslint-config-dpuse)
13
9
 
14
- [Documentation](https://www.dpuse.app) · [Report a Vulnerability](https://github.com/dpuse/eslint-config-dpuse/security/advisories/new) · [Open an Issue](https://github.com/dpuse/eslint-config-dpuse/issues)
10
+ [DPUse](https://www.dpuse.app) · [Report a Vulnerability](https://github.com/dpuse/eslint-config-dpuse/security/advisories/new) · [Open an Issue](https://github.com/dpuse/eslint-config-dpuse/issues)
11
+
12
+ Common ESLint configuration used across DPUse projects.
15
13
 
16
14
  ## About DPUse
17
15
 
18
- DPUse (Data Positioning & Use) is an in-browser application that positions your data for use through three core activities: sourcing, contextualising, and publishing. **Sourcing** uses a library of [Connectors](https://www.dpuse.app) to establish [Connections](https://www.dpuse.app) to applications, databases, file stores, and curated datasets; these connections are subsequently used to configure structured [Data Views](https://www.dpuse.app) from the underlying sources. **Contextualising** extracts chronological events from those [Data Views](https://www.dpuse.app) and maps them into comprehensive [Context Models](https://www.dpuse.app). This provides the DPUse Engine with the structural framework required to generate deterministic transactions, facts, or observations. **Publishing** employs a library of [Presenters](https://www.dpuse.app) to render standard [Presentations](https://www.dpuse.app) immediately using the contextualised data; additionally, [Cookbooks](https://www.dpuse.app) of [Recipes](https://www.dpuse.app) allow you to build Data Apps using your preferred tools.
16
+ DPUse (Data Positioning & Use) is an in-browser application that positions your data for use through three core activities: sourcing, contextualising, and publishing.
19
17
 
20
- ## Introduction
18
+ **Sourcing** uses a library of [Connectors](https://www.dpuse.app/connectors) to establish [Connections](https://www.dpuse.app) to applications, databases, file stores, and curated datasets; these connections are subsequently used to configure structured [Data Views](https://www.dpuse.app) from the underlying sources.
21
19
 
22
- Common ESLint configuration used in most DPUse projects.
20
+ **Contextualising** extracts chronological events from those [Data Views](https://www.dpuse.app) and maps them into comprehensive [Context Models](https://www.dpuse.app). This gives the DPUse Engine the structural framework needed to generate deterministic transactions, facts, or observations.
21
+
22
+ **Publishing** uses a library of [Presenters](https://www.dpuse.app) to render standard [Presentations](https://www.dpuse.app) immediately using the contextualised data; additionally, [Cookbooks](https://www.dpuse.app) of [Recipes](https://www.dpuse.app) let you build Data Apps using your preferred tools.
23
+
24
+ In addition, DPUse provides [Tools](https://www.dpuse.app) used by the application, and you can use them to construct connectors and presenters.
23
25
 
24
26
  <!-- OPENING_END -->
25
27
 
28
+ <!-- USAGE_START -->
29
+
26
30
  ## Usage
27
31
 
28
- <!-- USAGE_START -->
32
+ This [package](https://www.npmjs.com/package/@dpuse/eslint-config-dpuse) is available on [npm](https://www.npmjs.com/). Install it with:
29
33
 
30
- This connector is automatically uploaded to the DPUse Engine cloud once released and becomes instantly available to all new browser app instances, with existing instances notified of the update.
34
+ ```bash
35
+ npm install @dpuse/eslint-config-dpuse
36
+ ```
31
37
 
32
- You may view or clone this repository for your own purposes, such as building a new, similar connector, though there is currently no process to accept third-party connectors into DPUse at this stage. Cloned or forked code is unsupported and isn't guaranteed to remain compatible with the DPUse Engine as it evolves.
38
+ > [!WARNING]
39
+ > This project is not designed for general use. It is custom built for the DPUse CI/CD process. You are welcome to clone and customise it for your own purposes, but you will need to adapt it to your own project structure and tooling.
40
+
41
+ To work on the source instead, clone this repository.
33
42
 
34
43
  ```bash
35
44
  git clone https://github.com/dpuse/eslint-config-dpuse.git
@@ -37,55 +46,72 @@ cd eslint-config-dpuse
37
46
  npm install
38
47
  ```
39
48
 
40
- _Requires [Node.js](https://nodejs.org/) 22 or later, [npm](https://www.npmjs.com/) 11 or later, and [TypeScript](https://www.typescriptlang.org/) 6.0.3 or later._
49
+ _Requires [Node.js](https://nodejs.org/) 24 or later, [npm](https://www.npmjs.com/) 12 or later, and [TypeScript](https://www.typescriptlang.org/) 6.0.3 or later._
41
50
 
42
- <!-- USAGE_END -->
51
+ This repository is managed using the common set of actions provided by [@dpuse/dpuse-development](https://github.com/dpuse/dpuse-development). See the `scripts` block in [package.json](https://github.com/dpuse/eslint-config-dpuse/blob/main/package.json) for details.
43
52
 
44
- ### Dependency Licenses
53
+ <!-- USAGE_END -->
45
54
 
46
55
  <!-- DEPENDENCY_LICENSES_START -->
47
56
 
57
+ ## Dependency Licenses
58
+
48
59
  > [!WARNING]
49
60
  > Dependency licenses are not documented here: @dpuse/eslint-config-dpuse is a development-only tool and is never part of a production release.
50
61
 
51
62
  <!-- DEPENDENCY_LICENSES_END -->
52
63
 
53
- <!-- DEPENDENCY_TREE_START -->
64
+ <!-- QUALITY_SECURITY_START -->
65
+
66
+ ## Quality & Security
54
67
 
55
- <!-- DEPENDENCY_TREE_END -->
68
+ This section is updated each time `npm run document` is run. Settings come from the repository's workflow files and GitHub. Test coverage and the Fallow score are measured at the same time.
56
69
 
57
- <!-- GOVERNANCE_START -->
70
+ ### Testing
58
71
 
59
- ## Security & Quality
72
+ | Check | Status | What it does |
73
+ | :------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
74
+ | Unit tests | ✅ On | [Vitest](https://vitest.dev) runs the unit tests. Part of the [CI workflow](https://github.com/dpuse/eslint-config-dpuse/actions/workflows/ci.yml) on every push and pull request to `main`. |
75
+ | Property-based tests | ❌ Off | [fast-check](https://fast-check.dev) runs many random inputs per test to find edge cases, alongside the unit tests. |
60
76
 
61
- ### CodeQL
77
+ ### Code Quality
62
78
 
63
- [CodeQL](https://github.com/dpuse/eslint-config-dpuse/security/code-scanning) static analysis runs on every push to `main` and on a weekly schedule, scanning TypeScript, JavaScript, Rust, and GitHub Actions workflow files for security vulnerabilities and coding errors.
79
+ | Check | Status | What it does |
80
+ | :------------ | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
81
+ | Code analysis | ❌ Off | [SonarCloud](https://sonarcloud.io) checks every push for bugs, code smells and vulnerabilities. |
82
+ | Linting | ✅ On | [ESLint](https://eslint.org) checks the code for errors and style problems. Part of the [CI workflow](https://github.com/dpuse/eslint-config-dpuse/actions/workflows/ci.yml) on every push and pull request to `main`. |
64
83
 
65
- ### SonarCloud
84
+ ### Security Analysis
66
85
 
67
- [SonarCloud](https://sonarcloud.io/summary/new_code?id=dpuse_eslint-config-dpuse) performs continuous code quality and security analysis on every push, detecting bugs, code smells, and security vulnerabilities in the TypeScript source.
86
+ | Check | Status | What it does |
87
+ | :-------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
88
+ | Push protection | ✅ On | [GitHub push protection](https://docs.github.com/en/code-security/secret-scanning/push-protection-for-repositories-and-organizations) blocks pushes that contain credentials. |
89
+ | Static analysis | ✅ On | [![CodeQL](https://github.com/dpuse/eslint-config-dpuse/actions/workflows/codeql.yml/badge.svg)](https://github.com/dpuse/eslint-config-dpuse/security/code-scanning) [CodeQL](https://codeql.github.com) scans GitHub Actions and JavaScript/TypeScript for security vulnerabilities, using the extended security queries, on every push and pull request to `main` and weekly. |
90
+ | Secret scanning | ✅ On | [GitHub secret scanning](https://docs.github.com/en/code-security/secret-scanning) detects credentials, such as API keys and tokens, committed to the repository. |
68
91
 
69
- ### Vulnerability Scanning
92
+ ### Dependencies
70
93
 
71
- Two complementary tools continuously monitor dependencies for known vulnerabilities:
94
+ | Check | Status | What it does |
95
+ | :------------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
96
+ | Vulnerability audit | ✅ On | [npm audit](https://docs.npmjs.com/cli/commands/npm-audit) fails when a shipped dependency has any known vulnerability, or a development dependency has a high or critical one. Part of the [CI workflow](https://github.com/dpuse/eslint-config-dpuse/actions/workflows/ci.yml) on every push and pull request to `main`. |
97
+ | Supply chain risk | ✅ On | [Socket](https://socket.dev) flags malicious packages, typosquatting and suspicious behaviour that may not yet have a CVE. |
98
+ | Security alerts | ✅ On | [Dependabot](https://docs.github.com/en/code-security/dependabot) alerts when a dependency has a known vulnerability, using the GitHub Advisory Database. |
99
+ | Security updates | ❌ Off | [Dependabot](https://docs.github.com/en/code-security/dependabot) opens pull requests that update vulnerable dependencies. These are handled manually. |
100
+ | Version updates | ❌ Off | [Dependabot](https://docs.github.com/en/code-security/dependabot) opens pull requests for new dependency versions. These are handled manually. |
72
101
 
73
- - [npm audit](https://docs.npmjs.com/cli/v8/commands/npm-audit) runs on every push to `main` via the CI workflow, failing the build if any high or critical severity vulnerabilities are detected.
74
- - [GitHub Dependabot](https://docs.github.com/en/code-security/dependabot) automatically raises pull requests to update vulnerable dependencies, drawing on the GitHub Advisory Database which combines NVD and npm-specific advisories.
102
+ ### OpenSSF 🚧
75
103
 
76
- ### Supply Chain Security
104
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/dpuse/eslint-config-dpuse/badge)](https://scorecard.dev/viewer/?uri=github.com/dpuse/eslint-config-dpuse)
77
105
 
78
- [Socket.dev](https://socket.dev) monitors all dependencies for supply chain risk — detecting malicious packages, dependency confusion, typosquatting, and suspicious behaviour that may not yet have a CVE.
106
+ This project is working towards the [OpenSSF Best Practices](https://www.bestpractices.dev) Passing badge, a self-certification covering security policy, vulnerability reporting, build processes, code quality, and more. Currently the [OpenSSF Scorecard](https://scorecard.dev) provides an independent automated assessment of the project's security practices and is an ongoing area of improvement.
79
107
 
80
108
  ### Reporting Vulnerabilities
81
109
 
82
110
  Please do not open public GitHub issues for security vulnerabilities. Use [GitHub private vulnerability reporting](https://github.com/dpuse/eslint-config-dpuse/security/advisories/new) instead. See [SECURITY.md](./SECURITY.md) for the full disclosure policy, contact details, and expected response times.
83
111
 
84
- ### OpenSSF 🚧
85
-
86
- [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/dpuse/eslint-config-dpuse/badge)](https://scorecard.dev/viewer/?uri=github.com/dpuse/eslint-config-dpuse)
112
+ <!-- QUALITY_SECURITY_END -->
87
113
 
88
- This project is working towards the [OpenSSF Best Practices](https://www.bestpractices.dev) Passing badge, a self-certification covering security policy, vulnerability reporting, build processes, code quality, and more. Currently the [OpenSSF Scorecard](https://scorecard.dev/viewer/?uri=github.com/dpuse/eslint-config-dpuse) provides an independent automated assessment of the project's security practices and is an ongoing area of improvement.
114
+ <!-- CONTRIBUTING_LICENSE_START -->
89
115
 
90
116
  ## Contributing
91
117
 
@@ -97,6 +123,6 @@ For security vulnerabilities, see [Reporting Vulnerabilities](#reporting-vulnera
97
123
 
98
124
  This project is licensed under the MIT License, permitting free use, modification, and distribution.
99
125
 
100
- [MIT](./LICENSE) © 2026-present Jonathan Terrell
126
+ [MIT](./LICENSE) © 2026 Jonathan Terrell
101
127
 
102
- <!-- GOVERNANCE_END -->
128
+ <!-- CONTRIBUTING_LICENSE_END -->
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@dpuse/eslint-config-dpuse",
3
- "version": "1.0.123",
3
+ "version": "1.0.126",
4
4
  "private": false,
5
- "description": "Common ESLint configuration used in most DPUse projects.",
5
+ "description": "Common ESLint configuration used across DPUse projects.",
6
6
  "license": "MIT",
7
7
  "author": "Jonathan Terrell <terrell.jm@gmail.com>",
8
8
  "type": "module",
@@ -42,18 +42,13 @@
42
42
  "scripts": {
43
43
  "audit": "node -e \"import('@dpuse/dpuse-development').then(m => m.auditDependencies())\"",
44
44
  "build": "tsc -p tsconfig.build.json",
45
- "check": "node -e \"import('@dpuse/dpuse-development').then(m => m.checkConfigFiles())\" && node -e \"import('@dpuse/dpuse-development').then(m => m.checkDependencies())\"",
46
- "document": "npm run documentOpening && npm run documentUsage && npm run documentDependencies && npm run documentGovernance",
47
- "documentDependencies": "node -e \"import('@dpuse/dpuse-development').then(m => m.documentDependencies(''))\"",
48
- "documentGovernance": "node -e \"import('@dpuse/dpuse-development').then(m => m.documentGovernance())\"",
49
- "documentOpening": "node -e \"import('@dpuse/dpuse-development').then(m => m.documentOpening())\"",
50
- "documentUsage": "node -e \"import('@dpuse/dpuse-development').then(m => m.documentUsage())\"",
45
+ "check": "node -e \"import('@dpuse/dpuse-development').then(m => m.checkProject())\"",
46
+ "document": "node -e \"import('@dpuse/dpuse-development').then(m => m.documentProject(''))\"",
51
47
  "format": "node -e \"import('@dpuse/dpuse-development').then(m => m.formatCode())\"",
52
48
  "lint": "node -e \"import('@dpuse/dpuse-development').then(m => m.lintCode())\"",
53
- "release": "npm run sync && gh release create \"v$(npm pkg get version | tr -d '\"')\" --target \"$(git rev-parse HEAD)\" --generate-notes --latest",
49
+ "release": "npm run build && npm run document && npm run sync && node -e \"import('@dpuse/dpuse-development').then(m => m.triggerGitHubRelease())\"",
54
50
  "sync": "node -e \"import('@dpuse/dpuse-development').then(m => m.syncProjectWithGitHub())\"",
55
- "test:e2e": "echo \"❌ 'test:e2e' command not implemented.\"",
56
- "test:unit": "echo \"❌ 'test:unit' command not implemented.\""
51
+ "test": "node -e \"import('@dpuse/dpuse-development').then(m => m.testProject())\""
57
52
  },
58
53
  "peerDependencies": {
59
54
  "eslint": "^10.11.0"
@@ -63,20 +58,20 @@
63
58
  "eslint-config-prettier": "^10.1.8",
64
59
  "eslint-import-resolver-typescript": "^4.4.5",
65
60
  "eslint-plugin-import-x": "^4.17.1",
66
- "eslint-plugin-n": "^18.3.0",
61
+ "eslint-plugin-n": "^18.4.0",
67
62
  "eslint-plugin-regexp": "^3.3.1",
68
- "eslint-plugin-security": "^4.0.1",
69
- "eslint-plugin-sonarjs": "^4.2.1",
63
+ "eslint-plugin-security": "^4.2.0",
64
+ "eslint-plugin-sonarjs": "^4.2.2",
70
65
  "eslint-plugin-unicorn": "^76.0.0",
71
- "typescript-eslint": "^8.70.1"
66
+ "typescript-eslint": "^8.71.0"
72
67
  },
73
68
  "devDependencies": {
74
- "@dpuse/dpuse-development": "^0.3.722",
69
+ "@dpuse/dpuse-development": "^0.3.816",
75
70
  "@types/eslint-plugin-security": "^3.0.1",
76
- "@types/node": "^26.6.2",
71
+ "@types/node": "^26.6.4",
77
72
  "eslint": "^10.11.0",
78
73
  "prettier": "^3.9.9",
79
74
  "typescript": "^6.0.3",
80
- "typescript-eslint": "^8.70.1"
75
+ "typescript-eslint": "^8.71.0"
81
76
  }
82
- }
77
+ }