tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

tricky-specifiers.json (2870B)


      1 {
      2  "importMap": {
      3    "imports": {
      4      "package/withslash": "/node_modules/package-with-slash/index.mjs",
      5      "not-a-package": "/lib/not-a-package.mjs",
      6      "only-slash/": "/lib/only-slash/",
      7      ".": "/lib/dot.mjs",
      8      "..": "/lib/dotdot.mjs",
      9      "..\\": "/lib/dotdotbackslash.mjs",
     10      "%2E": "/lib/percent2e.mjs",
     11      "%2F": "/lib/percent2f.mjs",
     12      "https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/": "/a/",
     13      "https://map.example/きつね/fox/": "/b/",
     14      "%E3%81%8D%E3%81%A4%E3%81%AD/": "/c/",
     15      "きつね/fox/": "/d/"
     16    }
     17  },
     18  "importMapBaseURL": "https://example.com/app/index.html",
     19  "baseURL": "https://example.com/js/app.mjs",
     20  "name": "Tricky specifiers",
     21  "tests": {
     22    "explicitly-mapped specifiers that happen to have a slash": {
     23      "expectedResults": {
     24        "package/withslash": "https://example.com/node_modules/package-with-slash/index.mjs"
     25      }
     26    },
     27    "specifier with punctuation": {
     28      "expectedResults": {
     29        ".": "https://example.com/lib/dot.mjs",
     30        "..": "https://example.com/lib/dotdot.mjs",
     31        "..\\": "https://example.com/lib/dotdotbackslash.mjs",
     32        "%2E": "https://example.com/lib/percent2e.mjs",
     33        "%2F": "https://example.com/lib/percent2f.mjs"
     34      }
     35    },
     36    "submodule of something not declared with a trailing slash should fail": {
     37      "expectedResults": {
     38        "not-a-package/foo": null
     39      }
     40    },
     41    "module for which only a trailing-slash version is present should fail": {
     42      "expectedResults": {
     43        "only-slash": null
     44      }
     45    },
     46    "URL-like specifiers are normalized": {
     47      "expectedResults": {
     48        "https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/": "https://example.com/a/",
     49        "https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/bar": "https://example.com/a/bar",
     50        "https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/fox/": "https://example.com/b/",
     51        "https://map.example/%E3%81%8D%E3%81%A4%E3%81%AD/fox/bar": "https://example.com/b/bar",
     52        "https://map.example/きつね/": "https://example.com/a/",
     53        "https://map.example/きつね/bar": "https://example.com/a/bar",
     54        "https://map.example/きつね/fox/": "https://example.com/b/",
     55        "https://map.example/きつね/fox/bar": "https://example.com/b/bar"
     56      }
     57    },
     58    "Bare specifiers are not normalized": {
     59      "expectedResults": {
     60        "%E3%81%8D%E3%81%A4%E3%81%AD/": "https://example.com/c/",
     61        "%E3%81%8D%E3%81%A4%E3%81%AD/bar": "https://example.com/c/bar",
     62        "%E3%81%8D%E3%81%A4%E3%81%AD/fox/": "https://example.com/c/fox/",
     63        "%E3%81%8D%E3%81%A4%E3%81%AD/fox/bar": "https://example.com/c/fox/bar",
     64        "きつね/": null,
     65        "きつね/bar": null,
     66        "きつね/fox/": "https://example.com/d/",
     67        "きつね/fox/bar": "https://example.com/d/bar"
     68      }
     69    }
     70  }
     71 }