URL normalization
javascript.url-normalization
Ready · No signal has been run.
Results
Research focus
Selected evidence from this run. Cross-run stability and comparison verdicts require a session comparison.
Full evidence
| Property | Value |
|---|---|
| No results yet. No signal has been run. | |
JSON
Selected signal results for external comparison. Field statuses, controls and exact values are retained.
No run export is available.
Source
Source is not connected yet.
// Test source pending.Reference
Reference is not connected yet.
Definition
URL and anchor parsing preserve Unicode, IDN/path normalization and expected invalid-input exception outcomes. File/drive/UNC inputs retain construction, canParse and absolute anchor outcomes with explicit bases.
Find it in the repository
- Collector source
core/signals/javascript/url-normalization.ts- Export
measurementModule· Signal object- Field definitions
core/definitions/javascript/url-normalization.ts- Capture membership
- Product capture ·
common/capture/product.ts - Page registration
app/signals/registry.ts- Field projection
core/results/measurement.ts
Execution contract
- Signal
javascript.url-normalization- Collector
javascript.url-normalization- API / surface
- core/signals/javascript/url-normalization.ts
- Timeout
- 50 ms
- Companion signals
- None
- Fixture inputs
- Declared requests (listed below)
Exact request inputs
[
{
"key": "javascript.url-normalization.url-path",
"inputs": {
"url-0": {
"url": "https://example.com/a/../b?x=é#片",
"parser": "URL",
"invalidControl": false
},
"url-9": {
"url": "https://[::1]:443/a",
"parser": "URL",
"invalidControl": false
}
},
"controls": {}
},
{
"key": "javascript.url-normalization.anchor-path",
"inputs": {
"anchor-0": {
"url": "https://example.com/a/../b?x=é#片",
"parser": "anchor",
"invalidControl": false
},
"anchor-9": {
"url": "https://[::1]:443/a",
"parser": "anchor",
"invalidControl": false
}
},
"controls": {}
},
{
"key": "javascript.url-normalization.url-idn",
"inputs": {
"url-1": {
"url": "https://bücher.example/",
"parser": "URL",
"invalidControl": false
},
"url-2": {
"url": "https://faß.example/",
"parser": "URL",
"invalidControl": false
},
"url-3": {
"url": "https://例え.テスト/",
"parser": "URL",
"invalidControl": false
},
"url-4": {
"url": "https://مثال.إختبار/",
"parser": "URL",
"invalidControl": false
},
"url-5": {
"url": "https://example.com/",
"parser": "URL",
"invalidControl": false
},
"url-6": {
"url": "https://é.example/",
"parser": "URL",
"invalidControl": false
},
"url-7": {
"url": "https://é.example/",
"parser": "URL",
"invalidControl": false
},
"url-8": {
"url": "https://a。example/",
"parser": "URL",
"invalidControl": false
}
},
"controls": {}
},
{
"key": "javascript.url-normalization.anchor-idn",
"inputs": {
"anchor-1": {
"url": "https://bücher.example/",
"parser": "anchor",
"invalidControl": false
},
"anchor-2": {
"url": "https://faß.example/",
"parser": "anchor",
"invalidControl": false
},
"anchor-3": {
"url": "https://例え.テスト/",
"parser": "anchor",
"invalidControl": false
},
"anchor-4": {
"url": "https://مثال.إختبار/",
"parser": "anchor",
"invalidControl": false
},
"anchor-5": {
"url": "https://example.com/",
"parser": "anchor",
"invalidControl": false
},
"anchor-6": {
"url": "https://é.example/",
"parser": "anchor",
"invalidControl": false
},
"anchor-7": {
"url": "https://é.example/",
"parser": "anchor",
"invalidControl": false
},
"anchor-8": {
"url": "https://a。example/",
"parser": "anchor",
"invalidControl": false
}
},
"controls": {}
},
{
"key": "javascript.url-normalization.url-invalid",
"inputs": {
"url-10": {
"url": "https://%/",
"parser": "URL",
"invalidControl": true
},
"url-11": {
"url": "https://[invalid]/",
"parser": "URL",
"invalidControl": true
}
},
"controls": {}
},
{
"key": "javascript.url-normalization.anchor-invalid",
"inputs": {
"anchor-10": {
"url": "https://%/",
"parser": "anchor",
"invalidControl": true
},
"anchor-11": {
"url": "https://[invalid]/",
"parser": "anchor",
"invalidControl": true
}
},
"controls": {}
},
{
"key": "javascript.url-normalization.file-urls",
"inputs": {
"file-drive-bar": {
"input": "c|/foo/bar",
"base": null
},
"file-unc": {
"input": "\\\\host\\share\\f.txt",
"base": null
},
"file-drive-scheme": {
"input": "c:/foo/bar",
"base": null
},
"file-file-drive-bar": {
"input": "file:///c|/foo",
"base": null
},
"file-file-drive-colon": {
"input": "file:///c:/foo",
"base": null
},
"file-file-four-slash": {
"input": "file:////host/share/x",
"base": null
},
"file-drive-backslash": {
"input": "C:\\foo",
"base": "file:///base/dir/"
},
"file-file-capital-drive": {
"input": "file:///C:/foo",
"base": null
},
"file-file-host": {
"input": "file://host/share/x",
"base": null
},
"file-file-relative-control": {
"input": "../control",
"base": "file:///base/dir/"
},
"file-https-control": {
"input": "https://example.com/control",
"base": null
},
"file-invalid-control": {
"input": "https://[invalid]/",
"base": null
}
},
"controls": {
"file-drive-bar": [
"URL.canParse agrees with construction using identical input/base"
],
"file-unc": [
"URL.canParse agrees with construction using identical input/base"
],
"file-drive-scheme": [
"URL.canParse agrees with construction using identical input/base"
],
"file-file-drive-bar": [
"URL.canParse agrees with construction using identical input/base"
],
"file-file-drive-colon": [
"URL.canParse agrees with construction using identical input/base"
],
"file-file-four-slash": [
"URL.canParse agrees with construction using identical input/base"
],
"file-drive-backslash": [
"URL.canParse agrees with construction using identical input/base"
],
"file-file-capital-drive": [
"URL.canParse agrees with construction using identical input/base"
],
"file-file-host": [
"URL.canParse agrees with construction using identical input/base"
],
"file-file-relative-control": [
"URL.canParse agrees with construction using identical input/base"
],
"file-https-control": [
"URL.canParse agrees with construction using identical input/base"
],
"file-invalid-control": [
"URL.canParse agrees with construction using identical input/base"
]
}
}
]One collector runs per invocation. Results and JSON select this signal’s fields; any companions execute in the same collector.
Generated source manifest lists runtime files, fixture URLs and content digests for this build. The Source tab provides a copyable console sample.
Run and edit locally
From the repository root, start the Astro app, then open /signals/javascript.url-normalization. Edit the collector source and reload the page to load its new build.
pnpm run dev:webIn a browser module served by this repository’s Vite graph:
import { createCollector } from "/core/collect"
import { measurementModule } from "/core/signals/javascript/url-normalization"
const signal = measurementModule
const collector = createCollector()
const suite = { signals: [signal] }
const result = await collector.collect(suite)Reuse the collector owner for repeated calls so collection can enforce cleanup. This returns the collector’s raw result; app/signals/projection.ts selects the retained fields shown on this page.
rg -n 'measurementModule' core app tests
pnpm run check
pnpm run test tests/unit/app/focused-projection.test.ts| Property | Value |
|---|