@cplieger/reactive 1.0.0 → 1.0.2

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/jsr.json CHANGED
@@ -1,22 +1,18 @@
1
1
  {
2
2
  "name": "@cplieger/reactive",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "exports": {
5
5
  ".": "./src/index.ts"
6
6
  },
7
7
  "publish": {
8
+ "include": [
9
+ "LICENSE",
10
+ "README.md",
11
+ "src/**/*.ts"
12
+ ],
8
13
  "exclude": [
9
- "**/*.test.ts",
10
- "**/__test-helpers__",
11
- "**/fc-strict-setup.ts",
12
- "eslint.config.mjs",
13
- "tsconfig.json",
14
- "tsconfig.test.json",
15
- "tsconfig.tests.json",
16
- "vitest.config.ts",
17
- "renovate.json",
18
- "package-lock.json",
19
- ".prettierrc.json"
14
+ "src/**/*.test.ts",
15
+ "src/**/__test-helpers__/**"
20
16
  ]
21
17
  }
22
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cplieger/reactive",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -31,5 +31,12 @@
31
31
  "repository": {
32
32
  "type": "git",
33
33
  "url": "git+https://github.com/cplieger/reactive.git"
34
- }
34
+ },
35
+ "files": [
36
+ "src/",
37
+ "!src/**/*.test.ts",
38
+ "!src/**/__test-helpers__",
39
+ "!src/**/fc-strict-setup.ts",
40
+ "jsr.json"
41
+ ]
35
42
  }
package/.editorconfig DELETED
@@ -1,19 +0,0 @@
1
- root = true
2
-
3
- [*]
4
- charset = utf-8
5
- end_of_line = lf
6
- insert_final_newline = true
7
- trim_trailing_whitespace = true
8
- indent_style = space
9
- indent_size = 2
10
- max_line_length = 100
11
-
12
- [*.go]
13
- indent_style = tab
14
-
15
- [Makefile]
16
- indent_style = tab
17
-
18
- [*.md]
19
- trim_trailing_whitespace = false
@@ -1,28 +0,0 @@
1
- {
2
- "$schema": "https://html-validate.org/schemas/config.json",
3
- "extends": [
4
- "html-validate:recommended",
5
- "html-validate:standard",
6
- "html-validate:document",
7
- "html-validate:a11y"
8
- ],
9
- "rules": {
10
- "no-inline-style": "error",
11
- "no-trailing-whitespace": "error",
12
- "no-style-tag": "error",
13
- "tel-non-breaking": "error",
14
- "valid-id": "error",
15
- "class-pattern": ["error", { "pattern": "kebabcase" }],
16
- "id-pattern": ["error", { "pattern": ["camelcase", "kebabcase"] }],
17
- "heading-level": "error",
18
- "no-implicit-close": "error",
19
- "no-implicit-button-type": "error",
20
- "no-implicit-input-type": "error",
21
- "input-missing-label": "error",
22
- "no-redundant-aria-label": "error",
23
- "no-redundant-role": "error",
24
- "no-redundant-for": "error",
25
- "no-unused-disable": "error",
26
- "require-sri": "off"
27
- }
28
- }
package/.stylelintrc.json DELETED
@@ -1,67 +0,0 @@
1
- {
2
- "$schema": "https://json.schemastore.org/stylelintrc",
3
- "extends": ["stylelint-config-standard"],
4
- "defaultSeverity": "error",
5
- "reportDescriptionlessDisables": true,
6
- "reportInvalidScopeDisables": true,
7
- "reportNeedlessDisables": true,
8
- "reportUnscopedDisables": true,
9
- "rules": {
10
- "declaration-block-single-line-max-declarations": null,
11
- "declaration-no-important": true,
12
- "declaration-property-value-no-unknown": true,
13
- "function-no-unknown": true,
14
- "max-nesting-depth": [
15
- 4,
16
- {
17
- "ignore": ["blockless-at-rules", "pseudo-classes"]
18
- }
19
- ],
20
- "no-unknown-animations": true,
21
- "no-unknown-custom-properties": true,
22
- "number-max-precision": [
23
- 4,
24
- {
25
- "insideFunctions": {
26
- "/^(oklch|oklab|lch|lab|color-mix)$/": 6
27
- }
28
- }
29
- ],
30
- "selector-max-id": 0,
31
- "color-named": "never",
32
- "color-hex-alpha": "never",
33
- "font-weight-notation": "numeric",
34
- "selector-no-qualifying-type": [
35
- true,
36
- {
37
- "ignore": ["attribute", "class"]
38
- }
39
- ],
40
- "selector-max-compound-selectors": 5,
41
- "selector-max-specificity": "0,4,3",
42
- "selector-max-pseudo-class": 3,
43
- "selector-max-attribute": 2,
44
- "selector-max-combinators": 4,
45
- "selector-max-universal": 1,
46
- "time-min-milliseconds": 10,
47
- "at-rule-no-vendor-prefix": true,
48
- "property-no-vendor-prefix": [
49
- true,
50
- {
51
- "ignoreProperties": ["text-size-adjust", "font-smoothing", "tap-highlight-color"]
52
- }
53
- ],
54
- "value-no-vendor-prefix": [
55
- true,
56
- {
57
- "ignoreValues": ["box", "inline-box"]
58
- }
59
- ],
60
- "selector-no-vendor-prefix": true,
61
- "media-feature-name-no-vendor-prefix": true,
62
- "no-descending-specificity": null,
63
- "no-duplicate-selectors": null,
64
- "comment-empty-line-before": null,
65
- "rule-empty-line-before": null
66
- }
67
- }
package/cliff.toml DELETED
@@ -1,37 +0,0 @@
1
- # Version-bump policy. Stable (1.x+): standard semver.
2
- # feat -> minor; breaking -> major.
3
- # Fresh/untagged repos start at v1.0.0 (matches "0.x is the exception" policy).
4
- [bump]
5
- features_always_bump_minor = true
6
- breaking_always_bump_major = true
7
- initial_tag = "v1.0.0"
8
- no_increment_regex = "^chore|^ci|^docs|^style|^test"
9
-
10
- [changelog]
11
- header = ""
12
- body = """
13
- {% for group, commits in commits | group_by(attribute="group") %}
14
- ### {{ group | upper_first }}
15
- {% for commit in commits %}
16
- - {{ commit.message | upper_first }}\
17
- {% endfor %}
18
- {% endfor %}
19
- """
20
- trim = true
21
-
22
- [git]
23
- conventional_commits = true
24
- filter_unconventional = false
25
- split_commits = false
26
- protect_breaking_commits = false
27
- tag_pattern = "v[0-9].*"
28
-
29
- commit_parsers = [
30
- { message = "^release:", skip = true },
31
- { message = "^feat", group = "Added" },
32
- { message = "^fix", group = "Fixed" },
33
- { message = "^sec", group = "Security" },
34
- { message = "^chore\\(deps\\)", group = "Dependencies" },
35
- { message = "^chore|^ci|^docs|^style|^refactor|^perf|^test", group = "Changed" },
36
- { message = ".*", group = "Changed" },
37
- ]
@@ -1,187 +0,0 @@
1
- // Strict typed-linting config.
2
- // References:
3
- // https://typescript-eslint.io/users/configs/#strict-type-checked
4
- // https://typescript-eslint.io/users/configs/#stylistic-type-checked
5
- // https://typescript-eslint.io/getting-started/typed-linting
6
-
7
- import js from "@eslint/js";
8
- import tseslint from "typescript-eslint";
9
-
10
- export default [
11
- // 1. Ignore generated/build outputs and configs that don't need linting.
12
- {
13
- ignores: [
14
- // Dependencies (any depth — vibekit's web/static-src/node_modules nests deep)
15
- "**/node_modules/**",
16
- // Build output / generated bundles (TS->JS, CSS bundles, etc.)
17
- "**/static/**",
18
- "**/static-src/dist/**",
19
- "**/dist/**",
20
- "**/build/**",
21
- "**/.next/**",
22
- "**/.cache/**",
23
- "**/coverage/**",
24
- // Minified / generated source
25
- "**/*.min.*",
26
- "**/*.gen.ts",
27
- "**/*.gen.js",
28
- "**/wire/*.gen.ts",
29
- // Test fixtures that aren't real code
30
- "**/test-stubs/**",
31
- "**/__mocks__/**",
32
- ],
33
- },
34
- // 2. Strictest official preset combination (typed linting required).
35
- js.configs.recommended,
36
- ...tseslint.configs.strictTypeChecked,
37
- ...tseslint.configs.stylisticTypeChecked,
38
-
39
- // 3. Project setup — projectService auto-discovers tsconfig per file.
40
- {
41
- languageOptions: {
42
- ecmaVersion: 2024,
43
- sourceType: "module",
44
- parserOptions: {
45
- projectService: {
46
- allowDefaultProject: ["*.test.ts", "*.property.test.ts", "fc-strict-setup.ts"],
47
- maximumDefaultProjectFileMatchCount_THIS_WILL_SLOW_DOWN_LINTING: 20,
48
- },
49
- tsconfigRootDir: import.meta.dirname,
50
- },
51
- globals: {
52
- // Browser
53
- window: "readonly",
54
- document: "readonly",
55
- navigator: "readonly",
56
- console: "readonly",
57
- fetch: "readonly",
58
- URL: "readonly",
59
- URLSearchParams: "readonly",
60
- setTimeout: "readonly",
61
- clearTimeout: "readonly",
62
- setInterval: "readonly",
63
- clearInterval: "readonly",
64
- requestAnimationFrame: "readonly",
65
- cancelAnimationFrame: "readonly",
66
- queueMicrotask: "readonly",
67
- WebSocket: "readonly",
68
- EventSource: "readonly",
69
- AbortController: "readonly",
70
- Headers: "readonly",
71
- Request: "readonly",
72
- Response: "readonly",
73
- FormData: "readonly",
74
- Blob: "readonly",
75
- File: "readonly",
76
- FileReader: "readonly",
77
- IntersectionObserver: "readonly",
78
- MutationObserver: "readonly",
79
- ResizeObserver: "readonly",
80
- CustomEvent: "readonly",
81
- Event: "readonly",
82
- EventTarget: "readonly",
83
- TextEncoder: "readonly",
84
- TextDecoder: "readonly",
85
- crypto: "readonly",
86
- btoa: "readonly",
87
- atob: "readonly",
88
- // Service Worker
89
- self: "readonly",
90
- ServiceWorkerGlobalScope: "readonly",
91
- clients: "readonly",
92
- // Test runner globals (vitest auto-injected)
93
- describe: "readonly",
94
- it: "readonly",
95
- test: "readonly",
96
- expect: "readonly",
97
- beforeAll: "readonly",
98
- beforeEach: "readonly",
99
- afterAll: "readonly",
100
- afterEach: "readonly",
101
- vi: "readonly",
102
- },
103
- },
104
- rules: {
105
- // Allow `_`-prefixed unused names.
106
- "@typescript-eslint/no-unused-vars": [
107
- "error",
108
- {
109
- argsIgnorePattern: "^_",
110
- varsIgnorePattern: "^_",
111
- caughtErrorsIgnorePattern: "^_",
112
- destructuredArrayIgnorePattern: "^_",
113
- ignoreRestSiblings: true,
114
- },
115
- ],
116
- // Enforce `import type {...}` for types.
117
- "@typescript-eslint/consistent-type-imports": [
118
- "error",
119
- { prefer: "type-imports", fixStyle: "inline-type-imports" },
120
- ],
121
- // Discourage `any`, prefer `unknown`.
122
- "@typescript-eslint/no-explicit-any": "error",
123
- // Avoid silent fall-through bugs in async event handlers.
124
- "@typescript-eslint/no-misused-promises": [
125
- "error",
126
- { checksVoidReturn: { attributes: false } },
127
- ],
128
- // Prefer literal numeric/string template parts (catches accidental coercion).
129
- "@typescript-eslint/restrict-template-expressions": [
130
- "error",
131
- { allowNumber: true, allowBoolean: true, allowNullish: false },
132
- ],
133
- // Console policy.
134
- "no-console": ["warn", { allow: ["warn", "error"] }],
135
- // Equality: enforce strict ===.
136
- eqeqeq: ["error", "always", { null: "ignore" }],
137
- curly: ["error", "all"],
138
- "no-var": "error",
139
- "prefer-const": "error",
140
- "no-throw-literal": "error",
141
- },
142
- },
143
-
144
- // 4. Tests: typed but with relaxed rules (tests deliberately break invariants).
145
- {
146
- files: [
147
- "**/*.test.ts",
148
- "**/*.fuzz.test.ts",
149
- "**/*.property.test.ts",
150
- "**/test-helpers/**",
151
- "**/__mocks__/**",
152
- ],
153
- rules: {
154
- "@typescript-eslint/no-non-null-assertion": "off",
155
- "@typescript-eslint/no-explicit-any": "off",
156
- "@typescript-eslint/no-unsafe-assignment": "off",
157
- "@typescript-eslint/no-unsafe-member-access": "off",
158
- "@typescript-eslint/no-unsafe-call": "off",
159
- "@typescript-eslint/no-unsafe-argument": "off",
160
- "@typescript-eslint/no-unsafe-return": "off",
161
- "@typescript-eslint/no-extraneous-class": "off",
162
- "@typescript-eslint/no-unnecessary-condition": "off",
163
- "@typescript-eslint/no-misused-spread": "off",
164
- "@typescript-eslint/unbound-method": "off",
165
- "@typescript-eslint/require-await": "off",
166
- "no-console": "off",
167
- },
168
- },
169
-
170
- // 5. Generated and config files + tests: drop type-checked rules.
171
- {
172
- files: [
173
- "**/*.gen.ts",
174
- "**/wire/*.ts",
175
- "vitest.config.ts",
176
- "*.config.ts",
177
- "*.config.mjs",
178
- "*.config.js",
179
- "**/*.test.ts",
180
- "**/*.fuzz.test.ts",
181
- "**/*.property.test.ts",
182
- "fc-strict-setup.ts",
183
- "test-stubs/**",
184
- ],
185
- ...tseslint.configs.disableTypeChecked,
186
- },
187
- ];