├── Maze ├── server │ ├── Procfile │ ├── package.json │ ├── mazes.js │ ├── data │ │ ├── 01-a-beginner-maze.js │ │ └── 02-for-experts-only.js │ ├── 100-rooms.txt │ └── app.js ├── the-bot │ ├── node_modules │ │ └── xmldom │ │ │ ├── test │ │ │ ├── 3rd-cases │ │ │ │ ├── mock.js │ │ │ │ ├── index.js │ │ │ │ └── o3xml.js │ │ │ ├── dom │ │ │ │ ├── index.js │ │ │ │ ├── level3.js │ │ │ │ ├── serializer.js │ │ │ │ ├── clone.js │ │ │ │ ├── attr.js │ │ │ │ └── element.js │ │ │ ├── simple.js │ │ │ ├── test.js │ │ │ ├── parse-element.js │ │ │ ├── index.js │ │ │ ├── namespace.js │ │ │ ├── locator.js │ │ │ ├── error.js │ │ │ ├── html │ │ │ │ └── normalize.js │ │ │ ├── big-file-performance.js │ │ │ └── node.js │ │ │ ├── __package__.js │ │ │ ├── .project │ │ │ ├── changelog │ │ │ └── readme.md │ ├── package.json │ └── the-bot.js ├── the-boaster │ ├── node_modules │ │ └── xmldom │ │ │ ├── test │ │ │ ├── 3rd-cases │ │ │ │ ├── index.js │ │ │ │ ├── mock.js │ │ │ │ └── o3xml.js │ │ │ ├── dom │ │ │ │ ├── index.js │ │ │ │ ├── level3.js │ │ │ │ ├── serializer.js │ │ │ │ ├── clone.js │ │ │ │ ├── attr.js │ │ │ │ └── element.js │ │ │ ├── simple.js │ │ │ ├── test.js │ │ │ ├── parse-element.js │ │ │ ├── index.js │ │ │ ├── namespace.js │ │ │ ├── locator.js │ │ │ ├── error.js │ │ │ ├── html │ │ │ │ └── normalize.js │ │ │ ├── big-file-performance.js │ │ │ └── node.js │ │ │ ├── __package__.js │ │ │ ├── .project │ │ │ ├── changelog │ │ │ ├── readme.md │ │ │ └── package.json │ ├── package.json │ └── the-boaster.js ├── the-mapmaker │ ├── node_modules │ │ └── xmldom │ │ │ ├── test │ │ │ ├── 3rd-cases │ │ │ │ ├── mock.js │ │ │ │ ├── index.js │ │ │ │ └── o3xml.js │ │ │ ├── dom │ │ │ │ ├── index.js │ │ │ │ ├── level3.js │ │ │ │ ├── serializer.js │ │ │ │ ├── clone.js │ │ │ │ ├── attr.js │ │ │ │ └── element.js │ │ │ ├── simple.js │ │ │ ├── test.js │ │ │ ├── parse-element.js │ │ │ ├── index.js │ │ │ ├── namespace.js │ │ │ ├── locator.js │ │ │ ├── error.js │ │ │ ├── html │ │ │ │ └── normalize.js │ │ │ ├── big-file-performance.js │ │ │ └── node.js │ │ │ ├── __package__.js │ │ │ ├── .project │ │ │ ├── changelog │ │ │ └── readme.md │ └── package.json └── the-game │ ├── package.json │ ├── index.css │ ├── app.js │ ├── node_modules │ └── mime │ │ ├── LICENSE │ │ ├── test.js │ │ ├── types │ │ └── node.types │ │ ├── README.md │ │ ├── package.json │ │ └── mime.js │ ├── mozxpath.js │ └── index.html ├── YouTypeIt ├── server │ ├── Procfile │ ├── data │ │ └── 613856331910938 │ ├── package.json │ ├── templates │ │ ├── collection.js │ │ ├── item.html │ │ ├── about.html │ │ ├── home.html │ │ ├── script.js │ │ └── list.html │ ├── templates.js │ └── messages.js └── test │ ├── put.js │ ├── post.js │ ├── README.md │ ├── item-response2.js │ └── item-response.js ├── .gitignore └── README.md /Maze/server/Procfile: -------------------------------------------------------------------------------- 1 | web: node app.js 2 | -------------------------------------------------------------------------------- /YouTypeIt/server/Procfile: -------------------------------------------------------------------------------- 1 | web: node app.js 2 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/3rd-cases/mock.js: -------------------------------------------------------------------------------- 1 | exports.test = 1; -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/3rd-cases/index.js: -------------------------------------------------------------------------------- 1 | require('./o3xml') -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/3rd-cases/mock.js: -------------------------------------------------------------------------------- 1 | exports.test = 1; -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/3rd-cases/index.js: -------------------------------------------------------------------------------- 1 | require('./o3xml') -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/3rd-cases/mock.js: -------------------------------------------------------------------------------- 1 | exports.test = 1; -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/3rd-cases/index.js: -------------------------------------------------------------------------------- 1 | require('./o3xml') -------------------------------------------------------------------------------- /YouTypeIt/server/data/613856331910938: -------------------------------------------------------------------------------- 1 | {"message":"Squid!","id":"613856331910938","date":"2013-03-28T21:51:08.406Z"} -------------------------------------------------------------------------------- /YouTypeIt/test/put.js: -------------------------------------------------------------------------------- 1 | { 2 | "template" : { 3 | "data" : [ 4 | {"name" : "text", "value" : "tasting"} 5 | ] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | npm-debug.log 15 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/dom/index.js: -------------------------------------------------------------------------------- 1 | require('./element'); 2 | require('./level3'); 3 | require('./clone'); 4 | require('./attr'); 5 | require('./serializer'); 6 | -------------------------------------------------------------------------------- /Maze/server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "maze-xml-server", 3 | "version": "0.0.1", 4 | "engines": { 5 | "node": "0.8.x", 6 | "npm": "1.1.x" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/dom/index.js: -------------------------------------------------------------------------------- 1 | require('./element'); 2 | require('./level3'); 3 | require('./clone'); 4 | require('./attr'); 5 | require('./serializer'); 6 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/dom/index.js: -------------------------------------------------------------------------------- 1 | require('./element'); 2 | require('./level3'); 3 | require('./clone'); 4 | require('./attr'); 5 | require('./serializer'); 6 | -------------------------------------------------------------------------------- /YouTypeIt/server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "ytiwpi-html", 3 | "version" : "1.0.0", 4 | "engines" : { 5 | "node" : "0.8.x", 6 | "npm" : "1.1.x" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /YouTypeIt/test/post.js: -------------------------------------------------------------------------------- 1 | { 2 | "template" : { 3 | "data" : [ 4 | {"name" : "text", "value" : "testing"}, 5 | {"name" : "junk", "value" : ""} 6 | ] 7 | } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/__package__.js: -------------------------------------------------------------------------------- 1 | this.addScript('dom.js',['DOMImplementation','XMLSerializer']); 2 | this.addScript('dom-parser.js',['DOMHandler','DOMParser'], 3 | ['DOMImplementation','XMLReader']); 4 | this.addScript('sax.js','XMLReader'); -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/__package__.js: -------------------------------------------------------------------------------- 1 | this.addScript('dom.js',['DOMImplementation','XMLSerializer']); 2 | this.addScript('dom-parser.js',['DOMHandler','DOMParser'], 3 | ['DOMImplementation','XMLReader']); 4 | this.addScript('sax.js','XMLReader'); -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/__package__.js: -------------------------------------------------------------------------------- 1 | this.addScript('dom.js',['DOMImplementation','XMLSerializer']); 2 | this.addScript('dom-parser.js',['DOMHandler','DOMParser'], 3 | ['DOMImplementation','XMLReader']); 4 | this.addScript('sax.js','XMLReader'); -------------------------------------------------------------------------------- /YouTypeIt/test/README.md: -------------------------------------------------------------------------------- 1 | ## Testing the API 2 | 3 | Assuming the running server can be found @ http://localhost:1337/api/, you can 4 | use the following cURL command from this folder: 5 | 6 | ``curl --verbose -X POST -d @post.js http://localhost:1337/api/`` 7 | 8 | -------------------------------------------------------------------------------- /Maze/the-bot/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "maze-xml-client-the-bot", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "xmldom": "0.1.x" 6 | }, 7 | "engines": { 8 | "node": "0.8.x", 9 | "npm": "1.1.x" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Maze/the-game/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "maze-xml-client-the-game", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "mime": "1.2.x" 6 | }, 7 | "engines": { 8 | "node": "0.8.x", 9 | "npm": "1.1.x" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Maze/the-boaster/package.json: -------------------------------------------------------------------------------- 1 | i{ 2 | "name": "maze-xml-client-the-boaster", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "xmldom": "0.1.x" 6 | }, 7 | "engines": { 8 | "node": "0.8.x", 9 | "npm": "1.1.x" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "maze-xml-client-the-mapmaker", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "xmldom": "0.1.x" 6 | }, 7 | "engines": { 8 | "node": "0.8.x", 9 | "npm": "1.1.x" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/dom/level3.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | // Create a Test Suite 5 | wows.describe('XML Namespace Parse').addBatch({ 6 | "test":function(){} 7 | //see namespace.js 8 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/dom/level3.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | // Create a Test Suite 5 | wows.describe('XML Namespace Parse').addBatch({ 6 | "test":function(){} 7 | //see namespace.js 8 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/dom/level3.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | // Create a Test Suite 5 | wows.describe('XML Namespace Parse').addBatch({ 6 | "test":function(){} 7 | //see namespace.js 8 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | xmldom 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | xmldom 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | xmldom 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/changelog: -------------------------------------------------------------------------------- 1 | 0.1.8 2 | * Add: some test case from node-o3-xml(excludes xpath support) 3 | * Fix: remove existed attribute before setting (bug introduced in v0.1.5) 4 | * Fix: index direct access for childNodes and any NodeList collection(not w3c standard) 5 | * Fix: remove last child bug -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/changelog: -------------------------------------------------------------------------------- 1 | 0.1.8 2 | * Add: some test case from node-o3-xml(excludes xpath support) 3 | * Fix: remove existed attribute before setting (bug introduced in v0.1.5) 4 | * Fix: index direct access for childNodes and any NodeList collection(not w3c standard) 5 | * Fix: remove last child bug -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/changelog: -------------------------------------------------------------------------------- 1 | 0.1.8 2 | * Add: some test case from node-o3-xml(excludes xpath support) 3 | * Fix: remove existed attribute before setting (bug introduced in v0.1.5) 4 | * Fix: index direct access for childNodes and any NodeList collection(not w3c standard) 5 | * Fix: remove last child bug -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/simple.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | 5 | wows.describe('errorHandle').addBatch({ 6 | 'simple': function() { 7 | var parser = new DOMParser(); 8 | var doc = parser.parseFromString('', 'text/html'); 9 | console.log(doc+''); 10 | } 11 | }).run(); -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/simple.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | 5 | wows.describe('errorHandle').addBatch({ 6 | 'simple': function() { 7 | var parser = new DOMParser(); 8 | var doc = parser.parseFromString('', 'text/html'); 9 | console.log(doc+''); 10 | } 11 | }).run(); -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/simple.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | 5 | wows.describe('errorHandle').addBatch({ 6 | 'simple': function() { 7 | var parser = new DOMParser(); 8 | var doc = parser.parseFromString('', 'text/html'); 9 | console.log(doc+''); 10 | } 11 | }).run(); -------------------------------------------------------------------------------- /YouTypeIt/server/templates/collection.js: -------------------------------------------------------------------------------- 1 | { 2 | "collection" : 3 | { 4 | "version" : "1.0", 5 | "href" : "{@host}/api/", 6 | 7 | "items" : 8 | {@list} 9 | , 10 | 11 | "template" : { 12 | "data" : [ 13 | {"prompt" : "Text of message", "name" : "text", "value" : ""} 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /YouTypeIt/server/templates.js: -------------------------------------------------------------------------------- 1 | /* 2 | * template file handler 3 | * 2012-11 (@mamund) 4 | * RESTful Web APIs (Richardson/Amundsen) 5 | */ 6 | 7 | var fs = require('fs'); 8 | var folder = process.cwd()+'/templates/'; 9 | var encoding = 'utf8'; 10 | 11 | module.exports = main; 12 | 13 | function main(name) { 14 | 15 | try { 16 | return fs.readFileSync(folder+name, encoding); 17 | } 18 | catch(ex) { 19 | return undefined; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Maze/the-game/index.css: -------------------------------------------------------------------------------- 1 | /* index.css 2 | * RWA (2013) 3 | * 2012-10 (mca) 4 | */ 5 | 6 | h1,h2,h3,h4,h5 7 | { 8 | margin-bottom:0; 9 | } 10 | div#play-space { 11 | width:600px; 12 | } 13 | div#history { 14 | height:200px; 15 | overflow:auto; 16 | border: medium inset black; 17 | background-color: black; 18 | color:green; 19 | font-family: monospace; 20 | font-weight:bold; 21 | } 22 | div#display { 23 | padding: .3em 0; 24 | } 25 | span.options, 26 | span.room{ 27 | font-weight:bold; 28 | font-family: monospace; 29 | } 30 | 31 | -------------------------------------------------------------------------------- /YouTypeIt/test/item-response2.js: -------------------------------------------------------------------------------- 1 | { 2 | "collection" : 3 | { 4 | "version" : "1.0", 5 | "href" : "http://localhost:1337/api/", 6 | 7 | "items" : 8 | [{ 9 | "href": "http://localhost:1337/api/2csl73jr6j5", 10 | "data": [ 11 | { 12 | "name": "text", 13 | "value": "Bird" 14 | }, 15 | { 16 | "name": "date_posted", 17 | "value": "2013-01-24T18:40:42.190Z" 18 | } 19 | ] 20 | }], 21 | 22 | "template" : { 23 | "data" : [ 24 | {"prompt" : "Text of message", "name" : "text", "value" : ""} 25 | ] 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /YouTypeIt/test/item-response.js: -------------------------------------------------------------------------------- 1 | { 2 | "collection" : 3 | { 4 | "version" : "1.0", 5 | "href" : "http://localhost:1337/api/", 6 | 7 | "items" : 8 | [{ 9 | "href": "http://localhost:1337/api/5266722824890167", 10 | "data": [ 11 | { 12 | "name": "text", 13 | "value": "tasting" 14 | }, 15 | { 16 | "name": "date_posted", 17 | "value": "2013-01-09T15:58:22.674Z" 18 | } 19 | ] 20 | }], 21 | 22 | "template" : { 23 | "data" : [ 24 | { 25 | "prompt" : "Text of message", 26 | "name" : "text", 27 | "value" : "" 28 | } 29 | ] 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/3rd-cases/o3xml.js: -------------------------------------------------------------------------------- 1 | var DOMParser = require('xmldom').DOMParser; 2 | require('./mock') 3 | //Compatibility 4 | { 5 | var doc = new DOMParser().parseFromString("",'text/xml'); 6 | var np = doc.__proto__.__proto__.__proto__; 7 | for(var n in np){ 8 | if(/_NODE$/.test(n)){ 9 | // console.log(n.replace(/_NODE$/,''),np[n]) 10 | np[n.replace(/_NODE$/,'')] = np[n]; 11 | } 12 | } 13 | 14 | } 15 | 16 | require.cache[require.resolve('node-o3-xml')] 17 | = require.cache[require.resolve('./mock')]; 18 | require('node-o3-xml').parseFromString = function(xml){ 19 | return new DOMParser().parseFromString(xml,'text/xml'); 20 | } 21 | require('node-o3-xml/test/test') 22 | -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/3rd-cases/o3xml.js: -------------------------------------------------------------------------------- 1 | var DOMParser = require('xmldom').DOMParser; 2 | require('./mock') 3 | //Compatibility 4 | { 5 | var doc = new DOMParser().parseFromString("",'text/xml'); 6 | var np = doc.__proto__.__proto__.__proto__; 7 | for(var n in np){ 8 | if(/_NODE$/.test(n)){ 9 | // console.log(n.replace(/_NODE$/,''),np[n]) 10 | np[n.replace(/_NODE$/,'')] = np[n]; 11 | } 12 | } 13 | 14 | } 15 | 16 | require.cache[require.resolve('node-o3-xml')] 17 | = require.cache[require.resolve('./mock')]; 18 | require('node-o3-xml').parseFromString = function(xml){ 19 | return new DOMParser().parseFromString(xml,'text/xml'); 20 | } 21 | require('node-o3-xml/test/test') 22 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/3rd-cases/o3xml.js: -------------------------------------------------------------------------------- 1 | var DOMParser = require('xmldom').DOMParser; 2 | require('./mock') 3 | //Compatibility 4 | { 5 | var doc = new DOMParser().parseFromString("",'text/xml'); 6 | var np = doc.__proto__.__proto__.__proto__; 7 | for(var n in np){ 8 | if(/_NODE$/.test(n)){ 9 | // console.log(n.replace(/_NODE$/,''),np[n]) 10 | np[n.replace(/_NODE$/,'')] = np[n]; 11 | } 12 | } 13 | 14 | } 15 | 16 | require.cache[require.resolve('node-o3-xml')] 17 | = require.cache[require.resolve('./mock')]; 18 | require('node-o3-xml').parseFromString = function(xml){ 19 | return new DOMParser().parseFromString(xml,'text/xml'); 20 | } 21 | require('node-o3-xml/test/test') 22 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/dom/serializer.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | wows.describe('XML Serializer').addBatch({ 5 | 'text node containing "]]>"': function() { 6 | var doc = new DOMParser().parseFromString('', 'text/xml'); 7 | doc.documentElement.appendChild(doc.createTextNode('hello ]]> there')); 8 | console.assert(doc.documentElement.firstChild.toString() == 'hello ]]> there',doc.documentElement.firstChild.toString()); 9 | }, 10 | '', 'text/html'); 12 | console.assert(doc.documentElement.firstChild.toString() == ''); 13 | }, 14 | }).run(); 15 | -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/dom/serializer.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | wows.describe('XML Serializer').addBatch({ 5 | 'text node containing "]]>"': function() { 6 | var doc = new DOMParser().parseFromString('', 'text/xml'); 7 | doc.documentElement.appendChild(doc.createTextNode('hello ]]> there')); 8 | console.assert(doc.documentElement.firstChild.toString() == 'hello ]]> there',doc.documentElement.firstChild.toString()); 9 | }, 10 | '', 'text/html'); 12 | console.assert(doc.documentElement.firstChild.toString() == ''); 13 | }, 14 | }).run(); 15 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/dom/serializer.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | wows.describe('XML Serializer').addBatch({ 5 | 'text node containing "]]>"': function() { 6 | var doc = new DOMParser().parseFromString('', 'text/xml'); 7 | doc.documentElement.appendChild(doc.createTextNode('hello ]]> there')); 8 | console.assert(doc.documentElement.firstChild.toString() == 'hello ]]> there',doc.documentElement.firstChild.toString()); 9 | }, 10 | '', 'text/html'); 12 | console.assert(doc.documentElement.firstChild.toString() == ''); 13 | }, 14 | }).run(); 15 | -------------------------------------------------------------------------------- /YouTypeIt/server/templates/item.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Message 5 | 6 | 7 | 8 | 9 |
10 |

Message

11 | 12 | {@msg} 13 | 14 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /YouTypeIt/server/templates/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | About 5 | 6 | 7 | 8 | 9 |
10 |

About

11 |

Hey, you type it and we post it, right?

12 | 13 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /YouTypeIt/server/templates/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Home 5 | 6 | 7 | 8 | 9 |
10 |

You type it, we post it!

11 |

Exciting! Amazing!

12 | 13 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Maze/the-game/app.js: -------------------------------------------------------------------------------- 1 | /* RWA 2 | * app.js - static file server 3 | * 2012-10- (mca) 4 | */ 5 | 6 | var fs = require('fs'); 7 | var url = require('url'); 8 | var http = require('http'); 9 | var path = require('path'); 10 | var mime = require('mime'); 11 | 12 | var basePath = './'; 13 | var port = (process.env.PORT||3000); 14 | 15 | function handler(req, res) { 16 | var rs, fi; 17 | 18 | // reject anything but GET 19 | if (req.method !== 'GET') { 20 | res.writeHead(405); 21 | res.end(); 22 | return; 23 | } 24 | 25 | // determine requested file 26 | if(req.url==='/') { 27 | fi = basePath + 'index.html'; 28 | } 29 | else { 30 | fi = path.join(basePath, url.parse(req.url).pathname); 31 | } 32 | 33 | // stream to caller 34 | rs = fs.createReadStream(fi); 35 | rs.on('error', function () { 36 | res.writeHead(404); 37 | res.end(); 38 | }); 39 | rs.once('fd', function () { 40 | res.writeHead(200, {'Content-Type' : mime.lookup(fi)}); 41 | }); 42 | rs.pipe(res); 43 | } 44 | 45 | // listen for requests 46 | http.createServer(handler).listen(port); 47 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/dom/clone.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var XMLSerializer = require('xmldom').XMLSerializer; 3 | var DOMParser = require('xmldom').DOMParser; 4 | 5 | // Create a Test Suite 6 | wows.describe('XML Namespace Parse').addBatch({ 7 | 'clone': function () { 8 | var doc1 = new DOMParser().parseFromString("text1text2",'text/xml') 9 | var n =doc1.cloneNode(true) 10 | console.assert(n == new XMLSerializer().serializeToString(doc1)) 11 | }, 12 | 'import': function () { 13 | var doc1 = new DOMParser().parseFromString("") 14 | var doc2 = new DOMParser().parseFromString("text1text2",'text/xml') 15 | 16 | var doc3 = new DOMParser().parseFromString("text1text2") 17 | var n =doc1.importNode(doc2.documentElement, true) 18 | doc1.documentElement.appendChild(n) 19 | console.assert(doc1 == doc3+'') 20 | console.assert(doc2 != doc3+'') 21 | } 22 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/dom/clone.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var XMLSerializer = require('xmldom').XMLSerializer; 3 | var DOMParser = require('xmldom').DOMParser; 4 | 5 | // Create a Test Suite 6 | wows.describe('XML Namespace Parse').addBatch({ 7 | 'clone': function () { 8 | var doc1 = new DOMParser().parseFromString("text1text2",'text/xml') 9 | var n =doc1.cloneNode(true) 10 | console.assert(n == new XMLSerializer().serializeToString(doc1)) 11 | }, 12 | 'import': function () { 13 | var doc1 = new DOMParser().parseFromString("") 14 | var doc2 = new DOMParser().parseFromString("text1text2",'text/xml') 15 | 16 | var doc3 = new DOMParser().parseFromString("text1text2") 17 | var n =doc1.importNode(doc2.documentElement, true) 18 | doc1.documentElement.appendChild(n) 19 | console.assert(doc1 == doc3+'') 20 | console.assert(doc2 != doc3+'') 21 | } 22 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/test.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var DOMParser = require('xmldom').DOMParser; 4 | var XMLSerializer = require('xmldom').XMLSerializer; 5 | 6 | 7 | var doc = new DOMParser().parseFromString('' + 8 | '' + 9 | '','text/xml'); 10 | 11 | var doc1 = doc; 12 | var str1=new XMLSerializer().serializeToString(doc); 13 | var doc2 = doc1.cloneNode(true); 14 | var doc3 = doc1.cloneNode(true); 15 | var doc4 = doc1.cloneNode(true); 16 | 17 | doc3.documentElement.appendChild(doc3.documentElement.lastChild); 18 | //doc4.documentElement.appendChild(doc4.documentElement.firstChild); 19 | 20 | var str2=new XMLSerializer().serializeToString(doc2); 21 | var str3=new XMLSerializer().serializeToString(doc3); 22 | var str4=new XMLSerializer().serializeToString(doc4); 23 | console.assert(str1 == str3,str3,str1); 24 | //console.assert(str3 != str4 && str3.length == str4.length,str3); 25 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/dom/clone.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var XMLSerializer = require('xmldom').XMLSerializer; 3 | var DOMParser = require('xmldom').DOMParser; 4 | 5 | // Create a Test Suite 6 | wows.describe('XML Namespace Parse').addBatch({ 7 | 'clone': function () { 8 | var doc1 = new DOMParser().parseFromString("text1text2",'text/xml') 9 | var n =doc1.cloneNode(true) 10 | console.assert(n == new XMLSerializer().serializeToString(doc1)) 11 | }, 12 | 'import': function () { 13 | var doc1 = new DOMParser().parseFromString("") 14 | var doc2 = new DOMParser().parseFromString("text1text2",'text/xml') 15 | 16 | var doc3 = new DOMParser().parseFromString("text1text2") 17 | var n =doc1.importNode(doc2.documentElement, true) 18 | doc1.documentElement.appendChild(n) 19 | console.assert(doc1 == doc3+'') 20 | console.assert(doc2 != doc3+'') 21 | } 22 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/test.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var DOMParser = require('xmldom').DOMParser; 4 | var XMLSerializer = require('xmldom').XMLSerializer; 5 | 6 | 7 | var doc = new DOMParser().parseFromString('' + 8 | '' + 9 | '','text/xml'); 10 | 11 | var doc1 = doc; 12 | var str1=new XMLSerializer().serializeToString(doc); 13 | var doc2 = doc1.cloneNode(true); 14 | var doc3 = doc1.cloneNode(true); 15 | var doc4 = doc1.cloneNode(true); 16 | 17 | doc3.documentElement.appendChild(doc3.documentElement.lastChild); 18 | //doc4.documentElement.appendChild(doc4.documentElement.firstChild); 19 | 20 | var str2=new XMLSerializer().serializeToString(doc2); 21 | var str3=new XMLSerializer().serializeToString(doc3); 22 | var str4=new XMLSerializer().serializeToString(doc4); 23 | console.assert(str1 == str3,str3,str1); 24 | //console.assert(str3 != str4 && str3.length == str4.length,str3); 25 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/test.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var DOMParser = require('xmldom').DOMParser; 4 | var XMLSerializer = require('xmldom').XMLSerializer; 5 | 6 | 7 | var doc = new DOMParser().parseFromString('' + 8 | '' + 9 | '','text/xml'); 10 | 11 | var doc1 = doc; 12 | var str1=new XMLSerializer().serializeToString(doc); 13 | var doc2 = doc1.cloneNode(true); 14 | var doc3 = doc1.cloneNode(true); 15 | var doc4 = doc1.cloneNode(true); 16 | 17 | doc3.documentElement.appendChild(doc3.documentElement.lastChild); 18 | //doc4.documentElement.appendChild(doc4.documentElement.firstChild); 19 | 20 | var str2=new XMLSerializer().serializeToString(doc2); 21 | var str3=new XMLSerializer().serializeToString(doc3); 22 | var str4=new XMLSerializer().serializeToString(doc4); 23 | console.assert(str1 == str3,str3,str1); 24 | //console.assert(str3 != str4 && str3.length == str4.length,str3); 25 | -------------------------------------------------------------------------------- /YouTypeIt/server/templates/script.js: -------------------------------------------------------------------------------- 1 | /* 2 | * UI enhancement script 3 | * for YouTypeItWePostIt.com 4 | * 2012-11 (@mamund) 5 | * RESTful Web APIs (Richardson/Amundsen) 6 | */ 7 | 8 | // uses bootstrap for styling 9 | window.onload = function() { 10 | var elm, coll, i, x; 11 | 12 | // style the body 13 | elm = document.getElementsByTagName('div')[0]; 14 | if(elm) {elm.className = 'hero-unit';} 15 | 16 | // style the nav links 17 | coll = document.getElementsByTagName('a'); 18 | for(i=0, x=coll.length; i 2 | 3 | 4 | Messages 5 | 6 | 7 | 8 | 9 |
10 |

Messages

11 | 12 |

13 | Enter your message below: 14 |

15 | 16 |
17 | 18 | 19 |
20 | 21 |
22 |

23 | Here are some other messages, too: 24 |

25 | {@messages} 26 |
27 | 28 | 31 | 32 |
33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | RESTful Web APIs 2 | ================ 3 | 4 | Node.js code for the clients and servers used as examples in 5 | O'Reilly's "RESTful Web APIs". 6 | 7 | You Type It, We Post It 8 | ----------------------- 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
/YouTypeIt/A microblogging website with a programmable 14 | Collection+JSON API.
/YouTypeIt/serverNode.js server for both web site and API.
/YouTypeIt/testSample representations for use in POST and PUT tests.
25 | 26 | The Maze 27 | -------- 28 | 29 | 30 | 31 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | 47 | 48 | 49 | 50 | 52 | 53 |
/Maze/A server and three clients for the Maze+XML media type 32 | explored in Chapter 5.
/Maze/server/A Maze+XML Server
/Maze/the-game/An interactive Maze+XML client that allows a user to navigate mazes
/Maze/the-mapmaker/An automated Maze+XML client bot that makes an ASCII map 45 | of a maze.
/Maze/the-boaster/An automatic Maze+XML client that claims to have completed 51 | a maze, without actually doing it.
54 | -------------------------------------------------------------------------------- /Maze/server/mazes.js: -------------------------------------------------------------------------------- 1 | /* 2 | * maze file handler 3 | * 2012-10 (mca) 4 | */ 5 | 6 | var fs = require('fs'); 7 | var folder = process.cwd()+'/data/'; 8 | 9 | module.exports = main; 10 | 11 | // hande all requests for maze data 12 | function main(cmd, maze, cell) { 13 | var rtn; 14 | 15 | switch(cmd) 16 | { 17 | case 'list': 18 | rtn = getList(); 19 | break; 20 | case 'maze': 21 | rtn = getMaze(maze); 22 | break; 23 | case 'cell': 24 | rtn = getCell(maze, cell); 25 | break; 26 | default: 27 | break; 28 | } 29 | return rtn; 30 | } 31 | 32 | // read a list of maze files off the disk 33 | function getList() { 34 | var coll, maze, list, i, x; 35 | 36 | coll = []; 37 | list = fs.readdirSync(folder); 38 | for(i=0,x=list.length;i 0 ) 26 | { 27 | return xItems[0]; 28 | } 29 | else 30 | { 31 | return null; 32 | } 33 | } 34 | 35 | Element.prototype.selectNodes = function(cXPathString) 36 | { 37 | if(this.ownerDocument.selectNodes) 38 | { 39 | return this.ownerDocument.selectNodes(cXPathString, this); 40 | } 41 | else{throw "For XML Elements Only";} 42 | } 43 | 44 | Element.prototype.selectSingleNode = function(cXPathString) 45 | { 46 | if(this.ownerDocument.selectSingleNode) 47 | { 48 | return this.ownerDocument.selectSingleNode(cXPathString, this); 49 | } 50 | else{throw "For XML Elements Only";} 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /Maze/server/data/01-a-beginner-maze.js: -------------------------------------------------------------------------------- 1 | { 2 | "_id" : "five-by-five", 3 | "title" : "A Beginner's Maze", 4 | "cells" : { 5 | "cell0":{"title":"Entrance Hallway", "doors":[1,1,1,0]}, 6 | "cell1":{"title":"Hall of Knives", "doors":[1,1,1,0]}, 7 | "cell2":{"title":"Library", "doors":[1,1,0,0]}, 8 | "cell3":{"title":"Trophy Room", "doors":[0,1,0,1]}, 9 | "cell4":{"title":"Pantry", "doors":[0,1,1,0]}, 10 | "cell5":{"title":"Kitchen", "doors":[1,0,1,0]}, 11 | "cell6":{"title":"Cloak Room", "doors":[1,0,0,1]}, 12 | "cell7":{"title":"Master Bedroom", "doors":[0,0,1,0]}, 13 | "cell8":{"title":"Fruit Closet", "doors":[1,1,0,0]}, 14 | "cell9":{"title":"Den of Forks", "doors":[0,0,1,1]}, 15 | "cell10":{"title":"Nursery", "doors":[1,0,0,1]}, 16 | "cell11":{"title":"Laundry Room", "doors":[0,1,1,0]}, 17 | "cell12":{"title":"Smoking Room", "doors":[1,0,1,1]}, 18 | "cell13":{"title":"Dining Room", "doors":[1,0,0,1]}, 19 | "cell14":{"title":"Sitting Room", "doors":[0,1,1,0]}, 20 | "cell15":{"title":"Standing Room", "doors":[1,1,1,0]}, 21 | "cell16":{"title":"Hobby Room", "doors":[1,0,1,0]}, 22 | "cell17":{"title":"Observatory", "doors":[1,1,0,0]}, 23 | "cell18":{"title":"Hot House", "doors":[0,1,0,1]}, 24 | "cell19":{"title":"Guest Room", "doors":[0,0,1,0]}, 25 | "cell20":{"title":"Servant's Quarters", "doors":[1,0,0,1]}, 26 | "cell21":{"title":"Garage", "doors":[0,0,0,1]}, 27 | "cell22":{"title":"Tool Room", "doors":[0,0,1,1]}, 28 | "cell23":{"title":"Banquet Hall", "doors":[1,1,0,1]}, 29 | "cell24":{"title":"Spoon Storage", "doors":[0,0,1,1]} 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Maze/the-game/node_modules/mime/test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Usage: node test.js 3 | */ 4 | 5 | var mime = require('./mime'); 6 | var assert = require('assert'); 7 | 8 | function eq(a, b) { 9 | console.log('Test: ' + a + ' === ' + b); 10 | assert.strictEqual.apply(null, arguments); 11 | } 12 | 13 | console.log(Object.keys(mime.extensions).length + ' types'); 14 | console.log(Object.keys(mime.types).length + ' extensions\n'); 15 | 16 | // 17 | // Test mime lookups 18 | // 19 | 20 | eq('text/plain', mime.lookup('text.txt')); 21 | eq('text/plain', mime.lookup('.text.txt')); 22 | eq('text/plain', mime.lookup('.txt')); 23 | eq('text/plain', mime.lookup('txt')); 24 | eq('application/octet-stream', mime.lookup('text.nope')); 25 | eq('fallback', mime.lookup('text.fallback', 'fallback')); 26 | eq('application/octet-stream', mime.lookup('constructor')); 27 | eq('text/plain', mime.lookup('TEXT.TXT')); 28 | eq('text/event-stream', mime.lookup('text/event-stream')); 29 | eq('application/x-web-app-manifest+json', mime.lookup('text.webapp')); 30 | 31 | // 32 | // Test extensions 33 | // 34 | 35 | eq('txt', mime.extension(mime.types.text)); 36 | eq('html', mime.extension(mime.types.htm)); 37 | eq('bin', mime.extension('application/octet-stream')); 38 | eq(undefined, mime.extension('constructor')); 39 | 40 | // 41 | // Test node types 42 | // 43 | 44 | eq('application/octet-stream', mime.lookup('file.buffer')); 45 | eq('audio/mp4', mime.lookup('file.m4a')); 46 | 47 | // 48 | // Test charsets 49 | // 50 | 51 | eq('UTF-8', mime.charsets.lookup('text/plain')); 52 | eq(undefined, mime.charsets.lookup(mime.types.js)); 53 | eq('fallback', mime.charsets.lookup('application/octet-stream', 'fallback')); 54 | 55 | console.log('\nOK'); 56 | -------------------------------------------------------------------------------- /Maze/server/100-rooms.txt: -------------------------------------------------------------------------------- 1 | Living Room 2 | Family Room 3 | Formal Living Room 4 | Kitchen 5 | Pantry 6 | Nook 7 | Dining Room 8 | Formal Dining 9 | Master Bedroom 10 | Closet 11 | Walk-In Closet 12 | Dressing Room 13 | Bedroom 14 | Nursery 15 | Guest Bedroom 16 | Guest Suite 17 | Mother-In-Law Quarters 18 | Master Bath Room 19 | Bath Room 20 | Walk-In Shower 21 | Sauna 22 | Three-Quarter Bath 23 | Half-Bath 24 | Powder Room 25 | Entry 26 | Mud Room 27 | Sitting Room 28 | Coat Closet 29 | Utility Room 30 | Laundry Room 31 | Sewing Room 32 | Storage Room 33 | Mechanical Room 34 | Garage 35 | RV Garage 36 | Work Shop 37 | Home Gym 38 | Home Office 39 | Study 40 | Library 41 | Drawing Room 42 | Reading Room 43 | Retreat 44 | Den 45 | Parlor 46 | Game Room 47 | Play Room 48 | Media Room 49 | Wet Bar 50 | Butler's Quarters 51 | Maid's Quarters 52 | Butler's Kitchen 53 | Butler's Pantry 54 | Wine Room 55 | Atrium 56 | Lounge 57 | Gallery 58 | Kitchenette 59 | Indoor Pool 60 | Indoor Spa 61 | Prayer Room 62 | Gun Room 63 | Sword Room 64 | Archery Room 65 | Nunchuck Room 66 | Chamber of Stars 67 | Chamber of Planets 68 | Chamber of Pets 69 | Chamber of Enemies 70 | Hall of Mirrors 71 | Hall of Windows 72 | Hall of Plates 73 | Hall of Silverware 74 | Hall of Sculpture 75 | Hall of Fiber Art 76 | Hall of Prints 77 | Hall of Easels 78 | Hall of Monty 79 | Hall of Oats 80 | Computer Room 81 | Laptop Room 82 | Phone Room 83 | Dog Room 84 | Cat Room 85 | Bird Room 86 | Lizard Room 87 | Insect Room 88 | Tape Room 89 | Dance Room 90 | Fight Room 91 | Television Room 92 | Theater 93 | Concert Hall 94 | Indoor Tennis Court 95 | Bowling Alley 96 | Card Room 97 | Climbing Gym 98 | Woodshop 99 | Metalshop 100 | Panic Room 101 | 102 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/parse-element.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var DOMParser = require('xmldom').DOMParser; 4 | var XMLSerializer = require('xmldom').XMLSerializer; 5 | var parser = new DOMParser(); 6 | // Create a Test Suite 7 | wows.describe('XML Node Parse').addBatch({ 8 | 'noAttribute': function () { 9 | var dom = new DOMParser().parseFromString('','text/xml'); 10 | var dom = new DOMParser().parseFromString('','text/xml'); 11 | var dom = new DOMParser().parseFromString('','text/xml'); 12 | var dom = new DOMParser().parseFromString('','text/xml'); 13 | var dom = new DOMParser().parseFromString('','text/xml'); 14 | }, 15 | 'simpleAttribute': function () { 16 | var dom = new DOMParser().parseFromString('','text/xml'); 17 | var dom = new DOMParser().parseFromString('','text/xml'); 18 | var dom = new DOMParser().parseFromString('','text/xml'); 19 | var dom = new DOMParser().parseFromString('','text/xml'); 20 | var dom = new DOMParser().parseFromString('','text/xml'); 21 | var dom = new DOMParser().parseFromString('','text/xml'); 22 | var dom = new DOMParser().parseFromString('','text/xml'); 23 | var dom = new DOMParser().parseFromString('','text/xml'); 24 | }, 25 | 'nsAttribute': function () { 26 | var dom = new DOMParser().parseFromString('','text/xml'); 27 | var dom = new DOMParser().parseFromString('','text/xml'); 28 | var dom = new DOMParser().parseFromString('','text/xml'); 29 | var dom = new DOMParser().parseFromString('','text/xml'); 30 | } 31 | }).run(); -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/parse-element.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var DOMParser = require('xmldom').DOMParser; 4 | var XMLSerializer = require('xmldom').XMLSerializer; 5 | var parser = new DOMParser(); 6 | // Create a Test Suite 7 | wows.describe('XML Node Parse').addBatch({ 8 | 'noAttribute': function () { 9 | var dom = new DOMParser().parseFromString('','text/xml'); 10 | var dom = new DOMParser().parseFromString('','text/xml'); 11 | var dom = new DOMParser().parseFromString('','text/xml'); 12 | var dom = new DOMParser().parseFromString('','text/xml'); 13 | var dom = new DOMParser().parseFromString('','text/xml'); 14 | }, 15 | 'simpleAttribute': function () { 16 | var dom = new DOMParser().parseFromString('','text/xml'); 17 | var dom = new DOMParser().parseFromString('','text/xml'); 18 | var dom = new DOMParser().parseFromString('','text/xml'); 19 | var dom = new DOMParser().parseFromString('','text/xml'); 20 | var dom = new DOMParser().parseFromString('','text/xml'); 21 | var dom = new DOMParser().parseFromString('','text/xml'); 22 | var dom = new DOMParser().parseFromString('','text/xml'); 23 | var dom = new DOMParser().parseFromString('','text/xml'); 24 | }, 25 | 'nsAttribute': function () { 26 | var dom = new DOMParser().parseFromString('','text/xml'); 27 | var dom = new DOMParser().parseFromString('','text/xml'); 28 | var dom = new DOMParser().parseFromString('','text/xml'); 29 | var dom = new DOMParser().parseFromString('','text/xml'); 30 | } 31 | }).run(); -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/parse-element.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var DOMParser = require('xmldom').DOMParser; 4 | var XMLSerializer = require('xmldom').XMLSerializer; 5 | var parser = new DOMParser(); 6 | // Create a Test Suite 7 | wows.describe('XML Node Parse').addBatch({ 8 | 'noAttribute': function () { 9 | var dom = new DOMParser().parseFromString('','text/xml'); 10 | var dom = new DOMParser().parseFromString('','text/xml'); 11 | var dom = new DOMParser().parseFromString('','text/xml'); 12 | var dom = new DOMParser().parseFromString('','text/xml'); 13 | var dom = new DOMParser().parseFromString('','text/xml'); 14 | }, 15 | 'simpleAttribute': function () { 16 | var dom = new DOMParser().parseFromString('','text/xml'); 17 | var dom = new DOMParser().parseFromString('','text/xml'); 18 | var dom = new DOMParser().parseFromString('','text/xml'); 19 | var dom = new DOMParser().parseFromString('','text/xml'); 20 | var dom = new DOMParser().parseFromString('','text/xml'); 21 | var dom = new DOMParser().parseFromString('','text/xml'); 22 | var dom = new DOMParser().parseFromString('','text/xml'); 23 | var dom = new DOMParser().parseFromString('','text/xml'); 24 | }, 25 | 'nsAttribute': function () { 26 | var dom = new DOMParser().parseFromString('','text/xml'); 27 | var dom = new DOMParser().parseFromString('','text/xml'); 28 | var dom = new DOMParser().parseFromString('','text/xml'); 29 | var dom = new DOMParser().parseFromString('','text/xml'); 30 | } 31 | }).run(); -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/index.js: -------------------------------------------------------------------------------- 1 | var XMLSerializer = require('xmldom').XMLSerializer; 2 | var DOMParser = require('xmldom').DOMParser; 3 | try{ 4 | var libxml = require('libxmljs'); 5 | }catch(e){ 6 | var DomJS = require("dom-js"); 7 | } 8 | 9 | var assert = require('assert'); 10 | var oldParser = DOMParser.prototype.parseFromString ; 11 | function format(s){ 12 | if(libxml){ 13 | var result = libxml.parseXmlString(s).toString().replace(/^\s+|\s+$/g,''); 14 | //console.log(result.charCodeAt().toString(16),result) 15 | }else{ 16 | var domjs = new DomJS.DomJS(); 17 | domjs.parse(s, function(err, dom) { 18 | result = dom.toXml(); 19 | }); 20 | } 21 | return result; 22 | } 23 | function check(data,doc){ 24 | var domjsresult = format(data); 25 | var xmldomresult = new XMLSerializer().serializeToString(doc); 26 | var xmldomresult2 = new XMLSerializer().serializeToString(doc.cloneNode(true)); 27 | assert.equal(xmldomresult,xmldomresult2); 28 | xmldomresult = xmldomresult.replace(/^<\?.*?\?>\s*|/g,'') 29 | domjsresult = domjsresult.replace(/^<\?.*?\?>\s*|/g,'') 30 | //console.log('['+xmldomresult+'],['+domjsresult+']') 31 | if(xmldomresult!=domjsresult){ 32 | assert.equal(format(xmldomresult),domjsresult); 33 | } 34 | 35 | } 36 | DOMParser.prototype.parseFromString = function(data,mimeType){ 37 | var doc = oldParser.apply(this,arguments); 38 | function ck(){ 39 | if(!/\/x?html?\b/.test(mimeType)){ 40 | try{ 41 | check(data,doc); 42 | }catch(e){console.dir(e)} 43 | } 44 | } 45 | if(this.options.checkLater){ 46 | setTimeout(ck,1); 47 | }else{ck()} 48 | return doc; 49 | } 50 | function include(){ 51 | for(var i=0;i\s*|/g,'') 29 | domjsresult = domjsresult.replace(/^<\?.*?\?>\s*|/g,'') 30 | //console.log('['+xmldomresult+'],['+domjsresult+']') 31 | if(xmldomresult!=domjsresult){ 32 | assert.equal(format(xmldomresult),domjsresult); 33 | } 34 | 35 | } 36 | DOMParser.prototype.parseFromString = function(data,mimeType){ 37 | var doc = oldParser.apply(this,arguments); 38 | function ck(){ 39 | if(!/\/x?html?\b/.test(mimeType)){ 40 | try{ 41 | check(data,doc); 42 | }catch(e){console.dir(e)} 43 | } 44 | } 45 | if(this.options.checkLater){ 46 | setTimeout(ck,1); 47 | }else{ck()} 48 | return doc; 49 | } 50 | function include(){ 51 | for(var i=0;i\s*|/g,'') 29 | domjsresult = domjsresult.replace(/^<\?.*?\?>\s*|/g,'') 30 | //console.log('['+xmldomresult+'],['+domjsresult+']') 31 | if(xmldomresult!=domjsresult){ 32 | assert.equal(format(xmldomresult),domjsresult); 33 | } 34 | 35 | } 36 | DOMParser.prototype.parseFromString = function(data,mimeType){ 37 | var doc = oldParser.apply(this,arguments); 38 | function ck(){ 39 | if(!/\/x?html?\b/.test(mimeType)){ 40 | try{ 41 | check(data,doc); 42 | }catch(e){console.dir(e)} 43 | } 44 | } 45 | if(this.options.checkLater){ 46 | setTimeout(ck,1); 47 | }else{ck()} 48 | return doc; 49 | } 50 | function include(){ 51 | for(var i=0;i','text/xml'); 8 | var root = dom.documentElement; 9 | console.assert(root.namespaceURI=='http://test.com') 10 | console.assert(root.lookupNamespaceURI('') == 'http://test.com') 11 | console.assert(root.firstChild.namespaceURI=='http://test.com') 12 | console.assert(root.firstChild.lookupNamespaceURI('') == 'http://test.com') 13 | console.assert(root.firstChild.getAttributeNode('attr').namespaceURI==null) 14 | }, 15 | 'prefix namespace': function () { 16 | var dom = new DOMParser().parseFromString('','text/xml'); 17 | var root = dom.documentElement; 18 | console.assert(root.firstChild.namespaceURI == 'http://p1.com') 19 | console.assert(root.lookupNamespaceURI('p1') == 'http://p1.com') 20 | console.assert(root.firstChild.getAttributeNode('attr') == null) 21 | console.assert(root.firstChild.getAttributeNode('p1:attr').namespaceURI == 'http://p1.com') 22 | console.assert(root.firstChild.nextSibling.namespaceURI == 'http://p2.com') 23 | console.assert(root.firstChild.nextSibling.lookupNamespaceURI('p2') == 'http://p2.com') 24 | }, 25 | 'after prefix namespace': function () { 26 | var dom = new DOMParser().parseFromString('','text/xml'); 27 | var root = dom.documentElement; 28 | console.assert(root.firstChild.namespaceURI=='http://p.com') 29 | console.assert(root.lastChild.namespaceURI=='http://test.com') 30 | console.assert(root.firstChild.nextSibling.lookupNamespaceURI('p') == 'http://test.com') 31 | } 32 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/namespace.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | // Create a Test Suite 5 | wows.describe('XML Namespace Parse').addBatch({ 6 | 'default namespace': function () { 7 | var dom = new DOMParser().parseFromString('','text/xml'); 8 | var root = dom.documentElement; 9 | console.assert(root.namespaceURI=='http://test.com') 10 | console.assert(root.lookupNamespaceURI('') == 'http://test.com') 11 | console.assert(root.firstChild.namespaceURI=='http://test.com') 12 | console.assert(root.firstChild.lookupNamespaceURI('') == 'http://test.com') 13 | console.assert(root.firstChild.getAttributeNode('attr').namespaceURI==null) 14 | }, 15 | 'prefix namespace': function () { 16 | var dom = new DOMParser().parseFromString('','text/xml'); 17 | var root = dom.documentElement; 18 | console.assert(root.firstChild.namespaceURI == 'http://p1.com') 19 | console.assert(root.lookupNamespaceURI('p1') == 'http://p1.com') 20 | console.assert(root.firstChild.getAttributeNode('attr') == null) 21 | console.assert(root.firstChild.getAttributeNode('p1:attr').namespaceURI == 'http://p1.com') 22 | console.assert(root.firstChild.nextSibling.namespaceURI == 'http://p2.com') 23 | console.assert(root.firstChild.nextSibling.lookupNamespaceURI('p2') == 'http://p2.com') 24 | }, 25 | 'after prefix namespace': function () { 26 | var dom = new DOMParser().parseFromString('','text/xml'); 27 | var root = dom.documentElement; 28 | console.assert(root.firstChild.namespaceURI=='http://p.com') 29 | console.assert(root.lastChild.namespaceURI=='http://test.com') 30 | console.assert(root.firstChild.nextSibling.lookupNamespaceURI('p') == 'http://test.com') 31 | } 32 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/namespace.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | // Create a Test Suite 5 | wows.describe('XML Namespace Parse').addBatch({ 6 | 'default namespace': function () { 7 | var dom = new DOMParser().parseFromString('','text/xml'); 8 | var root = dom.documentElement; 9 | console.assert(root.namespaceURI=='http://test.com') 10 | console.assert(root.lookupNamespaceURI('') == 'http://test.com') 11 | console.assert(root.firstChild.namespaceURI=='http://test.com') 12 | console.assert(root.firstChild.lookupNamespaceURI('') == 'http://test.com') 13 | console.assert(root.firstChild.getAttributeNode('attr').namespaceURI==null) 14 | }, 15 | 'prefix namespace': function () { 16 | var dom = new DOMParser().parseFromString('','text/xml'); 17 | var root = dom.documentElement; 18 | console.assert(root.firstChild.namespaceURI == 'http://p1.com') 19 | console.assert(root.lookupNamespaceURI('p1') == 'http://p1.com') 20 | console.assert(root.firstChild.getAttributeNode('attr') == null) 21 | console.assert(root.firstChild.getAttributeNode('p1:attr').namespaceURI == 'http://p1.com') 22 | console.assert(root.firstChild.nextSibling.namespaceURI == 'http://p2.com') 23 | console.assert(root.firstChild.nextSibling.lookupNamespaceURI('p2') == 'http://p2.com') 24 | }, 25 | 'after prefix namespace': function () { 26 | var dom = new DOMParser().parseFromString('','text/xml'); 27 | var root = dom.documentElement; 28 | console.assert(root.firstChild.namespaceURI=='http://p.com') 29 | console.assert(root.lastChild.namespaceURI=='http://test.com') 30 | console.assert(root.firstChild.nextSibling.lookupNamespaceURI('p') == 'http://test.com') 31 | } 32 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-game/node_modules/mime/types/node.types: -------------------------------------------------------------------------------- 1 | # What: Google Chrome Extension 2 | # Why: To allow apps to (work) be served with the right content type header. 3 | # http://codereview.chromium.org/2830017 4 | # Added by: niftylettuce 5 | application/x-chrome-extension crx 6 | 7 | # What: OTF Message Silencer 8 | # Why: To silence the "Resource interpreted as font but transferred with MIME 9 | # type font/otf" message that occurs in Google Chrome 10 | # Added by: niftylettuce 11 | font/opentype otf 12 | 13 | # What: HTC support 14 | # Why: To properly render .htc files such as CSS3PIE 15 | # Added by: niftylettuce 16 | text/x-component htc 17 | 18 | # What: HTML5 application cache manifest 19 | # Why: De-facto standard. Required by Mozilla browser when serving HTML5 apps 20 | # per https://developer.mozilla.org/en/offline_resources_in_firefox 21 | # Added by: louisremi 22 | text/cache-manifest appcache manifest 23 | 24 | # What: node binary buffer format 25 | # Why: semi-standard extension w/in the node community 26 | # Added by: tootallnate 27 | application/octet-stream buffer 28 | 29 | # What: The "protected" MP-4 formats used by iTunes. 30 | # Why: Required for streaming music to browsers (?) 31 | # Added by: broofa 32 | application/mp4 m4p 33 | audio/mp4 m4a 34 | 35 | # What: Music playlist format (http://en.wikipedia.org/wiki/M3U) 36 | # Why: See https://github.com/bentomas/node-mime/pull/6 37 | # Added by: mjrusso 38 | application/x-mpegURL m3u8 39 | 40 | # What: Video format, Part of RFC1890 41 | # Why: See https://github.com/bentomas/node-mime/pull/6 42 | # Added by: mjrusso 43 | video/MP2T ts 44 | 45 | # What: The FLAC lossless codec format 46 | # Why: Streaming and serving FLAC audio 47 | # Added by: jacobrask 48 | audio/flac flac 49 | 50 | # What: EventSource mime type 51 | # Why: mime type of Server-Sent Events stream 52 | # http://www.w3.org/TR/eventsource/#text-event-stream 53 | # Added by: francois2metz 54 | text/event-stream event-stream 55 | 56 | # What: Mozilla App manifest mime type 57 | # Why: https://developer.mozilla.org/en/Apps/Manifest#Serving_manifests 58 | # Added by: ednapiranha 59 | application/x-web-app-manifest+json webapp 60 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/locator.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | function assertPosition(n, line, col) { 5 | console.assert(n.lineNumber == line,'lineNumber:'+n.lineNumber+'/'+line); 6 | console.assert(n.columnNumber == col,'columnNumber:'+n.columnNumber+'/'+col); 7 | } 8 | 9 | wows.describe('DOMLocator').addBatch({ 10 | 'node positions': function() { 11 | var parser = new DOMParser({locator:{}}); 12 | var doc = parser.parseFromString('\n\n something\nx', 'text/xml'); 13 | var test = doc.documentElement; 14 | var a = test.firstChild.nextSibling; 15 | assertPosition(doc.firstChild, 1, 1); 16 | assertPosition(doc.firstChild.nextSibling, 1, 1+''.length); 17 | assertPosition(test, 2, 1); 18 | //assertPosition(test.firstChild, 1, 7); 19 | assertPosition(a, 3, 3); 20 | assertPosition(a.firstChild, 3, 19); 21 | assertPosition(a.firstChild.nextSibling, 3, 19+''.length); 22 | assertPosition(test.lastChild, 4, 5); 23 | }, 24 | 'error positions':function(){ 25 | var error = [] 26 | var parser = new DOMParser({ 27 | locator:{systemId:'c:/test/1.xml'}, 28 | errorHandler:function(msg){ 29 | error.push(msg); 30 | } 31 | }); 32 | var doc = parser.parseFromString('<;test', 'text/html'); 33 | console.assert(/\n@c\:\/test\/1\.xml#\[line\:\d+,col\:\d+\]/.test(error.join(' ')),'line,col must record:'+error) 34 | }, 35 | 'error positions p':function(){ 36 | var error = [] 37 | var parser = new DOMParser({ 38 | locator:{}, 39 | errorHandler:function(msg){ 40 | error.push(msg); 41 | } 42 | }); 43 | var doc = parser.parseFromString('\n\t', 'text/html'); 44 | var root = doc.documentElement; 45 | var textNode = root.firstChild; 46 | console.log(root+'/'+textNode) 47 | console.assert(/\n@#\[line\:2,col\:2\]/.test(error.join(' ')),'line,col must record:'+error); 48 | console.log(textNode.lineNumber+'/'+textNode.columnNumber) 49 | } 50 | }).run(); -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/locator.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | function assertPosition(n, line, col) { 5 | console.assert(n.lineNumber == line,'lineNumber:'+n.lineNumber+'/'+line); 6 | console.assert(n.columnNumber == col,'columnNumber:'+n.columnNumber+'/'+col); 7 | } 8 | 9 | wows.describe('DOMLocator').addBatch({ 10 | 'node positions': function() { 11 | var parser = new DOMParser({locator:{}}); 12 | var doc = parser.parseFromString('\n\n something\nx', 'text/xml'); 13 | var test = doc.documentElement; 14 | var a = test.firstChild.nextSibling; 15 | assertPosition(doc.firstChild, 1, 1); 16 | assertPosition(doc.firstChild.nextSibling, 1, 1+''.length); 17 | assertPosition(test, 2, 1); 18 | //assertPosition(test.firstChild, 1, 7); 19 | assertPosition(a, 3, 3); 20 | assertPosition(a.firstChild, 3, 19); 21 | assertPosition(a.firstChild.nextSibling, 3, 19+''.length); 22 | assertPosition(test.lastChild, 4, 5); 23 | }, 24 | 'error positions':function(){ 25 | var error = [] 26 | var parser = new DOMParser({ 27 | locator:{systemId:'c:/test/1.xml'}, 28 | errorHandler:function(msg){ 29 | error.push(msg); 30 | } 31 | }); 32 | var doc = parser.parseFromString('
<;test', 'text/html'); 33 | console.assert(/\n@c\:\/test\/1\.xml#\[line\:\d+,col\:\d+\]/.test(error.join(' ')),'line,col must record:'+error) 34 | }, 35 | 'error positions p':function(){ 36 | var error = [] 37 | var parser = new DOMParser({ 38 | locator:{}, 39 | errorHandler:function(msg){ 40 | error.push(msg); 41 | } 42 | }); 43 | var doc = parser.parseFromString('\n\t', 'text/html'); 44 | var root = doc.documentElement; 45 | var textNode = root.firstChild; 46 | console.log(root+'/'+textNode) 47 | console.assert(/\n@#\[line\:2,col\:2\]/.test(error.join(' ')),'line,col must record:'+error); 48 | console.log(textNode.lineNumber+'/'+textNode.columnNumber) 49 | } 50 | }).run(); -------------------------------------------------------------------------------- /Maze/the-game/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | The Game 10 | 11 | 12 | 13 | 14 | 15 | 16 |

The Game

17 |
18 | 19 |
20 | Which maze server? 21 | 22 | 23 |
24 | 25 | 33 | 34 | 35 | 41 | 42 |
43 | What would you like to do? 44 | 45 | 46 |
47 | 48 |
49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/locator.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | function assertPosition(n, line, col) { 5 | console.assert(n.lineNumber == line,'lineNumber:'+n.lineNumber+'/'+line); 6 | console.assert(n.columnNumber == col,'columnNumber:'+n.columnNumber+'/'+col); 7 | } 8 | 9 | wows.describe('DOMLocator').addBatch({ 10 | 'node positions': function() { 11 | var parser = new DOMParser({locator:{}}); 12 | var doc = parser.parseFromString('\n\n something\nx', 'text/xml'); 13 | var test = doc.documentElement; 14 | var a = test.firstChild.nextSibling; 15 | assertPosition(doc.firstChild, 1, 1); 16 | assertPosition(doc.firstChild.nextSibling, 1, 1+''.length); 17 | assertPosition(test, 2, 1); 18 | //assertPosition(test.firstChild, 1, 7); 19 | assertPosition(a, 3, 3); 20 | assertPosition(a.firstChild, 3, 19); 21 | assertPosition(a.firstChild.nextSibling, 3, 19+''.length); 22 | assertPosition(test.lastChild, 4, 5); 23 | }, 24 | 'error positions':function(){ 25 | var error = [] 26 | var parser = new DOMParser({ 27 | locator:{systemId:'c:/test/1.xml'}, 28 | errorHandler:function(msg){ 29 | error.push(msg); 30 | } 31 | }); 32 | var doc = parser.parseFromString('
<;test', 'text/html'); 33 | console.assert(/\n@c\:\/test\/1\.xml#\[line\:\d+,col\:\d+\]/.test(error.join(' ')),'line,col must record:'+error) 34 | }, 35 | 'error positions p':function(){ 36 | var error = [] 37 | var parser = new DOMParser({ 38 | locator:{}, 39 | errorHandler:function(msg){ 40 | error.push(msg); 41 | } 42 | }); 43 | var doc = parser.parseFromString('\n\t', 'text/html'); 44 | var root = doc.documentElement; 45 | var textNode = root.firstChild; 46 | console.log(root+'/'+textNode) 47 | console.assert(/\n@#\[line\:2,col\:2\]/.test(error.join(' ')),'line,col must record:'+error); 48 | console.log(textNode.lineNumber+'/'+textNode.columnNumber) 49 | } 50 | }).run(); -------------------------------------------------------------------------------- /Maze/the-game/node_modules/mime/README.md: -------------------------------------------------------------------------------- 1 | # mime 2 | 3 | Comprehensive MIME type mapping API. Includes all 600+ types and 800+ extensions defined by the Apache project, plus additional types submitted by the node.js community. 4 | 5 | ## Install 6 | 7 | Install with [npm](http://github.com/isaacs/npm): 8 | 9 | npm install mime 10 | 11 | ## API - Queries 12 | 13 | ### mime.lookup(path) 14 | Get the mime type associated with a file. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g. 15 | 16 | var mime = require('mime'); 17 | 18 | mime.lookup('/path/to/file.txt'); // => 'text/plain' 19 | mime.lookup('file.txt'); // => 'text/plain' 20 | mime.lookup('.TXT'); // => 'text/plain' 21 | mime.lookup('htm'); // => 'text/html' 22 | 23 | ### mime.extension(type) 24 | Get the default extension for `type` 25 | 26 | mime.extension('text/html'); // => 'html' 27 | mime.extension('application/octet-stream'); // => 'bin' 28 | 29 | ### mime.charsets.lookup() 30 | 31 | Map mime-type to charset 32 | 33 | mime.charsets.lookup('text/plain'); // => 'UTF-8' 34 | 35 | (The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.) 36 | 37 | ## API - Defining Custom Types 38 | 39 | The following APIs allow you to add your own type mappings within your project. If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/broofa/node-mime/wiki/Requesting-New-Types). 40 | 41 | ### mime.define() 42 | 43 | Add custom mime/extension mappings 44 | 45 | mime.define({ 46 | 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'], 47 | 'application/x-my-type': ['x-mt', 'x-mtt'], 48 | // etc ... 49 | }); 50 | 51 | mime.lookup('x-sft'); // => 'text/x-some-format' 52 | 53 | The first entry in the extensions array is returned by `mime.extension()`. E.g. 54 | 55 | mime.extension('text/x-some-format'); // => 'x-sf' 56 | 57 | ### mime.load(filepath) 58 | 59 | Load mappings from an Apache ".types" format file 60 | 61 | mime.load('./my_project.types'); 62 | 63 | The .types file format is simple - See the `types` dir for examples. 64 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/dom/attr.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | // Create a Test Suite 5 | wows.describe('XML attrs').addBatch({ 6 | "set attribute":function(){ 7 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 8 | root.setAttribute('a','1'); 9 | console.assert(root.attributes[0].localName == 'a'); 10 | root.setAttribute('b',2); 11 | root.setAttribute('a',1); 12 | root.setAttribute('a',1); 13 | root.setAttribute('a',1); 14 | console.assert(root.attributes.length == 2); 15 | try { 16 | var c = root.ownerDocument.createElement('c'); 17 | c.setAttributeNode(root.attributes.item(0)); 18 | } catch (e) { 19 | console.assert(e.code == 10); 20 | return; 21 | } 22 | console.assert(false); 23 | }, 24 | "set ns attribute":function(){ 25 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 26 | var child = root.firstChild 27 | child.setAttributeNS('a','a:a','1'); 28 | child.setAttributeNS('b','b:b','2'); 29 | child.setAttributeNS('b','b:a','1'); 30 | console.assert(child.attributes.length == 3,child.attributes.length,child+''); 31 | child.setAttribute('a',1); 32 | child.setAttributeNS('b','b:b','2'); 33 | console.assert(child.attributes.length == 4,child.attributes.length); 34 | try { 35 | var c = root.ownerDocument.createElement('c'); 36 | c.setAttributeNodeNS(root.attributes.item(0)); 37 | } catch (e) { 38 | console.assert(e.code == 10); 39 | return; 40 | } 41 | console.assert(false); 42 | }, 43 | "override attribute":function(){ 44 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 45 | root.setAttributeNS('a','a:a','1'); 46 | console.assert(root.attributes.length == 4,root.attributes.length); 47 | //not standart 48 | // root.firstChild.setAttributeNode(root.attributes[0]); 49 | // console.assert(root.attributes.length == 0); 50 | }, 51 | "attribute namespace":function(){ 52 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 53 | console.assert(root.getAttributeNS("a", "b"), "e"); 54 | }, 55 | "override ns attribute":function(){ 56 | 57 | }, 58 | "set existed attribute":function(){ 59 | 60 | }, 61 | "set document existed attribute":function(){ 62 | 63 | } 64 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/error.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | 5 | wows.describe('errorHandle').addBatch({ 6 | 'only function two args': function() { 7 | var error = {} 8 | var parser = new DOMParser({ 9 | errorHandler:function(key,msg){error[key] = msg} 10 | }); 11 | try{ 12 | var doc = parser.parseFromString('<1 1="2"/>', 'text/xml'); 13 | console.assert(error.warning!=null ,'error.error:'+error.warning); 14 | console.assert(error.error!=null ,'error.error:'+error.error); 15 | console.assert(error.fatalError!=null ,'error.error:'+error.fatalError); 16 | //console.log(doc+'') 17 | }catch(e){ 18 | } 19 | }, 20 | 'only function': function() { 21 | var error = [] 22 | var parser = new DOMParser({ 23 | errorHandler:function(msg){error.push(msg)} 24 | }); 25 | try{ 26 | var doc = parser.parseFromString('<1 1="2"/>', 'text/xml'); 27 | error.map(function(e){error[e.replace(/\:[\s\S]*/,'')]=e}) 28 | console.assert(error.warning!=null ,'error.error:'+error.warning); 29 | console.assert(error.error!=null ,'error.error:'+error.error); 30 | console.assert(error.fatalError!=null ,'error.error:'+error.fatalError); 31 | //console.log(doc+'') 32 | }catch(e){ 33 | } 34 | }, 35 | 'only function': function() { 36 | var error = [] 37 | var errorMap = [] 38 | new DOMParser({ 39 | errorHandler:function(msg){error.push(msg)} 40 | }).parseFromString('test', 'text/xml'); 41 | 'warn,warning,error,fatalError'.replace(/\w+/g,function(k){ 42 | var errorHandler = {}; 43 | errorMap[k] = []; 44 | errorHandler[k] = function(msg){errorMap[k] .push(msg)} 45 | new DOMParser({errorHandler:errorHandler}).parseFromString('test', 'text/xml'); 46 | }); 47 | for(var n in errorMap){ 48 | console.assert(error.length == errorMap[n].length) 49 | } 50 | }, 51 | 'error function': function() { 52 | var error = [] 53 | var parser = new DOMParser({ 54 | locator:{}, 55 | errorHandler:{ 56 | error:function(msg){ 57 | error.push(msg); 58 | throw new Error(msg) 59 | } 60 | } 61 | }); 62 | try{ 63 | var doc = parser.parseFromString('
<;test', 'text/html'); 64 | }catch(e){ 65 | console.log(e); 66 | console.assert(/\n@#\[line\:\d+,col\:\d+\]/.test(error.join(' ')),'line,col must record:'+error) 67 | return; 68 | } 69 | console.assert(false,doc+' should be null'); 70 | } 71 | }).run(); -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/dom/attr.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | // Create a Test Suite 5 | wows.describe('XML attrs').addBatch({ 6 | "set attribute":function(){ 7 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 8 | root.setAttribute('a','1'); 9 | console.assert(root.attributes[0].localName == 'a'); 10 | root.setAttribute('b',2); 11 | root.setAttribute('a',1); 12 | root.setAttribute('a',1); 13 | root.setAttribute('a',1); 14 | console.assert(root.attributes.length == 2); 15 | try { 16 | var c = root.ownerDocument.createElement('c'); 17 | c.setAttributeNode(root.attributes.item(0)); 18 | } catch (e) { 19 | console.assert(e.code == 10); 20 | return; 21 | } 22 | console.assert(false); 23 | }, 24 | "set ns attribute":function(){ 25 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 26 | var child = root.firstChild 27 | child.setAttributeNS('a','a:a','1'); 28 | child.setAttributeNS('b','b:b','2'); 29 | child.setAttributeNS('b','b:a','1'); 30 | console.assert(child.attributes.length == 3,child.attributes.length,child+''); 31 | child.setAttribute('a',1); 32 | child.setAttributeNS('b','b:b','2'); 33 | console.assert(child.attributes.length == 4,child.attributes.length); 34 | try { 35 | var c = root.ownerDocument.createElement('c'); 36 | c.setAttributeNodeNS(root.attributes.item(0)); 37 | } catch (e) { 38 | console.assert(e.code == 10); 39 | return; 40 | } 41 | console.assert(false); 42 | }, 43 | "override attribute":function(){ 44 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 45 | root.setAttributeNS('a','a:a','1'); 46 | console.assert(root.attributes.length == 4,root.attributes.length); 47 | //not standart 48 | // root.firstChild.setAttributeNode(root.attributes[0]); 49 | // console.assert(root.attributes.length == 0); 50 | }, 51 | "attribute namespace":function(){ 52 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 53 | console.assert(root.getAttributeNS("a", "b"), "e"); 54 | }, 55 | "override ns attribute":function(){ 56 | 57 | }, 58 | "set existed attribute":function(){ 59 | 60 | }, 61 | "set document existed attribute":function(){ 62 | 63 | } 64 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/error.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | 5 | wows.describe('errorHandle').addBatch({ 6 | 'only function two args': function() { 7 | var error = {} 8 | var parser = new DOMParser({ 9 | errorHandler:function(key,msg){error[key] = msg} 10 | }); 11 | try{ 12 | var doc = parser.parseFromString('<1 1="2"/>', 'text/xml'); 13 | console.assert(error.warning!=null ,'error.error:'+error.warning); 14 | console.assert(error.error!=null ,'error.error:'+error.error); 15 | console.assert(error.fatalError!=null ,'error.error:'+error.fatalError); 16 | //console.log(doc+'') 17 | }catch(e){ 18 | } 19 | }, 20 | 'only function': function() { 21 | var error = [] 22 | var parser = new DOMParser({ 23 | errorHandler:function(msg){error.push(msg)} 24 | }); 25 | try{ 26 | var doc = parser.parseFromString('<1 1="2"/>', 'text/xml'); 27 | error.map(function(e){error[e.replace(/\:[\s\S]*/,'')]=e}) 28 | console.assert(error.warning!=null ,'error.error:'+error.warning); 29 | console.assert(error.error!=null ,'error.error:'+error.error); 30 | console.assert(error.fatalError!=null ,'error.error:'+error.fatalError); 31 | //console.log(doc+'') 32 | }catch(e){ 33 | } 34 | }, 35 | 'only function': function() { 36 | var error = [] 37 | var errorMap = [] 38 | new DOMParser({ 39 | errorHandler:function(msg){error.push(msg)} 40 | }).parseFromString('test', 'text/xml'); 41 | 'warn,warning,error,fatalError'.replace(/\w+/g,function(k){ 42 | var errorHandler = {}; 43 | errorMap[k] = []; 44 | errorHandler[k] = function(msg){errorMap[k] .push(msg)} 45 | new DOMParser({errorHandler:errorHandler}).parseFromString('test', 'text/xml'); 46 | }); 47 | for(var n in errorMap){ 48 | console.assert(error.length == errorMap[n].length) 49 | } 50 | }, 51 | 'error function': function() { 52 | var error = [] 53 | var parser = new DOMParser({ 54 | locator:{}, 55 | errorHandler:{ 56 | error:function(msg){ 57 | error.push(msg); 58 | throw new Error(msg) 59 | } 60 | } 61 | }); 62 | try{ 63 | var doc = parser.parseFromString('
<;test', 'text/html'); 64 | }catch(e){ 65 | console.log(e); 66 | console.assert(/\n@#\[line\:\d+,col\:\d+\]/.test(error.join(' ')),'line,col must record:'+error) 67 | return; 68 | } 69 | console.assert(false,doc+' should be null'); 70 | } 71 | }).run(); -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/dom/attr.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | // Create a Test Suite 5 | wows.describe('XML attrs').addBatch({ 6 | "set attribute":function(){ 7 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 8 | root.setAttribute('a','1'); 9 | console.assert(root.attributes[0].localName == 'a'); 10 | root.setAttribute('b',2); 11 | root.setAttribute('a',1); 12 | root.setAttribute('a',1); 13 | root.setAttribute('a',1); 14 | console.assert(root.attributes.length == 2); 15 | try { 16 | var c = root.ownerDocument.createElement('c'); 17 | c.setAttributeNode(root.attributes.item(0)); 18 | } catch (e) { 19 | console.assert(e.code == 10); 20 | return; 21 | } 22 | console.assert(false); 23 | }, 24 | "set ns attribute":function(){ 25 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 26 | var child = root.firstChild 27 | child.setAttributeNS('a','a:a','1'); 28 | child.setAttributeNS('b','b:b','2'); 29 | child.setAttributeNS('b','b:a','1'); 30 | console.assert(child.attributes.length == 3,child.attributes.length,child+''); 31 | child.setAttribute('a',1); 32 | child.setAttributeNS('b','b:b','2'); 33 | console.assert(child.attributes.length == 4,child.attributes.length); 34 | try { 35 | var c = root.ownerDocument.createElement('c'); 36 | c.setAttributeNodeNS(root.attributes.item(0)); 37 | } catch (e) { 38 | console.assert(e.code == 10); 39 | return; 40 | } 41 | console.assert(false); 42 | }, 43 | "override attribute":function(){ 44 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 45 | root.setAttributeNS('a','a:a','1'); 46 | console.assert(root.attributes.length == 4,root.attributes.length); 47 | //not standart 48 | // root.firstChild.setAttributeNode(root.attributes[0]); 49 | // console.assert(root.attributes.length == 0); 50 | }, 51 | "attribute namespace":function(){ 52 | var root = new DOMParser().parseFromString("",'text/xml').documentElement; 53 | console.assert(root.getAttributeNS("a", "b"), "e"); 54 | }, 55 | "override ns attribute":function(){ 56 | 57 | }, 58 | "set existed attribute":function(){ 59 | 60 | }, 61 | "set document existed attribute":function(){ 62 | 63 | } 64 | }).run(); // Run it -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/error.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | 4 | 5 | wows.describe('errorHandle').addBatch({ 6 | 'only function two args': function() { 7 | var error = {} 8 | var parser = new DOMParser({ 9 | errorHandler:function(key,msg){error[key] = msg} 10 | }); 11 | try{ 12 | var doc = parser.parseFromString('<1 1="2"/>', 'text/xml'); 13 | console.assert(error.warning!=null ,'error.error:'+error.warning); 14 | console.assert(error.error!=null ,'error.error:'+error.error); 15 | console.assert(error.fatalError!=null ,'error.error:'+error.fatalError); 16 | //console.log(doc+'') 17 | }catch(e){ 18 | } 19 | }, 20 | 'only function': function() { 21 | var error = [] 22 | var parser = new DOMParser({ 23 | errorHandler:function(msg){error.push(msg)} 24 | }); 25 | try{ 26 | var doc = parser.parseFromString('<1 1="2"/>', 'text/xml'); 27 | error.map(function(e){error[e.replace(/\:[\s\S]*/,'')]=e}) 28 | console.assert(error.warning!=null ,'error.error:'+error.warning); 29 | console.assert(error.error!=null ,'error.error:'+error.error); 30 | console.assert(error.fatalError!=null ,'error.error:'+error.fatalError); 31 | //console.log(doc+'') 32 | }catch(e){ 33 | } 34 | }, 35 | 'only function': function() { 36 | var error = [] 37 | var errorMap = [] 38 | new DOMParser({ 39 | errorHandler:function(msg){error.push(msg)} 40 | }).parseFromString('test', 'text/xml'); 41 | 'warn,warning,error,fatalError'.replace(/\w+/g,function(k){ 42 | var errorHandler = {}; 43 | errorMap[k] = []; 44 | errorHandler[k] = function(msg){errorMap[k] .push(msg)} 45 | new DOMParser({errorHandler:errorHandler}).parseFromString('test', 'text/xml'); 46 | }); 47 | for(var n in errorMap){ 48 | console.assert(error.length == errorMap[n].length) 49 | } 50 | }, 51 | 'error function': function() { 52 | var error = [] 53 | var parser = new DOMParser({ 54 | locator:{}, 55 | errorHandler:{ 56 | error:function(msg){ 57 | error.push(msg); 58 | throw new Error(msg) 59 | } 60 | } 61 | }); 62 | try{ 63 | var doc = parser.parseFromString('
<;test', 'text/html'); 64 | }catch(e){ 65 | console.log(e); 66 | console.assert(/\n@#\[line\:\d+,col\:\d+\]/.test(error.join(' ')),'line,col must record:'+error) 67 | return; 68 | } 69 | console.assert(false,doc+' should be null'); 70 | } 71 | }).run(); -------------------------------------------------------------------------------- /YouTypeIt/server/messages.js: -------------------------------------------------------------------------------- 1 | /* 2 | * read/write messages module 3 | * 2012-11 (mamund) 4 | * RESTful Web APIs (Richardson/Ruby/Amundsen) 5 | */ 6 | 7 | var fs = require('fs'); 8 | var folder = process.cwd()+'/data/'; 9 | 10 | module.exports = main; 11 | 12 | function main(action, arg1, arg2) { 13 | var rtn; 14 | 15 | switch(action) { 16 | case 'list': 17 | rtn = getList(); 18 | break; 19 | case 'item': 20 | rtn = getItem(arg1); 21 | break; 22 | case 'add': 23 | rtn = addItem(arg1); 24 | break; 25 | case 'update': 26 | rtn = updateItem(arg1, arg2); 27 | break; 28 | case 'remove': 29 | rtn = removeItem(arg1); 30 | break; 31 | default: 32 | break; 33 | } 34 | return rtn; 35 | } 36 | 37 | function getList(arg) { 38 | var coll, item, list, i, x, lastDate; 39 | 40 | lastDate = null; 41 | coll = []; 42 | list = fs.readdirSync(folder); 43 | for(i=0,x=list.length;i 'text/plain'\n mime.lookup('file.txt'); // => 'text/plain'\n mime.lookup('.TXT'); // => 'text/plain'\n mime.lookup('htm'); // => 'text/html'\n\n### mime.extension(type)\nGet the default extension for `type`\n\n mime.extension('text/html'); // => 'html'\n mime.extension('application/octet-stream'); // => 'bin'\n\n### mime.charsets.lookup()\n\nMap mime-type to charset\n\n mime.charsets.lookup('text/plain'); // => 'UTF-8'\n\n(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.)\n\n## API - Defining Custom Types\n\nThe following APIs allow you to add your own type mappings within your project. If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/broofa/node-mime/wiki/Requesting-New-Types).\n\n### mime.define()\n\nAdd custom mime/extension mappings\n\n mime.define({\n 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],\n 'application/x-my-type': ['x-mt', 'x-mtt'],\n // etc ...\n });\n\n mime.lookup('x-sft'); // => 'text/x-some-format'\n\nThe first entry in the extensions array is returned by `mime.extension()`. E.g.\n\n mime.extension('text/x-some-format'); // => 'x-sf'\n\n### mime.load(filepath)\n\nLoad mappings from an Apache \".types\" format file\n\n mime.load('./my_project.types');\n\nThe .types file format is simple - See the `types` dir for examples.\n", 29 | "_id": "mime@1.2.7", 30 | "_from": "mime" 31 | } 32 | -------------------------------------------------------------------------------- /Maze/the-game/node_modules/mime/mime.js: -------------------------------------------------------------------------------- 1 | var path = require('path'); 2 | var fs = require('fs'); 3 | 4 | function Mime() { 5 | // Map of extension -> mime type 6 | this.types = Object.create(null); 7 | 8 | // Map of mime type -> extension 9 | this.extensions = Object.create(null); 10 | } 11 | 12 | /** 13 | * Define mimetype -> extension mappings. Each key is a mime-type that maps 14 | * to an array of extensions associated with the type. The first extension is 15 | * used as the default extension for the type. 16 | * 17 | * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']}); 18 | * 19 | * @param map (Object) type definitions 20 | */ 21 | Mime.prototype.define = function (map) { 22 | for (var type in map) { 23 | var exts = map[type]; 24 | 25 | for (var i = 0; i < exts.length; i++) { 26 | this.types[exts[i]] = type; 27 | } 28 | 29 | // Default extension is the first one we encounter 30 | if (!this.extensions[type]) { 31 | this.extensions[type] = exts[0]; 32 | } 33 | } 34 | }; 35 | 36 | /** 37 | * Load an Apache2-style ".types" file 38 | * 39 | * This may be called multiple times (it's expected). Where files declare 40 | * overlapping types/extensions, the last file wins. 41 | * 42 | * @param file (String) path of file to load. 43 | */ 44 | Mime.prototype.load = function(file) { 45 | // Read file and split into lines 46 | var map = {}, 47 | content = fs.readFileSync(file, 'ascii'), 48 | lines = content.split(/[\r\n]+/); 49 | 50 | lines.forEach(function(line) { 51 | // Clean up whitespace/comments, and split into fields 52 | var fields = line.replace(/\s*#.*|^\s*|\s*$/g, '').split(/\s+/); 53 | map[fields.shift()] = fields; 54 | }); 55 | 56 | this.define(map); 57 | }; 58 | 59 | /** 60 | * Lookup a mime type based on extension 61 | */ 62 | Mime.prototype.lookup = function(path, fallback) { 63 | var ext = path.replace(/.*[\.\/]/, '').toLowerCase(); 64 | 65 | return this.types[ext] || fallback || this.default_type; 66 | }; 67 | 68 | /** 69 | * Return file extension associated with a mime type 70 | */ 71 | Mime.prototype.extension = function(mimeType) { 72 | return this.extensions[mimeType]; 73 | }; 74 | 75 | // Default instance 76 | var mime = new Mime(); 77 | 78 | // Load local copy of 79 | // http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types 80 | mime.load(path.join(__dirname, 'types/mime.types')); 81 | 82 | // Load additional types from node.js community 83 | mime.load(path.join(__dirname, 'types/node.types')); 84 | 85 | // Default type 86 | mime.default_type = mime.lookup('bin'); 87 | 88 | // 89 | // Additional API specific to the default instance 90 | // 91 | 92 | mime.Mime = Mime; 93 | 94 | /** 95 | * Lookup a charset based on mime type. 96 | */ 97 | mime.charsets = { 98 | lookup: function(mimeType, fallback) { 99 | // Assume text types are utf8 100 | return (/^text\//).test(mimeType) ? 'UTF-8' : fallback; 101 | } 102 | } 103 | 104 | module.exports = mime; 105 | -------------------------------------------------------------------------------- /Maze/the-boaster/the-boaster.js: -------------------------------------------------------------------------------- 1 | /* RWA - RESTful Web APIs 2 | * 2012-10 (mca) 3 | * the-boaster.js 4 | * stand-alone maze+xml client 5 | */ 6 | 7 | var url = require('url'); 8 | var http = require('http'); 9 | var DOMParser = require('xmldom').DOMParser; 10 | 11 | var m = {}; 12 | m.moves = 1; 13 | m.help = '***Usage:\nnode the-boaster [starting-url]'; 14 | m.winner = '*** DONE and it only took {m} moves! ***'; 15 | m.quitter = '*** Sorry, can\'t find any mazes here. ***'; 16 | 17 | // get argument and start process 18 | arg = process.argv[2]; 19 | if(arg===undefined) { 20 | console.log(m.help); 21 | } 22 | else { 23 | makeRequest('GET',arg); 24 | } 25 | 26 | // send requests to server 27 | function makeRequest(method, path) { 28 | var hdrs, options, pUrl; 29 | 30 | pUrl = url.parse(path); 31 | 32 | hdrs = { 33 | 'Host' : pUrl.host, 34 | 'Accept' : 'application/vnd.amundsen.maze+xml' 35 | }; 36 | 37 | options = { 38 | host : pUrl.hostname, 39 | port : pUrl.port, 40 | path : pUrl.pathname, 41 | method : method, 42 | headers : hdrs 43 | }; 44 | 45 | var req = http.request(options, function(res) { 46 | var body = ''; 47 | 48 | res.on('data', function(chunk) { 49 | body += chunk; 50 | }); 51 | 52 | res.on('end', function() { 53 | var doc, nodes, i, x, links, link, href, flag, choices; 54 | 55 | // collect hyperlinks from the response 56 | links = []; 57 | doc = new DOMParser().parseFromString(body, 'text/xml'); 58 | nodes = doc.getElementsByTagName('link'); 59 | for(i=0, x=nodes.length; i&<123&456<789;&&','text/html'); 10 | console.assert(dom == '
&<123&456<789;&&
',dom+'') 11 | 12 | var dom = new DOMParser().parseFromString('
<123e>&
','text/html'); 13 | console.assert(dom == '
<123e>&<a
',dom+'') 14 | 15 | var dom = new DOMParser().parseFromString('
 © ©
','text/html'); 16 | console.assert(dom == '
\u00a0\u00a9&nbsp&copy
',dom+'') 17 | 18 | 19 | var dom = new DOMParser().parseFromString('','text/html'); 20 | console.assert(dom == '',dom+'') 21 | }, 22 | 'attr': function () { 23 | var dom = new DOMParser().parseFromString('','text/html'); 24 | console.assert(dom == '',dom+'') 25 | 26 | var dom = new DOMParser().parseFromString('
','text/html'); 27 | console.assert(dom == '
',dom+'') 28 | var dom = new DOMParser().parseFromString('
','text/html'); 29 | console.assert(dom == '
',dom+'') 30 | 31 | var dom = new DOMParser().parseFromString('
','text/html'); 32 | console.assert(dom == '
',dom+'') 33 | 34 | var dom = new DOMParser().parseFromString('
','text/html'); 35 | console.assert(dom == '
',dom+'') 36 | }, 37 | 'attrQute': function () { 38 | var dom = new DOMParser().parseFromString('','text/html'); 39 | console.assert(dom == '',dom+'') 40 | 41 | // var dom = new DOMParser().parseFromString('',dom+'!!') 43 | // 44 | var dom = new DOMParser().parseFromString('','text/html'); 45 | console.assert(dom == '',dom+'') 46 | }, 47 | "unclosed":function(){ 48 | var dom = new DOMParser().parseFromString('

','text/html'); 49 | console.assert(dom == '

',dom+'') 50 | 51 | var dom = new DOMParser().parseFromString('','text/html'); 52 | console.assert(dom == '',dom+'') 53 | 54 | var dom = new DOMParser().parseFromString('','text/html'); 55 | console.assert(dom == '',dom+'') 56 | 57 | var dom = new DOMParser().parseFromString('','text/html'); 58 | console.assert(dom == '',dom+'') 59 | 60 | var dom = new DOMParser().parseFromString('','text/html'); 61 | console.assert(dom == '',dom+'') 62 | 63 | 64 | 65 | var dom = new DOMParser().parseFromString('

','text/html'); 66 | console.assert(dom == '

',dom+'') 67 | 68 | 69 | }, 70 | 'script': function () { 71 | var dom = new DOMParser().parseFromString('','text/html'); 72 | console.assert(dom == '',dom+'') 73 | 74 | var dom = new DOMParser().parseFromString('','text/xml'); 75 | console.assert(dom == '',dom+'') 76 | 77 | var dom = new DOMParser().parseFromString('','text/html'); 78 | console.assert(dom == '',dom+'') 79 | 80 | }, 81 | 'textarea': function () { 82 | var dom = new DOMParser().parseFromString('','text/html'); 83 | console.assert(dom == '',dom+'') 84 | 85 | 86 | var dom = new DOMParser().parseFromString('','text/xml'); 87 | console.assert(dom == '',dom+'') 88 | } 89 | }).run(); -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/html/normalize.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var DOMParser = require('xmldom').DOMParser; 4 | var XMLSerializer = require('xmldom').XMLSerializer; 5 | var parser = new DOMParser(); 6 | // Create a Test Suite 7 | wows.describe('html normalizer').addBatch({ 8 | 'text & <': function () { 9 | var dom = new DOMParser().parseFromString('
&<123&456<789;&&
','text/html'); 10 | console.assert(dom == '
&<123&456<789;&&
',dom+'') 11 | 12 | var dom = new DOMParser().parseFromString('
<123e>&
','text/html'); 13 | console.assert(dom == '
<123e>&<a
',dom+'') 14 | 15 | var dom = new DOMParser().parseFromString('
 © ©
','text/html'); 16 | console.assert(dom == '
\u00a0\u00a9&nbsp&copy
',dom+'') 17 | 18 | 19 | var dom = new DOMParser().parseFromString('','text/html'); 20 | console.assert(dom == '',dom+'') 21 | }, 22 | 'attr': function () { 23 | var dom = new DOMParser().parseFromString('','text/html'); 24 | console.assert(dom == '',dom+'') 25 | 26 | var dom = new DOMParser().parseFromString('
','text/html'); 27 | console.assert(dom == '
',dom+'') 28 | var dom = new DOMParser().parseFromString('
','text/html'); 29 | console.assert(dom == '
',dom+'') 30 | 31 | var dom = new DOMParser().parseFromString('
','text/html'); 32 | console.assert(dom == '
',dom+'') 33 | 34 | var dom = new DOMParser().parseFromString('
','text/html'); 35 | console.assert(dom == '
',dom+'') 36 | }, 37 | 'attrQute': function () { 38 | var dom = new DOMParser().parseFromString('','text/html'); 39 | console.assert(dom == '',dom+'') 40 | 41 | // var dom = new DOMParser().parseFromString('',dom+'!!') 43 | // 44 | var dom = new DOMParser().parseFromString('','text/html'); 45 | console.assert(dom == '',dom+'') 46 | }, 47 | "unclosed":function(){ 48 | var dom = new DOMParser().parseFromString('

','text/html'); 49 | console.assert(dom == '

',dom+'') 50 | 51 | var dom = new DOMParser().parseFromString('','text/html'); 52 | console.assert(dom == '',dom+'') 53 | 54 | var dom = new DOMParser().parseFromString('','text/html'); 55 | console.assert(dom == '',dom+'') 56 | 57 | var dom = new DOMParser().parseFromString('','text/html'); 58 | console.assert(dom == '',dom+'') 59 | 60 | var dom = new DOMParser().parseFromString('','text/html'); 61 | console.assert(dom == '',dom+'') 62 | 63 | 64 | 65 | var dom = new DOMParser().parseFromString('

','text/html'); 66 | console.assert(dom == '

',dom+'') 67 | 68 | 69 | }, 70 | 'script': function () { 71 | var dom = new DOMParser().parseFromString('','text/html'); 72 | console.assert(dom == '',dom+'') 73 | 74 | var dom = new DOMParser().parseFromString('','text/xml'); 75 | console.assert(dom == '',dom+'') 76 | 77 | var dom = new DOMParser().parseFromString('','text/html'); 78 | console.assert(dom == '',dom+'') 79 | 80 | }, 81 | 'textarea': function () { 82 | var dom = new DOMParser().parseFromString('','text/html'); 83 | console.assert(dom == '',dom+'') 84 | 85 | 86 | var dom = new DOMParser().parseFromString('','text/xml'); 87 | console.assert(dom == '',dom+'') 88 | } 89 | }).run(); -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/html/normalize.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var DOMParser = require('xmldom').DOMParser; 4 | var XMLSerializer = require('xmldom').XMLSerializer; 5 | var parser = new DOMParser(); 6 | // Create a Test Suite 7 | wows.describe('html normalizer').addBatch({ 8 | 'text & <': function () { 9 | var dom = new DOMParser().parseFromString('
&<123&456<789;&&
','text/html'); 10 | console.assert(dom == '
&<123&456<789;&&
',dom+'') 11 | 12 | var dom = new DOMParser().parseFromString('
<123e>&
','text/html'); 13 | console.assert(dom == '
<123e>&<a
',dom+'') 14 | 15 | var dom = new DOMParser().parseFromString('
 © ©
','text/html'); 16 | console.assert(dom == '
\u00a0\u00a9&nbsp&copy
',dom+'') 17 | 18 | 19 | var dom = new DOMParser().parseFromString('','text/html'); 20 | console.assert(dom == '',dom+'') 21 | }, 22 | 'attr': function () { 23 | var dom = new DOMParser().parseFromString('','text/html'); 24 | console.assert(dom == '',dom+'') 25 | 26 | var dom = new DOMParser().parseFromString('
','text/html'); 27 | console.assert(dom == '
',dom+'') 28 | var dom = new DOMParser().parseFromString('
','text/html'); 29 | console.assert(dom == '
',dom+'') 30 | 31 | var dom = new DOMParser().parseFromString('
','text/html'); 32 | console.assert(dom == '
',dom+'') 33 | 34 | var dom = new DOMParser().parseFromString('
','text/html'); 35 | console.assert(dom == '
',dom+'') 36 | }, 37 | 'attrQute': function () { 38 | var dom = new DOMParser().parseFromString('','text/html'); 39 | console.assert(dom == '',dom+'') 40 | 41 | // var dom = new DOMParser().parseFromString('',dom+'!!') 43 | // 44 | var dom = new DOMParser().parseFromString('','text/html'); 45 | console.assert(dom == '',dom+'') 46 | }, 47 | "unclosed":function(){ 48 | var dom = new DOMParser().parseFromString('

','text/html'); 49 | console.assert(dom == '

',dom+'') 50 | 51 | var dom = new DOMParser().parseFromString('','text/html'); 52 | console.assert(dom == '',dom+'') 53 | 54 | var dom = new DOMParser().parseFromString('','text/html'); 55 | console.assert(dom == '',dom+'') 56 | 57 | var dom = new DOMParser().parseFromString('','text/html'); 58 | console.assert(dom == '',dom+'') 59 | 60 | var dom = new DOMParser().parseFromString('','text/html'); 61 | console.assert(dom == '',dom+'') 62 | 63 | 64 | 65 | var dom = new DOMParser().parseFromString('

','text/html'); 66 | console.assert(dom == '

',dom+'') 67 | 68 | 69 | }, 70 | 'script': function () { 71 | var dom = new DOMParser().parseFromString('','text/html'); 72 | console.assert(dom == '',dom+'') 73 | 74 | var dom = new DOMParser().parseFromString('','text/xml'); 75 | console.assert(dom == '',dom+'') 76 | 77 | var dom = new DOMParser().parseFromString('','text/html'); 78 | console.assert(dom == '',dom+'') 79 | 80 | }, 81 | 'textarea': function () { 82 | var dom = new DOMParser().parseFromString('','text/html'); 83 | console.assert(dom == '',dom+'') 84 | 85 | 86 | var dom = new DOMParser().parseFromString('','text/xml'); 87 | console.assert(dom == '',dom+'') 88 | } 89 | }).run(); -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/big-file-performance.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var XMLSerializer = require('xmldom').XMLSerializer; 4 | var DOMParser = require('xmldom').DOMParser; 5 | var DomJS = require("dom-js").DomJS; 6 | try{ 7 | var Libxml = require('libxmljs'); 8 | }catch(e){ 9 | } 10 | 11 | function xmldom(data){ 12 | console.time('xmldom'); 13 | var doc = new DOMParser({locator:null,checkLater:true}).parseFromString(data); 14 | console.timeEnd('xmldom'); 15 | doc.toString = function(){ 16 | return new XMLSerializer().serializeToString(doc); 17 | } 18 | return doc; 19 | } 20 | function libxml(data){ 21 | if(Libxml){ 22 | console.time('libxml'); 23 | var doc = Libxml.parseXmlString(data); 24 | console.timeEnd('libxml'); 25 | var ToString=doc.toString ; 26 | doc.toString = function(){ 27 | return ToString.apply(this,arguments).replace(/^\s+|\s+$/g,''); 28 | } 29 | return doc; 30 | }else{ 31 | console.warn('libxml is not installed') 32 | } 33 | } 34 | 35 | function domjs(data){ 36 | console.time('dom-js'); 37 | var doc; 38 | new DomJS().parse(data, function(err, dom) { 39 | doc = dom; 40 | }); 41 | console.timeEnd('dom-js'); 42 | 43 | doc.toString = function(){ 44 | return doc.toXml(); 45 | } 46 | return doc 47 | } 48 | var maxRandomAttr =parseInt(Math.random()*60); 49 | console.log('maxRandomAttr',maxRandomAttr) 50 | function addAttributes(el){ 51 | var c =parseInt(Math.random()*maxRandomAttr); 52 | while(c--){ 53 | el.setAttribute('dynamic-attr'+c,c+new Array(c).join('.')); 54 | } 55 | var child = el.firstChild; 56 | while(child){ 57 | if(child.nodeType == 1){ 58 | addAttributes(child) 59 | }else if(child.nodeType == 4){//cdata 60 | el.insertBefore(el.ownerDocument.createTextNode(child.data),child); 61 | el.removeChild(child); 62 | } 63 | child = child.nextSibling; 64 | } 65 | } 66 | // Create a Test Suite 67 | wows.describe('XML Node Parse').addBatch({ 68 | "big file parse":function(){ 69 | var fs = require('fs'); 70 | var path = require('path') 71 | var data = fs.readFileSync(path.resolve(__dirname,'./test.xml'), 'ascii'); 72 | //data = " ![CDATA[v]] d &\n" 73 | console.log('test simple xml') 74 | var t1 = new Date(); 75 | var doc1 = xmldom(data); 76 | var t2 = new Date(); 77 | var doc2 = domjs(data); 78 | var t3 = new Date(); 79 | var doc3 = libxml(data); 80 | var t4 = new Date(); 81 | var xmldomTime = t2-t1; 82 | var domjsTime = t3-t2; 83 | console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!') 84 | 85 | 86 | doc1 = doc1.cloneNode(true); 87 | addAttributes(doc1.documentElement); 88 | 89 | data = doc1.toString(); 90 | console.log('test more attribute xml') 91 | var t1 = new Date(); 92 | var doc1 = xmldom(data); 93 | var t2 = new Date(); 94 | var doc2 = domjs(data); 95 | var t3 = new Date(); 96 | var doc3 = libxml(data); 97 | var t4 = new Date(); 98 | var xmldomTime = t2-t1; 99 | var domjsTime = t3-t2; 100 | console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!') 101 | function xmlReplace(a,v){ 102 | switch(v){ 103 | case '&': 104 | return '&' 105 | case '<': 106 | return '<' 107 | default: 108 | if(v.length>1){ 109 | return v.replace(/([&<])/g,xmlReplace) 110 | } 111 | } 112 | } 113 | xmldomresult = (domjs(doc1+'')+'').replace(/^<\?.*?\?>\s*|/g,xmlReplace) 114 | domjsresult = (doc2+'').replace(/^<\?.*?\?>\s*|/g,xmlReplace) 115 | data = xmldomresult; 116 | //console.log(data.substring(100,200)) 117 | 118 | console.log('test more attribute xml without cdata') 119 | var t1 = new Date(); 120 | var doc1 = xmldom(data); 121 | var t2 = new Date(); 122 | var doc2 = domjs(data); 123 | var t3 = new Date(); 124 | var doc3 = libxml(data); 125 | var t4 = new Date(); 126 | var xmldomTime = t2-t1; 127 | var domjsTime = t3-t2; 128 | console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!') 129 | 130 | //console.log(xmldomresult,domjsresult) 131 | 132 | //assert.equal(xmldomresult,domjsresult); 133 | //,xmldomresult,domjsresult) 134 | if(xmldomresult !== domjsresult){ 135 | for(var i=0;i ![CDATA[v]] d &\n" 73 | console.log('test simple xml') 74 | var t1 = new Date(); 75 | var doc1 = xmldom(data); 76 | var t2 = new Date(); 77 | var doc2 = domjs(data); 78 | var t3 = new Date(); 79 | var doc3 = libxml(data); 80 | var t4 = new Date(); 81 | var xmldomTime = t2-t1; 82 | var domjsTime = t3-t2; 83 | console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!') 84 | 85 | 86 | doc1 = doc1.cloneNode(true); 87 | addAttributes(doc1.documentElement); 88 | 89 | data = doc1.toString(); 90 | console.log('test more attribute xml') 91 | var t1 = new Date(); 92 | var doc1 = xmldom(data); 93 | var t2 = new Date(); 94 | var doc2 = domjs(data); 95 | var t3 = new Date(); 96 | var doc3 = libxml(data); 97 | var t4 = new Date(); 98 | var xmldomTime = t2-t1; 99 | var domjsTime = t3-t2; 100 | console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!') 101 | function xmlReplace(a,v){ 102 | switch(v){ 103 | case '&': 104 | return '&' 105 | case '<': 106 | return '<' 107 | default: 108 | if(v.length>1){ 109 | return v.replace(/([&<])/g,xmlReplace) 110 | } 111 | } 112 | } 113 | xmldomresult = (domjs(doc1+'')+'').replace(/^<\?.*?\?>\s*|/g,xmlReplace) 114 | domjsresult = (doc2+'').replace(/^<\?.*?\?>\s*|/g,xmlReplace) 115 | data = xmldomresult; 116 | //console.log(data.substring(100,200)) 117 | 118 | console.log('test more attribute xml without cdata') 119 | var t1 = new Date(); 120 | var doc1 = xmldom(data); 121 | var t2 = new Date(); 122 | var doc2 = domjs(data); 123 | var t3 = new Date(); 124 | var doc3 = libxml(data); 125 | var t4 = new Date(); 126 | var xmldomTime = t2-t1; 127 | var domjsTime = t3-t2; 128 | console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!') 129 | 130 | //console.log(xmldomresult,domjsresult) 131 | 132 | //assert.equal(xmldomresult,domjsresult); 133 | //,xmldomresult,domjsresult) 134 | if(xmldomresult !== domjsresult){ 135 | for(var i=0;i ![CDATA[v]] d &\n" 73 | console.log('test simple xml') 74 | var t1 = new Date(); 75 | var doc1 = xmldom(data); 76 | var t2 = new Date(); 77 | var doc2 = domjs(data); 78 | var t3 = new Date(); 79 | var doc3 = libxml(data); 80 | var t4 = new Date(); 81 | var xmldomTime = t2-t1; 82 | var domjsTime = t3-t2; 83 | console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!') 84 | 85 | 86 | doc1 = doc1.cloneNode(true); 87 | addAttributes(doc1.documentElement); 88 | 89 | data = doc1.toString(); 90 | console.log('test more attribute xml') 91 | var t1 = new Date(); 92 | var doc1 = xmldom(data); 93 | var t2 = new Date(); 94 | var doc2 = domjs(data); 95 | var t3 = new Date(); 96 | var doc3 = libxml(data); 97 | var t4 = new Date(); 98 | var xmldomTime = t2-t1; 99 | var domjsTime = t3-t2; 100 | console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!') 101 | function xmlReplace(a,v){ 102 | switch(v){ 103 | case '&': 104 | return '&' 105 | case '<': 106 | return '<' 107 | default: 108 | if(v.length>1){ 109 | return v.replace(/([&<])/g,xmlReplace) 110 | } 111 | } 112 | } 113 | xmldomresult = (domjs(doc1+'')+'').replace(/^<\?.*?\?>\s*|/g,xmlReplace) 114 | domjsresult = (doc2+'').replace(/^<\?.*?\?>\s*|/g,xmlReplace) 115 | data = xmldomresult; 116 | //console.log(data.substring(100,200)) 117 | 118 | console.log('test more attribute xml without cdata') 119 | var t1 = new Date(); 120 | var doc1 = xmldom(data); 121 | var t2 = new Date(); 122 | var doc2 = domjs(data); 123 | var t3 = new Date(); 124 | var doc3 = libxml(data); 125 | var t4 = new Date(); 126 | var xmldomTime = t2-t1; 127 | var domjsTime = t3-t2; 128 | console.assert(domjsTime>xmldomTime,'xmldom performance must more height!!') 129 | 130 | //console.log(xmldomresult,domjsresult) 131 | 132 | //assert.equal(xmldomresult,domjsresult); 133 | //,xmldomresult,domjsresult) 134 | if(xmldomresult !== domjsresult){ 135 | for(var i=0;i'); 10 | console.assert (dom.childNodes.length== 1,dom.childNodes.length, 1); 11 | console.assert (dom.documentElement.childNodes.length== 1); 12 | console.assert (dom.documentElement.tagName== 'xml'); 13 | console.assert (dom.documentElement.firstChild.tagName== 'child'); 14 | }, 15 | 'text':function(){ 16 | var dom = new DOMParser().parseFromString('start center end'); 17 | var root = dom.documentElement; 18 | console.assert( root.firstChild.data =='start center end'); 19 | console.assert( root.firstChild.nextSibling ==null); 20 | }, 21 | 'cdata': function () { 22 | var dom = new DOMParser().parseFromString('start ]]> end'); 23 | var root = dom.documentElement; 24 | console.assert ( root.firstChild.data =='start '); 25 | console.assert ( root.firstChild.nextSibling.data ==''); 26 | console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.data =='[[[[[[[[]]]]]]]]'); 27 | }, 28 | 'cdata empty': function () { 29 | var dom = new DOMParser().parseFromString('start end'); 30 | var root = dom.documentElement; 31 | console.assert ( root.textContent =='start end'); 32 | }, 33 | 'comment': function(){ 34 | var dom = new DOMParser().parseFromString(''); 35 | var root = dom.documentElement; 36 | console.assert ( root.firstChild.nodeValue ==' comment&>< '); 37 | }, 38 | 'cdata comment': function(){ 39 | var dom = new DOMParser().parseFromString('start ]]> end'); 40 | var root = dom.documentElement; 41 | console.assert ( root.firstChild.nodeValue =='start '); 42 | console.assert ( root.firstChild.nextSibling.nodeValue ==''); 43 | console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.nodeValue ==' comment '); 44 | console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.nextSibling.nodeValue =='end'); 45 | }, 46 | 'append node': function () { 47 | var dom = new DOMParser().parseFromString(''); 48 | var child = dom.createElement("child"); 49 | console.assert ( child == dom.documentElement.appendChild(child)); 50 | console.assert ( child == dom.documentElement.firstChild); 51 | var fragment = new dom.createDocumentFragment(); 52 | console.assert ( child == fragment.appendChild(child)); 53 | }, 54 | 'insert node': function () { 55 | var dom = new DOMParser().parseFromString(''); 56 | var node = dom.createElement("sibling"); 57 | var child = dom.documentElement.firstChild; 58 | child.parentNode.insertBefore(node, child); 59 | console.assert ( node == child.previousSibling); 60 | console.assert ( node.nextSibling == child); 61 | console.assert ( node.parentNode == child.parentNode); 62 | }, 63 | 'insert fragment': function () { 64 | var dom = new DOMParser().parseFromString(''); 65 | var fragment = dom.createDocumentFragment(); 66 | assert(fragment.nodeType === 11); 67 | var first = fragment.appendChild(dom.createElement("first")); 68 | var last = fragment.appendChild(dom.createElement("last")); 69 | console.assert ( fragment.firstChild == first); 70 | console.assert ( fragment.lastChild == last); 71 | console.assert ( last.previousSibling == first); 72 | console.assert ( first.nextSibling == last); 73 | var child = dom.documentElement.firstChild; 74 | child.parentNode.insertBefore(fragment, child); 75 | console.assert ( last.previousSibling == first); 76 | console.assert ( first.nextSibling == last); 77 | console.assert ( child.parentNode.firstChild == first); 78 | console.assert ( last == child.previousSibling); 79 | console.assert ( last.nextSibling == child); 80 | console.assert ( first.parentNode == child.parentNode); 81 | console.assert ( last.parentNode == child.parentNode); 82 | } 83 | }).addBatch({ 84 | "instruction":function(){ 85 | var source = '&'; 86 | var doc = new DOMParser().parseFromString(source,"text/xml"); 87 | var source2 = new XMLSerializer().serializeToString(doc); 88 | console.assert(source == source2,source2); 89 | } 90 | }).run(); // Run it 91 | //var ELEMENT_NODE = NodeType.ELEMENT_NODE = 1; 92 | //var ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2; 93 | //var TEXT_NODE = NodeType.TEXT_NODE = 3; 94 | //var CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4; 95 | //var ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5; 96 | //var ENTITY_NODE = NodeType.ENTITY_NODE = 6; 97 | //var PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7; 98 | //var COMMENT_NODE = NodeType.COMMENT_NODE = 8; 99 | //var DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9; 100 | //var DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10; 101 | //var DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11; 102 | //var NOTATION_NODE = NodeType.NOTATION_NODE = 12; 103 | -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/node.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var DOMParser = require('xmldom').DOMParser; 4 | var XMLSerializer = require('xmldom').XMLSerializer; 5 | var parser = new DOMParser(); 6 | // Create a Test Suite 7 | wows.describe('XML Node Parse').addBatch({ 8 | 'element': function () { 9 | var dom = new DOMParser().parseFromString(''); 10 | console.assert (dom.childNodes.length== 1,dom.childNodes.length, 1); 11 | console.assert (dom.documentElement.childNodes.length== 1); 12 | console.assert (dom.documentElement.tagName== 'xml'); 13 | console.assert (dom.documentElement.firstChild.tagName== 'child'); 14 | }, 15 | 'text':function(){ 16 | var dom = new DOMParser().parseFromString('start center end'); 17 | var root = dom.documentElement; 18 | console.assert( root.firstChild.data =='start center end'); 19 | console.assert( root.firstChild.nextSibling ==null); 20 | }, 21 | 'cdata': function () { 22 | var dom = new DOMParser().parseFromString('start ]]> end'); 23 | var root = dom.documentElement; 24 | console.assert ( root.firstChild.data =='start '); 25 | console.assert ( root.firstChild.nextSibling.data ==''); 26 | console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.data =='[[[[[[[[]]]]]]]]'); 27 | }, 28 | 'cdata empty': function () { 29 | var dom = new DOMParser().parseFromString('start end'); 30 | var root = dom.documentElement; 31 | console.assert ( root.textContent =='start end'); 32 | }, 33 | 'comment': function(){ 34 | var dom = new DOMParser().parseFromString(''); 35 | var root = dom.documentElement; 36 | console.assert ( root.firstChild.nodeValue ==' comment&>< '); 37 | }, 38 | 'cdata comment': function(){ 39 | var dom = new DOMParser().parseFromString('start ]]> end'); 40 | var root = dom.documentElement; 41 | console.assert ( root.firstChild.nodeValue =='start '); 42 | console.assert ( root.firstChild.nextSibling.nodeValue ==''); 43 | console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.nodeValue ==' comment '); 44 | console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.nextSibling.nodeValue =='end'); 45 | }, 46 | 'append node': function () { 47 | var dom = new DOMParser().parseFromString(''); 48 | var child = dom.createElement("child"); 49 | console.assert ( child == dom.documentElement.appendChild(child)); 50 | console.assert ( child == dom.documentElement.firstChild); 51 | var fragment = new dom.createDocumentFragment(); 52 | console.assert ( child == fragment.appendChild(child)); 53 | }, 54 | 'insert node': function () { 55 | var dom = new DOMParser().parseFromString(''); 56 | var node = dom.createElement("sibling"); 57 | var child = dom.documentElement.firstChild; 58 | child.parentNode.insertBefore(node, child); 59 | console.assert ( node == child.previousSibling); 60 | console.assert ( node.nextSibling == child); 61 | console.assert ( node.parentNode == child.parentNode); 62 | }, 63 | 'insert fragment': function () { 64 | var dom = new DOMParser().parseFromString(''); 65 | var fragment = dom.createDocumentFragment(); 66 | assert(fragment.nodeType === 11); 67 | var first = fragment.appendChild(dom.createElement("first")); 68 | var last = fragment.appendChild(dom.createElement("last")); 69 | console.assert ( fragment.firstChild == first); 70 | console.assert ( fragment.lastChild == last); 71 | console.assert ( last.previousSibling == first); 72 | console.assert ( first.nextSibling == last); 73 | var child = dom.documentElement.firstChild; 74 | child.parentNode.insertBefore(fragment, child); 75 | console.assert ( last.previousSibling == first); 76 | console.assert ( first.nextSibling == last); 77 | console.assert ( child.parentNode.firstChild == first); 78 | console.assert ( last == child.previousSibling); 79 | console.assert ( last.nextSibling == child); 80 | console.assert ( first.parentNode == child.parentNode); 81 | console.assert ( last.parentNode == child.parentNode); 82 | } 83 | }).addBatch({ 84 | "instruction":function(){ 85 | var source = '&'; 86 | var doc = new DOMParser().parseFromString(source,"text/xml"); 87 | var source2 = new XMLSerializer().serializeToString(doc); 88 | console.assert(source == source2,source2); 89 | } 90 | }).run(); // Run it 91 | //var ELEMENT_NODE = NodeType.ELEMENT_NODE = 1; 92 | //var ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2; 93 | //var TEXT_NODE = NodeType.TEXT_NODE = 3; 94 | //var CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4; 95 | //var ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5; 96 | //var ENTITY_NODE = NodeType.ENTITY_NODE = 6; 97 | //var PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7; 98 | //var COMMENT_NODE = NodeType.COMMENT_NODE = 8; 99 | //var DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9; 100 | //var DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10; 101 | //var DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11; 102 | //var NOTATION_NODE = NodeType.NOTATION_NODE = 12; 103 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/node.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var assert = require('assert'); 3 | var DOMParser = require('xmldom').DOMParser; 4 | var XMLSerializer = require('xmldom').XMLSerializer; 5 | var parser = new DOMParser(); 6 | // Create a Test Suite 7 | wows.describe('XML Node Parse').addBatch({ 8 | 'element': function () { 9 | var dom = new DOMParser().parseFromString(''); 10 | console.assert (dom.childNodes.length== 1,dom.childNodes.length, 1); 11 | console.assert (dom.documentElement.childNodes.length== 1); 12 | console.assert (dom.documentElement.tagName== 'xml'); 13 | console.assert (dom.documentElement.firstChild.tagName== 'child'); 14 | }, 15 | 'text':function(){ 16 | var dom = new DOMParser().parseFromString('start center end'); 17 | var root = dom.documentElement; 18 | console.assert( root.firstChild.data =='start center end'); 19 | console.assert( root.firstChild.nextSibling ==null); 20 | }, 21 | 'cdata': function () { 22 | var dom = new DOMParser().parseFromString('start ]]> end'); 23 | var root = dom.documentElement; 24 | console.assert ( root.firstChild.data =='start '); 25 | console.assert ( root.firstChild.nextSibling.data ==''); 26 | console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.data =='[[[[[[[[]]]]]]]]'); 27 | }, 28 | 'cdata empty': function () { 29 | var dom = new DOMParser().parseFromString('start end'); 30 | var root = dom.documentElement; 31 | console.assert ( root.textContent =='start end'); 32 | }, 33 | 'comment': function(){ 34 | var dom = new DOMParser().parseFromString(''); 35 | var root = dom.documentElement; 36 | console.assert ( root.firstChild.nodeValue ==' comment&>< '); 37 | }, 38 | 'cdata comment': function(){ 39 | var dom = new DOMParser().parseFromString('start ]]> end'); 40 | var root = dom.documentElement; 41 | console.assert ( root.firstChild.nodeValue =='start '); 42 | console.assert ( root.firstChild.nextSibling.nodeValue ==''); 43 | console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.nodeValue ==' comment '); 44 | console.assert ( root.firstChild.nextSibling.nextSibling.nextSibling.nextSibling.nodeValue =='end'); 45 | }, 46 | 'append node': function () { 47 | var dom = new DOMParser().parseFromString(''); 48 | var child = dom.createElement("child"); 49 | console.assert ( child == dom.documentElement.appendChild(child)); 50 | console.assert ( child == dom.documentElement.firstChild); 51 | var fragment = new dom.createDocumentFragment(); 52 | console.assert ( child == fragment.appendChild(child)); 53 | }, 54 | 'insert node': function () { 55 | var dom = new DOMParser().parseFromString(''); 56 | var node = dom.createElement("sibling"); 57 | var child = dom.documentElement.firstChild; 58 | child.parentNode.insertBefore(node, child); 59 | console.assert ( node == child.previousSibling); 60 | console.assert ( node.nextSibling == child); 61 | console.assert ( node.parentNode == child.parentNode); 62 | }, 63 | 'insert fragment': function () { 64 | var dom = new DOMParser().parseFromString(''); 65 | var fragment = dom.createDocumentFragment(); 66 | assert(fragment.nodeType === 11); 67 | var first = fragment.appendChild(dom.createElement("first")); 68 | var last = fragment.appendChild(dom.createElement("last")); 69 | console.assert ( fragment.firstChild == first); 70 | console.assert ( fragment.lastChild == last); 71 | console.assert ( last.previousSibling == first); 72 | console.assert ( first.nextSibling == last); 73 | var child = dom.documentElement.firstChild; 74 | child.parentNode.insertBefore(fragment, child); 75 | console.assert ( last.previousSibling == first); 76 | console.assert ( first.nextSibling == last); 77 | console.assert ( child.parentNode.firstChild == first); 78 | console.assert ( last == child.previousSibling); 79 | console.assert ( last.nextSibling == child); 80 | console.assert ( first.parentNode == child.parentNode); 81 | console.assert ( last.parentNode == child.parentNode); 82 | } 83 | }).addBatch({ 84 | "instruction":function(){ 85 | var source = '&'; 86 | var doc = new DOMParser().parseFromString(source,"text/xml"); 87 | var source2 = new XMLSerializer().serializeToString(doc); 88 | console.assert(source == source2,source2); 89 | } 90 | }).run(); // Run it 91 | //var ELEMENT_NODE = NodeType.ELEMENT_NODE = 1; 92 | //var ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2; 93 | //var TEXT_NODE = NodeType.TEXT_NODE = 3; 94 | //var CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4; 95 | //var ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5; 96 | //var ENTITY_NODE = NodeType.ENTITY_NODE = 6; 97 | //var PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7; 98 | //var COMMENT_NODE = NodeType.COMMENT_NODE = 8; 99 | //var DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9; 100 | //var DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10; 101 | //var DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11; 102 | //var NOTATION_NODE = NodeType.NOTATION_NODE = 12; 103 | -------------------------------------------------------------------------------- /Maze/server/data/02-for-experts-only.js: -------------------------------------------------------------------------------- 1 | { 2 | "_id" : "ten-by-ten", 3 | "title" : "For Experts Only", 4 | "cells" : { 5 | "cell0":{"title":"Entry", "doors":[1,1,1,0]}, 6 | "cell1":{"title":"Living Room", "doors":[1,1,0,0]}, 7 | "cell2":{"title":"Dressing Room", "doors":[0,1,0,1]}, 8 | "cell3":{"title":"Family Room", "doors":[0,1,0,1]}, 9 | "cell4":{"title":"Kitchen", "doors":[0,1,0,1]}, 10 | "cell5":{"title":"Formal Living Room", "doors":[0,1,1,0]}, 11 | "cell6":{"title":"Pantry", "doors":[1,1,1,0]}, 12 | "cell7":{"title":"Nook", "doors":[1,1,0,0]}, 13 | "cell8":{"title":"Dining Room", "doors":[0,1,0,0]}, 14 | "cell9":{"title":"Master Bedroom", "doors":[0,1,1,0]}, 15 | "cell10":{"title":"Formal Dining", "doors":[1,0,0,1]}, 16 | "cell11":{"title":"Closet", "doors":[0,0,1,1]}, 17 | "cell12":{"title":"Dressing Room", "doors":[1,1,0,0]}, 18 | "cell13":{"title":"Nursery", "doors":[0,1,1,1]}, 19 | "cell14":{"title":"Walk-In Closet", "doors":[1,1,0,0]}, 20 | "cell15":{"title":"Bedroom", "doors":[0,0,1,1]}, 21 | "cell16":{"title":"Guest Bedroom", "doors":[1,0,1,0]}, 22 | "cell17":{"title":"Master Bath Room", "doors":[1,0,1,0]}, 23 | "cell18":{"title":"Guest Suite", "doors":[1,0,1,0]}, 24 | "cell19":{"title":"Bath Room", "doors":[1,0,1,0]}, 25 | "cell20":{"title":"Mother-In-Law Quarters", "doors":[1,1,1,0]}, 26 | "cell21":{"title":"Walk-In Shower", "doors":[1,1,0,0]}, 27 | "cell22":{"title":"Sauna", "doors":[0,0,0,1]}, 28 | "cell23":{"title":"Mud Room", "doors":[0,1,0,1]}, 29 | "cell24":{"title":"Three-Quarter Bath", "doors":[0,0,1,1]}, 30 | "cell25":{"title":"Sitting Room", "doors":[1,1,0,0]}, 31 | "cell26":{"title":"Half-Bath", "doors":[0,0,1,0]}, 32 | "cell27":{"title":"Coat Closet", "doors":[1,0,1,0]}, 33 | "cell28":{"title":"Powder Room", "doors":[1,0,1,0]}, 34 | "cell29":{"title":"Utility Room", "doors":[1,0,1,1]}, 35 | "cell30":{"title":"Metalshop", "doors":[1,0,0,0]}, 36 | "cell31":{"title":"Laundry Room", "doors":[0,0,1,1]}, 37 | "cell32":{"title":"Woodshop", "doors":[1,1,0,1]}, 38 | "cell33":{"title":"Sewing Room", "doors":[0,1,0,1]}, 39 | "cell34":{"title":"Climbing Gym", "doors":[0,1,0,0]}, 40 | "cell35":{"title":"Storage Room", "doors":[0,0,1,1]}, 41 | "cell36":{"title":"Card Room", "doors":[1,0,0,1]}, 42 | "cell37":{"title":"Mechanical Room", "doors":[0,0,1,1]}, 43 | "cell38":{"title":"Bowling Alley", "doors":[1,0,0,1]}, 44 | "cell39":{"title":"Garage", "doors":[0,1,1,0]}, 45 | "cell40":{"title":"Indoor Tennis Court", "doors":[1,0,0,1]}, 46 | "cell41":{"title":"RV Garage", "doors":[0,1,0,1]}, 47 | "cell42":{"title":"Concert Hall", "doors":[0,1,0,1]}, 48 | "cell43":{"title":"Work Shop", "doors":[0,1,1,0]}, 49 | "cell44":{"title":"Theater", "doors":[1,0,0,1]}, 50 | "cell45":{"title":"Home Gym", "doors":[0,1,1,1]}, 51 | "cell46":{"title":"Television Room", "doors":[1,1,0,0]}, 52 | "cell47":{"title":"Home Office", "doors":[0,1,0,1]}, 53 | "cell48":{"title":"Fight Room", "doors":[0,1,1,0]}, 54 | "cell49":{"title":"Study", "doors":[1,0,1,0]}, 55 | "cell50":{"title":"Dance Room", "doors":[1,1,0,0]}, 56 | "cell51":{"title":"Library", "doors":[0,1,0,1]}, 57 | "cell52":{"title":"Tape Room", "doors":[0,1,1,0]}, 58 | "cell53":{"title":"Drawing Room", "doors":[1,0,0,1]}, 59 | "cell54":{"title":"Insect Room", "doors":[0,1,1,0]}, 60 | "cell55":{"title":"Reading Room", "doors":[1,1,0,0]}, 61 | "cell56":{"title":"Lizard Room", "doors":[0,0,1,1]}, 62 | "cell57":{"title":"Retreat", "doors":[1,1,1,0]}, 63 | "cell58":{"title":"Bird Room", "doors":[1,0,0,1]}, 64 | "cell59":{"title":"Den", "doors":[0,0,1,0]}, 65 | "cell60":{"title":"Cat Room", "doors":[1,0,1,1]}, 66 | "cell61":{"title":"Parlor", "doors":[1,1,0,0]}, 67 | "cell62":{"title":"Dog Room", "doors":[0,0,1,0]}, 68 | "cell63":{"title":"Game Room", "doors":[1,1,0,0]}, 69 | "cell64":{"title":"Phone Room", "doors":[0,0,1,1]}, 70 | "cell65":{"title":"Play Room", "doors":[1,0,0,1]}, 71 | "cell66":{"title":"Laptop Room", "doors":[0,1,1,0]}, 72 | "cell67":{"title":"Media Room", "doors":[1,0,0,0]}, 73 | "cell68":{"title":"Panic Room", "doors":[0,1,1,0]}, 74 | "cell69":{"title":"Wet Bar", "doors":[1,0,1,0]}, 75 | "cell70":{"title":"Computer Room", "doors":[1,1,0,0]}, 76 | "cell71":{"title":"Butler's Quarters", "doors":[0,0,1,0]}, 77 | "cell72":{"title":"Hall of Oats", "doors":[1,0,1,1]}, 78 | "cell73":{"title":"Maid's Quarters", "doors":[1,0,0,1]}, 79 | "cell74":{"title":"Hall of Monty", "doors":[0,1,0,1]}, 80 | "cell75":{"title":"Butler's Kitchen", "doors":[0,1,0,1]}, 81 | "cell76":{"title":"Hall of Easels", "doors":[0,0,1,1]}, 82 | "cell77":{"title":"Butler's Pantry", "doors":[1,0,1,0]}, 83 | "cell78":{"title":"Hall of Prints", "doors":[1,0,1,1]}, 84 | "cell79":{"title":"Wine Room", "doors":[1,0,1,0]}, 85 | "cell80":{"title":"Hall of Fiber Art", "doors":[1,0,1,0]}, 86 | "cell81":{"title":"Atrium", "doors":[1,0,1,1]}, 87 | "cell82":{"title":"Hall of Sculpture", "doors":[1,1,0,0]}, 88 | "cell83":{"title":"Lounge", "doors":[0,1,0,1]}, 89 | "cell84":{"title":"Hall of Silverware", "doors":[0,1,1,0]}, 90 | "cell85":{"title":"Gallery", "doors":[1,1,0,0]}, 91 | "cell86":{"title":"Hall of Plates", "doors":[0,1,1,0]}, 92 | "cell87":{"title":"Kitchenette", "doors":[1,0,0,0]}, 93 | "cell88":{"title":"Hall of Windows", "doors":[0,1,0,1]}, 94 | "cell89":{"title":"Indoor Pool", "doors":[0,0,1,1]}, 95 | "cell90":{"title":"Hall of Mirrors", "doors":[1,0,0,1]}, 96 | "cell91":{"title":"Indoor Spa", "doors":[0,1,0,1]}, 97 | "cell92":{"title":"Chamber of Enemies", "doors":[0,0,0,1]}, 98 | "cell93":{"title":"Gun Room", "doors":[0,1,1,1]}, 99 | "cell94":{"title":"Chamber of Pets", "doors":[1,0,0,1]}, 100 | "cell95":{"title":"Sword Room", "doors":[0,0,1,1]}, 101 | "cell96":{"title":"Chamber of Planets", "doors":[1,0,0,1]}, 102 | "cell97":{"title":"Archery Room", "doors":[0,0,0,1]}, 103 | "cell98":{"title":"Chamber of Stars", "doors":[0,1,0,1]}, 104 | "cell99":{"title":"Nunchuck Room", "doors":[0,1,1,1]} 105 | } 106 | } 107 | 108 | -------------------------------------------------------------------------------- /Maze/server/app.js: -------------------------------------------------------------------------------- 1 | /* RESTful Web APIs - 2013 */ 2 | /* Maze+XML server implementation */ 3 | 4 | var http = require('http'); 5 | var mazes = require('./mazes.js'); 6 | 7 | var port = (process.env.PORT||1337); 8 | var root = ''; 9 | 10 | // add support for CORS 11 | var headers = { 12 | 'Content-Type' : 'application/xml', 13 | 'Access-Control-Allow-Origin' : '*', 14 | 'Access-Control-Allow-Methods' : '*', 15 | 'Access-Control-Allow-Headers' : '*' 16 | }; 17 | 18 | // document model for responses 19 | var template = {}; 20 | template.mazeStart = ''; 21 | template.mazeEnd = ''; 22 | template.collectionStart = ''; 23 | template.collectionEnd = ''; 24 | template.itemStart = ''; 25 | template.itemEnd = ''; 26 | template.cellStart = ''; 27 | template.cellEnd = ''; 28 | template.link = ''; 29 | template.titleLink = ''; 30 | template.error = '{t}'; 31 | 32 | // handle request 33 | function handler(req, res) { 34 | var segments, i, x, parts; 35 | 36 | // set global var 37 | root = 'http://'+req.headers.host; 38 | 39 | // simple routing 40 | parts = []; 41 | segments = req.url.split('/'); 42 | for(i=0,x=segments.length;inpm install xmldom 10 | 11 | Example: 12 | ==== 13 | ```javascript 14 | var DOMParser = require('xmldom').DOMParser; 15 | var doc = new DOMParser().parseFromString( 16 | '\n'+ 17 | '\ttest\n'+ 18 | '\t\n'+ 19 | '\t\n'+ 20 | '' 21 | ,'text/xml'); 22 | doc.documentElement.setAttribute('x','y'); 23 | doc.documentElement.setAttributeNS('./lite','c:x','y2'); 24 | var nsAttr = doc.documentElement.getAttributeNS('./lite','x') 25 | console.info(nsAttr) 26 | console.info(doc) 27 | ``` 28 | API Reference 29 | ===== 30 | 31 | * [DOMParser](https://developer.mozilla.org/en/DOMParser): 32 | 33 | ```javascript 34 | parseFromString(xmlsource,mimeType) 35 | ``` 36 | * **options extension** _by xmldom_(not BOM standard!!) 37 | 38 | ```javascript 39 | //added the options argument 40 | new DOMParser(options) 41 | 42 | //errorHandler is supported 43 | new DOMParser({ 44 | /** 45 | * youcan override the errorHandler for xml parser 46 | * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html 47 | */ 48 | errorHandler:{warning:callback,error:callback,fatalError:callback} 49 | }) 50 | 51 | ``` 52 | 53 | * [XMLSerializer](https://developer.mozilla.org/en/XMLSerializer) 54 | 55 | ```javascript 56 | serializeToString(node) 57 | ``` 58 | DOM level2 method and attribute: 59 | ------ 60 | 61 | * [Node](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247) 62 | 63 | attribute: 64 | nodeValue|prefix 65 | readonly attribute: 66 | nodeName|nodeType|parentNode|childNodes|firstChild|lastChild|previousSibling|nextSibling|attributes|ownerDocument|namespaceURI|localName 67 | method: 68 | insertBefore(newChild, refChild) 69 | replaceChild(newChild, oldChild) 70 | removeChild(oldChild) 71 | appendChild(newChild) 72 | hasChildNodes() 73 | cloneNode(deep) 74 | normalize() 75 | isSupported(feature, version) 76 | hasAttributes() 77 | 78 | * [DOMImplementation](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-102161490) 79 | 80 | method: 81 | hasFeature(feature, version) 82 | createDocumentType(qualifiedName, publicId, systemId) 83 | createDocument(namespaceURI, qualifiedName, doctype) 84 | 85 | * [Document](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#i-Document) : Node 86 | 87 | readonly attribute: 88 | doctype|implementation|documentElement 89 | method: 90 | createElement(tagName) 91 | createDocumentFragment() 92 | createTextNode(data) 93 | createComment(data) 94 | createCDATASection(data) 95 | createProcessingInstruction(target, data) 96 | createAttribute(name) 97 | createEntityReference(name) 98 | getElementsByTagName(tagname) 99 | importNode(importedNode, deep) 100 | createElementNS(namespaceURI, qualifiedName) 101 | createAttributeNS(namespaceURI, qualifiedName) 102 | getElementsByTagNameNS(namespaceURI, localName) 103 | getElementById(elementId) 104 | 105 | * [DocumentFragment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-B63ED1A3) : Node 106 | * [Element](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-745549614) : Node 107 | 108 | readonly attribute: 109 | tagName 110 | method: 111 | getAttribute(name) 112 | setAttribute(name, value) 113 | removeAttribute(name) 114 | getAttributeNode(name) 115 | setAttributeNode(newAttr) 116 | removeAttributeNode(oldAttr) 117 | getElementsByTagName(name) 118 | getAttributeNS(namespaceURI, localName) 119 | setAttributeNS(namespaceURI, qualifiedName, value) 120 | removeAttributeNS(namespaceURI, localName) 121 | getAttributeNodeNS(namespaceURI, localName) 122 | setAttributeNodeNS(newAttr) 123 | getElementsByTagNameNS(namespaceURI, localName) 124 | hasAttribute(name) 125 | hasAttributeNS(namespaceURI, localName) 126 | 127 | * [Attr](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-637646024) : Node 128 | 129 | attribute: 130 | value 131 | readonly attribute: 132 | name|specified|ownerElement 133 | 134 | * [NodeList](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177) 135 | 136 | readonly attribute: 137 | length 138 | method: 139 | item(index) 140 | 141 | * [NamedNodeMap](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1780488922) 142 | 143 | readonly attribute: 144 | length 145 | method: 146 | getNamedItem(name) 147 | setNamedItem(arg) 148 | removeNamedItem(name) 149 | item(index) 150 | getNamedItemNS(namespaceURI, localName) 151 | setNamedItemNS(arg) 152 | removeNamedItemNS(namespaceURI, localName) 153 | 154 | * [CharacterData](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-FF21A306) : Node 155 | 156 | method: 157 | substringData(offset, count) 158 | appendData(arg) 159 | insertData(offset, arg) 160 | deleteData(offset, count) 161 | replaceData(offset, count, arg) 162 | 163 | * [Text](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1312295772) : CharacterData 164 | 165 | method: 166 | splitText(offset) 167 | 168 | * [CDATASection](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-667469212) 169 | * [Comment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1728279322) : CharacterData 170 | 171 | * [DocumentType](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-412266927) 172 | 173 | readonly attribute: 174 | name|entities|notations|publicId|systemId|internalSubset 175 | 176 | * Notation : Node 177 | 178 | readonly attribute: 179 | publicId|systemId 180 | 181 | * Entity : Node 182 | 183 | readonly attribute: 184 | publicId|systemId|notationName 185 | 186 | * EntityReference : Node 187 | * ProcessingInstruction : Node 188 | 189 | attribute: 190 | data 191 | readonly attribute: 192 | target 193 | 194 | DOM level 3 support: 195 | ----- 196 | 197 | * [Node](http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent) 198 | 199 | attribute: 200 | textContent 201 | method: 202 | isDefaultNamespace(namespaceURI){ 203 | lookupNamespaceURI(prefix) 204 | 205 | DOM extension by xmldom 206 | --- 207 | * [Node] 208 | Source position extension; 209 | attribute: 210 | //Numbered starting from '1' 211 | lineNumber 212 | //Numbered starting from '1' 213 | columnNumber 214 | -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/readme.md: -------------------------------------------------------------------------------- 1 | Introduction 2 | ------- 3 | Another xml parser for nodejs/browser/rhino for java. 4 | Fully compatible with `W3C DOM level2`; and some compatible with `level3`. 5 | support `DOMParser` and `XMLSerializer` interface such as in browser. 6 | 7 | Install: 8 | ------- 9 | >npm install xmldom 10 | 11 | Example: 12 | ==== 13 | ```javascript 14 | var DOMParser = require('xmldom').DOMParser; 15 | var doc = new DOMParser().parseFromString( 16 | '\n'+ 17 | '\ttest\n'+ 18 | '\t\n'+ 19 | '\t\n'+ 20 | '' 21 | ,'text/xml'); 22 | doc.documentElement.setAttribute('x','y'); 23 | doc.documentElement.setAttributeNS('./lite','c:x','y2'); 24 | var nsAttr = doc.documentElement.getAttributeNS('./lite','x') 25 | console.info(nsAttr) 26 | console.info(doc) 27 | ``` 28 | API Reference 29 | ===== 30 | 31 | * [DOMParser](https://developer.mozilla.org/en/DOMParser): 32 | 33 | ```javascript 34 | parseFromString(xmlsource,mimeType) 35 | ``` 36 | * **options extension** _by xmldom_(not BOM standard!!) 37 | 38 | ```javascript 39 | //added the options argument 40 | new DOMParser(options) 41 | 42 | //errorHandler is supported 43 | new DOMParser({ 44 | /** 45 | * youcan override the errorHandler for xml parser 46 | * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html 47 | */ 48 | errorHandler:{warning:callback,error:callback,fatalError:callback} 49 | }) 50 | 51 | ``` 52 | 53 | * [XMLSerializer](https://developer.mozilla.org/en/XMLSerializer) 54 | 55 | ```javascript 56 | serializeToString(node) 57 | ``` 58 | DOM level2 method and attribute: 59 | ------ 60 | 61 | * [Node](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247) 62 | 63 | attribute: 64 | nodeValue|prefix 65 | readonly attribute: 66 | nodeName|nodeType|parentNode|childNodes|firstChild|lastChild|previousSibling|nextSibling|attributes|ownerDocument|namespaceURI|localName 67 | method: 68 | insertBefore(newChild, refChild) 69 | replaceChild(newChild, oldChild) 70 | removeChild(oldChild) 71 | appendChild(newChild) 72 | hasChildNodes() 73 | cloneNode(deep) 74 | normalize() 75 | isSupported(feature, version) 76 | hasAttributes() 77 | 78 | * [DOMImplementation](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-102161490) 79 | 80 | method: 81 | hasFeature(feature, version) 82 | createDocumentType(qualifiedName, publicId, systemId) 83 | createDocument(namespaceURI, qualifiedName, doctype) 84 | 85 | * [Document](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#i-Document) : Node 86 | 87 | readonly attribute: 88 | doctype|implementation|documentElement 89 | method: 90 | createElement(tagName) 91 | createDocumentFragment() 92 | createTextNode(data) 93 | createComment(data) 94 | createCDATASection(data) 95 | createProcessingInstruction(target, data) 96 | createAttribute(name) 97 | createEntityReference(name) 98 | getElementsByTagName(tagname) 99 | importNode(importedNode, deep) 100 | createElementNS(namespaceURI, qualifiedName) 101 | createAttributeNS(namespaceURI, qualifiedName) 102 | getElementsByTagNameNS(namespaceURI, localName) 103 | getElementById(elementId) 104 | 105 | * [DocumentFragment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-B63ED1A3) : Node 106 | * [Element](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-745549614) : Node 107 | 108 | readonly attribute: 109 | tagName 110 | method: 111 | getAttribute(name) 112 | setAttribute(name, value) 113 | removeAttribute(name) 114 | getAttributeNode(name) 115 | setAttributeNode(newAttr) 116 | removeAttributeNode(oldAttr) 117 | getElementsByTagName(name) 118 | getAttributeNS(namespaceURI, localName) 119 | setAttributeNS(namespaceURI, qualifiedName, value) 120 | removeAttributeNS(namespaceURI, localName) 121 | getAttributeNodeNS(namespaceURI, localName) 122 | setAttributeNodeNS(newAttr) 123 | getElementsByTagNameNS(namespaceURI, localName) 124 | hasAttribute(name) 125 | hasAttributeNS(namespaceURI, localName) 126 | 127 | * [Attr](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-637646024) : Node 128 | 129 | attribute: 130 | value 131 | readonly attribute: 132 | name|specified|ownerElement 133 | 134 | * [NodeList](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177) 135 | 136 | readonly attribute: 137 | length 138 | method: 139 | item(index) 140 | 141 | * [NamedNodeMap](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1780488922) 142 | 143 | readonly attribute: 144 | length 145 | method: 146 | getNamedItem(name) 147 | setNamedItem(arg) 148 | removeNamedItem(name) 149 | item(index) 150 | getNamedItemNS(namespaceURI, localName) 151 | setNamedItemNS(arg) 152 | removeNamedItemNS(namespaceURI, localName) 153 | 154 | * [CharacterData](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-FF21A306) : Node 155 | 156 | method: 157 | substringData(offset, count) 158 | appendData(arg) 159 | insertData(offset, arg) 160 | deleteData(offset, count) 161 | replaceData(offset, count, arg) 162 | 163 | * [Text](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1312295772) : CharacterData 164 | 165 | method: 166 | splitText(offset) 167 | 168 | * [CDATASection](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-667469212) 169 | * [Comment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1728279322) : CharacterData 170 | 171 | * [DocumentType](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-412266927) 172 | 173 | readonly attribute: 174 | name|entities|notations|publicId|systemId|internalSubset 175 | 176 | * Notation : Node 177 | 178 | readonly attribute: 179 | publicId|systemId 180 | 181 | * Entity : Node 182 | 183 | readonly attribute: 184 | publicId|systemId|notationName 185 | 186 | * EntityReference : Node 187 | * ProcessingInstruction : Node 188 | 189 | attribute: 190 | data 191 | readonly attribute: 192 | target 193 | 194 | DOM level 3 support: 195 | ----- 196 | 197 | * [Node](http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent) 198 | 199 | attribute: 200 | textContent 201 | method: 202 | isDefaultNamespace(namespaceURI){ 203 | lookupNamespaceURI(prefix) 204 | 205 | DOM extension by xmldom 206 | --- 207 | * [Node] 208 | Source position extension; 209 | attribute: 210 | //Numbered starting from '1' 211 | lineNumber 212 | //Numbered starting from '1' 213 | columnNumber 214 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/readme.md: -------------------------------------------------------------------------------- 1 | Introduction 2 | ------- 3 | Another xml parser for nodejs/browser/rhino for java. 4 | Fully compatible with `W3C DOM level2`; and some compatible with `level3`. 5 | support `DOMParser` and `XMLSerializer` interface such as in browser. 6 | 7 | Install: 8 | ------- 9 | >npm install xmldom 10 | 11 | Example: 12 | ==== 13 | ```javascript 14 | var DOMParser = require('xmldom').DOMParser; 15 | var doc = new DOMParser().parseFromString( 16 | '\n'+ 17 | '\ttest\n'+ 18 | '\t\n'+ 19 | '\t\n'+ 20 | '' 21 | ,'text/xml'); 22 | doc.documentElement.setAttribute('x','y'); 23 | doc.documentElement.setAttributeNS('./lite','c:x','y2'); 24 | var nsAttr = doc.documentElement.getAttributeNS('./lite','x') 25 | console.info(nsAttr) 26 | console.info(doc) 27 | ``` 28 | API Reference 29 | ===== 30 | 31 | * [DOMParser](https://developer.mozilla.org/en/DOMParser): 32 | 33 | ```javascript 34 | parseFromString(xmlsource,mimeType) 35 | ``` 36 | * **options extension** _by xmldom_(not BOM standard!!) 37 | 38 | ```javascript 39 | //added the options argument 40 | new DOMParser(options) 41 | 42 | //errorHandler is supported 43 | new DOMParser({ 44 | /** 45 | * youcan override the errorHandler for xml parser 46 | * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html 47 | */ 48 | errorHandler:{warning:callback,error:callback,fatalError:callback} 49 | }) 50 | 51 | ``` 52 | 53 | * [XMLSerializer](https://developer.mozilla.org/en/XMLSerializer) 54 | 55 | ```javascript 56 | serializeToString(node) 57 | ``` 58 | DOM level2 method and attribute: 59 | ------ 60 | 61 | * [Node](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247) 62 | 63 | attribute: 64 | nodeValue|prefix 65 | readonly attribute: 66 | nodeName|nodeType|parentNode|childNodes|firstChild|lastChild|previousSibling|nextSibling|attributes|ownerDocument|namespaceURI|localName 67 | method: 68 | insertBefore(newChild, refChild) 69 | replaceChild(newChild, oldChild) 70 | removeChild(oldChild) 71 | appendChild(newChild) 72 | hasChildNodes() 73 | cloneNode(deep) 74 | normalize() 75 | isSupported(feature, version) 76 | hasAttributes() 77 | 78 | * [DOMImplementation](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-102161490) 79 | 80 | method: 81 | hasFeature(feature, version) 82 | createDocumentType(qualifiedName, publicId, systemId) 83 | createDocument(namespaceURI, qualifiedName, doctype) 84 | 85 | * [Document](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#i-Document) : Node 86 | 87 | readonly attribute: 88 | doctype|implementation|documentElement 89 | method: 90 | createElement(tagName) 91 | createDocumentFragment() 92 | createTextNode(data) 93 | createComment(data) 94 | createCDATASection(data) 95 | createProcessingInstruction(target, data) 96 | createAttribute(name) 97 | createEntityReference(name) 98 | getElementsByTagName(tagname) 99 | importNode(importedNode, deep) 100 | createElementNS(namespaceURI, qualifiedName) 101 | createAttributeNS(namespaceURI, qualifiedName) 102 | getElementsByTagNameNS(namespaceURI, localName) 103 | getElementById(elementId) 104 | 105 | * [DocumentFragment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-B63ED1A3) : Node 106 | * [Element](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-745549614) : Node 107 | 108 | readonly attribute: 109 | tagName 110 | method: 111 | getAttribute(name) 112 | setAttribute(name, value) 113 | removeAttribute(name) 114 | getAttributeNode(name) 115 | setAttributeNode(newAttr) 116 | removeAttributeNode(oldAttr) 117 | getElementsByTagName(name) 118 | getAttributeNS(namespaceURI, localName) 119 | setAttributeNS(namespaceURI, qualifiedName, value) 120 | removeAttributeNS(namespaceURI, localName) 121 | getAttributeNodeNS(namespaceURI, localName) 122 | setAttributeNodeNS(newAttr) 123 | getElementsByTagNameNS(namespaceURI, localName) 124 | hasAttribute(name) 125 | hasAttributeNS(namespaceURI, localName) 126 | 127 | * [Attr](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-637646024) : Node 128 | 129 | attribute: 130 | value 131 | readonly attribute: 132 | name|specified|ownerElement 133 | 134 | * [NodeList](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177) 135 | 136 | readonly attribute: 137 | length 138 | method: 139 | item(index) 140 | 141 | * [NamedNodeMap](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1780488922) 142 | 143 | readonly attribute: 144 | length 145 | method: 146 | getNamedItem(name) 147 | setNamedItem(arg) 148 | removeNamedItem(name) 149 | item(index) 150 | getNamedItemNS(namespaceURI, localName) 151 | setNamedItemNS(arg) 152 | removeNamedItemNS(namespaceURI, localName) 153 | 154 | * [CharacterData](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-FF21A306) : Node 155 | 156 | method: 157 | substringData(offset, count) 158 | appendData(arg) 159 | insertData(offset, arg) 160 | deleteData(offset, count) 161 | replaceData(offset, count, arg) 162 | 163 | * [Text](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1312295772) : CharacterData 164 | 165 | method: 166 | splitText(offset) 167 | 168 | * [CDATASection](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-667469212) 169 | * [Comment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1728279322) : CharacterData 170 | 171 | * [DocumentType](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-412266927) 172 | 173 | readonly attribute: 174 | name|entities|notations|publicId|systemId|internalSubset 175 | 176 | * Notation : Node 177 | 178 | readonly attribute: 179 | publicId|systemId 180 | 181 | * Entity : Node 182 | 183 | readonly attribute: 184 | publicId|systemId|notationName 185 | 186 | * EntityReference : Node 187 | * ProcessingInstruction : Node 188 | 189 | attribute: 190 | data 191 | readonly attribute: 192 | target 193 | 194 | DOM level 3 support: 195 | ----- 196 | 197 | * [Node](http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent) 198 | 199 | attribute: 200 | textContent 201 | method: 202 | isDefaultNamespace(namespaceURI){ 203 | lookupNamespaceURI(prefix) 204 | 205 | DOM extension by xmldom 206 | --- 207 | * [Node] 208 | Source position extension; 209 | attribute: 210 | //Numbered starting from '1' 211 | lineNumber 212 | //Numbered starting from '1' 213 | columnNumber 214 | -------------------------------------------------------------------------------- /Maze/the-bot/node_modules/xmldom/test/dom/element.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | var XMLSerializer = require('xmldom').XMLSerializer; 4 | // Create a Test Suite 5 | wows.describe('XML Namespace Parse').addBatch({ 6 | // See: http://jsfiddle.net/bigeasy/ShcXP/1/ 7 | "Document_getElementsByTagName":function () { 8 | var doc = new DOMParser().parseFromString(''); 9 | console.assert(doc.getElementsByTagName('*').length == 2); 10 | console.assert(doc.documentElement.getElementsByTagName('*').length == 1); 11 | }, 12 | 'getElementsByTagName': function () { 13 | 14 | 15 | var doc = new DOMParser().parseFromString('' + 16 | ''+ 17 | '' + 18 | '','text/xml'); 19 | var childs = doc.documentElement.getElementsByTagName('child'); 20 | console.assert(childs.item(0).getAttribute('attr')=="1",childs.item(0)+''); 21 | console.assert(childs.item(1).getAttribute('attr')=="2",childs.item(1)+''); 22 | console.assert(childs.item(2).getAttribute('attr')=="3",childs.item(2)+''); 23 | console.assert(childs.length==3,3,childs.length); 24 | 25 | var childs = doc.getElementsByTagName('child'); 26 | console.assert(childs.item(0).getAttribute('attr')=="1",childs.item(0)+''); 27 | console.assert(childs.item(1).getAttribute('attr')=="2",childs.item(1)+''); 28 | console.assert(childs.item(2).getAttribute('attr')=="3",childs.item(2)+''); 29 | console.assert(childs.length==3,3,childs.length); 30 | 31 | 32 | 33 | 34 | 35 | var childs = doc.documentElement.getElementsByTagName('*'); 36 | for(var i=0,buf = [];ifoo'); 45 | var entries = feed.documentElement.getElementsByTagName('entry'); 46 | console.log(entries[0].nodeName); 47 | console.log(feed.documentElement.childNodes.item(0).nodeName); 48 | }, 49 | 'getElementsByTagNameNS': function () { 50 | var doc = new DOMParser().parseFromString('' + 51 | ''+ 52 | '' + 53 | '','text/xml'); 54 | 55 | var childs = doc.documentElement.getElementsByTagNameNS("http://test.com",'*'); 56 | console.assert(childs.length==6,childs.length); 57 | 58 | var childs = doc.getElementsByTagNameNS("http://test.com",'*'); 59 | console.assert(childs.length==7,childs.length); 60 | 61 | 62 | var childs = doc.documentElement.getElementsByTagNameNS("http://test.com",'test'); 63 | console.assert(childs.length==3,childs.length); 64 | 65 | var childs = doc.getElementsByTagNameNS("http://test.com",'test'); 66 | console.assert(childs.length==3,childs.length); 67 | 68 | 69 | 70 | }, 71 | 'getElementById': function () { 72 | var doc = new DOMParser().parseFromString('' + 73 | '' + 74 | '','text/xml'); 75 | console.assert(doc.getElementById('root')) 76 | console.assert(doc.getElementById('a1').getAttribute('title')=="1",doc.getElementById('a1')); 77 | console.assert(doc.getElementById('a2').getAttribute('title')=="2",doc.getElementById('a2')); 78 | console.assert(doc.getElementById('a2').getAttribute('title2')=="",doc.getElementById('a2')); 79 | }, 80 | "append exist child":function(){ 81 | var doc = new DOMParser().parseFromString('' + 82 | '' + 83 | '','text/xml'); 84 | 85 | var doc1 = doc; 86 | var str1=new XMLSerializer().serializeToString(doc); 87 | var doc2 = doc1.cloneNode(true); 88 | var doc3 = doc1.cloneNode(true); 89 | var doc4 = doc1.cloneNode(true); 90 | 91 | doc3.documentElement.appendChild(doc3.documentElement.lastChild); 92 | doc4.documentElement.appendChild(doc4.documentElement.firstChild); 93 | 94 | var str2=new XMLSerializer().serializeToString(doc2); 95 | var str3=new XMLSerializer().serializeToString(doc3); 96 | var str4=new XMLSerializer().serializeToString(doc4); 97 | console.assert(str1 == str2 && str2 == str3,str3,str1); 98 | console.assert(str3 != str4 && str3.length == str4.length,str3); 99 | 100 | }, 101 | "append exist other child":function(){ 102 | var doc = new DOMParser().parseFromString('' + 103 | '' + 104 | '','text/xml'); 105 | 106 | var doc1 = doc; 107 | var str1=new XMLSerializer().serializeToString(doc); 108 | var doc2 = doc1.cloneNode(true); 109 | 110 | console.assert(doc2.documentElement.lastChild.childNodes.length == 0); 111 | doc2.documentElement.appendChild(doc2.documentElement.firstChild.firstChild); 112 | 113 | var str2=new XMLSerializer().serializeToString(doc2); 114 | 115 | console.assert(doc2.documentElement.lastChild.childNodes.length == 1); 116 | console.assert(str1 != str2 && str1.length != str2.length,str3); 117 | var doc3 = new DOMParser().parseFromString(str2,'text/xml'); 118 | doc3.documentElement.firstChild.appendChild(doc3.documentElement.lastChild); 119 | var str3 = new XMLSerializer().serializeToString(doc3); 120 | console.assert(str1 == str3); 121 | }, 122 | "set textContent":function() { 123 | var doc = new DOMParser().parseFromString(''); 124 | var a = doc.documentElement.firstChild; 125 | var b = a.nextSibling; 126 | a.textContent = 'hello'; 127 | console.assert(doc.documentElement.toString() == 'hello'); 128 | b.textContent = 'there'; 129 | console.assert(doc.documentElement.toString() == 'hellothere'); 130 | b.textContent = ''; 131 | console.assert(doc.documentElement.toString() == 'hello'); 132 | doc.documentElement.textContent = 'bye'; 133 | console.assert(doc.documentElement.toString() == 'bye'); 134 | }, 135 | "nested append failed":function(){ 136 | }, 137 | "self append failed":function(){ 138 | } 139 | }).run(); // Run it 140 | -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/test/dom/element.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | var XMLSerializer = require('xmldom').XMLSerializer; 4 | // Create a Test Suite 5 | wows.describe('XML Namespace Parse').addBatch({ 6 | // See: http://jsfiddle.net/bigeasy/ShcXP/1/ 7 | "Document_getElementsByTagName":function () { 8 | var doc = new DOMParser().parseFromString(''); 9 | console.assert(doc.getElementsByTagName('*').length == 2); 10 | console.assert(doc.documentElement.getElementsByTagName('*').length == 1); 11 | }, 12 | 'getElementsByTagName': function () { 13 | 14 | 15 | var doc = new DOMParser().parseFromString('' + 16 | ''+ 17 | '' + 18 | '','text/xml'); 19 | var childs = doc.documentElement.getElementsByTagName('child'); 20 | console.assert(childs.item(0).getAttribute('attr')=="1",childs.item(0)+''); 21 | console.assert(childs.item(1).getAttribute('attr')=="2",childs.item(1)+''); 22 | console.assert(childs.item(2).getAttribute('attr')=="3",childs.item(2)+''); 23 | console.assert(childs.length==3,3,childs.length); 24 | 25 | var childs = doc.getElementsByTagName('child'); 26 | console.assert(childs.item(0).getAttribute('attr')=="1",childs.item(0)+''); 27 | console.assert(childs.item(1).getAttribute('attr')=="2",childs.item(1)+''); 28 | console.assert(childs.item(2).getAttribute('attr')=="3",childs.item(2)+''); 29 | console.assert(childs.length==3,3,childs.length); 30 | 31 | 32 | 33 | 34 | 35 | var childs = doc.documentElement.getElementsByTagName('*'); 36 | for(var i=0,buf = [];ifoo'); 45 | var entries = feed.documentElement.getElementsByTagName('entry'); 46 | console.log(entries[0].nodeName); 47 | console.log(feed.documentElement.childNodes.item(0).nodeName); 48 | }, 49 | 'getElementsByTagNameNS': function () { 50 | var doc = new DOMParser().parseFromString('' + 51 | ''+ 52 | '' + 53 | '','text/xml'); 54 | 55 | var childs = doc.documentElement.getElementsByTagNameNS("http://test.com",'*'); 56 | console.assert(childs.length==6,childs.length); 57 | 58 | var childs = doc.getElementsByTagNameNS("http://test.com",'*'); 59 | console.assert(childs.length==7,childs.length); 60 | 61 | 62 | var childs = doc.documentElement.getElementsByTagNameNS("http://test.com",'test'); 63 | console.assert(childs.length==3,childs.length); 64 | 65 | var childs = doc.getElementsByTagNameNS("http://test.com",'test'); 66 | console.assert(childs.length==3,childs.length); 67 | 68 | 69 | 70 | }, 71 | 'getElementById': function () { 72 | var doc = new DOMParser().parseFromString('' + 73 | '' + 74 | '','text/xml'); 75 | console.assert(doc.getElementById('root')) 76 | console.assert(doc.getElementById('a1').getAttribute('title')=="1",doc.getElementById('a1')); 77 | console.assert(doc.getElementById('a2').getAttribute('title')=="2",doc.getElementById('a2')); 78 | console.assert(doc.getElementById('a2').getAttribute('title2')=="",doc.getElementById('a2')); 79 | }, 80 | "append exist child":function(){ 81 | var doc = new DOMParser().parseFromString('' + 82 | '' + 83 | '','text/xml'); 84 | 85 | var doc1 = doc; 86 | var str1=new XMLSerializer().serializeToString(doc); 87 | var doc2 = doc1.cloneNode(true); 88 | var doc3 = doc1.cloneNode(true); 89 | var doc4 = doc1.cloneNode(true); 90 | 91 | doc3.documentElement.appendChild(doc3.documentElement.lastChild); 92 | doc4.documentElement.appendChild(doc4.documentElement.firstChild); 93 | 94 | var str2=new XMLSerializer().serializeToString(doc2); 95 | var str3=new XMLSerializer().serializeToString(doc3); 96 | var str4=new XMLSerializer().serializeToString(doc4); 97 | console.assert(str1 == str2 && str2 == str3,str3,str1); 98 | console.assert(str3 != str4 && str3.length == str4.length,str3); 99 | 100 | }, 101 | "append exist other child":function(){ 102 | var doc = new DOMParser().parseFromString('' + 103 | '' + 104 | '','text/xml'); 105 | 106 | var doc1 = doc; 107 | var str1=new XMLSerializer().serializeToString(doc); 108 | var doc2 = doc1.cloneNode(true); 109 | 110 | console.assert(doc2.documentElement.lastChild.childNodes.length == 0); 111 | doc2.documentElement.appendChild(doc2.documentElement.firstChild.firstChild); 112 | 113 | var str2=new XMLSerializer().serializeToString(doc2); 114 | 115 | console.assert(doc2.documentElement.lastChild.childNodes.length == 1); 116 | console.assert(str1 != str2 && str1.length != str2.length,str3); 117 | var doc3 = new DOMParser().parseFromString(str2,'text/xml'); 118 | doc3.documentElement.firstChild.appendChild(doc3.documentElement.lastChild); 119 | var str3 = new XMLSerializer().serializeToString(doc3); 120 | console.assert(str1 == str3); 121 | }, 122 | "set textContent":function() { 123 | var doc = new DOMParser().parseFromString(''); 124 | var a = doc.documentElement.firstChild; 125 | var b = a.nextSibling; 126 | a.textContent = 'hello'; 127 | console.assert(doc.documentElement.toString() == 'hello'); 128 | b.textContent = 'there'; 129 | console.assert(doc.documentElement.toString() == 'hellothere'); 130 | b.textContent = ''; 131 | console.assert(doc.documentElement.toString() == 'hello'); 132 | doc.documentElement.textContent = 'bye'; 133 | console.assert(doc.documentElement.toString() == 'bye'); 134 | }, 135 | "nested append failed":function(){ 136 | }, 137 | "self append failed":function(){ 138 | } 139 | }).run(); // Run it 140 | -------------------------------------------------------------------------------- /Maze/the-mapmaker/node_modules/xmldom/test/dom/element.js: -------------------------------------------------------------------------------- 1 | var wows = require('vows'); 2 | var DOMParser = require('xmldom').DOMParser; 3 | var XMLSerializer = require('xmldom').XMLSerializer; 4 | // Create a Test Suite 5 | wows.describe('XML Namespace Parse').addBatch({ 6 | // See: http://jsfiddle.net/bigeasy/ShcXP/1/ 7 | "Document_getElementsByTagName":function () { 8 | var doc = new DOMParser().parseFromString(''); 9 | console.assert(doc.getElementsByTagName('*').length == 2); 10 | console.assert(doc.documentElement.getElementsByTagName('*').length == 1); 11 | }, 12 | 'getElementsByTagName': function () { 13 | 14 | 15 | var doc = new DOMParser().parseFromString('' + 16 | ''+ 17 | '' + 18 | '','text/xml'); 19 | var childs = doc.documentElement.getElementsByTagName('child'); 20 | console.assert(childs.item(0).getAttribute('attr')=="1",childs.item(0)+''); 21 | console.assert(childs.item(1).getAttribute('attr')=="2",childs.item(1)+''); 22 | console.assert(childs.item(2).getAttribute('attr')=="3",childs.item(2)+''); 23 | console.assert(childs.length==3,3,childs.length); 24 | 25 | var childs = doc.getElementsByTagName('child'); 26 | console.assert(childs.item(0).getAttribute('attr')=="1",childs.item(0)+''); 27 | console.assert(childs.item(1).getAttribute('attr')=="2",childs.item(1)+''); 28 | console.assert(childs.item(2).getAttribute('attr')=="3",childs.item(2)+''); 29 | console.assert(childs.length==3,3,childs.length); 30 | 31 | 32 | 33 | 34 | 35 | var childs = doc.documentElement.getElementsByTagName('*'); 36 | for(var i=0,buf = [];ifoo'); 45 | var entries = feed.documentElement.getElementsByTagName('entry'); 46 | console.log(entries[0].nodeName); 47 | console.log(feed.documentElement.childNodes.item(0).nodeName); 48 | }, 49 | 'getElementsByTagNameNS': function () { 50 | var doc = new DOMParser().parseFromString('' + 51 | ''+ 52 | '' + 53 | '','text/xml'); 54 | 55 | var childs = doc.documentElement.getElementsByTagNameNS("http://test.com",'*'); 56 | console.assert(childs.length==6,childs.length); 57 | 58 | var childs = doc.getElementsByTagNameNS("http://test.com",'*'); 59 | console.assert(childs.length==7,childs.length); 60 | 61 | 62 | var childs = doc.documentElement.getElementsByTagNameNS("http://test.com",'test'); 63 | console.assert(childs.length==3,childs.length); 64 | 65 | var childs = doc.getElementsByTagNameNS("http://test.com",'test'); 66 | console.assert(childs.length==3,childs.length); 67 | 68 | 69 | 70 | }, 71 | 'getElementById': function () { 72 | var doc = new DOMParser().parseFromString('' + 73 | '' + 74 | '','text/xml'); 75 | console.assert(doc.getElementById('root')) 76 | console.assert(doc.getElementById('a1').getAttribute('title')=="1",doc.getElementById('a1')); 77 | console.assert(doc.getElementById('a2').getAttribute('title')=="2",doc.getElementById('a2')); 78 | console.assert(doc.getElementById('a2').getAttribute('title2')=="",doc.getElementById('a2')); 79 | }, 80 | "append exist child":function(){ 81 | var doc = new DOMParser().parseFromString('' + 82 | '' + 83 | '','text/xml'); 84 | 85 | var doc1 = doc; 86 | var str1=new XMLSerializer().serializeToString(doc); 87 | var doc2 = doc1.cloneNode(true); 88 | var doc3 = doc1.cloneNode(true); 89 | var doc4 = doc1.cloneNode(true); 90 | 91 | doc3.documentElement.appendChild(doc3.documentElement.lastChild); 92 | doc4.documentElement.appendChild(doc4.documentElement.firstChild); 93 | 94 | var str2=new XMLSerializer().serializeToString(doc2); 95 | var str3=new XMLSerializer().serializeToString(doc3); 96 | var str4=new XMLSerializer().serializeToString(doc4); 97 | console.assert(str1 == str2 && str2 == str3,str3,str1); 98 | console.assert(str3 != str4 && str3.length == str4.length,str3); 99 | 100 | }, 101 | "append exist other child":function(){ 102 | var doc = new DOMParser().parseFromString('' + 103 | '' + 104 | '','text/xml'); 105 | 106 | var doc1 = doc; 107 | var str1=new XMLSerializer().serializeToString(doc); 108 | var doc2 = doc1.cloneNode(true); 109 | 110 | console.assert(doc2.documentElement.lastChild.childNodes.length == 0); 111 | doc2.documentElement.appendChild(doc2.documentElement.firstChild.firstChild); 112 | 113 | var str2=new XMLSerializer().serializeToString(doc2); 114 | 115 | console.assert(doc2.documentElement.lastChild.childNodes.length == 1); 116 | console.assert(str1 != str2 && str1.length != str2.length,str3); 117 | var doc3 = new DOMParser().parseFromString(str2,'text/xml'); 118 | doc3.documentElement.firstChild.appendChild(doc3.documentElement.lastChild); 119 | var str3 = new XMLSerializer().serializeToString(doc3); 120 | console.assert(str1 == str3); 121 | }, 122 | "set textContent":function() { 123 | var doc = new DOMParser().parseFromString(''); 124 | var a = doc.documentElement.firstChild; 125 | var b = a.nextSibling; 126 | a.textContent = 'hello'; 127 | console.assert(doc.documentElement.toString() == 'hello'); 128 | b.textContent = 'there'; 129 | console.assert(doc.documentElement.toString() == 'hellothere'); 130 | b.textContent = ''; 131 | console.assert(doc.documentElement.toString() == 'hello'); 132 | doc.documentElement.textContent = 'bye'; 133 | console.assert(doc.documentElement.toString() == 'bye'); 134 | }, 135 | "nested append failed":function(){ 136 | }, 137 | "self append failed":function(){ 138 | } 139 | }).run(); // Run it 140 | -------------------------------------------------------------------------------- /Maze/the-boaster/node_modules/xmldom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "xmldom", 3 | "version": "0.1.13", 4 | "description": "A W3C Standard XML DOM(Level2 CORE) implementation and parser(DOMParser/XMLSerializer).", 5 | "keywords": [ 6 | "w3c", 7 | "dom", 8 | "xml", 9 | "parser", 10 | "javascript", 11 | "DOMParser", 12 | "XMLSerializer" 13 | ], 14 | "author": { 15 | "name": "jindw", 16 | "email": "jindw@xidea.org", 17 | "url": "http://www.xidea.org" 18 | }, 19 | "homepage": "https://github.com/jindw/xmldom", 20 | "repository": { 21 | "type": "git", 22 | "url": "git://github.com/jindw/xmldom.git" 23 | }, 24 | "main": "./dom-parser.js", 25 | "scripts": { 26 | "test": "./test" 27 | }, 28 | "engines": { 29 | "node": ">=0.1" 30 | }, 31 | "dependencies": {}, 32 | "devDependencies": {}, 33 | "maintainers": [ 34 | { 35 | "name": "jindw", 36 | "email": "jindw@xidea.org", 37 | "url": "http://www.xidea.org" 38 | } 39 | ], 40 | "contributors": [ 41 | { 42 | "name": "Yaron Naveh", 43 | "email": "yaronn01@gmail.com", 44 | "url": "http://webservices20.blogspot.com/" 45 | }, 46 | { 47 | "name": "Harutyun Amirjanyan", 48 | "email": "amirjanyan@gmail.com", 49 | "url": "https://github.com/nightwing" 50 | }, 51 | { 52 | "name": "bigeasy", 53 | "email": "alan@prettyrobots.com", 54 | "url": "http://www.prettyrobots.com/" 55 | } 56 | ], 57 | "bugs": { 58 | "email": "jindw@xidea.org", 59 | "url": "http://github.com/jindw/xmldom/issues" 60 | }, 61 | "licenses": [ 62 | { 63 | "type": "LGPL", 64 | "url": "http://www.gnu.org/licenses/lgpl.html" 65 | } 66 | ], 67 | "readme": "Introduction\n-------\nAnother xml parser for nodejs/browser/rhino for java.\nFully compatible with `W3C DOM level2`; and some compatible with `level3`.\nsupport `DOMParser` and `XMLSerializer` interface such as in browser.\n\nInstall:\n-------\n>npm install xmldom\n\nExample:\n====\n```javascript\nvar DOMParser = require('xmldom').DOMParser;\nvar doc = new DOMParser().parseFromString(\n '\\n'+\n '\\ttest\\n'+\n '\\t\\n'+\n '\\t\\n'+\n ''\n ,'text/xml');\ndoc.documentElement.setAttribute('x','y');\ndoc.documentElement.setAttributeNS('./lite','c:x','y2');\nvar nsAttr = doc.documentElement.getAttributeNS('./lite','x')\nconsole.info(nsAttr)\nconsole.info(doc)\n```\nAPI Reference\n=====\n\n * [DOMParser](https://developer.mozilla.org/en/DOMParser):\n\n\t```javascript\n\tparseFromString(xmlsource,mimeType)\n\t```\n\t* **options extension** _by xmldom_(not BOM standard!!)\n\n\t```javascript\n\t//added the options argument\n\tnew DOMParser(options)\n\t\n\t//errorHandler is supported\n\tnew DOMParser({\n\t\t/**\n\t\t * youcan override the errorHandler for xml parser\n\t\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t\t */\n\t\terrorHandler:{warning:callback,error:callback,fatalError:callback}\n\t})\n\t\t\n\t```\n\n * [XMLSerializer](https://developer.mozilla.org/en/XMLSerializer)\n \n\t```javascript\n\tserializeToString(node)\n\t```\nDOM level2 method and attribute:\n------\n\n * [Node](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247)\n\t\n\t\tattribute:\n\t\t\tnodeValue|prefix\n\t\treadonly attribute:\n\t\t\tnodeName|nodeType|parentNode|childNodes|firstChild|lastChild|previousSibling|nextSibling|attributes|ownerDocument|namespaceURI|localName\n\t\tmethod:\t\n\t\t\tinsertBefore(newChild, refChild)\n\t\t\treplaceChild(newChild, oldChild)\n\t\t\tremoveChild(oldChild)\n\t\t\tappendChild(newChild)\n\t\t\thasChildNodes()\n\t\t\tcloneNode(deep)\n\t\t\tnormalize()\n\t\t\tisSupported(feature, version)\n\t\t\thasAttributes()\n\n * [DOMImplementation](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-102161490)\n\t\t\n\t\tmethod:\n\t\t\thasFeature(feature, version)\n\t\t\tcreateDocumentType(qualifiedName, publicId, systemId)\n\t\t\tcreateDocument(namespaceURI, qualifiedName, doctype)\n\n * [Document](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#i-Document) : Node\n\t\t\n\t\treadonly attribute:\n\t\t\tdoctype|implementation|documentElement\n\t\tmethod:\n\t\t\tcreateElement(tagName)\n\t\t\tcreateDocumentFragment()\n\t\t\tcreateTextNode(data)\n\t\t\tcreateComment(data)\n\t\t\tcreateCDATASection(data)\n\t\t\tcreateProcessingInstruction(target, data)\n\t\t\tcreateAttribute(name)\n\t\t\tcreateEntityReference(name)\n\t\t\tgetElementsByTagName(tagname)\n\t\t\timportNode(importedNode, deep)\n\t\t\tcreateElementNS(namespaceURI, qualifiedName)\n\t\t\tcreateAttributeNS(namespaceURI, qualifiedName)\n\t\t\tgetElementsByTagNameNS(namespaceURI, localName)\n\t\t\tgetElementById(elementId)\n\n * [DocumentFragment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-B63ED1A3) : Node\n * [Element](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-745549614) : Node\n\t\t\n\t\treadonly attribute:\n\t\t\ttagName\n\t\tmethod:\n\t\t\tgetAttribute(name)\n\t\t\tsetAttribute(name, value)\n\t\t\tremoveAttribute(name)\n\t\t\tgetAttributeNode(name)\n\t\t\tsetAttributeNode(newAttr)\n\t\t\tremoveAttributeNode(oldAttr)\n\t\t\tgetElementsByTagName(name)\n\t\t\tgetAttributeNS(namespaceURI, localName)\n\t\t\tsetAttributeNS(namespaceURI, qualifiedName, value)\n\t\t\tremoveAttributeNS(namespaceURI, localName)\n\t\t\tgetAttributeNodeNS(namespaceURI, localName)\n\t\t\tsetAttributeNodeNS(newAttr)\n\t\t\tgetElementsByTagNameNS(namespaceURI, localName)\n\t\t\thasAttribute(name)\n\t\t\thasAttributeNS(namespaceURI, localName)\n\n * [Attr](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-637646024) : Node\n\t\n\t\tattribute:\n\t\t\tvalue\n\t\treadonly attribute:\n\t\t\tname|specified|ownerElement\n\n * [NodeList](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177)\n\t\t\n\t\treadonly attribute:\n\t\t\tlength\n\t\tmethod:\n\t\t\titem(index)\n\t\n * [NamedNodeMap](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1780488922)\n\n\t\treadonly attribute:\n\t\t\tlength\n\t\tmethod:\n\t\t\tgetNamedItem(name)\n\t\t\tsetNamedItem(arg)\n\t\t\tremoveNamedItem(name)\n\t\t\titem(index)\n\t\t\tgetNamedItemNS(namespaceURI, localName)\n\t\t\tsetNamedItemNS(arg)\n\t\t\tremoveNamedItemNS(namespaceURI, localName)\n\t\t\n * [CharacterData](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-FF21A306) : Node\n\t\n\t\tmethod:\n\t\t\tsubstringData(offset, count)\n\t\t\tappendData(arg)\n\t\t\tinsertData(offset, arg)\n\t\t\tdeleteData(offset, count)\n\t\t\treplaceData(offset, count, arg)\n\t\t\n * [Text](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1312295772) : CharacterData\n\t\n\t\tmethod:\n\t\t\tsplitText(offset)\n\t\t\t\n * [CDATASection](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-667469212)\n * [Comment](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1728279322) : CharacterData\n\t\n * [DocumentType](http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-412266927)\n\t\n\t\treadonly attribute:\n\t\t\tname|entities|notations|publicId|systemId|internalSubset\n\t\t\t\n * Notation : Node\n\t\n\t\treadonly attribute:\n\t\t\tpublicId|systemId\n\t\t\t\n * Entity : Node\n\t\n\t\treadonly attribute:\n\t\t\tpublicId|systemId|notationName\n\t\t\t\n * EntityReference : Node \n * ProcessingInstruction : Node \n\t\n\t\tattribute:\n\t\t\tdata\n\t\treadonly attribute:\n\t\t\ttarget\n\t\t\nDOM level 3 support:\n-----\n\n * [Node](http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-textContent)\n\t\t\n\t\tattribute:\n\t\t\ttextContent\n\t\tmethod:\n\t\t\tisDefaultNamespace(namespaceURI){\n\t\t\tlookupNamespaceURI(prefix)\n\nDOM extension by xmldom\n---\n * [Node]\n\tSource position extension; \n\t\tattribute:\n\t\t\t//Numbered starting from '1'\n\t\t\tlineNumber\n\t\t\t//Numbered starting from '1'\n\t\t\tcolumnNumber\n", 68 | "_id": "xmldom@0.1.13", 69 | "_from": "xmldom" 70 | } 71 | --------------------------------------------------------------------------------