{"id":15369104,"url":"https://github.com/developit/puredom","last_synced_at":"2025-10-07T17:37:23.607Z","repository":{"id":7234743,"uuid":"8543918","full_name":"developit/puredom","owner":"developit","description":":heavy_dollar_sign: Fast, chainable and exstensible JavaScript library for building web applications.","archived":false,"fork":false,"pushed_at":"2017-05-17T06:32:17.000Z","size":9115,"stargazers_count":12,"open_issues_count":0,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-10T11:16:10.969Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://puredom.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/developit.png","metadata":{"files":{"readme":"README.md","changelog":"changelog","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-03-03T22:45:52.000Z","updated_at":"2023-09-25T07:41:42.000Z","dependencies_parsed_at":"2022-08-31T04:21:51.886Z","dependency_job_id":null,"html_url":"https://github.com/developit/puredom","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developit%2Fpuredom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developit%2Fpuredom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developit%2Fpuredom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developit%2Fpuredom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/developit","download_url":"https://codeload.github.com/developit/puredom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248986315,"owners_count":21194025,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T13:34:11.203Z","updated_at":"2025-10-07T17:37:18.563Z","avatar_url":"https://github.com/developit.png","language":"JavaScript","readme":"puredom [![NPM Version](http://img.shields.io/npm/v/puredom.svg?style=flat)](https://www.npmjs.org/package/puredom)\n=======\n\n⤹ `stable` ⥃ `develop` ⤵︎  \n[![Master Build Status](http://img.shields.io/travis/developit/puredom.svg?style=flat\u0026branch=master)](https://travis-ci.org/developit/puredom)\n[![Develop Build Status](http://img.shields.io/travis/developit/puredom.svg?style=flat\u0026branch=develop\u0026title=dev)](https://travis-ci.org/developit/puredom)\n\n[![Dependency Status](http://img.shields.io/david/developit/puredom.svg?style=flat)](https://david-dm.org/developit/puredom)\n[![devDependency Status](http://img.shields.io/david/dev/developit/puredom.svg?style=flat)](https://david-dm.org/developit/puredom#info=devDependencies)\n\n\n---\n\nWhat is Puredom?\n================\npuredom is a fast, chainable and extensible JavaScript library for web applications.\n\nIt makes building developing rich apps using JavaScript, HTML and CSS much easier.\n\n\n---\n\nInstallation via Package Managers\n=================================\n**Bower:**  \n`bower install puredom`\n\n\n**Component:**  \n`component install developit/puredom`\n\n\n---\n\nDocumentation\n=============\n- For a list of functions you can call on a puredom selection see the simple [selector function list](http://puredom.org/docs/symbols/puredom.NodeSelection.html).  \n- For class docs, check out the full [puredom documentation](http://puredom.org/docs/).  \n\n\n---\n\nPlugins\n=======\npuredom provides a plugin API for extending the core selection object, and for extending the CSS selector engine.\n\n- [Available Plugins](http://puredom.org/plugins/)  \n- [Plugin Documentation](http://puredom.org/building-plugins/)  \n\n\nExample NodeSelection Plugin\n----------------------------\nSelector Engine plugins extend the CSS selector syntax with new functionality.  \n```JavaScript\n// Add a new :log() filter\npuredom.addNodeSelectionPlugin(\n\t\"someFunctionName\",\t\t\t\t// gets pinned to every selection\n\tfunction(args){\n\t\t// \u003cthis\u003e is the NodeSelection\n\t\t// arguments passed to the function are passed on to your plugin\n\t}\n);\n\n// Use it\npuredom(\".foo\").someFunctionName();\t// call your plugin method\n```\n\n\nExample Selector Engine Plugin\n------------------------------\nSelector Engine plugins extend the CSS selector syntax with new functionality.  \n```JavaScript\n// Add a new :log() filter\npuredom.selectorEngine.addSelectorFilter(\n\t/^\\:log\\(\\)/gim,\t\t// regex to match your rule (similar to a route)\n\tfunction(matches, nodes, config){\n\t\tconsole.log(nodes);\n\t\t// Returning an Array here overwrites the selection.\n\t\t// To mutate the selection, operate directly on \u003cnodes\u003e.\n\t}\n);\n\n// Use it\npuredom(\".foo .bar:log()\u003ediv\");\t// logs the collection's contents at the given position\n```\n\n---\n\nDownload\n========\nDownload a pre-built copy of the puredom light or full libraries.\n\npuredom - Light Version\n-----------------------\n\u003e\t**[Core](http://puredom.org/docs/symbols/puredom.html)**  \n\u003e\t*Selector engine, filters, events, [NodeSelection](http://puredom.org/docs/symbols/puredom.NodeSelection.html)*  \n\u003e\n\u003e\t**[EventEmitter](http://puredom.org/docs/symbols/puredom.EventEmitter.html)**  \n\u003e\t*Add event support to objects and classes*  \n\u003e\n\u003e\t**[LocalStorage](http://puredom.org/docs/symbols/puredom.LocalStorage.html)**  \n\u003e\t*Persistent client-side stroage with adapters*  \n\u003e\n\u003e\t**[net](http://puredom.org/docs/symbols/puredom.net.html)**  \n\u003e\t*HTTP communication (AJAX and JSONP)*  \n\u003e\n\u003e\t**[date](http://puredom.org/docs/symbols/puredom.date.html)**  \n\u003e\t*Parse and format time and date*  \n\u003e\n\u003e\t**Formats**  \n\u003e\t*Work with [JSON](http://puredom.org/docs/symbols/puredom.json.html), [XML](http://puredom.org/docs/symbols/puredom.xml.html), [querystrings](http://puredom.org/docs/symbols/puredom.querystring.html),\n\u003e\t[text](http://puredom.org/docs/symbols/puredom.text.html) and [cookies](http://puredom.org/docs/symbols/puredom.cookies.html)*  \n\n**Download:** [puredom.light.js](http://puredom.org/download/latest/puredom.light.js)\n\n\npuredom - Full Version\n----------------------\nIncludes everything from the light version, plus:\n\n\u003e\t**ControllerManager**  \n\u003e\t*Work with controllers in an MVC configuration*  \n\u003e\n\u003e\t**RouteManager**  \n\u003e\t*Manage controllers based on URL patterns*  \n\u003e\n\u003e\t**ViewManager**  \n\u003e\t*Register, store, load and template HTML, or JSON views*  \n\u003e\n\u003e\t**FormHandler**  \n\u003e\t*Manage form population, submission and error handling*  \n\u003e\n\u003e\t**i18n**  \n\u003e\t*Internationalization \u0026 localization*  \n\u003e\n\u003e\t**Notifier**  \n\u003e\t*Show stylized notifications within the browser window*  \n\n**Download:** [puredom.js](http://puredom.org/download/latest/puredom.js)\n\n\n---\n\nBuilding\n========\nPuredom is built using Grunt.  \nBoth the full and light versions are built at the same time, as light is just a subset of the full library.  \n\n**Install Dependencies:**  \n```\nnpm install\n```\n\n**Install the Grunt CLI and JSHint:**  \nIf you haven't already, install grunt-cli and jshint globally  \n```\nsudo npm install -g grunt-cli\n```\n\n**Build the library:**  \nJust run grunt to build everything.  \n```\ngrunt\n```\nBuilds output to `dist/`  \n\n\n---\n\nLicense\n=======\n**puredom is released under a BSD-3-Clause License.**\n\n\u003e\tCopyright (c) Socialseek Inc. All rights reserved.\n\u003e\n\u003e\tRedistribution and use in source and binary forms, with or without modification,\n\u003e\tare permitted provided that the following conditions are met:  \n\u003e\t*\tRedistributions of source code must retain the above copyright notice,\n\u003e\t\tthis list of conditions and the following disclaimer.  \n\u003e\t*\tRedistributions in binary form must reproduce the above copyright notice,\n\u003e\t\tthis list of conditions and the following disclaimer in the documentation\n\u003e\t\tand/or other materials provided with the distribution.  \n\u003e\t*\tNeither the name of Socialseek Inc. nor the names of its contributors may be used to endorse\n\u003e\t\tor promote products derived from this software without specific prior written permission.  \n\u003e\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS\n\u003e\tOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\n\u003e\tAND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER\n\u003e\tOR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n\u003e\tDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\u003e\tDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\n\u003e\tIN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n\u003e\tOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n---\n\nChangelog\n=========\n\n**Version 1.9.1** *(Feb 16, 2015)*\n- Rewrite `#template()` to support a new CSS notation for declaring multiple fields per node, and assignment strategies for those fields: `\u003cdiv tpl=\"text:foo; classify:type; attr-id:__key;\u003e`\n- `'this'` and `'.'` should return the original object when passed as keys to `puredom.delve()` (for templates: `prop-obj:this;`)\n- Move event cancellation path into its own method to get rid of a try/catch de-opt\n- Use `classList` when available (+fixes)\n- Remove old easing methods and update docs\n- Factor selector-engine out into its own module\n\n**Version 1.8.0** *(Jan 25, 2015)*\n- Remove (silent/caught) exception that was being thrown for empty `Content-Type` response headers  \n- `TestSuite` is no longer included in builds  \n- `NativeAPI` is no longer included in builds  \n- Drop support for component  \n\n**Version 1.7.1** *(Jan 11, 2015)*  \n- Fix touch screen detection bug  \n\n**Version 1.7.0** *(Jan 10, 2015)*  \n- Update touch screen detection to account for IE10+ and recent Webkit updates  \n\n**Version 1.6.1** *(Jan 8, 2015)*  \n- Fix incorrect encoding of attributes when templated through NodeSelection#template()  \n- Remove try/catch from applyCss() that was causing a de-opt  \n- Clean up filters support (will be going away shortly)  \n\n**Version 1.6.0** *(Jan 6, 2015)*  \n- Fix HTTP responses with a `0` status not being treated as errors  \n- Remove `json2.js` JSON polyfill  \n\n**Version 1.5.0** *(Dec 9, 2014)*  \n- Add support for overriding `xhr.responseType` via `options.responseType` in `puredom.net.*`  \n\n**Version 1.4.3** *(Dec 6, 2014)*  \n- Don't proxy touch events if `navigator.maxTouchPoints=0`  \n\n**Version 1.4.2** *(Dec 5, 2014)*  \n- Fix the value of e.currentTarget when using delegated events  \n\n**Version 1.4.1** *(Nov 14, 2014)*  \n- Fix troublesome UMD setup.\n\n**Version 1.4.0** *(Sep 7, 2014)*  \n- BREAKING CHANGE: Corrected signature of EventEmitter#emit() to match Node's implementation: arguments 1-N are passed on to handlers.  \n\n**Version 1.3.0** *(Jun 29, 2014)*  \n- Add support for event delegation: `$('body').on('click', 'a', handleLink);`  \n\n**Version 1.2.7** *(May 24, 2014)*  \n- Fix ancient improper use of typeof  \n- Update build \u0026 test dependencies  \n\n**Version 1.2.6** *(May 18, 2014)*  \n- Fix puredom.mixin() regression introduced in version 1.2.1  \n- Added support for alternative \"decorator-first\" mixin() syntax  \n\n**Version 1.2.5** *(May 17, 2014)*  \n- Add Bower \u0026 Component support  \n\n**Version 1.2.4** *(Apr 8, 2014)*  \n- Account for encoding specified in a Content-Type response header  \n\n**Version 1.2.3** *(Apr 8, 2014)*  \n- Fix exception thrown from net.request()  \n- Passing undefined or null for a header value will now delete the header if it exists  \n\n**Version 1.2.2** *(Feb 23, 2014)*  \n- Refactored `EventEmitter` module.  \n- Fixed issue with textual HTTP responses.  \n\n**Version 1.2.1** *(Feb 9, 2014)*  \n- Performance improvements for selectors \u0026 selections.  \n\n**Version 1.2.0** *(Feb 2, 2014)*  \n- Distribution for 1.2.0  \n- puredom 1.2.0: rewritten puredom.net and reorganized files.  \n\n**Version 1.1.9** *(Jan 3, 2014)*  \n- Remove ridiculous blacklist of mobile devices for CSS3 transitions  \n- Add automatic vendor prefixing for transform, transition, perspective and box-sizing CSS properties  \n- Add support for passing HTML to the puredom() function to create a node.  \n\n**Version 1.1.8** *(Nov 15, 2013)*  \n- Fixed silly \"getAnimationCound\" error.  \n- Documentation, build \u0026 website fixes.  \n- Added `puredom.templateAttributeName` option, which defaults to `data-tpl-id`  \n\n**Version 1.1.7** *(Oct 8, 2013)*  \n- Lint, build \u0026 website fixes.  \n\n**Version 1.1.6** *(Mar 3, 2013)*  \n- Make puredom.DOMEvent an actual class. Instance it and pass it to fireEvent for better insight into handler responses.  \n\n**Version 1.1.5** *(Feb 26, 2013)*  \n- Accommodate null callback option for .css() [was throwing in Firefox]  \n\n**Version 1.1.4** *(Feb 25, 2013)*  \n- Feature: .css() now accepts CSS strings. sel.css('left:5px','fast');  \n- Bugfix: CSS animation of -vendor-transform is correctly turned off after completion.  \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopit%2Fpuredom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevelopit%2Fpuredom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopit%2Fpuredom/lists"}