identifier-js 0.1.0 → 0.1.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.
@@ -45,11 +45,21 @@ jobs:
45
45
  path: workspace-data
46
46
  sparse-checkout: tests/github.com/SorinGFS/identifier-js
47
47
 
48
- # Reproduce the ordinary workspace layout consumed by the package test script.
49
- - name: Materialize public tests
48
+ # Check out the extension-owned runtime helper required by materialized dispatchers.
49
+ - name: Check out workspace runtime
50
+ uses: actions/checkout@v7
51
+ with:
52
+ repository: SorinGFS/gh-workspace-data
53
+ ref: v0.4.0
54
+ path: workspace-runtime
55
+ sparse-checkout: src/version-layers.js
56
+ sparse-checkout-cone-mode: false
57
+
58
+ # Reproduce the ordinary workspace layout generated by gh-workspace-data.
59
+ - name: Materialize public tests and runtime
50
60
  run: >-
51
- node -e "require('node:fs').cpSync('workspace-data/tests/github.com/SorinGFS/identifier-js', '#/public/tests', { recursive: true })"
61
+ node -e "const fs = require('node:fs'); fs.cpSync('workspace-data/tests/github.com/SorinGFS/identifier-js', '#/public/tests', { recursive: true }); fs.copyFileSync('workspace-runtime/src/version-layers.js', '#/version-layers.js')"
52
62
 
53
- # Execute the materialized Vitest suite and propagate any failed result.
63
+ # Execute the materialized Node.js suite and propagate any failed result.
54
64
  - name: Run tests
55
65
  run: npm test
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "identifier-js",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "A RFC3986 / RFC3987 compliant fast parser/validator/resolver/composer for NodeJS and browser.",
5
5
  "keywords": [
6
6
  "IRI",
@@ -29,7 +29,8 @@
29
29
  "main": "index.js",
30
30
  "scripts": {
31
31
  "update-deps": "npx npm-check-updates -u && npm install",
32
- "test": "node \"#/public/tests/vitest-run.js\""
32
+ "test": "node ./#/public/tests",
33
+ "benchmark": "node ./#/public/benchmarks"
33
34
  },
34
35
  "dependencies": {
35
36
  "url-templates": "^1.0.7"
@@ -37,8 +38,5 @@
37
38
  "engines": {
38
39
  "node": ">=24.0.0"
39
40
  },
40
- "engineStrict": true,
41
- "devDependencies": {
42
- "vitest": "^4.1.11"
43
- }
41
+ "engineStrict": true
44
42
  }
package/readme.md CHANGED
@@ -431,11 +431,11 @@ RFC 9562 lists database keys, filenames, system identifiers, and transaction ide
431
431
 
432
432
  ## Tests
433
433
 
434
- The current suite contains 418 active tests covering URI/IRI validation and parsing, scheme-specific hosts, IPv4, IPv6, ports, UUIDs, RFC 3986 resolution examples, empty components, absolute conversion, and relative-reference round trips.
434
+ The current suite contains 3,064 active tests covering URI/IRI validation and parsing, scheme-specific hosts, IPv4, IPv6, ports, UUIDs, RFC 3986 resolution examples, empty components, absolute conversion, and relative-reference round trips.
435
435
 
436
- The reference-conversion changes were additionally checked against 2,646 combinations of paths, absent/empty/non-empty queries, and absent/empty/non-empty fragments.
436
+ The active reference-conversion suite includes 2,646 generated combinations of target/base paths, absent/empty/non-empty target and base queries, and absent/empty/non-empty target fragments across equivalent URI and IRI families.
437
437
 
438
- Continuous integration materializes the public test suite and runs it on Node.js 24 and 26 across Ubuntu, Windows, and macOS.
438
+ Continuous integration materializes the public test suite and runs it on Node.js 24 and 26 across Ubuntu, Windows, and macOS. The deterministic, single-command layout is designed to remain portable across projects, local environments, and CI runner matrices.
439
439
 
440
440
  <details>
441
441
  <summary><strong>Tests</strong></summary>
@@ -448,7 +448,7 @@ Install the project development dependencies:
448
448
  npm install
449
449
  ```
450
450
 
451
- Vitest is a development dependency and is not installed for consumers of the published library.
451
+ The suite uses the `node:test` module built into Node.js and does not require a separate test-runner dependency.
452
452
 
453
453
  Install the GitHub CLI extension once:
454
454
 
@@ -463,7 +463,7 @@ gh workspace-data init
463
463
  gh workspace-data load
464
464
  ```
465
465
 
466
- The tests are materialized as ordinary local files under `#/public/tests/`, and the supporting documents are available under `#/public/docs/`. Both remain excluded from the canonical Git repository.
466
+ The tests are materialized as ordinary local files under `#/public/tests/`, and the supporting documents are available under `#/public/docs/`. Both remain excluded from the canonical Git repository. The materialized `#/public/tests/README.md` documents fixture discovery, version layers, ordering, callback configuration, and suite entry points.
467
467
 
468
468
  Run the materialized suite:
469
469
 
@@ -475,6 +475,18 @@ npm test
475
475
 
476
476
  </details>
477
477
 
478
+ ## Benchmarks
479
+
480
+ The materialized public workspace data also provides portable, version-aware benchmarks under `#/public/benchmarks/`. Each exported function has an independent concern entry point, while the shared harness measures fresh-process first calls and warmed steady-state behavior.
481
+
482
+ Run the complete workload:
483
+
484
+ ```sh
485
+ npm run benchmark
486
+ ```
487
+
488
+ Use `node ./#/public/benchmarks --quick --json` for a reduced CI smoke workload and machine-readable artifact. The materialized `#/public/benchmarks/README.md` documents concern registration, version layers, workload controls, measurement semantics, and guidance for interpreting noisy CI results.
489
+
478
490
  ## Authoritative references
479
491
 
480
492
  - [RFC 3986 — Uniform Resource Identifier: Generic Syntax](https://www.rfc-editor.org/rfc/rfc3986)