{"_id":"@curefatih-jf/hdom","_rev":"4-c66fe5b61de958c0a20c1cbe4f722b34","name":"@curefatih-jf/hdom","dist-tags":{"latest":"0.1.3"},"versions":{"0.0.0":{"name":"@curefatih-jf/hdom","version":"0.0.0","license":"MIT","homepage":"https://github.com/fatihcure-jf/happy-dom","repository":{"type":"git","url":"git+https://github.com/fatihcure-jf/happy-dom.git"},"author":{"name":"David Ortner"},"description":"Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.","main":"lib/index.js","keywords":["jsdom","dom","browser","custom","elements","web","components","html","whatwg","w3c"],"publishConfig":{"access":"public"},"scripts":{"compile":"tsc","watch":"tsc -w --preserveWatchOutput","lint":"eslint --ignore-path .gitignore --max-warnings 0 .","lint:fix":"eslint --ignore-path .gitignore --max-warnings 0 --fix .","test":"jest --setupFilesAfterEnv ./test/setup.js","test:coverage":"jest --setupFilesAfterEnv ./test/setup.js --collectCoverage","test:watch":"jest --setupFilesAfterEnv ./test/setup.js --watch","test:debug":"node --inspect-brk ./node_modules/.bin/jest --setupFilesAfterEnv ./test/setup.js --runInBand"},"jest":{"transform":{"^.+\\.ts?$":"ts-jest"},"testMatch":["**/test/**/*.test.ts"],"globals":{"ts-jest":{"tsconfig":"./test/tsconfig.json"}},"testEnvironment":"node"},"dependencies":{"css.escape":"^1.5.1","he":"^1.2.0","node-fetch":"^2.x.x","sync-request":"^6.1.0","webidl-conversions":"^7.0.0","whatwg-encoding":"^2.0.0","whatwg-mimetype":"^3.0.0"},"devDependencies":{"@types/he":"^1.1.2","@types/jest":"^27.4.1","@types/node":"^15.6.0","@types/node-fetch":"^2.6.1","@typescript-eslint/eslint-plugin":"^5.16.0","@typescript-eslint/parser":"^5.16.0","eslint":"^8.11.0","eslint-config-prettier":"^8.5.0","eslint-plugin-filenames":"^1.3.2","eslint-plugin-import":"^2.25.4","eslint-plugin-jest":"^26.1.2","eslint-plugin-jsdoc":"^38.0.6","eslint-plugin-json":"^3.1.0","eslint-plugin-prettier":"^4.0.0","jest":"^27.5.1","prettier":"^2.6.0","ts-jest":"^27.1.3","typescript":"^4.6.2"},"gitHead":"385b9369db9e84f28bb351fa0be0b39e8e44bf4a","bugs":{"url":"https://github.com/fatihcure-jf/happy-dom/issues"},"_id":"@curefatih-jf/hdom@0.0.0","_nodeVersion":"16.13.0","_npmVersion":"lerna/4.0.0/node@v16.13.0+x64 (darwin)","dist":{"integrity":"sha512-9HVkO9tzOxIPkXQRsj4vN8IcPQPh7TqnTNaepcIWxfYPj1WgyruTYA/jIEYEzdFg79nbGyaCBmL8IB2mRAxFIw==","shasum":"3665f05591548775dd7240697e27fca936ed65e1","tarball":"https://registry.npmjs.org/@curefatih-jf/hdom/-/hdom-0.0.0.tgz","fileCount":873,"unpackedSize":1722220,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID8c4ycrgXtt7lJix3Y0ehZDhCX5aeZbdASOVNeCYE6DAiEAiYVWhoMNocHTIEWfNm42LBvOe9iINQfuZOKO1TGIUCk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin4DxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5Ug//avVFeown9o67s2pikNBtZtOSDcybhquy3tXCvq3XajryFMwL\r\nj/aGUfFxQzmRZ9OZOGM9xDILsuxBM/fGV6qcwH6RZnNLH6Ac/HXoBX/cQzu8\r\nfCCqWDFr2c9xyNq8Lsg+gDSo+z7GR5l3Or0MebPQPOey+uF3cP47MPWEID51\r\n//oeKYcx538C5lg1ui1tAhoT2liq6pwvF1Ztqt2t2VTnL2q6va6jpu80f06A\r\n+iHaFYe3M+KleFZOSlA+EusmvuexRQV3/kd7UbhX/nQe776PklB5AfEtWZaA\r\nXdZpeAWjWcsea8kjFUswrLaAyobLFskU9ZnOx2wDzUD1rgq5GFbOAZuBgZJq\r\ncbNzFLcsPJwIyZc+1NRvEmrIzG4SEK5aLBep7bl7Ui3kfJQ7fLokST85zxPN\r\nssYzN6uK2wN/CNc3RCqKS6M5bePlpbLB2DYwZCoVYqDMK4vgMmsaVmNu1Pzj\r\n16JoJU+W0ZyzWKDluyI5ihE3SB2GluG//ThqVVuTnrREyrLFiU/+wVoXKML3\r\nD8JnvpvKA7gl82bAi4QdxvIo+qKjUD5Y5U7NSEPojI7kgP9ZUJq8bC4xNCZe\r\nGC1oovn1rvvKLACvYpelkzrBF8L6RxM4naBc+XxIj/ygaCTZ4caE6/LJ/6fY\r\nKlMaYffyQbL9+Fc1fSJksz4gcTwvc9vUYK8=\r\n=y/aG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"curefatih-jf","email":"fatihcure@jotform.com"},"directories":{},"maintainers":[{"name":"curefatih-jf","email":"fatihcure@jotform.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hdom_0.0.0_1654620400730_0.2614200918893008"},"_hasShrinkwrap":false},"0.1.0":{"name":"@curefatih-jf/hdom","version":"0.1.0","license":"MIT","homepage":"https://github.com/fatihcure-jf/happy-dom","repository":{"type":"git","url":"git+https://github.com/fatihcure-jf/happy-dom.git"},"author":{"name":"David Ortner"},"description":"Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.","main":"lib/index.js","keywords":["jsdom","dom","browser","custom","elements","web","components","html","whatwg","w3c"],"publishConfig":{"access":"public"},"scripts":{"compile":"tsc","watch":"tsc -w --preserveWatchOutput","lint":"eslint --ignore-path .gitignore --max-warnings 0 .","lint:fix":"eslint --ignore-path .gitignore --max-warnings 0 --fix .","test":"jest --setupFilesAfterEnv ./test/setup.js","test:coverage":"jest --setupFilesAfterEnv ./test/setup.js --collectCoverage","test:watch":"jest --setupFilesAfterEnv ./test/setup.js --watch","test:debug":"node --inspect-brk ./node_modules/.bin/jest --setupFilesAfterEnv ./test/setup.js --runInBand"},"jest":{"transform":{"^.+\\.ts?$":"ts-jest"},"testMatch":["**/test/**/*.test.ts"],"globals":{"ts-jest":{"tsconfig":"./test/tsconfig.json"}},"testEnvironment":"node"},"dependencies":{"css.escape":"^1.5.1","he":"^1.2.0","node-fetch":"^2.x.x","sync-request":"^6.1.0","webidl-conversions":"^7.0.0","whatwg-encoding":"^2.0.0","whatwg-mimetype":"^3.0.0"},"devDependencies":{"@types/he":"^1.1.2","@types/jest":"^27.4.1","@types/node":"^15.6.0","@types/node-fetch":"^2.6.1","@typescript-eslint/eslint-plugin":"^5.16.0","@typescript-eslint/parser":"^5.16.0","eslint":"^8.11.0","eslint-config-prettier":"^8.5.0","eslint-plugin-filenames":"^1.3.2","eslint-plugin-import":"^2.25.4","eslint-plugin-jest":"^26.1.2","eslint-plugin-jsdoc":"^38.0.6","eslint-plugin-json":"^3.1.0","eslint-plugin-prettier":"^4.0.0","jest":"^27.5.1","prettier":"^2.6.0","ts-jest":"^27.1.3","typescript":"^4.6.2"},"gitHead":"ff107249c277fc947b82f53fe6254a5ca8035221","bugs":{"url":"https://github.com/fatihcure-jf/happy-dom/issues"},"_id":"@curefatih-jf/hdom@0.1.0","_nodeVersion":"16.13.0","_npmVersion":"lerna/4.0.0/node@v16.13.0+x64 (darwin)","dist":{"integrity":"sha512-hea9hKLWoJY5pxT+PSbrROrMwngcEEqB7RGAqb4UYi418zpSObVwfNx1YIsgDkvkKUac8R1QB5l0ozG9G9BmCA==","shasum":"4bc21d1d2ce228a627a4073171f87cee4614803a","tarball":"https://registry.npmjs.org/@curefatih-jf/hdom/-/hdom-0.1.0.tgz","fileCount":873,"unpackedSize":1722220,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDEQAe/M4/oJaJTomsPqFvSpXsY/48re8IPPA9oLJUAzAiBNf6ZqvevIJOffsAzVNWqDd3hnkDlLtK2Zf3sEJMFHxg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin4dxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrQsBAAjOBFJbu2+S8HJcbubAhLHrPZm0MoIvwxsVI+ZJoTEswMwY/0\r\nAkpB6R+5RqA3QxbDgmoJ2QwT6+0lEve+HlB4Odsp4MGLocKD/YLOJgBVjt5n\r\nsjkitR1mIwRmheo43hs2Nmh0Am+Q7vYOIQ8EMCNBl5bBn8byOnltsnLJhOY6\r\nvD1r4Srm/8i1ZGLUymlq4VGw3Qi0eeAMXXmK1kszn6vaIWwYhQ3RBoPTRv6e\r\nkr+a4rrb4kHwjlXjEs960Q0K9ULp+aGDWIYVlhyExYlAX8iYYz4ebekXMNE8\r\ngA+NUrDYvJlnkVe6MHXGEX1e6eI6aPhmZanHNdlJ9B1LhH//y9ZgOxpGVFy7\r\n4zrr5m1dcmu8gh4cI8yIqRIPSlCS53RHymnfxtejqOQ0s8u404nXOUDXJ2YF\r\n2iH9YoiS0efCxVVZrIxh45riVEptsJZSvcs1bmVN/26UuVw2zvJd7X+vs/Jn\r\nuiZoaErtFWtRuaCNvtdWviFNGjS2lXzOPNHUlvDSVbHLkvA7T+UBmKYwn6rh\r\nUVZnph5xx2MqXvRrQ3w+7o06QngGvuVCO0ZTASsLYWw3ZjzYv+Z5qG6SJlhb\r\nUIg9yBXgJE6eSqjihkCrWEc/Yw7BsCchTl0ZcmPdU125R/dA0dpJVEHPE/6S\r\n96VyRQfIPnZEg3Lw1NvgedV/622tFJS5mT0=\r\n=b0bn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"curefatih-jf","email":"fatihcure@jotform.com"},"directories":{},"maintainers":[{"name":"curefatih-jf","email":"fatihcure@jotform.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hdom_0.1.0_1654622065331_0.9646945026086879"},"_hasShrinkwrap":false},"0.1.1":{"name":"@curefatih-jf/hdom","version":"0.1.1","license":"MIT","homepage":"https://github.com/capricorn86/happy-dom","repository":{"type":"git","url":"git+https://github.com/capricorn86/happy-dom.git"},"author":{"name":"David Ortner"},"description":"Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.","main":"lib/index.js","keywords":["jsdom","dom","browser","custom","elements","web","components","html","whatwg","w3c"],"publishConfig":{"access":"public"},"scripts":{"compile":"tsc","watch":"tsc -w --preserveWatchOutput","lint":"eslint --ignore-path .gitignore --max-warnings 0 .","lint:fix":"eslint --ignore-path .gitignore --max-warnings 0 --fix .","test":"jest --setupFilesAfterEnv ./test/setup.js","test:coverage":"jest --setupFilesAfterEnv ./test/setup.js --collectCoverage","test:watch":"jest --setupFilesAfterEnv ./test/setup.js --watch","test:debug":"node --inspect-brk ./node_modules/.bin/jest --setupFilesAfterEnv ./test/setup.js --runInBand"},"jest":{"transform":{"^.+\\.ts?$":"ts-jest"},"testMatch":["**/test/**/*.test.ts"],"globals":{"ts-jest":{"tsconfig":"./test/tsconfig.json"}},"testEnvironment":"node"},"dependencies":{"css.escape":"^1.5.1","he":"^1.2.0","node-fetch":"^2.x.x","sync-request":"^6.1.0","webidl-conversions":"^7.0.0","whatwg-encoding":"^2.0.0","whatwg-mimetype":"^3.0.0"},"devDependencies":{"@types/he":"^1.1.2","@types/jest":"^27.4.1","@types/node":"^15.6.0","@types/node-fetch":"^2.6.1","@typescript-eslint/eslint-plugin":"^5.16.0","@typescript-eslint/parser":"^5.16.0","eslint":"^8.11.0","eslint-config-prettier":"^8.5.0","eslint-plugin-filenames":"^1.3.2","eslint-plugin-import":"^2.25.4","eslint-plugin-jest":"^26.1.2","eslint-plugin-jsdoc":"^38.0.6","eslint-plugin-json":"^3.1.0","eslint-plugin-prettier":"^4.0.0","jest":"^27.5.1","prettier":"^2.6.0","ts-jest":"^27.1.3","typescript":"^4.6.2"},"gitHead":"815e90d9d4c6b96f186fcc1ca04593d5c57bfef0","bugs":{"url":"https://github.com/capricorn86/happy-dom/issues"},"_id":"@curefatih-jf/hdom@0.1.1","_nodeVersion":"16.13.0","_npmVersion":"lerna/4.0.0/node@v16.13.0+x64 (darwin)","dist":{"integrity":"sha512-g/VugRVRmq3zhCPI9OLdZfbWx9hybhniALFY9IduJ1jb2F8xuSD4MXMsd5yYuMr3Le86hZJOdvdmJMGzw9aL4w==","shasum":"c522032ec922b4e8aae5e0d7e18dae0d59e21713","tarball":"https://registry.npmjs.org/@curefatih-jf/hdom/-/hdom-0.1.1.tgz","fileCount":873,"unpackedSize":1722597,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDF+9OPwuQdL5CaPhQYL7Qk3RQOMVO9la3yvVcVFA1ojgIgWW6h6DsLlIeRkSf9FnkghKtwah6pjXNn23AVAHth5zU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioIq9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvoA/6Ax1f7IdM2vPVK443mgoZmzz6LHE0dODZu4VYPFItRlrzNxmg\r\nq8+YqVwUnAWTqAI0UPE7YF3K3ICdA/bJLySPwAkwNT39JVuh6dOlzPQi4PEr\r\nESgLEp45rabQ0lZ8nqopbKIvpHUHx6BRv2dV2MU6er//byWISyNQhI+j6wWL\r\noQU+amYsQQg243oPB8TIeiVH2ktrH7DsgTHQKCHZQ7hMBprbvVIcjGFU0XCv\r\nWu5rBLoYEj97QBD8XiXc6OVeyHJ6T+UGc/TMrd8DCdn9lIfQAPsNioa4sMHy\r\ntKJ3f3wXH1sSysgcUwLMhr1635kpRlfjaiVd0rL3y+/sB5XaGR+6p/aDLn3P\r\nu2ye82lyZS49CGzDxRmEOsviBGx+qC07skj9Krb+1pN8Ably8wgZYPP6+sjX\r\nhelF34rq85yTLceOJS8j4BEBB5nCxHI8OwwzpEHoUf7DJugcrPgxKBhJMxKJ\r\n6BMCki2f5k262q0Zz7EIPFLa711AJVkOkUfCtMDdv1oBUfwqxtffpwm/h210\r\nhXeVjM9rRtbO7P8rcOWupXdyJEYCOGwLTGxAH+KeR28eDhXsGEb3beCt1I3x\r\ngKWJ15wO8zyznJn7xO+I9fgiKkJMNzU5MCmOCLvdkwH/Rqb6Z8vumiLQICaV\r\n2SQtPLrbAA5G9InbTWANn2D/o6uI8bvxrBE=\r\n=wsO+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"curefatih-jf","email":"fatihcure@jotform.com"},"directories":{},"maintainers":[{"name":"curefatih-jf","email":"fatihcure@jotform.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hdom_0.1.1_1654688445627_0.5035264743724337"},"_hasShrinkwrap":false},"0.1.2":{"name":"@curefatih-jf/hdom","version":"0.1.2","license":"MIT","homepage":"https://github.com/capricorn86/happy-dom","repository":{"type":"git","url":"git+https://github.com/capricorn86/happy-dom.git"},"author":{"name":"David Ortner"},"description":"Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.","main":"lib/index.js","keywords":["jsdom","dom","browser","custom","elements","web","components","html","whatwg","w3c"],"publishConfig":{"access":"public"},"scripts":{"compile":"tsc","watch":"tsc -w --preserveWatchOutput","lint":"eslint --ignore-path .gitignore --max-warnings 0 .","lint:fix":"eslint --ignore-path .gitignore --max-warnings 0 --fix .","test":"jest --setupFilesAfterEnv ./test/setup.js","test:coverage":"jest --setupFilesAfterEnv ./test/setup.js --collectCoverage","test:watch":"jest --setupFilesAfterEnv ./test/setup.js --watch","test:debug":"node --inspect-brk ./node_modules/.bin/jest --setupFilesAfterEnv ./test/setup.js --runInBand"},"jest":{"transform":{"^.+\\.ts?$":"ts-jest"},"testMatch":["**/test/**/*.test.ts"],"globals":{"ts-jest":{"tsconfig":"./test/tsconfig.json"}},"testEnvironment":"node"},"dependencies":{"css.escape":"^1.5.1","he":"^1.2.0","node-fetch":"^2.x.x","sync-request":"^6.1.0","webidl-conversions":"^7.0.0","whatwg-encoding":"^2.0.0","whatwg-mimetype":"^3.0.0"},"devDependencies":{"@types/he":"^1.1.2","@types/jest":"^27.4.1","@types/node":"^15.6.0","@types/node-fetch":"^2.6.1","@typescript-eslint/eslint-plugin":"^5.16.0","@typescript-eslint/parser":"^5.16.0","eslint":"^8.11.0","eslint-config-prettier":"^8.5.0","eslint-plugin-filenames":"^1.3.2","eslint-plugin-import":"^2.25.4","eslint-plugin-jest":"^26.1.2","eslint-plugin-jsdoc":"^38.0.6","eslint-plugin-json":"^3.1.0","eslint-plugin-prettier":"^4.0.0","jest":"^27.5.1","prettier":"^2.6.0","ts-jest":"^27.1.3","typescript":"^4.6.2"},"gitHead":"b6d7f29b560f0ce9962f34c29dd55f53b05f31bf","bugs":{"url":"https://github.com/capricorn86/happy-dom/issues"},"_id":"@curefatih-jf/hdom@0.1.2","_nodeVersion":"16.13.0","_npmVersion":"lerna/4.0.0/node@v16.13.0+x64 (darwin)","dist":{"integrity":"sha512-9z+Xe0bkRxxdbWSm+2HLe4gXpVpautmcDuAMudtCKncLwTE6VhK/2hqVnIfyNW3vmMtyjzsaB0hnQex5RNTP3g==","shasum":"6c0e3c53e8302cc6a65a002f13396d48afbb5322","tarball":"https://registry.npmjs.org/@curefatih-jf/hdom/-/hdom-0.1.2.tgz","fileCount":873,"unpackedSize":1722597,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfAckpAR3KYidGO2SGZ9H2mOhv89lOMRrdgs0GDxJbdQIgAOxirF0hyMIycqTLTegiMzY49cKq9V63kVXakAXxg+k="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioIxRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqlUA//cujYVk1iXKxR2mkfYyKEJWYMcM7lOHod0o/gnp85JRUg7fGZ\r\nsFG26ZT/jwMM8VKswe/VPAsbFanSSqx0Cv8VzdqiUy3bFbRKOWbLfzZY3YcF\r\nI+FeJ5UKh0Bfn9BANCEe7VwGSlJ5mvBYC9uI2yEDae2w68A/t1khxl01y4Ai\r\nKMgTFuuwEEYneJCxCA8Ek11R1dvupUmeJPHFPKe2wkXLqhNXYzvSEEtTp2QF\r\nb5bdusXvtYYWHtZ8QMaBrrX+/iGUlq/nGmrTujnOv1GQlTvFnv+8Hb1HMjgD\r\nDQWvIL6bCQ+eSfaGX7YpSBQoY1Mcp7FW4jji+NE6taB2YIJVBXlVolVt0cia\r\n2zdHMHhTmgnjPzvpa25HbT20hgmt/LXPmUHcsLxeeQiNzGcsAN2pIxnBR8+e\r\nWe40KXN7J+VxqikLMFxmJ8iQ7gvgSxTn9Bh6EqSTvkTV5ATTw72bunvLbtRA\r\niZXLJLZxRJKZB/4wQACzRaioaEcvXhVM3tN9nqlY6n+5CYpxsXOaR1vBsm/+\r\n2UJIJr+jEZAX9TBqp/Z8/EEZmvTN11OyXAPiaSwhtGoYHJ1q108dDTwHO03i\r\np1SzBlC+dw3qZTuKIbjLpEOnSgWxBQDXaHcNTT2t8SgyVekjrNxtB4Nrnb0a\r\nlYDX4cvPPKnBT+xoF95cIcb+sYpfkHU4W1Y=\r\n=TJsc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"curefatih-jf","email":"fatihcure@jotform.com"},"directories":{},"maintainers":[{"name":"curefatih-jf","email":"fatihcure@jotform.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hdom_0.1.2_1654688849221_0.277484058322802"},"_hasShrinkwrap":false},"0.1.3":{"name":"@curefatih-jf/hdom","version":"0.1.3","license":"MIT","homepage":"https://github.com/capricorn86/happy-dom","repository":{"type":"git","url":"git+https://github.com/capricorn86/happy-dom.git"},"author":{"name":"David Ortner"},"description":"Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.","main":"lib/index.js","keywords":["jsdom","dom","browser","custom","elements","web","components","html","whatwg","w3c"],"publishConfig":{"access":"public"},"scripts":{"compile":"tsc","watch":"tsc -w --preserveWatchOutput","lint":"eslint --ignore-path .gitignore --max-warnings 0 .","lint:fix":"eslint --ignore-path .gitignore --max-warnings 0 --fix .","test":"jest --setupFilesAfterEnv ./test/setup.js","test:coverage":"jest --setupFilesAfterEnv ./test/setup.js --collectCoverage","test:watch":"jest --setupFilesAfterEnv ./test/setup.js --watch","test:debug":"node --inspect-brk ./node_modules/.bin/jest --setupFilesAfterEnv ./test/setup.js --runInBand"},"jest":{"transform":{"^.+\\.ts?$":"ts-jest"},"testMatch":["**/test/**/*.test.ts"],"globals":{"ts-jest":{"tsconfig":"./test/tsconfig.json"}},"testEnvironment":"node"},"dependencies":{"css.escape":"^1.5.1","he":"^1.2.0","node-fetch":"^2.x.x","sync-request":"^6.1.0","webidl-conversions":"^7.0.0","whatwg-encoding":"^2.0.0","whatwg-mimetype":"^3.0.0"},"devDependencies":{"@types/he":"^1.1.2","@types/jest":"^27.4.1","@types/node":"^15.6.0","@types/node-fetch":"^2.6.1","@typescript-eslint/eslint-plugin":"^5.16.0","@typescript-eslint/parser":"^5.16.0","eslint":"^8.11.0","eslint-config-prettier":"^8.5.0","eslint-plugin-filenames":"^1.3.2","eslint-plugin-import":"^2.25.4","eslint-plugin-jest":"^26.1.2","eslint-plugin-jsdoc":"^38.0.6","eslint-plugin-json":"^3.1.0","eslint-plugin-prettier":"^4.0.0","jest":"^27.5.1","prettier":"^2.6.0","ts-jest":"^27.1.3","typescript":"^4.6.2"},"gitHead":"6b2007dfdd6c65a03b7be02fdd76a4d09cbcb98f","bugs":{"url":"https://github.com/capricorn86/happy-dom/issues"},"_id":"@curefatih-jf/hdom@0.1.3","_nodeVersion":"16.13.0","_npmVersion":"lerna/4.0.0/node@v16.13.0+x64 (darwin)","dist":{"integrity":"sha512-jxqAVPhoJ86VVMWVlobF2klMMnbX230R0OPthGQ0467IRMa7P74xnmUnMYFWbpPFVLVARbNC28IaZkGElUGFdQ==","shasum":"1ddca275eb13ba58f8c1970e6ab0ca4659771df1","tarball":"https://registry.npmjs.org/@curefatih-jf/hdom/-/hdom-0.1.3.tgz","fileCount":873,"unpackedSize":1722619,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCg9xMACWRFp+Av1IG1rm23Q6oPdKdeF5vBVb6GLZ5a/wIgUYJxdXyC/y02W6BtOuZtELY6e69H8oB4ndlmJtwCB+A="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJioI9wACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqu1g/9FyyUaF6vJ39F2VHjN9cMXdeBu10QlPB76RscwN5WGRdyfA6u\r\nKnhGNKWykvQ80d1U+ZzsqTEs+7Xw16+rqlW2izX4xwXNdtCwejD20yxKPwYz\r\n27lM+st+osVRfBptUGNkKs2qxjZFTSrgJijVA2PnQO9MbdgeM8JtRwCTXiNn\r\n4bQ+NV2DQQZVchljrXCGggRZHf/NP8pq1rvahepAAasfirhwJbCUADkZ1KXj\r\niC9H9lHQKEpgKGat6pkydiLQgUcaHLx0Yg+jrM5ST3eOpVos/UFV3y1NDA/U\r\nmghp2ZlWRBugOMgEWDKE5EUgz0cXvtqT/5ij/8q100kp0tSPZGN3TZ72FDEg\r\nx9gXyhnS0Vd6n+hu2HZt+GqRnNftIxL/LVF9EgDI7baDJ7iDBOnewUoBz7id\r\nDG4bCtxq6iQkAjUSrfYuNr1TgFSwnouwXRmjGG2uOn2ur9fk7VRBP6kah6HG\r\nybCBFU0yU0/dAJ3U/9ZKY/OquD+VHdu0x/mvRMkUd4/JTRxFTqtso5que+uf\r\nw3JLAi6iCbmrKZby9FLSOfQMeVmeI5HvZk3FRe7aAMDyUv84fIGl1FvKN96E\r\nqocCNaEfPgn6YrR9iQmvZR75lf6h9HimtFEFIuzjw+J0o+1sGPtoq/ifb1gx\r\nzqU7kQJsjTqoGSJipdDO10k+4XcKXQ0QrI8=\r\n=wJnB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"curefatih-jf","email":"fatihcure@jotform.com"},"directories":{},"maintainers":[{"name":"curefatih-jf","email":"fatihcure@jotform.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/hdom_0.1.3_1654689648513_0.9075356382853357"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-07T16:46:40.670Z","0.0.0":"2022-06-07T16:46:41.002Z","modified":"2022-06-08T12:00:48.792Z","0.1.0":"2022-06-07T17:14:25.559Z","0.1.1":"2022-06-08T11:40:45.859Z","0.1.2":"2022-06-08T11:47:29.474Z","0.1.3":"2022-06-08T12:00:48.731Z"},"maintainers":[{"name":"curefatih-jf","email":"fatihcure@jotform.com"}],"description":"Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.","homepage":"https://github.com/capricorn86/happy-dom","keywords":["jsdom","dom","browser","custom","elements","web","components","html","whatwg","w3c"],"repository":{"type":"git","url":"git+https://github.com/capricorn86/happy-dom.git"},"author":{"name":"David Ortner"},"bugs":{"url":"https://github.com/capricorn86/happy-dom/issues"},"license":"MIT","readme":"![Happy DOM Logo](https://github.com/capricorn86/happy-dom/raw/master/docs/happy-dom-logo.jpg)\n\n\n# About\n\n[Happy DOM](https://github.com/capricorn86/happy-dom) is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG [DOM](https://dom.spec.whatwg.org/) and [HTML](https://html.spec.whatwg.org/multipage/).\n\nThe goal of [Happy DOM](https://github.com/capricorn86/happy-dom) is to emulate enough of a web browser to be useful for testing, scraping web sites and server-side rendering.\n\n[Happy DOM](https://github.com/capricorn86/happy-dom) focuses heavily on performance and can be used as an alternative to [JSDOM](https://github.com/jsdom/jsdom).\n\n\n### DOM Features\n\n- Custom Elements (Web Components)\n\n- Shadow Root (Shadow DOM)\n\n- Declarative Shadow DOM\n\n- Mutation Observer\n\n- Tree Walker\n\n- Fetch\n\nAnd much more..\n\n  \n\n### Works With\n\n- [Google LitHTML](https://lit-html.polymer-project.org)\n\n- [Google LitElement](https://lit-element.polymer-project.org)\n\n- [React](https://reactjs.org)\n\n- [Angular](https://angular.io/)\n\n- [Vue](https://vuejs.org/)\n\n  \n\n# Installation\n\n```bash\nnpm install happy-dom\n```\n\n\n\n# Usage\n\n\n\n## Basic Usage\n\nA simple example of how you can use Happy DOM.\n\n```javascript\nimport { Window } from 'happy-dom';\n\nconst window = new Window();\nconst document = window.document;\n\ndocument.body.innerHTML = '<div class=\"container\"></div>';\n\nconst container = document.querySelector('.container');\nconst button = document.createElement('button');\n\ncontainer.appendChild(button);\n\n// Outputs \"<div class=\"container\"><button></button></div>\"\nconsole.log(document.body.innerHTML);\n```\n\n\n\n## VM Context\n\nThe default Window class is a [VM context](https://nodejs.org/api/vm.html#vm_vm_createcontext_sandbox_options). A [VM context](https://nodejs.org/api/vm.html#vm_vm_createcontext_sandbox_options) will execute JavaScript code scoped within the context where the Window instance will be the global object.\n\n```javascript\nimport { Window } from 'happy-dom';\n\nconst window = new Window();\nconst document = window.document;\n\nwindow.location.href = 'http://localhost:8080';\n\ndocument.write(`\n    <html>\n        <head>\n             <title>Test page</title>\n        </head>\n        <body>\n             <div class=\"container\">\n                  <!–– Content will be added here -->\n             </div>\n            <script>\n                const element = document.createElement('div');\n                const container = document.querySelector('.container');\n                element.innerHTML = 'Test';\n                container.appendChild(element);\n            </script>\n        </body>\n    </html>\n`);\n\n// Will output \"Test\"\nconsole.log(document.querySelector('.container div').innerHTML);\n```\n\n## Global Context\n\nHappy DOM exports a class called GlobalWindow, which can be used to run Happy DOM in the global context instead of the default behaviour of running in a [VM context](https://nodejs.org/api/vm.html#vm_vm_createcontext_sandbox_options).\n\n```javascript\nimport { Window, GlobalWindow } from 'happy-dom';\n\nconst vmWindow = new Window();\nconst globalWindow = new GlobalWindow();\n\n// Will output \"false\"\nconsole.log(vmWindow.Array === global.Array);\n\n// Will output \"true\"\nconsole.log(globalWindow.Array === global.Array);\n\nglobalWindow.eval('global.test = 1');\n\n// Will output \"1\"\nconsole.log(global.test);\n```\n\n## Server-Side Rendering of Web Components\n\nThe example below will show you how to setup a Node [VM context](https://nodejs.org/api/vm.html#vm_vm_createcontext_sandbox_options) to render a page with custom elements (web components) in Happy DOM. We can then use a new web feature called [Declarative Shadow DOM](https://chromestatus.com/feature/5191745052606464) to include the shadow roots in the HTML output.\n\n[Declarative Shadow DOM](https://chromestatus.com/feature/5191745052606464) is only supported by Chromium based browsers. Unsupported browsers should safely fallback to being rendered using Javascript.\n\n```javascript\nimport { Window } from 'happy-dom';\n\nconst window = new Window();\nconst document = window.document;\n\nwindow.location.href = 'http://localhost:8080';\n\ndocument.write(`\n    <html>\n        <head>\n             <title>Test page</title>\n        </head>\n        <body>\n            <div>\n                <my-custom-element>\n                    <span>Slotted content</span>\n                </my-custom-element>\n            </div>\n            <script>\n                class MyCustomElement extends HTMLElement {\n                    constructor() {\n                        super();\n                        this.attachShadow({ mode: 'open' });\n                    }\n\n                    connectedCallback() {\n                        this.shadowRoot.innerHTML = \\`\n                            <style>\n                                :host {\n                                    display: inline-block;\n                                    background: red;\n                                }\n                            </style>\n                            <div><slot></slot></div>\n                        \\`;\n                    }\n                }\n\n                customElements.define('my-custom-element', MyCustomElement);\n            </script>\n        </body>\n    </html>\n`);\n\n/*\nWill output:\n<my-custom-element>\n    <span>Slotted content</span>\n    <template shadowroot=\"open\">\n        <style>\n            :host {\n                display: inline-block;\n                background: red;\n            }\n        </style>\n        <div><slot></slot></div>\n    </template>\n</my-custom-element>\n*/\nconsole.log(document.body.querySelector('div').getInnerHTML({ includeShadowRoots: true }));\n```\n\n\n\n## Additional Features\n\nHappy DOM exposes two functions that may be useful when working with asynchrounous code.\n\n**whenAsyncComplete()**\n\nReturns a [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) that is resolved when all async tasks has been completed.\n\n```javascript\nwindow.happyDOM.whenAsyncComplete().then(() => {\n    // Do something when all async tasks are completed.\n});\n```\n\n**cancelAsync()**\n\nThis method will cancel all running async tasks.\n\n```javascript\nwindow.setTimeout(() => {\n    // This timeout will be canceled\n});\nwindow.happyDOM.cancelAsync();\n```\n\n\n\n# Performance\n\n| Operation                            | JSDOM   | Happy DOM |\n| ------------------------------------ | ------- | --------- |\n| Import / Require                     | 333 ms  | 45 ms     |\n| Parse HTML                           | 256 ms  | 26 ms     |\n| Serialize HTML                       | 65 ms   | 8 ms      |\n| Render custom element                | 214 ms  | 19 ms     |\n| querySelectorAll('tagname')          | 4.9 ms  | 0.7 ms    |\n| querySelectorAll('.class')           | 6.4 ms  | 3.7 ms    |\n| querySelectorAll('[attribute]')      | 4.0 ms  | 1.7 ms    |\n| querySelectorAll('[class~=\"name\"]')  | 5.5 ms  | 2.9 ms    |\n| querySelectorAll(':nth-child(2n+1)') | 10.4 ms | 3.8 ms    |\n\n[See how the test was done here](https://github.com/capricorn86/happy-dom-performance-test)\n\n\n\n# Jest\n\nHappy DOM provide with a package called [@happy-dom/jest-environment](https://github.com/capricorn86/happy-dom/tree/master/packages/jest-environment) that makes it possible to use Happy DOM with [Jest](https://jestjs.io/).\n\n# Global Registration\n\nHappy DOM provide with a package called [@happy-dom/global-registrator](https://github.com/capricorn86/happy-dom/tree/master/packages/global-registrator) that can register Happy DOM globally. It makes it possible to use Happy DOM for testing in a Node environment.","readmeFilename":"README.md"}