semlog 0.7.0 → 0.8.0

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.
@@ -15,7 +15,10 @@ jobs:
15
15
 
16
16
  strategy:
17
17
  matrix:
18
- node: [20, 22]
18
+ include:
19
+ - node: 20
20
+ - node: 22
21
+ coverage: true
19
22
 
20
23
  steps:
21
24
  - name: Checkout
@@ -37,3 +40,15 @@ jobs:
37
40
 
38
41
  - name: Test
39
42
  run: npm test
43
+ if: matrix.coverage != true
44
+
45
+ - name: Test with coverage
46
+ run: npm run test:coverage
47
+ if: matrix.coverage == true
48
+
49
+ - name: Upload code coverage
50
+ uses: codecov/codecov-action@v4
51
+ with:
52
+ files: coverage/clover.xml
53
+ token: ${{ secrets.CODECOV_TOKEN }}
54
+ if: matrix.coverage == true
@@ -31,7 +31,6 @@ jobs:
31
31
  run: |
32
32
  corepack enable npm
33
33
  corepack prepare npm@^11 --activate
34
- npm --version
35
34
 
36
35
  - name: Install dependencies
37
36
  run: npm ci
@@ -42,5 +41,4 @@ jobs:
42
41
  - name: Publish
43
42
  run: |
44
43
  unset NODE_AUTH_TOKEN
45
- npm --version
46
44
  npm publish --access public
package/CHANGELOG.md ADDED
@@ -0,0 +1,20 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ This project adheres to [Semantic Versioning](https://semver.org/) and
5
+ [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
+
7
+ ## [Unreleased]
8
+
9
+ ## [0.8.0] - 2026-07-26
10
+
11
+ Adds a coverage report to CI and closes out a set of open dependency vulnerabilities.
12
+
13
+ ### Added
14
+ - Add `format` npm script for auto-formatting with Prettier [`dbffe72`](https://github.com/gesinn-it-pub/semlog/commit/dbffe724b95dae9870e5114ed272c5df34ee7998)
15
+
16
+ ### Changed
17
+ - Bump mocha to 11.7.6 and override vulnerable transitive deps (brace-expansion, diff, js-yaml, serialize-javascript) [`39d2837`](https://github.com/gesinn-it-pub/semlog/commit/39d28378b0a21e5a9963392163961aa40b0ba68f)
18
+
19
+ [Unreleased]: https://github.com/gesinn-it-pub/semlog/compare/0.8.0...HEAD
20
+ [0.8.0]: https://github.com/gesinn-it-pub/semlog/compare/v0.6.11...0.8.0
package/Makefile CHANGED
@@ -5,6 +5,10 @@ ci: lint format-check test
5
5
  lint:
6
6
  npm run lint
7
7
 
8
+ .PHONY: format
9
+ format:
10
+ npm run format
11
+
8
12
  .PHONY: format-check
9
13
  format-check:
10
14
  npm run format:check
package/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  [![npm version](https://img.shields.io/npm/v/semlog.svg?style=flat)](https://www.npmjs.com/package/semlog)
2
2
  [![CI](https://github.com/gesinn-it-pub/semlog/actions/workflows/ci.yml/badge.svg)](https://github.com/gesinn-it-pub/semlog/actions/workflows/ci.yml)
3
+ [![codecov](https://codecov.io/github/gesinn-it-pub/semlog/branch/master/graph/badge.svg)](https://codecov.io/github/gesinn-it-pub/semlog)
3
4
  > A semantic logger module, that colors / formats automatically
4
5
 
5
6
  ## About
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "semlog",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "A semantic logger module, that colors and formats automatically depending on the content",
5
5
  "homepage": "https://github.com/gesinn-it-pub/semlog",
6
6
  "author": {
@@ -45,11 +45,20 @@
45
45
  "eslint": "^10.0.0",
46
46
  "eslint-config-prettier": "^10.0.0",
47
47
  "globals": "^17.0.0",
48
- "mocha": "^11.0.0",
48
+ "mocha": "^11.7.6",
49
49
  "prettier": "^3.0.0"
50
50
  },
51
+ "overrides": {
52
+ "mocha": {
53
+ "diff": "^8.0.4",
54
+ "js-yaml": "^4.3.0",
55
+ "serialize-javascript": "^7.0.7"
56
+ },
57
+ "brace-expansion": "^5.0.8"
58
+ },
51
59
  "scripts": {
52
60
  "lint": "eslint index.js test/",
61
+ "format": "prettier --write index.js test/",
53
62
  "format:check": "prettier --check index.js test/",
54
63
  "test": "mocha 'test/**/*.spec.js'",
55
64
  "test:coverage": "c8 mocha 'test/**/*.spec.js'"
@@ -1,55 +0,0 @@
1
- name: Build AGENTS
2
-
3
- on:
4
- push:
5
- paths:
6
- - AGENTS-source.adoc
7
- - docs/attributes.adoc
8
- - docs/gesinn-it-docs-master-pub
9
- - docs/gesinn-it-docs-master-pub/**
10
- branches:
11
- - '**'
12
- workflow_dispatch:
13
-
14
- jobs:
15
-
16
- build:
17
- timeout-minutes: 10
18
- runs-on: ubuntu-latest
19
-
20
- steps:
21
- - name: Checkout repository
22
- uses: actions/checkout@v4
23
- with:
24
- submodules: 'true'
25
-
26
- - name: Install tools
27
- run: |
28
- sudo apt-get update
29
- sudo apt-get install -y asciidoctor pandoc
30
- sudo gem install asciidoctor-reducer --pre
31
-
32
- - name: Reduce AGENTS source (flatten includes)
33
- run: asciidoctor-reducer -o AGENTS.adoc AGENTS-source.adoc
34
-
35
- - name: Convert AsciiDoc to DocBook
36
- run: asciidoctor -b docbook5 -o AGENTS.xml AGENTS.adoc
37
-
38
- - name: Convert DocBook to Markdown
39
- run: pandoc -f docbook -t gfm AGENTS.xml -o AGENTS.md
40
-
41
- - name: Add autogenerated header (AGENTS)
42
- run: |
43
- printf "<!-- THIS FILE IS AUTO-GENERATED. Edit AGENTS-source.adoc instead. -->\n\n" | \
44
- cat - AGENTS.md > tmp
45
- mv tmp AGENTS.md
46
-
47
- - name: Remove intermediate files
48
- run: rm -f AGENTS.adoc AGENTS.xml
49
-
50
- - name: Commit generated files
51
- uses: EndBug/add-and-commit@v8
52
- with:
53
- add: AGENTS.md
54
- pull: '--rebase --autostash'
55
- message: "docs(ci): update generated AGENTS.md [skip ci]"
package/.gitmodules DELETED
@@ -1,3 +0,0 @@
1
- [submodule "docs/gesinn-it-docs-master-pub"]
2
- path = docs/gesinn-it-docs-master-pub
3
- url = https://github.com/gesinn-it-pub/gesinn-it-docs-master-pub.git
@@ -1,31 +0,0 @@
1
- // ============================================================
2
- // THIS IS THE SOURCE FILE. Edit this file only.
3
- // AGENTS.md is AUTO-GENERATED by the GitHub
4
- // workflow .github/workflows/build-agents.yml.
5
- // NEVER edit or regenerate AGENTS.md manually.
6
- // ============================================================
7
- include::docs/attributes.adoc[]
8
-
9
- == Coding Conventions
10
-
11
- include::docs/gesinn-it-docs-master-pub/snippets/{project_type}/coding-conventions.adoc[]
12
-
13
- == Test Workflow
14
-
15
- include::docs/gesinn-it-docs-master-pub/snippets/nodejs/ci-npm.adoc[]
16
-
17
- == Commit Convention
18
-
19
- include::docs/gesinn-it-docs-master-pub/sections/universal/conventional-commits-policy.adoc[]
20
-
21
- == Publish Workflow
22
-
23
- include::docs/gesinn-it-docs-master-pub/snippets/nodejs/ci-publish.adoc[]
24
-
25
- == Release Workflow
26
-
27
- include::docs/gesinn-it-docs-master-pub/sections/nodejs/release-workflow.adoc[]
28
-
29
- == Versioning
30
-
31
- include::docs/gesinn-it-docs-master-pub/sections/universal/semver-policy.adoc[]
package/AGENTS.md DELETED
@@ -1,343 +0,0 @@
1
- <!-- THIS FILE IS AUTO-GENERATED. Edit AGENTS-source.adoc instead. -->
2
-
3
- # Coding Conventions
4
-
5
- **Coding Conventions — General**
6
-
7
- All source files regardless of language must follow these baseline
8
- rules.
9
-
10
- - Encoding: UTF-8 without BOM
11
-
12
- - Line endings: Unix-style LF (not CR+LF)
13
-
14
- - Maximum line length: 120 characters
15
-
16
- - No trailing whitespace
17
-
18
- - Newline at end of file
19
-
20
- **Coding Conventions — JavaScript**
21
-
22
- Tooling: [ESLint v9](https://eslint.org/) (code quality) +
23
- [Prettier](https://prettier.io/) (formatting). Run locally:
24
- `npm run lint` / `npm run format:check` (or `npm test`).
25
-
26
- Target: Node.js 20+. Declare in `package.json`:
27
-
28
- ``` json
29
- "engines": { "node": ">=20.0.0" }
30
- ```
31
-
32
- **ESLint — flat config (v9+)**
33
-
34
- New repositories use [flat
35
- config](https://eslint.org/docs/latest/use/configure/configuration-files)
36
- (`eslint.config.js`). Install:
37
- `npm install --save-dev eslint @eslint/js globals eslint-config-prettier`
38
-
39
- ``` js
40
- // eslint.config.js
41
- import js from '@eslint/js';
42
- import globals from 'globals';
43
- import prettier from 'eslint-config-prettier';
44
-
45
- export default [
46
- js.configs.recommended,
47
- {
48
- languageOptions: {
49
- globals: globals.node,
50
- ecmaVersion: 2022,
51
- },
52
- rules: {
53
- 'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
54
- 'no-console': 'off',
55
- 'prefer-const': 'error',
56
- },
57
- },
58
- prettier, // disables ESLint rules that conflict with Prettier
59
- ];
60
- ```
61
-
62
- <div class="note">
63
-
64
- Projects with `"type": "commonjs"` in `package.json` must use CJS syntax
65
- in `eslint.config.js` (`require` / `module.exports`).
66
-
67
- </div>
68
-
69
- Run: `npm run lint` (`eslint src/ test/`).
70
-
71
- **Prettier — code formatting**
72
-
73
- Formatting (indentation, quotes, line length) is owned by Prettier, not
74
- ESLint rules. Install: `npm install --save-dev --save-exact prettier`
75
-
76
- ``` json
77
- // .prettierrc
78
- {
79
- "singleQuote": true,
80
- "semi": true,
81
- "tabWidth": 4,
82
- "printWidth": 120,
83
- "trailingComma": "es5"
84
- }
85
- ```
86
-
87
- Format: `prettier --write src/ test/`
88
- Check (CI): `prettier --check src/ test/`
89
-
90
- **Module system**
91
-
92
- - New projects: ES Modules (`import` / `export`) with `"type": "module"`
93
- in `package.json`
94
-
95
- - Existing CommonJS code (`require` / `module.exports`) does not need to
96
- migrate
97
-
98
- - One concern per file; filename reflects its exported symbol
99
- (`BotRequest.js` for class `BotRequest`)
100
-
101
- **Naming**
102
-
103
- - Variables and functions: lowerCamelCase
104
-
105
- - Constructors / classes: UpperCamelCase
106
-
107
- - Constants: `ALL_CAPS`
108
-
109
- - Acronyms as single words: `getHtmlSource`, not `getHTMLSource`
110
-
111
- **Code style**
112
-
113
- - `const` and `let` — never `var`
114
-
115
- - `===` and `!==` always; no Yoda conditions
116
-
117
- - Arrow functions for callbacks; async/await over raw Promise chains
118
-
119
- - Optional chaining (`?.`) and nullish coalescing (`??`) over manual
120
- null checks
121
-
122
- - Early returns over deeply nested `if` blocks
123
-
124
- - JSDoc type annotations on public API functions encouraged
125
-
126
- # Test Workflow
127
-
128
- **Install dependencies**
129
-
130
- ``` console
131
- npm ci
132
- ```
133
-
134
- Run all checks (lint + format check + tests):
135
-
136
- ``` console
137
- npm test
138
- ```
139
-
140
- Run only ESLint:
141
-
142
- ``` console
143
- npm run lint
144
- ```
145
-
146
- Check formatting (Prettier, non-destructive):
147
-
148
- ``` console
149
- npm run format:check
150
- ```
151
-
152
- **Pre-commit gate**
153
-
154
- Run before every commit:
155
-
156
- ``` console
157
- make ci 2>&1 | tee /tmp/ci.log; echo "EXIT:$?"
158
- ```
159
-
160
- Auto-format source files:
161
-
162
- ``` console
163
- npm run format
164
- ```
165
-
166
- Run tests with coverage report:
167
-
168
- ``` console
169
- npm run test-coverage
170
- ```
171
-
172
- # Commit Convention
173
-
174
- # Conventional Commits Policy
175
-
176
- Commit messages follow the [Conventional Commits
177
- specification](https://www.conventionalcommits.org/).
178
-
179
- Commit format:
180
-
181
- `type(scope): short description`
182
-
183
- The scope is optional and should describe the affected subsystem,
184
- module, or dependency when useful.
185
-
186
- Examples:
187
-
188
- - feat(api): add autocomplete endpoint
189
-
190
- - fix(parser): handle empty token lists
191
-
192
- - docs(readme): explain input architecture
193
-
194
- - refactor(parser): simplify token parsing
195
-
196
- - deps(smw): bump from 5.1.0 to 5.2.0
197
-
198
- - ci(github): update workflow configuration
199
-
200
- - test(api): add autocomplete tests
201
-
202
- Recommended commit types:
203
-
204
- - `feat` — new functionality
205
-
206
- - `fix` — bug fixes
207
-
208
- - `deps` — dependency updates
209
-
210
- - `docs` — documentation changes
211
-
212
- - `refactor` — internal code changes without behavioral change
213
-
214
- - `test` — tests added or updated
215
-
216
- - `ci` — changes to continuous integration configuration
217
-
218
- - `chore` — repository maintenance tasks without impact on runtime
219
- behavior
220
-
221
- Dependency updates:
222
-
223
- - Use the `deps` type for dependency upgrades
224
-
225
- - The scope should identify the dependency being updated
226
-
227
- - Include the version change when applicable
228
-
229
- Example:
230
-
231
- - deps(smw): bump from 5.1.0 to 5.2.0
232
-
233
- Guidelines:
234
-
235
- - Use the imperative mood (e.g. "add feature", not "added feature")
236
-
237
- - Keep the subject line concise
238
-
239
- - Use the commit body to explain **why**, not only **what**
240
-
241
- - Scopes should be short, lowercase identifiers (e.g. `api`, `parser`,
242
- `smw`, `mediawiki`, `docker`)
243
-
244
- - Use `chore` only for repository maintenance tasks that do not affect
245
- runtime behavior, dependencies, CI configuration, or tests
246
-
247
- # Publish Workflow
248
-
249
- **Publish workflow**
250
-
251
- Publishing is triggered automatically when a GitHub Release is
252
- published. The workflow runs all tests before publishing.
253
-
254
- **Registry:** [npmjs.org](https://www.npmjs.com)
255
-
256
- Authentication uses [npm
257
- provenance](https://docs.npmjs.com/generating-provenance-statements) via
258
- OIDC (OpenID Connect) — no static `NPM_TOKEN` secret is required.
259
-
260
- The package must be configured as a Trusted Publisher on npmjs.org
261
- (one-time setup per package): npmjs.org → Package Settings → Publishing
262
- → Trusted Publishers → add this repository.
263
-
264
- # Release Workflow
265
-
266
- # Release Workflow
267
-
268
- ## Steps
269
-
270
- 1. Bump version in `package.json` (no git tag, no commit):
271
-
272
- ``` console
273
- npm version <major|minor|patch> --no-git-tag-version
274
- ```
275
-
276
- 2. Commit:
277
-
278
- prepared x.x.x [skip ci]
279
-
280
- 3. Draft release notes (see below) and present for approval.
281
-
282
- 4. After explicit user approval — push and create GitHub release:
283
-
284
- ``` console
285
- git push
286
- gh release create x.x.x --title "x.x.x" --notes "<release notes>"
287
- ```
288
-
289
- Creating the GitHub release triggers the publish workflow
290
- automatically.
291
-
292
- ## Release notes
293
-
294
- List commits since the last release tag as bullet points, grouped by
295
- type. Include the short commit SHA in parentheses.
296
-
297
- Present release notes inside a fenced markdown code block for easy
298
- copying. Wait for explicit user approval before pushing or creating the
299
- GitHub release.
300
-
301
- Example:
302
-
303
- ``` markdown
304
- ## Features
305
- - feat(api): add new endpoint for autocomplete (a1b2c3d)
306
-
307
- ## Fixes
308
- - fix(parser): handle empty token list (e4f5g6h)
309
- ```
310
-
311
- # Versioning
312
-
313
- # Versioning and Releases
314
-
315
- This project follows [Semantic Versioning](https://semver.org/).
316
-
317
- Version numbers follow the format:
318
-
319
- `MAJOR.MINOR.PATCH`
320
-
321
- Version increment rules:
322
-
323
- - MAJOR — incompatible or breaking changes
324
-
325
- - MINOR — backwards-compatible feature additions
326
-
327
- - PATCH — backwards-compatible bug fixes
328
-
329
- Breaking changes include (but are not limited to):
330
-
331
- - incompatible API changes
332
-
333
- - removal or renaming of public interfaces
334
-
335
- - behavior changes that may break existing integrations
336
-
337
- - increased minimum runtime or dependency requirements
338
-
339
- - incompatible configuration or data format changes
340
-
341
- - dependency upgrades that introduce breaking changes for users
342
-
343
- Breaking changes must always increment the MAJOR version.
@@ -1,3 +0,0 @@
1
- :project_name: semlog
2
- :project_type: nodejs
3
- :npm-registry: npmjs