on_the_money 0.3.0 → 0.3.1
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.
- package/CHANGELOG.md +10 -0
- package/README.md +15 -11
- package/package.json +1 -1
- package/src/linter/Linter.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.3.1] — 2026-05-19
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **README lint-stack tables** no longer refer to `eslint-plugin-otm` and `stylelint-plugin-otm` as if they were standalone packages. They ship bundled inside `on_the_money` via subpath exports; the rule-source columns now read "bundled in `on_the_money`". Anyone following the README literally was tempted to `npm install -D eslint-plugin-otm`, which 404s. (#49)
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **HTML-004 diagnostic** now hints toward `<dl>/<dt>/<dd>` for label/value patterns. The full message reads: "Naked strings in HTML are forbidden. Use data-i18n or wrap in a semantic tag (for label/value pairs, prefer `<dl>`/`<dt>`/`<dd>`)." Pushes consumers toward the semantically meaningful restructure rather than a cosmetic `<span>` wrap. (#50)
|
|
16
|
+
|
|
7
17
|
## [0.3.0] — 2026-05-18
|
|
8
18
|
|
|
9
19
|
### Breaking
|
package/README.md
CHANGED
|
@@ -306,10 +306,12 @@ The framework reads existing attributes via `the(key)` without modification, so
|
|
|
306
306
|
|
|
307
307
|
on_the_money ships a three-tool stack. Each layer covers what the others can't.
|
|
308
308
|
|
|
309
|
-
### 1. JavaScript — ESLint +
|
|
309
|
+
### 1. JavaScript — ESLint + bundled plugin
|
|
310
|
+
|
|
311
|
+
The ESLint plugin and config ship inside `on_the_money` itself. No separate `eslint-plugin-otm` package — import via subpath.
|
|
310
312
|
|
|
311
313
|
```bash
|
|
312
|
-
npm install -D eslint
|
|
314
|
+
npm install -D eslint eslint-plugin-no-unsanitized
|
|
313
315
|
```
|
|
314
316
|
|
|
315
317
|
```javascript
|
|
@@ -325,15 +327,17 @@ export default [
|
|
|
325
327
|
|
|
326
328
|
| Rule | Source | Behavior |
|
|
327
329
|
| --- | --- | --- |
|
|
328
|
-
| `otm/prefer-on` |
|
|
329
|
-
| `otm/prefer-the-set` |
|
|
330
|
-
| `otm/flat-state` |
|
|
331
|
-
| `otm/prefer-submit` |
|
|
332
|
-
| `otm/no-style-mutation` |
|
|
333
|
-
| `no-unsanitized/no-inner-html` |
|
|
334
|
-
| `no-unsanitized/method` |
|
|
330
|
+
| `otm/prefer-on` | bundled in `on_the_money` | Ban `addEventListener`; use `on()`. |
|
|
331
|
+
| `otm/prefer-the-set` | bundled in `on_the_money` | Ban `textContent`/`innerText`/`nodeValue` assignment. |
|
|
332
|
+
| `otm/flat-state` | bundled in `on_the_money` | Ban nested objects/arrays in `the()` calls. |
|
|
333
|
+
| `otm/prefer-submit` | bundled in `on_the_money` | Warn on `on(btn, "click", ...)` for form data. |
|
|
334
|
+
| `otm/no-style-mutation` | bundled in `on_the_money` | Ban `el.style.* = ...`. |
|
|
335
|
+
| `no-unsanitized/no-inner-html` | `eslint-plugin-no-unsanitized` | Ban `innerHTML`/`outerHTML`. |
|
|
336
|
+
| `no-unsanitized/method` | `eslint-plugin-no-unsanitized` | Ban `document.write`, `insertAdjacentHTML`. |
|
|
337
|
+
|
|
338
|
+
### 2. CSS — Stylelint + bundled plugin
|
|
335
339
|
|
|
336
|
-
|
|
340
|
+
Same pattern: the Stylelint plugin and config ship inside `on_the_money`. No separate `stylelint-plugin-otm` package.
|
|
337
341
|
|
|
338
342
|
```bash
|
|
339
343
|
npm install -D stylelint stylelint-config-standard
|
|
@@ -351,7 +355,7 @@ export default {
|
|
|
351
355
|
|
|
352
356
|
| Rule | Source | Behavior |
|
|
353
357
|
| --- | --- | --- |
|
|
354
|
-
| `otm/prefer-attribute-selector` |
|
|
358
|
+
| `otm/prefer-attribute-selector` | bundled in `on_the_money` | Ban `.class` selectors; use `[data-state="..."]`. |
|
|
355
359
|
| `declaration-no-important` | stylelint built-in | Ban `!important`. |
|
|
356
360
|
|
|
357
361
|
### 3. HTML / cross-file — `otm-lint`
|
package/package.json
CHANGED
package/src/linter/Linter.js
CHANGED
|
@@ -92,7 +92,7 @@ export default class Linter {
|
|
|
92
92
|
file,
|
|
93
93
|
{ line: loc.startLine, column: loc.startCol },
|
|
94
94
|
"HTML-004",
|
|
95
|
-
"Naked strings in HTML are forbidden. Use data-i18n or wrap in a semantic tag.",
|
|
95
|
+
"Naked strings in HTML are forbidden. Use data-i18n or wrap in a semantic tag (for label/value pairs, prefer <dl>/<dt>/<dd>).",
|
|
96
96
|
);
|
|
97
97
|
}
|
|
98
98
|
}
|