| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- import { SCHEMES } from "../uri";
 
- const NID$ = "(?:[0-9A-Za-z][0-9A-Za-z\\-]{1,31})";
 
- const PCT_ENCODED$ = "(?:\\%[0-9A-Fa-f]{2})";
 
- const TRANS$$ = "[0-9A-Za-z\\(\\)\\+\\,\\-\\.\\:\\=\\@\\;\\$\\_\\!\\*\\'\\/\\?\\#]";
 
- const NSS$ = "(?:(?:" + PCT_ENCODED$ + "|" + TRANS$$ + ")+)";
 
- const URN_SCHEME = new RegExp("^urn\\:(" + NID$ + ")$");
 
- const URN_PATH = new RegExp("^(" + NID$ + ")\\:(" + NSS$ + ")$");
 
- const URN_PARSE = /^([^\:]+)\:(.*)/;
 
- const URN_EXCLUDED = /[\x00-\x20\\\"\&\<\>\[\]\^\`\{\|\}\~\x7F-\xFF]/g;
 
- //RFC 2141
 
- const handler = {
 
-     scheme: "urn",
 
-     parse: function (components, options) {
 
-         const matches = components.path && components.path.match(URN_PARSE);
 
-         let urnComponents = components;
 
-         if (matches) {
 
-             const scheme = options.scheme || urnComponents.scheme || "urn";
 
-             const nid = matches[1].toLowerCase();
 
-             const nss = matches[2];
 
-             const urnScheme = `${scheme}:${options.nid || nid}`;
 
-             const schemeHandler = SCHEMES[urnScheme];
 
-             urnComponents.nid = nid;
 
-             urnComponents.nss = nss;
 
-             urnComponents.path = undefined;
 
-             if (schemeHandler) {
 
-                 urnComponents = schemeHandler.parse(urnComponents, options);
 
-             }
 
-         }
 
-         else {
 
-             urnComponents.error = urnComponents.error || "URN can not be parsed.";
 
-         }
 
-         return urnComponents;
 
-     },
 
-     serialize: function (urnComponents, options) {
 
-         const scheme = options.scheme || urnComponents.scheme || "urn";
 
-         const nid = urnComponents.nid;
 
-         const urnScheme = `${scheme}:${options.nid || nid}`;
 
-         const schemeHandler = SCHEMES[urnScheme];
 
-         if (schemeHandler) {
 
-             urnComponents = schemeHandler.serialize(urnComponents, options);
 
-         }
 
-         const uriComponents = urnComponents;
 
-         const nss = urnComponents.nss;
 
-         uriComponents.path = `${nid || options.nid}:${nss}`;
 
-         return uriComponents;
 
-     },
 
- };
 
- export default handler;
 
- //# sourceMappingURL=urn.js.map
 
 
  |