identifier-js 0.1.2 → 0.1.3

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/package.json +1 -1
  2. package/readme.md +42 -25
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "identifier-js",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "A RFC3986 / RFC3987 compliant fast parser/validator/resolver/composer for NodeJS and browser.",
5
5
  "keywords": [
6
6
  "IRI",
package/readme.md CHANGED
@@ -429,26 +429,12 @@ RFC 9562 lists database keys, filenames, system identifiers, and transaction ide
429
429
 
430
430
  </details>
431
431
 
432
- ## Tests
432
+ ## Verification
433
433
 
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
-
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
-
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.
434
+ Tests, benchmarks, and supporting ABNF documents are maintained in [SorinGFS/public-data](https://github.com/SorinGFS/public-data) rather than in the package or canonical repository. The [gh-workspace-data](https://github.com/SorinGFS/gh-workspace-data) extension materializes those concerns together with the shared `#/version-layers.js` runtime required by both dispatchers.
439
435
 
440
436
  <details>
441
- <summary><strong>Tests</strong></summary>
442
-
443
- The test suite and supporting ABNF source documents are maintained separately as public workspace data, so they are not included in the package or canonical repository. Users and contributors who need them can materialize them into a cloned repository with [gh-workspace-data](https://github.com/SorinGFS/gh-workspace-data).
444
-
445
- Install the project development dependencies:
446
-
447
- ```sh
448
- npm install
449
- ```
450
-
451
- The suite uses the `node:test` module built into Node.js and does not require a separate test-runner dependency.
437
+ <summary><strong>gh-workspace-data usage</strong></summary>
452
438
 
453
439
  Install the GitHub CLI extension once:
454
440
 
@@ -456,36 +442,67 @@ Install the GitHub CLI extension once:
456
442
  gh extension install SorinGFS/gh-workspace-data
457
443
  ```
458
444
 
459
- Then run the workspace-data commands from the repository:
445
+ Initialize and load workspace data from the cloned project repository:
460
446
 
461
447
  ```sh
462
448
  gh workspace-data init
463
449
  gh workspace-data load
464
450
  ```
465
451
 
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.
452
+ The extension materializes ordinary local files under `#/public/tests/`, `#/public/benchmarks/`, and `#/public/docs/`, while `#/version-layers.js` provides common deterministic version-layer discovery. The generated `#/` namespace remains excluded from the canonical Git repository and npm package.
453
+
454
+ Run `gh workspace-data load` again to refresh materialized data after public-data changes or an extension upgrade.
455
+
456
+ </details>
457
+
458
+ ### Tests
459
+
460
+ The active suite contains 3,064 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, including 2,646 generated combinations of target/base paths, query-presence states, and target-fragment states across equivalent URI and IRI families.
461
+
462
+ <details>
463
+ <summary><strong>Test details</strong></summary>
467
464
 
468
- Run the materialized suite:
465
+ Install package dependencies and run the materialized suite:
469
466
 
470
467
  ```sh
468
+ npm install
471
469
  npm test
472
470
  ```
473
471
 
474
- `npm test` exits unsuccessfully when any discovered test, hook, or test-module import fails.
472
+ The suite uses the `node:test` module built into Node.js and requires no separate test-runner dependency. Its deterministic dispatcher processes eligible version layers, numeric fixtures, and explicit concern entry points in defined order. The materialized `#/public/tests/README.md` documents fixture discovery, version eligibility, ordering, callback configuration, and suite registration.
473
+
474
+ `npm test` exits unsuccessfully when configuration, fixture loading, suite registration, or a test fails. Continuous integration runs the suite on Node.js 24 and 26 across Ubuntu, Windows, and macOS.
475
475
 
476
476
  </details>
477
477
 
478
- ## Benchmarks
478
+ ### Benchmarks
479
+
480
+ The materialized benchmark suite provides portable, version-aware measurements for every exported function plus isolated package loading, reporting initial-call behavior, warmed latency statistics, integer throughput, workload counts, representative inputs, and environment metadata.
479
481
 
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.
482
+ <details>
483
+ <summary><strong>Benchmark details</strong></summary>
481
484
 
482
- Run the complete workload:
485
+ Run the standard workload:
483
486
 
484
487
  ```sh
485
488
  npm run benchmark
486
489
  ```
487
490
 
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.
491
+ Run a reduced workload with machine-readable output for CI smoke checks or artifacts:
492
+
493
+ ```sh
494
+ node ./#/public/benchmarks --quick --json
495
+ ```
496
+
497
+ Direct invocation also supports an explicit iteration count; `npm run benchmark` retains the standard 100,000 iterations per sample:
498
+
499
+ ```sh
500
+ node ./#/public/benchmarks --iterations 250000
501
+ ```
502
+
503
+ The materialized `#/public/benchmarks/README.md` documents concern registration, version eligibility, workload controls, measurement semantics, output fields, and guidance for interpreting results from noisy CI runners. Benchmark values are observations rather than correctness assertions.
504
+
505
+ </details>
489
506
 
490
507
  ## Authoritative references
491
508