\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/inikulin/parse5/issues"
- },
- "_id": "parse5@5.1.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "parse5@5.1.0",
- "name": "parse5",
- "escapedName": "parse5",
- "rawSpec": "5.1.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "5.1.0"
- },
- "_spec": "5.1.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_optional": true,
- "_args": [
- [
- "parse5@5.1.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/@angular/cdk/node_modules/parse5",
- "error": "[Circular]",
- "extraneous": false
- },
- "tslib": {
- "name": "tslib",
- "author": {
- "name": "Microsoft Corp."
- },
- "homepage": "http://typescriptlang.org/",
- "version": "1.9.3",
- "license": "Apache-2.0",
- "description": "Runtime library for TypeScript helper functions",
- "keywords": [
- "TypeScript",
- "Microsoft",
- "compiler",
- "language",
- "javascript",
- "tslib",
- "runtime"
- ],
- "bugs": {
- "url": "https://github.com/Microsoft/TypeScript/issues"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/Microsoft/tslib.git"
- },
- "main": "tslib.js",
- "module": "tslib.es6.js",
- "jsnext:main": "tslib.es6.js",
- "typings": "tslib.d.ts",
- "_resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "_integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "_from": "tslib@1.9.3",
- "readme": "# tslib\r\n\r\nThis is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.\r\n\r\nThis library is primarily used by the `--importHelpers` flag in TypeScript.\r\nWhen using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:\r\n\r\n```ts\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nexports.x = {};\r\nexports.y = __assign({}, exports.x);\r\n\r\n```\r\n\r\nwill instead be emitted as something like the following:\r\n\r\n```ts\r\nvar tslib_1 = require(\"tslib\");\r\nexports.x = {};\r\nexports.y = tslib_1.__assign({}, exports.x);\r\n```\r\n\r\nBecause this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.\r\nFor optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.\r\n\r\n# Installing\r\n\r\nFor the latest stable version, run:\r\n\r\n## npm\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nnpm install --save tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nnpm install --save tslib@1.6.1\r\n```\r\n\r\n## bower\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nbower install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nbower install tslib@1.6.1\r\n```\r\n\r\n## JSPM\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\njspm install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\njspm install tslib@1.6.1\r\n```\r\n\r\n# Usage\r\n\r\nSet the `importHelpers` compiler option on the command line:\r\n\r\n```\r\ntsc --importHelpers file.ts\r\n```\r\n\r\nor in your tsconfig.json:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"importHelpers\": true\r\n }\r\n}\r\n```\r\n\r\n#### For bower and JSPM users\r\n\r\nYou will need to add a `paths` mapping for `tslib`, e.g. For Bower users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"amd\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"bower_components/tslib/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\nFor JSPM users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"system\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"jspm_packages/npm/tslib@1.9.3/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\n\r\n# Contribute\r\n\r\nThere are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.\r\n\r\n* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.\r\n* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).\r\n* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).\r\n* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.\r\n* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).\r\n* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).\r\n\r\n# Documentation\r\n\r\n* [Quick tutorial](http://www.typescriptlang.org/Tutorial)\r\n* [Programming handbook](http://www.typescriptlang.org/Handbook)\r\n* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)\r\n* [Homepage](http://www.typescriptlang.org/)\r\n",
- "readmeFilename": "README.md",
- "_id": "tslib@1.9.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "tslib@1.9.3",
- "name": "tslib",
- "escapedName": "tslib",
- "rawSpec": "1.9.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.9.3"
- },
- "_spec": "1.9.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "tslib@1.9.3",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/tslib",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "tslib"
- }
- },
- "description": "Angular Material Component Development Kit",
- "es2015": "./esm2015/cdk.js",
- "homepage": "https://github.com/angular/material2#readme",
- "keywords": [
- "angular",
- "cdk",
- "component",
- "development",
- "kit"
- ],
- "license": "MIT",
- "main": "./bundles/cdk.umd.js",
- "module": "./esm5/cdk.es5.js",
- "name": "@angular/cdk",
- "ng-update": {
- "migrations": "./schematics/migration.json"
- },
- "optionalDependencies": {
- "parse5": "^5.0.0"
- },
- "peerDependencies": {
- "@angular/core": ">=7.0.0",
- "@angular/common": ">=7.0.0"
- },
- "releaseGitBranch": "7.0.x",
- "releaseGitCommitSha": "44db8860f62bc075e56ec65d784bfe8983a18690",
- "releaseGitUser": "Jeremy Elbourn ",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/angular/material2.git"
- },
- "schematics": "./schematics/collection.json",
- "sideEffects": false,
- "typings": "./cdk.d.ts",
- "version": "7.0.3",
- "readme": "Angular Material\n=======\n\nThe sources for this package are in the main [Angular Material](https://github.com/angular/material2) repo. Please file issues and pull requests against that repo.\n\nLicense: MIT",
- "readmeFilename": "README.md",
- "devDependencies": {},
- "_dependencies": {
- "parse5": "^5.0.0",
- "tslib": "^1.7.1"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/@angular/cdk",
- "error": "[Circular]",
- "extraneous": false,
- "peerMissing": [
- {
- "requiredBy": "@mat-datetimepicker/core@2.0.1",
- "requires": "@angular/cdk@^6.3.3"
- }
- ]
- },
- "peerMissing": true
- },
- "@angular/common": {
- "required": {
- "_args": [
- [
- "@angular/common@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ],
- [
- "@angular/common@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "_from": "@angular/common@7.0.3",
- "_id": "@angular/common@7.0.3",
- "_integrity": "sha512-aiuQh6+5kWFp34SYEtpnkAJWU3Qn17S/9LjWSZbgfiaYG6MyszepxqLZPBSBPTElxx2u5VoCPh97+TpKoDqx+g==",
- "_location": "/@angular/common",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "@angular/common@7.0.3",
- "name": "@angular/common",
- "escapedName": "@angular%2fcommon",
- "scope": "@angular",
- "rawSpec": "7.0.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "7.0.3"
- },
- "_requiredBy": [
- "/"
- ],
- "_resolved": "https://registry.npmjs.org/@angular/common/-/common-7.0.3.tgz",
- "_spec": "7.0.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "author": {
- "name": "angular"
- },
- "bugs": {
- "url": "https://github.com/angular/angular/issues"
- },
- "dependencies": {
- "tslib": {
- "name": "tslib",
- "author": "[Circular]",
- "homepage": "http://typescriptlang.org/",
- "version": "1.9.3",
- "license": "Apache-2.0",
- "description": "Runtime library for TypeScript helper functions",
- "keywords": "[Circular]",
- "bugs": "[Circular]",
- "repository": "[Circular]",
- "main": "tslib.js",
- "module": "tslib.es6.js",
- "jsnext:main": "tslib.es6.js",
- "typings": "tslib.d.ts",
- "_resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "_integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "_from": "tslib@1.9.3",
- "readme": "# tslib\r\n\r\nThis is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.\r\n\r\nThis library is primarily used by the `--importHelpers` flag in TypeScript.\r\nWhen using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:\r\n\r\n```ts\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nexports.x = {};\r\nexports.y = __assign({}, exports.x);\r\n\r\n```\r\n\r\nwill instead be emitted as something like the following:\r\n\r\n```ts\r\nvar tslib_1 = require(\"tslib\");\r\nexports.x = {};\r\nexports.y = tslib_1.__assign({}, exports.x);\r\n```\r\n\r\nBecause this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.\r\nFor optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.\r\n\r\n# Installing\r\n\r\nFor the latest stable version, run:\r\n\r\n## npm\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nnpm install --save tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nnpm install --save tslib@1.6.1\r\n```\r\n\r\n## bower\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nbower install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nbower install tslib@1.6.1\r\n```\r\n\r\n## JSPM\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\njspm install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\njspm install tslib@1.6.1\r\n```\r\n\r\n# Usage\r\n\r\nSet the `importHelpers` compiler option on the command line:\r\n\r\n```\r\ntsc --importHelpers file.ts\r\n```\r\n\r\nor in your tsconfig.json:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"importHelpers\": true\r\n }\r\n}\r\n```\r\n\r\n#### For bower and JSPM users\r\n\r\nYou will need to add a `paths` mapping for `tslib`, e.g. For Bower users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"amd\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"bower_components/tslib/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\nFor JSPM users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"system\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"jspm_packages/npm/tslib@1.9.3/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\n\r\n# Contribute\r\n\r\nThere are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.\r\n\r\n* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.\r\n* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).\r\n* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).\r\n* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.\r\n* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).\r\n* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).\r\n\r\n# Documentation\r\n\r\n* [Quick tutorial](http://www.typescriptlang.org/Tutorial)\r\n* [Programming handbook](http://www.typescriptlang.org/Handbook)\r\n* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)\r\n* [Homepage](http://www.typescriptlang.org/)\r\n",
- "readmeFilename": "README.md",
- "_id": "tslib@1.9.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "tslib@1.9.3",
- "name": "tslib",
- "escapedName": "tslib",
- "rawSpec": "1.9.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.9.3"
- },
- "_spec": "1.9.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/tslib",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "tslib"
- }
- },
- "description": "Angular - commonly needed directives and services",
- "es2015": "./fesm2015/common.js",
- "esm2015": "./esm2015/common.js",
- "esm5": "./esm5/common.js",
- "fesm2015": "./fesm2015/common.js",
- "fesm5": "./fesm5/common.js",
- "homepage": "https://github.com/angular/angular#readme",
- "license": "MIT",
- "locales": "locales",
- "main": "./bundles/common.umd.js",
- "module": "./fesm5/common.js",
- "name": "@angular/common",
- "ng-update": {
- "packageGroup": [
- "@angular/core",
- "@angular/bazel",
- "@angular/common",
- "@angular/compiler",
- "@angular/compiler-cli",
- "@angular/animations",
- "@angular/elements",
- "@angular/platform-browser",
- "@angular/platform-browser-dynamic",
- "@angular/forms",
- "@angular/http",
- "@angular/platform-server",
- "@angular/platform-webworker",
- "@angular/platform-webworker-dynamic",
- "@angular/upgrade",
- "@angular/router",
- "@angular/language-service",
- "@angular/service-worker"
- ]
- },
- "peerDependencies": {
- "rxjs": "^6.0.0",
- "@angular/core": "7.0.3"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/angular/angular.git"
- },
- "sideEffects": false,
- "typings": "./common.d.ts",
- "version": "7.0.3",
- "readme": "Angular\n=======\n\nThe sources for this package are in the main [Angular](https://github.com/angular/angular) repo. Please file issues and pull requests against that repo.\n\nLicense: MIT\n",
- "readmeFilename": "README.md",
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {
- "tslib": "^1.9.0"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/@angular/common",
- "error": "[Circular]",
- "extraneous": false,
- "peerMissing": [
- {
- "requiredBy": "@alfresco/adf-extensions@3.0.0-383b74151a47e188020249aea7ec0dfb586bd0b6",
- "requires": "@angular/common@^6.0.0"
- },
- {
- "requiredBy": "@ngrx/router-store@6.1.2",
- "requires": "@angular/common@^6.0.0"
- }
- ]
- },
- "peerMissing": true
- },
- "@angular/compiler": {
- "version": "7.0.3",
- "from": "@angular/compiler@7.0.3",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.0.3.tgz"
- },
- "@angular/core": {
- "required": {
- "_args": [
- [
- "@angular/core@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ],
- [
- "@angular/core@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "_from": "@angular/core@7.0.3",
- "_id": "@angular/core@7.0.3",
- "_integrity": "sha512-x/OYYykVsi2vrKlYQJ37I8HYAI/s/CtL3Sd9bl87F6AnqLWnnKIxQaofT/ShfAfdP44LQoN5BNp5j+sjs8K4Kg==",
- "_location": "/@angular/core",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "@angular/core@7.0.3",
- "name": "@angular/core",
- "escapedName": "@angular%2fcore",
- "scope": "@angular",
- "rawSpec": "7.0.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "7.0.3"
- },
- "_requiredBy": [
- "/"
- ],
- "_resolved": "https://registry.npmjs.org/@angular/core/-/core-7.0.3.tgz",
- "_spec": "7.0.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "author": {
- "name": "angular"
- },
- "bugs": {
- "url": "https://github.com/angular/angular/issues"
- },
- "dependencies": {
- "tslib": {
- "name": "tslib",
- "author": "[Circular]",
- "homepage": "http://typescriptlang.org/",
- "version": "1.9.3",
- "license": "Apache-2.0",
- "description": "Runtime library for TypeScript helper functions",
- "keywords": "[Circular]",
- "bugs": "[Circular]",
- "repository": "[Circular]",
- "main": "tslib.js",
- "module": "tslib.es6.js",
- "jsnext:main": "tslib.es6.js",
- "typings": "tslib.d.ts",
- "_resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "_integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "_from": "tslib@1.9.3",
- "readme": "# tslib\r\n\r\nThis is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.\r\n\r\nThis library is primarily used by the `--importHelpers` flag in TypeScript.\r\nWhen using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:\r\n\r\n```ts\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nexports.x = {};\r\nexports.y = __assign({}, exports.x);\r\n\r\n```\r\n\r\nwill instead be emitted as something like the following:\r\n\r\n```ts\r\nvar tslib_1 = require(\"tslib\");\r\nexports.x = {};\r\nexports.y = tslib_1.__assign({}, exports.x);\r\n```\r\n\r\nBecause this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.\r\nFor optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.\r\n\r\n# Installing\r\n\r\nFor the latest stable version, run:\r\n\r\n## npm\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nnpm install --save tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nnpm install --save tslib@1.6.1\r\n```\r\n\r\n## bower\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nbower install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nbower install tslib@1.6.1\r\n```\r\n\r\n## JSPM\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\njspm install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\njspm install tslib@1.6.1\r\n```\r\n\r\n# Usage\r\n\r\nSet the `importHelpers` compiler option on the command line:\r\n\r\n```\r\ntsc --importHelpers file.ts\r\n```\r\n\r\nor in your tsconfig.json:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"importHelpers\": true\r\n }\r\n}\r\n```\r\n\r\n#### For bower and JSPM users\r\n\r\nYou will need to add a `paths` mapping for `tslib`, e.g. For Bower users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"amd\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"bower_components/tslib/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\nFor JSPM users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"system\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"jspm_packages/npm/tslib@1.9.3/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\n\r\n# Contribute\r\n\r\nThere are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.\r\n\r\n* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.\r\n* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).\r\n* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).\r\n* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.\r\n* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).\r\n* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).\r\n\r\n# Documentation\r\n\r\n* [Quick tutorial](http://www.typescriptlang.org/Tutorial)\r\n* [Programming handbook](http://www.typescriptlang.org/Handbook)\r\n* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)\r\n* [Homepage](http://www.typescriptlang.org/)\r\n",
- "readmeFilename": "README.md",
- "_id": "tslib@1.9.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "tslib@1.9.3",
- "name": "tslib",
- "escapedName": "tslib",
- "rawSpec": "1.9.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.9.3"
- },
- "_spec": "1.9.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/tslib",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "tslib"
- }
- },
- "description": "Angular - the core framework",
- "es2015": "./fesm2015/core.js",
- "esm2015": "./esm2015/core.js",
- "esm5": "./esm5/core.js",
- "fesm2015": "./fesm2015/core.js",
- "fesm5": "./fesm5/core.js",
- "homepage": "https://github.com/angular/angular#readme",
- "license": "MIT",
- "main": "./bundles/core.umd.js",
- "module": "./fesm5/core.js",
- "name": "@angular/core",
- "ng-update": {
- "packageGroup": [
- "@angular/core",
- "@angular/bazel",
- "@angular/common",
- "@angular/compiler",
- "@angular/compiler-cli",
- "@angular/animations",
- "@angular/elements",
- "@angular/platform-browser",
- "@angular/platform-browser-dynamic",
- "@angular/forms",
- "@angular/http",
- "@angular/platform-server",
- "@angular/platform-webworker",
- "@angular/platform-webworker-dynamic",
- "@angular/upgrade",
- "@angular/router",
- "@angular/language-service",
- "@angular/service-worker"
- ]
- },
- "peerDependencies": {
- "rxjs": "^6.0.0",
- "zone.js": "~0.8.26"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/angular/angular.git"
- },
- "sideEffects": false,
- "typings": "./core.d.ts",
- "version": "7.0.3",
- "readme": "Angular\n=======\n\nThe sources for this package are in the main [Angular](https://github.com/angular/angular) repo. Please file issues and pull requests against that repo.\n\nLicense: MIT\n",
- "readmeFilename": "README.md",
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {
- "tslib": "^1.9.0"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/@angular/core",
- "error": "[Circular]",
- "extraneous": false,
- "peerMissing": [
- {
- "requiredBy": "@alfresco/adf-extensions@3.0.0-383b74151a47e188020249aea7ec0dfb586bd0b6",
- "requires": "@angular/core@^6.0.0"
- },
- {
- "requiredBy": "@mat-datetimepicker/core@2.0.1",
- "requires": "@angular/core@^6.0.7"
- },
- {
- "requiredBy": "@ngrx/effects@6.1.2",
- "requires": "@angular/core@^6.0.0"
- },
- {
- "requiredBy": "@ngrx/router-store@6.1.2",
- "requires": "@angular/core@^6.0.0"
- },
- {
- "requiredBy": "@ngrx/store@6.1.2",
- "requires": "@angular/core@^6.0.0"
- }
- ]
- },
- "peerMissing": true
- },
- "@angular/flex-layout": {
- "required": {
- "name": "@angular/flex-layout",
- "version": "7.0.0-beta.19",
- "description": "Angular Flex-Layout",
- "main": "./bundles/flex-layout.umd.js",
- "module": "./esm5/flex-layout.es5.js",
- "es2015": "./esm2015/flex-layout.js",
- "typings": "./flex-layout.d.ts",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/angular/flex-layout.git"
- },
- "keywords": [
- "angular",
- "flex-layout",
- "flexbox css",
- "media query",
- "breakpoints"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/angular/flex-layout/issues"
- },
- "homepage": "https://github.com/angular/flex-layout#readme",
- "peerDependencies": {
- "@angular/cdk": "^7.0.0-rc.0",
- "@angular/core": ">=7.0.0-rc.0",
- "@angular/common": ">=7.0.0-rc.0",
- "rxjs": "^6.0.0"
- },
- "dependencies": {
- "tslib": {
- "name": "tslib",
- "author": "[Circular]",
- "homepage": "http://typescriptlang.org/",
- "version": "1.9.3",
- "license": "Apache-2.0",
- "description": "Runtime library for TypeScript helper functions",
- "keywords": "[Circular]",
- "bugs": "[Circular]",
- "repository": "[Circular]",
- "main": "tslib.js",
- "module": "tslib.es6.js",
- "jsnext:main": "tslib.es6.js",
- "typings": "tslib.d.ts",
- "_resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "_integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "_from": "tslib@1.9.3",
- "readme": "# tslib\r\n\r\nThis is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.\r\n\r\nThis library is primarily used by the `--importHelpers` flag in TypeScript.\r\nWhen using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:\r\n\r\n```ts\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nexports.x = {};\r\nexports.y = __assign({}, exports.x);\r\n\r\n```\r\n\r\nwill instead be emitted as something like the following:\r\n\r\n```ts\r\nvar tslib_1 = require(\"tslib\");\r\nexports.x = {};\r\nexports.y = tslib_1.__assign({}, exports.x);\r\n```\r\n\r\nBecause this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.\r\nFor optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.\r\n\r\n# Installing\r\n\r\nFor the latest stable version, run:\r\n\r\n## npm\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nnpm install --save tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nnpm install --save tslib@1.6.1\r\n```\r\n\r\n## bower\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nbower install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nbower install tslib@1.6.1\r\n```\r\n\r\n## JSPM\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\njspm install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\njspm install tslib@1.6.1\r\n```\r\n\r\n# Usage\r\n\r\nSet the `importHelpers` compiler option on the command line:\r\n\r\n```\r\ntsc --importHelpers file.ts\r\n```\r\n\r\nor in your tsconfig.json:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"importHelpers\": true\r\n }\r\n}\r\n```\r\n\r\n#### For bower and JSPM users\r\n\r\nYou will need to add a `paths` mapping for `tslib`, e.g. For Bower users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"amd\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"bower_components/tslib/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\nFor JSPM users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"system\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"jspm_packages/npm/tslib@1.9.3/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\n\r\n# Contribute\r\n\r\nThere are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.\r\n\r\n* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.\r\n* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).\r\n* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).\r\n* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.\r\n* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).\r\n* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).\r\n\r\n# Documentation\r\n\r\n* [Quick tutorial](http://www.typescriptlang.org/Tutorial)\r\n* [Programming handbook](http://www.typescriptlang.org/Handbook)\r\n* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)\r\n* [Homepage](http://www.typescriptlang.org/)\r\n",
- "readmeFilename": "README.md",
- "_id": "tslib@1.9.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "tslib@1.9.3",
- "name": "tslib",
- "escapedName": "tslib",
- "rawSpec": "1.9.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.9.3"
- },
- "_spec": "1.9.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/tslib",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "tslib"
- }
- },
- "sideEffects": false,
- "_resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-7.0.0-beta.19.tgz",
- "_integrity": "sha512-MXq+zZ6/s5/+GsL9fZ42mKL0LjZ/+L0sVU5FaQuSAJ57soLl5QAGWvdxVmROtqcHd3Htp35R49nKSZBJ0nfAjg==",
- "_from": "@angular/flex-layout@7.0.0-beta.19",
- "readme": "Angular Flex-Layout\n=======\n\nThe sources for this package are in the main [Angular Flex-Layout](https://github.com/angular/flex-layout) repo. \nPlease file issues and pull requests against that repo.\n\nLicense: MIT\n",
- "readmeFilename": "README.md",
- "_id": "@angular/flex-layout@7.0.0-beta.19",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "@angular/flex-layout@7.0.0-beta.19",
- "name": "@angular/flex-layout",
- "escapedName": "@angular%2fflex-layout",
- "scope": "@angular",
- "rawSpec": "7.0.0-beta.19",
- "saveSpec": "[Circular]",
- "fetchSpec": "7.0.0-beta.19"
- },
- "_spec": "7.0.0-beta.19",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "@angular/flex-layout@7.0.0-beta.19",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {
- "tslib": "^1.7.1"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/@angular/flex-layout",
- "error": "[Circular]",
- "extraneous": false,
- "peerMissing": [
- {
- "requiredBy": "@alfresco/adf-content-services@2.6.1",
- "requires": "@angular/flex-layout@>=6.0.0-beta.18"
- },
- {
- "requiredBy": "@alfresco/adf-core@2.6.1",
- "requires": "@angular/flex-layout@>=6.0.0-beta.18"
- }
- ]
- },
- "peerMissing": true
- },
- "@angular/forms": {
- "version": "7.0.3",
- "from": "@angular/forms@7.0.3",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.0.3.tgz"
- },
- "@angular/http": {
- "required": {
- "_args": [
- [
- "@angular/http@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ],
- [
- "@angular/http@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "_from": "@angular/http@7.0.3",
- "_id": "@angular/http@7.0.3",
- "_integrity": "sha512-aL+z1/tbVY8oJw5v46rbMli5vBGDVyJvs95d1l2n3hWnwMTzS9AVetjcL3B3uruAYuXoh4QlSJ+ysBgdmV1+IA==",
- "_location": "/@angular/http",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "@angular/http@7.0.3",
- "name": "@angular/http",
- "escapedName": "@angular%2fhttp",
- "scope": "@angular",
- "rawSpec": "7.0.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "7.0.3"
- },
- "_requiredBy": [
- "/"
- ],
- "_resolved": "https://registry.npmjs.org/@angular/http/-/http-7.0.3.tgz",
- "_spec": "7.0.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "author": {
- "name": "angular"
- },
- "bugs": {
- "url": "https://github.com/angular/angular/issues"
- },
- "dependencies": {
- "tslib": {
- "name": "tslib",
- "author": "[Circular]",
- "homepage": "http://typescriptlang.org/",
- "version": "1.9.3",
- "license": "Apache-2.0",
- "description": "Runtime library for TypeScript helper functions",
- "keywords": "[Circular]",
- "bugs": "[Circular]",
- "repository": "[Circular]",
- "main": "tslib.js",
- "module": "tslib.es6.js",
- "jsnext:main": "tslib.es6.js",
- "typings": "tslib.d.ts",
- "_resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "_integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "_from": "tslib@1.9.3",
- "readme": "# tslib\r\n\r\nThis is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.\r\n\r\nThis library is primarily used by the `--importHelpers` flag in TypeScript.\r\nWhen using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:\r\n\r\n```ts\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nexports.x = {};\r\nexports.y = __assign({}, exports.x);\r\n\r\n```\r\n\r\nwill instead be emitted as something like the following:\r\n\r\n```ts\r\nvar tslib_1 = require(\"tslib\");\r\nexports.x = {};\r\nexports.y = tslib_1.__assign({}, exports.x);\r\n```\r\n\r\nBecause this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.\r\nFor optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.\r\n\r\n# Installing\r\n\r\nFor the latest stable version, run:\r\n\r\n## npm\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nnpm install --save tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nnpm install --save tslib@1.6.1\r\n```\r\n\r\n## bower\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nbower install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nbower install tslib@1.6.1\r\n```\r\n\r\n## JSPM\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\njspm install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\njspm install tslib@1.6.1\r\n```\r\n\r\n# Usage\r\n\r\nSet the `importHelpers` compiler option on the command line:\r\n\r\n```\r\ntsc --importHelpers file.ts\r\n```\r\n\r\nor in your tsconfig.json:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"importHelpers\": true\r\n }\r\n}\r\n```\r\n\r\n#### For bower and JSPM users\r\n\r\nYou will need to add a `paths` mapping for `tslib`, e.g. For Bower users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"amd\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"bower_components/tslib/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\nFor JSPM users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"system\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"jspm_packages/npm/tslib@1.9.3/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\n\r\n# Contribute\r\n\r\nThere are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.\r\n\r\n* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.\r\n* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).\r\n* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).\r\n* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.\r\n* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).\r\n* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).\r\n\r\n# Documentation\r\n\r\n* [Quick tutorial](http://www.typescriptlang.org/Tutorial)\r\n* [Programming handbook](http://www.typescriptlang.org/Handbook)\r\n* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)\r\n* [Homepage](http://www.typescriptlang.org/)\r\n",
- "readmeFilename": "README.md",
- "_id": "tslib@1.9.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "tslib@1.9.3",
- "name": "tslib",
- "escapedName": "tslib",
- "rawSpec": "1.9.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.9.3"
- },
- "_spec": "1.9.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/tslib",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "tslib"
- }
- },
- "description": "Angular - the http service",
- "es2015": "./fesm2015/http.js",
- "esm2015": "./esm2015/http.js",
- "esm5": "./esm5/http.js",
- "fesm2015": "./fesm2015/http.js",
- "fesm5": "./fesm5/http.js",
- "homepage": "https://github.com/angular/angular#readme",
- "license": "MIT",
- "main": "./bundles/http.umd.js",
- "module": "./fesm5/http.js",
- "name": "@angular/http",
- "ng-update": {
- "packageGroup": [
- "@angular/core",
- "@angular/bazel",
- "@angular/common",
- "@angular/compiler",
- "@angular/compiler-cli",
- "@angular/animations",
- "@angular/elements",
- "@angular/platform-browser",
- "@angular/platform-browser-dynamic",
- "@angular/forms",
- "@angular/http",
- "@angular/platform-server",
- "@angular/platform-webworker",
- "@angular/platform-webworker-dynamic",
- "@angular/upgrade",
- "@angular/router",
- "@angular/language-service",
- "@angular/service-worker"
- ]
- },
- "peerDependencies": {
- "rxjs": "^6.0.0",
- "@angular/core": "7.0.3",
- "@angular/platform-browser": "7.0.3"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/angular/angular.git"
- },
- "sideEffects": false,
- "typings": "./http.d.ts",
- "version": "7.0.3",
- "readme": "Angular\n=======\n\nThe sources for this package are in the main [Angular](https://github.com/angular/angular) repo. Please file issues and pull requests against that repo.\n\nLicense: MIT\n",
- "readmeFilename": "README.md",
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {
- "tslib": "^1.9.0"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/@angular/http",
- "error": "[Circular]",
- "extraneous": false,
- "peerMissing": [
- {
- "requiredBy": "@alfresco/adf-extensions@3.0.0-383b74151a47e188020249aea7ec0dfb586bd0b6",
- "requires": "@angular/http@^6.1.4"
- }
- ]
- },
- "peerMissing": true
- },
- "@angular/material": {
- "required": {
- "_args": [
- [
- "@angular/material@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ],
- [
- "@angular/material@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "_from": "@angular/material@7.0.3",
- "_id": "@angular/material@7.0.3",
- "_integrity": "sha512-acJ2zU44k/rsd4OeTdAMVP0R3te8aXwfubDQGc8YI1CdRVW1XqMSvAWkToYDVaGvnZV53zQt/iSi1XWaSXYf1Q==",
- "_location": "/@angular/material",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "@angular/material@7.0.3",
- "name": "@angular/material",
- "escapedName": "@angular%2fmaterial",
- "scope": "@angular",
- "rawSpec": "7.0.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "7.0.3"
- },
- "_requiredBy": [
- "/"
- ],
- "_resolved": "https://registry.npmjs.org/@angular/material/-/material-7.0.3.tgz",
- "_spec": "7.0.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "dependencies": {
- "tslib": {
- "name": "tslib",
- "author": "[Circular]",
- "homepage": "http://typescriptlang.org/",
- "version": "1.9.3",
- "license": "Apache-2.0",
- "description": "Runtime library for TypeScript helper functions",
- "keywords": "[Circular]",
- "bugs": "[Circular]",
- "repository": "[Circular]",
- "main": "tslib.js",
- "module": "tslib.es6.js",
- "jsnext:main": "tslib.es6.js",
- "typings": "tslib.d.ts",
- "_resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "_integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "_from": "tslib@1.9.3",
- "readme": "# tslib\r\n\r\nThis is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.\r\n\r\nThis library is primarily used by the `--importHelpers` flag in TypeScript.\r\nWhen using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:\r\n\r\n```ts\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nexports.x = {};\r\nexports.y = __assign({}, exports.x);\r\n\r\n```\r\n\r\nwill instead be emitted as something like the following:\r\n\r\n```ts\r\nvar tslib_1 = require(\"tslib\");\r\nexports.x = {};\r\nexports.y = tslib_1.__assign({}, exports.x);\r\n```\r\n\r\nBecause this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.\r\nFor optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.\r\n\r\n# Installing\r\n\r\nFor the latest stable version, run:\r\n\r\n## npm\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nnpm install --save tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nnpm install --save tslib@1.6.1\r\n```\r\n\r\n## bower\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nbower install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nbower install tslib@1.6.1\r\n```\r\n\r\n## JSPM\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\njspm install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\njspm install tslib@1.6.1\r\n```\r\n\r\n# Usage\r\n\r\nSet the `importHelpers` compiler option on the command line:\r\n\r\n```\r\ntsc --importHelpers file.ts\r\n```\r\n\r\nor in your tsconfig.json:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"importHelpers\": true\r\n }\r\n}\r\n```\r\n\r\n#### For bower and JSPM users\r\n\r\nYou will need to add a `paths` mapping for `tslib`, e.g. For Bower users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"amd\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"bower_components/tslib/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\nFor JSPM users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"system\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"jspm_packages/npm/tslib@1.9.3/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\n\r\n# Contribute\r\n\r\nThere are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.\r\n\r\n* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.\r\n* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).\r\n* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).\r\n* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.\r\n* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).\r\n* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).\r\n\r\n# Documentation\r\n\r\n* [Quick tutorial](http://www.typescriptlang.org/Tutorial)\r\n* [Programming handbook](http://www.typescriptlang.org/Handbook)\r\n* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)\r\n* [Homepage](http://www.typescriptlang.org/)\r\n",
- "readmeFilename": "README.md",
- "_id": "tslib@1.9.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "tslib@1.9.3",
- "name": "tslib",
- "escapedName": "tslib",
- "rawSpec": "1.9.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.9.3"
- },
- "_spec": "1.9.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/tslib",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "tslib"
- }
- },
- "description": "Angular Material",
- "es2015": "./esm2015/material.js",
- "homepage": "https://github.com/angular/material2#readme",
- "keywords": [
- "angular",
- "material",
- "material design",
- "components"
- ],
- "license": "MIT",
- "main": "./bundles/material.umd.js",
- "module": "./esm5/material.es5.js",
- "name": "@angular/material",
- "ng-update": {
- "migrations": "./schematics/migration.json",
- "packageGroup": [
- "@angular/material",
- "@angular/cdk",
- "@angular/material-moment-adapter"
- ]
- },
- "peerDependencies": {
- "@angular/animations": ">=7.0.0",
- "@angular/cdk": "7.0.3",
- "@angular/core": ">=7.0.0",
- "@angular/common": ">=7.0.0"
- },
- "releaseGitBranch": "7.0.x",
- "releaseGitCommitSha": "44db8860f62bc075e56ec65d784bfe8983a18690",
- "releaseGitUser": "Jeremy Elbourn ",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/angular/material2.git"
- },
- "schematics": "./schematics/collection.json",
- "sideEffects": false,
- "typings": "./material.d.ts",
- "version": "7.0.3",
- "readme": "Angular Material\n=======\n\nThe sources for this package are in the main [Angular Material](https://github.com/angular/material2) repo. Please file issues and pull requests against that repo.\n\nLicense: MIT",
- "readmeFilename": "README.md",
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {
- "tslib": "^1.7.1"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/@angular/material",
- "error": "[Circular]",
- "extraneous": false,
- "peerMissing": [
- {
- "requiredBy": "@mat-datetimepicker/core@2.0.1",
- "requires": "@angular/material@^6.3.3"
- },
- {
- "requiredBy": "@mat-datetimepicker/moment@2.0.1",
- "requires": "@angular/material@^6.3.3"
- }
- ]
- },
- "peerMissing": true
- },
- "@angular/material-moment-adapter": {
- "required": {
- "_args": [
- [
- "@angular/material-moment-adapter@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ],
- [
- "@angular/material-moment-adapter@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "_from": "@angular/material-moment-adapter@7.0.3",
- "_id": "@angular/material-moment-adapter@7.0.3",
- "_integrity": "sha512-vbynHlQYWcgbZKRearq5LpflQp9VPDDNarHL+C4WD6aGLPYmIKotOWcBr083HfN1RnkCa7fh+GhOld/MHglHmg==",
- "_location": "/@angular/material-moment-adapter",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "@angular/material-moment-adapter@7.0.3",
- "name": "@angular/material-moment-adapter",
- "escapedName": "@angular%2fmaterial-moment-adapter",
- "scope": "@angular",
- "rawSpec": "7.0.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "7.0.3"
- },
- "_requiredBy": [
- "/"
- ],
- "_resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-7.0.3.tgz",
- "_spec": "7.0.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "bugs": {
- "url": "https://github.com/angular/material2/issues"
- },
- "dependencies": {
- "tslib": {
- "name": "tslib",
- "author": "[Circular]",
- "homepage": "http://typescriptlang.org/",
- "version": "1.9.3",
- "license": "Apache-2.0",
- "description": "Runtime library for TypeScript helper functions",
- "keywords": "[Circular]",
- "bugs": "[Circular]",
- "repository": "[Circular]",
- "main": "tslib.js",
- "module": "tslib.es6.js",
- "jsnext:main": "tslib.es6.js",
- "typings": "tslib.d.ts",
- "_resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "_integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "_from": "tslib@1.9.3",
- "readme": "# tslib\r\n\r\nThis is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.\r\n\r\nThis library is primarily used by the `--importHelpers` flag in TypeScript.\r\nWhen using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:\r\n\r\n```ts\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nexports.x = {};\r\nexports.y = __assign({}, exports.x);\r\n\r\n```\r\n\r\nwill instead be emitted as something like the following:\r\n\r\n```ts\r\nvar tslib_1 = require(\"tslib\");\r\nexports.x = {};\r\nexports.y = tslib_1.__assign({}, exports.x);\r\n```\r\n\r\nBecause this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.\r\nFor optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.\r\n\r\n# Installing\r\n\r\nFor the latest stable version, run:\r\n\r\n## npm\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nnpm install --save tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nnpm install --save tslib@1.6.1\r\n```\r\n\r\n## bower\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nbower install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nbower install tslib@1.6.1\r\n```\r\n\r\n## JSPM\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\njspm install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\njspm install tslib@1.6.1\r\n```\r\n\r\n# Usage\r\n\r\nSet the `importHelpers` compiler option on the command line:\r\n\r\n```\r\ntsc --importHelpers file.ts\r\n```\r\n\r\nor in your tsconfig.json:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"importHelpers\": true\r\n }\r\n}\r\n```\r\n\r\n#### For bower and JSPM users\r\n\r\nYou will need to add a `paths` mapping for `tslib`, e.g. For Bower users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"amd\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"bower_components/tslib/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\nFor JSPM users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"system\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"jspm_packages/npm/tslib@1.9.3/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\n\r\n# Contribute\r\n\r\nThere are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.\r\n\r\n* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.\r\n* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).\r\n* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).\r\n* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.\r\n* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).\r\n* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).\r\n\r\n# Documentation\r\n\r\n* [Quick tutorial](http://www.typescriptlang.org/Tutorial)\r\n* [Programming handbook](http://www.typescriptlang.org/Handbook)\r\n* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)\r\n* [Homepage](http://www.typescriptlang.org/)\r\n",
- "readmeFilename": "README.md",
- "_id": "tslib@1.9.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "tslib@1.9.3",
- "name": "tslib",
- "escapedName": "tslib",
- "rawSpec": "1.9.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.9.3"
- },
- "_spec": "1.9.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/tslib",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "tslib"
- }
- },
- "description": "Angular Material Moment Adapter",
- "es2015": "./esm2015/material-moment-adapter.js",
- "homepage": "https://github.com/angular/material2#readme",
- "license": "MIT",
- "main": "./bundles/material-moment-adapter.umd.js",
- "module": "./esm5/material-moment-adapter.es5.js",
- "name": "@angular/material-moment-adapter",
- "ng-update": {
- "packageGroup": [
- "@angular/material",
- "@angular/cdk",
- "@angular/material-moment-adapter"
- ]
- },
- "peerDependencies": {
- "@angular/material": "7.0.3",
- "@angular/core": ">=7.0.0",
- "moment": "^2.18.1"
- },
- "releaseGitBranch": "7.0.x",
- "releaseGitCommitSha": "44db8860f62bc075e56ec65d784bfe8983a18690",
- "releaseGitUser": "Jeremy Elbourn ",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/angular/material2.git"
- },
- "typings": "./material-moment-adapter.d.ts",
- "version": "7.0.3",
- "readme": "Angular Material\n=======\n\nThe sources for this package are in the main [Angular Material](https://github.com/angular/material2) repo. Please file issues and pull requests against that repo.\n\nLicense: MIT",
- "readmeFilename": "README.md",
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {
- "tslib": "^1.7.1"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/@angular/material-moment-adapter",
- "error": "[Circular]",
- "extraneous": false,
- "peerMissing": [
- {
- "requiredBy": "@mat-datetimepicker/moment@2.0.1",
- "requires": "@angular/material-moment-adapter@^6.3.3"
- }
- ]
- },
- "peerMissing": true
- },
- "@angular/platform-browser": {
- "version": "7.0.3",
- "from": "@angular/platform-browser@7.0.3",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.0.3.tgz"
- },
- "@angular/platform-browser-dynamic": {
- "version": "7.0.3",
- "from": "@angular/platform-browser-dynamic@7.0.3",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.0.3.tgz"
- },
- "@angular/router": {
- "required": {
- "_args": [
- [
- "@angular/router@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ],
- [
- "@angular/router@7.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "_from": "@angular/router@7.0.3",
- "_id": "@angular/router@7.0.3",
- "_integrity": "sha512-885svORDpD9DkaMKjvGwn4g5bf0n3JR8os+gCNhzk0p4TPfpc+vmNo8SyY2jwdLMh2rQzrUQTDkn9SzzgiOfDQ==",
- "_location": "/@angular/router",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "@angular/router@7.0.3",
- "name": "@angular/router",
- "escapedName": "@angular%2frouter",
- "scope": "@angular",
- "rawSpec": "7.0.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "7.0.3"
- },
- "_requiredBy": [
- "/"
- ],
- "_resolved": "https://registry.npmjs.org/@angular/router/-/router-7.0.3.tgz",
- "_spec": "7.0.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "author": {
- "name": "angular"
- },
- "bugs": {
- "url": "https://github.com/angular/angular/issues"
- },
- "dependencies": {
- "tslib": {
- "name": "tslib",
- "author": "[Circular]",
- "homepage": "http://typescriptlang.org/",
- "version": "1.9.3",
- "license": "Apache-2.0",
- "description": "Runtime library for TypeScript helper functions",
- "keywords": "[Circular]",
- "bugs": "[Circular]",
- "repository": "[Circular]",
- "main": "tslib.js",
- "module": "tslib.es6.js",
- "jsnext:main": "tslib.es6.js",
- "typings": "tslib.d.ts",
- "_resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "_integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "_from": "tslib@1.9.3",
- "readme": "# tslib\r\n\r\nThis is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.\r\n\r\nThis library is primarily used by the `--importHelpers` flag in TypeScript.\r\nWhen using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:\r\n\r\n```ts\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nexports.x = {};\r\nexports.y = __assign({}, exports.x);\r\n\r\n```\r\n\r\nwill instead be emitted as something like the following:\r\n\r\n```ts\r\nvar tslib_1 = require(\"tslib\");\r\nexports.x = {};\r\nexports.y = tslib_1.__assign({}, exports.x);\r\n```\r\n\r\nBecause this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.\r\nFor optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.\r\n\r\n# Installing\r\n\r\nFor the latest stable version, run:\r\n\r\n## npm\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nnpm install --save tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nnpm install --save tslib@1.6.1\r\n```\r\n\r\n## bower\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nbower install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nbower install tslib@1.6.1\r\n```\r\n\r\n## JSPM\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\njspm install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\njspm install tslib@1.6.1\r\n```\r\n\r\n# Usage\r\n\r\nSet the `importHelpers` compiler option on the command line:\r\n\r\n```\r\ntsc --importHelpers file.ts\r\n```\r\n\r\nor in your tsconfig.json:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"importHelpers\": true\r\n }\r\n}\r\n```\r\n\r\n#### For bower and JSPM users\r\n\r\nYou will need to add a `paths` mapping for `tslib`, e.g. For Bower users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"amd\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"bower_components/tslib/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\nFor JSPM users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"system\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"jspm_packages/npm/tslib@1.9.3/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\n\r\n# Contribute\r\n\r\nThere are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.\r\n\r\n* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.\r\n* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).\r\n* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).\r\n* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.\r\n* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).\r\n* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).\r\n\r\n# Documentation\r\n\r\n* [Quick tutorial](http://www.typescriptlang.org/Tutorial)\r\n* [Programming handbook](http://www.typescriptlang.org/Handbook)\r\n* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)\r\n* [Homepage](http://www.typescriptlang.org/)\r\n",
- "readmeFilename": "README.md",
- "_id": "tslib@1.9.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "tslib@1.9.3",
- "name": "tslib",
- "escapedName": "tslib",
- "rawSpec": "1.9.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.9.3"
- },
- "_spec": "1.9.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/tslib",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "tslib"
- }
- },
- "description": "Angular - the routing library",
- "es2015": "./fesm2015/router.js",
- "esm2015": "./esm2015/router.js",
- "esm5": "./esm5/router.js",
- "fesm2015": "./fesm2015/router.js",
- "fesm5": "./fesm5/router.js",
- "homepage": "https://github.com/angular/angular/tree/master/packages/router",
- "keywords": [
- "angular",
- "router"
- ],
- "license": "MIT",
- "main": "./bundles/router.umd.js",
- "module": "./fesm5/router.js",
- "name": "@angular/router",
- "ng-update": {
- "packageGroup": [
- "@angular/core",
- "@angular/bazel",
- "@angular/common",
- "@angular/compiler",
- "@angular/compiler-cli",
- "@angular/animations",
- "@angular/elements",
- "@angular/platform-browser",
- "@angular/platform-browser-dynamic",
- "@angular/forms",
- "@angular/http",
- "@angular/platform-server",
- "@angular/platform-webworker",
- "@angular/platform-webworker-dynamic",
- "@angular/upgrade",
- "@angular/router",
- "@angular/language-service",
- "@angular/service-worker"
- ]
- },
- "peerDependencies": {
- "@angular/core": "7.0.3",
- "@angular/common": "7.0.3",
- "@angular/platform-browser": "7.0.3",
- "rxjs": "^6.0.0"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/angular/angular.git"
- },
- "sideEffects": false,
- "typings": "./router.d.ts",
- "version": "7.0.3",
- "readme": "Angular\n=======\n\nThe sources for this package are in the main [Angular](https://github.com/angular/angular) repo. Please file issues and pull requests against that repo.\n\nLicense: MIT\n",
- "readmeFilename": "README.md",
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {
- "tslib": "^1.9.0"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/@angular/router",
- "error": "[Circular]",
- "extraneous": false,
- "peerMissing": [
- {
- "requiredBy": "@ngrx/router-store@6.1.2",
- "requires": "@angular/router@^6.0.0"
- }
- ]
- },
- "peerMissing": true
- },
- "@mat-datetimepicker/core": {
- "required": {
- "name": "@mat-datetimepicker/core",
- "version": "2.0.1",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/kuhnroyal/mat-datetimepicker.git"
- },
- "author": {
- "name": "PL",
- "email": "kuhnroyal@gmail.com"
- },
- "license": "MIT",
- "peerDependencies": {
- "@angular/core": "^6.0.7",
- "@angular/material": "^6.3.3",
- "@angular/cdk": "^6.3.3"
- },
- "main": "bundles/mat-datetimepicker-core.umd.js",
- "module": "fesm5/mat-datetimepicker-core.js",
- "es2015": "fesm2015/mat-datetimepicker-core.js",
- "esm5": "esm5/mat-datetimepicker-core.js",
- "esm2015": "esm2015/mat-datetimepicker-core.js",
- "fesm5": "fesm5/mat-datetimepicker-core.js",
- "fesm2015": "fesm2015/mat-datetimepicker-core.js",
- "typings": "mat-datetimepicker-core.d.ts",
- "metadata": "mat-datetimepicker-core.metadata.json",
- "sideEffects": false,
- "dependencies": {
- "tslib": {
- "name": "tslib",
- "author": "[Circular]",
- "homepage": "http://typescriptlang.org/",
- "version": "1.9.3",
- "license": "Apache-2.0",
- "description": "Runtime library for TypeScript helper functions",
- "keywords": "[Circular]",
- "bugs": "[Circular]",
- "repository": "[Circular]",
- "main": "tslib.js",
- "module": "tslib.es6.js",
- "jsnext:main": "tslib.es6.js",
- "typings": "tslib.d.ts",
- "_resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "_integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
- "_from": "tslib@1.9.3",
- "readme": "# tslib\r\n\r\nThis is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.\r\n\r\nThis library is primarily used by the `--importHelpers` flag in TypeScript.\r\nWhen using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:\r\n\r\n```ts\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nexports.x = {};\r\nexports.y = __assign({}, exports.x);\r\n\r\n```\r\n\r\nwill instead be emitted as something like the following:\r\n\r\n```ts\r\nvar tslib_1 = require(\"tslib\");\r\nexports.x = {};\r\nexports.y = tslib_1.__assign({}, exports.x);\r\n```\r\n\r\nBecause this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.\r\nFor optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.\r\n\r\n# Installing\r\n\r\nFor the latest stable version, run:\r\n\r\n## npm\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nnpm install --save tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nnpm install --save tslib@1.6.1\r\n```\r\n\r\n## bower\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\nbower install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\nbower install tslib@1.6.1\r\n```\r\n\r\n## JSPM\r\n\r\n```sh\r\n# TypeScript 2.3.3 or later\r\njspm install tslib\r\n\r\n# TypeScript 2.3.2 or earlier\r\njspm install tslib@1.6.1\r\n```\r\n\r\n# Usage\r\n\r\nSet the `importHelpers` compiler option on the command line:\r\n\r\n```\r\ntsc --importHelpers file.ts\r\n```\r\n\r\nor in your tsconfig.json:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"importHelpers\": true\r\n }\r\n}\r\n```\r\n\r\n#### For bower and JSPM users\r\n\r\nYou will need to add a `paths` mapping for `tslib`, e.g. For Bower users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"amd\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"bower_components/tslib/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\nFor JSPM users:\r\n\r\n```json\r\n{\r\n \"compilerOptions\": {\r\n \"module\": \"system\",\r\n \"importHelpers\": true,\r\n \"baseUrl\": \"./\",\r\n \"paths\": {\r\n \"tslib\" : [\"jspm_packages/npm/tslib@1.9.3/tslib.d.ts\"]\r\n }\r\n }\r\n}\r\n```\r\n\r\n\r\n# Contribute\r\n\r\nThere are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.\r\n\r\n* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.\r\n* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).\r\n* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).\r\n* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.\r\n* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).\r\n* Read the language specification ([docx](http://go.microsoft.com/fwlink/?LinkId=267121), [pdf](http://go.microsoft.com/fwlink/?LinkId=267238)).\r\n\r\n# Documentation\r\n\r\n* [Quick tutorial](http://www.typescriptlang.org/Tutorial)\r\n* [Programming handbook](http://www.typescriptlang.org/Handbook)\r\n* [Language specification](https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md)\r\n* [Homepage](http://www.typescriptlang.org/)\r\n",
- "readmeFilename": "README.md",
- "_id": "tslib@1.9.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "tslib@1.9.3",
- "name": "tslib",
- "escapedName": "tslib",
- "rawSpec": "1.9.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.9.3"
- },
- "_spec": "1.9.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/tslib",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "tslib"
- }
- },
- "_resolved": "https://registry.npmjs.org/@mat-datetimepicker/core/-/core-2.0.1.tgz",
- "_integrity": "sha1-4NsdtdTPe6Vrck7AQIF8totXdfI=",
- "_from": "@mat-datetimepicker/core@2.0.1",
- "readme": "# Material Datetimepicker for @angular/material 6.x\n\nThis is the main branch for @angular/material 6.x.\n\nYou can find the Angular 5 version on the `1.x` branch.\n\n### Description\n\nThe datetimepicker is taken from [Promact/md2](https://github.com/Promact/md2) and modified to use @angular/material as base and added theming support.\n\nLike the @angular/material datepicker it contains a native-datetime-adapter as well as a moment-datetime-adapter.\n\n[](https://www.npmjs.com/package/@mat-datetimepicker/core)\n[](https://www.npmjs.com/package/@mat-datetimepicker/core)\n[](https://www.npmjs.com/package/@mat-datetimepicker/core)\n\n### Installation\nInstall:\n```\nyarn install @mat-datetimepicker/core\n```\nAnd for the moment adapter:\n```\nyarn install @angular/material-moment-adapter\nyarn install @mat-datetimepicker/moment\n``` \n\n### Performing a local build\n```\nyarn install\nyarn build\n``` \n\n### Using the local build in some project\n```\ncd my-project\n``` \nAdd the dependencies to your `package.json`:\n```\n\"dependencies\": {\n \"@mat-datetimepicker/core\": \"2.0.0\",\n \"@mat-datetimepicker/moment\": \"2.0.0\",\n}\n```\nLink the local built modules:\n```\nyarn link \"@mat-datetimepicker/core\"\nyarn link \"@mat-datetimepicker/moment\"\n``` \n\n### Import & configuration\nBasically the same way the @angular/material datepicker is configured and imported.\n\n```\nimports: [\n ...\n MatDatepickerModule,\n // use this if you want to use native javascript dates and INTL API if available\n // MatNativeDatetimeModule,\n MatMomentDatetimeModule,\n MatDatetimepickerModule\n]\n```\n\n@see [src/app/app.module.ts](src/app/app.module.ts)\n\n### Usage\n```\n\n```\n### Theming\n```\n@import '~@mat-datetimepicker/core/datetimepicker/datetimepicker-theme.scss';\n\n// Using the $theme variable from the pre-built theme you can call the theming function\n@include mat-datetimepicker-theme($theme);\n```\n@see [src/styles.scss](src/styles.scss)\n\n",
- "readmeFilename": "README.md",
- "description": "This is the main branch for @angular/material 6.x.",
- "bugs": {
- "url": "https://github.com/kuhnroyal/mat-datetimepicker/issues"
- },
- "homepage": "https://github.com/kuhnroyal/mat-datetimepicker#readme",
- "_id": "@mat-datetimepicker/core@2.0.1",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "@mat-datetimepicker/core@2.0.1",
- "name": "@mat-datetimepicker/core",
- "escapedName": "@mat-datetimepicker%2fcore",
- "scope": "@mat-datetimepicker",
- "rawSpec": "2.0.1",
- "saveSpec": "[Circular]",
- "fetchSpec": "2.0.1"
- },
- "_spec": "2.0.1",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "@mat-datetimepicker/core@2.0.1",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {
- "tslib": "^1.9.0"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/@mat-datetimepicker/core",
- "error": "[Circular]",
- "extraneous": false,
- "peerMissing": [
- {
- "requiredBy": "@mat-datetimepicker/moment@2.0.1",
- "requires": "@mat-datetimepicker/core@2.0.0"
- }
- ]
- },
- "peerMissing": true
- },
- "@mat-datetimepicker/moment": {
- "version": "2.0.1",
- "from": "@mat-datetimepicker/moment@2.0.1",
- "resolved": "https://registry.npmjs.org/@mat-datetimepicker/moment/-/moment-2.0.1.tgz"
- },
- "@ngrx/effects": {
- "version": "6.1.2",
- "from": "@ngrx/effects@6.1.2",
- "resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-6.1.2.tgz"
- },
- "@ngrx/router-store": {
- "version": "6.1.2",
- "from": "@ngrx/router-store@6.1.2",
- "resolved": "https://registry.npmjs.org/@ngrx/router-store/-/router-store-6.1.2.tgz"
- },
- "@ngrx/store": {
- "version": "6.1.2",
- "from": "@ngrx/store@6.1.2",
- "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-6.1.2.tgz"
- },
- "@ngrx/store-devtools": {
- "version": "6.1.2",
- "from": "@ngrx/store-devtools@6.1.2",
- "resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-6.1.2.tgz"
- },
- "@ngx-translate/core": {
- "version": "10.0.2",
- "from": "@ngx-translate/core@10.0.2",
- "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-10.0.2.tgz"
- },
- "alfresco-js-api": {
- "required": {
- "_args": [
- [
- "alfresco-js-api@2.6.1",
- "/Users/dvuika/github/alfresco-content-app"
- ],
- [
- "alfresco-js-api@2.6.1",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "_from": "alfresco-js-api@2.6.1",
- "_id": "alfresco-js-api@2.6.1",
- "_integrity": "sha512-E1maHlxlFS3DAmYWG9ueerMWgrcbJSVFO52Bfk2XGx3atEnH3iBFuG0ZczfCJCGIbtv22VliR5qQ90Cufuzhkw==",
- "_location": "/alfresco-js-api",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "alfresco-js-api@2.6.1",
- "name": "alfresco-js-api",
- "escapedName": "alfresco-js-api",
- "rawSpec": "2.6.1",
- "saveSpec": "[Circular]",
- "fetchSpec": "2.6.1"
- },
- "_requiredBy": [
- "/"
- ],
- "_resolved": "https://registry.npmjs.org/alfresco-js-api/-/alfresco-js-api-2.6.1.tgz",
- "_spec": "2.6.1",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "author": {
- "name": "Alfresco Software, Ltd."
- },
- "bugs": {
- "url": "https://github.com/Alfresco/alfresco-js-api/issues"
- },
- "contributors": [
- {
- "name": "Will Abson",
- "email": "will.abson@alfresco.com"
- },
- {
- "name": "Eugenio Romano",
- "email": "eugenio.romano@alfresco.com"
- },
- {
- "name": "Denys Vuika",
- "email": "denys.vuika@gmail.com"
- },
- {
- "name": "Mario Romano",
- "email": "mario.romano83@gmail.com"
- }
- ],
- "dependencies": {
- "event-emitter": {
- "name": "event-emitter",
- "version": "0.3.4",
- "description": "Environment agnostic event emitter",
- "author": {
- "name": "Mariusz Nowak",
- "email": "medyk@medikoo.com",
- "url": "http://www.medikoo.com/"
- },
- "keywords": [
- "event",
- "events",
- "trigger",
- "observer",
- "listener",
- "emitter",
- "pubsub"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/event-emitter.git"
- },
- "dependencies": {
- "d": {
- "name": "d",
- "version": "0.1.1",
- "description": "Property descriptor factory",
- "author": {
- "name": "Mariusz Nowak",
- "email": "medyk@medikoo.com",
- "url": "http://www.medikoo.com/"
- },
- "scripts": {
- "test": "node node_modules/tad/bin/tad"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/d.git"
- },
- "keywords": [
- "descriptor",
- "es",
- "ecmascript",
- "ecma",
- "property",
- "descriptors",
- "meta",
- "properties"
- ],
- "dependencies": {
- "es5-ext": {
- "name": "es5-ext",
- "version": "0.10.45",
- "description": "ECMAScript extensions and shims",
- "author": {
- "name": "Mariusz Nowak",
- "email": "medyk@medikoo.com",
- "url": "http://www.medikoo.com/"
- },
- "keywords": [
- "ecmascript",
- "ecmascript5",
- "ecmascript6",
- "es5",
- "es6",
- "extensions",
- "ext",
- "addons",
- "extras",
- "harmony",
- "javascript",
- "polyfill",
- "shim",
- "util",
- "utils",
- "utilities"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/es5-ext.git"
- },
- "dependencies": {},
- "devDependencies": {
- "eslint": "^4.15",
- "eslint-config-medikoo-es5": "^1.4.8",
- "tad": "~0.2.7"
- },
- "eslintConfig": {
- "extends": "medikoo-es5",
- "root": true,
- "rules": {
- "no-extend-native": "off"
- }
- },
- "scripts": {
- "lint": "eslint --ignore-path=.gitignore .",
- "test": "node ./node_modules/tad/bin/tad"
- },
- "license": "ISC",
- "_resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
- "_integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
- "_from": "es5-ext@0.10.45",
- "readme": "[![Build status][nix-build-image]][nix-build-url]\n[![Windows status][win-build-image]][win-build-url]\n![Transpilation status][transpilation-image]\n[![npm version][npm-image]][npm-url]\n\n# es5-ext\n\n## ECMAScript 5 extensions\n\n### (with respect to ECMAScript 6 standard)\n\nShims for upcoming ES6 standard and other goodies implemented strictly with ECMAScript conventions in mind.\n\nIt's designed to be used in compliant ECMAScript 5 or ECMAScript 6 environments. Older environments are not supported, although most of the features should work with correct ECMAScript 5 shim on board.\n\nWhen used in ECMAScript 6 environment, native implementation (if valid) takes precedence over shims.\n\n### Installation\n\n $ npm install es5-ext\n\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Usage\n\n#### ECMAScript 6 features\n\nYou can force ES6 features to be implemented in your environment, e.g. following will assign `from` function to `Array` (only if it's not implemented already).\n\n```javascript\nrequire(\"es5-ext/array/from/implement\");\nArray.from(\"foo\"); // ['f', 'o', 'o']\n```\n\nYou can also access shims directly, without fixing native objects. Following will return native `Array.from` if it's available and fallback to shim if it's not.\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\nIf you want to use shim unconditionally (even if native implementation exists) do:\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from/shim\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\n##### List of ES6 shims\n\nIt's about properties introduced with ES6 and those that have been updated in new spec.\n\n* `Array.from` -> `require('es5-ext/array/from')`\n* `Array.of` -> `require('es5-ext/array/of')`\n* `Array.prototype.concat` -> `require('es5-ext/array/#/concat')`\n* `Array.prototype.copyWithin` -> `require('es5-ext/array/#/copy-within')`\n* `Array.prototype.entries` -> `require('es5-ext/array/#/entries')`\n* `Array.prototype.fill` -> `require('es5-ext/array/#/fill')`\n* `Array.prototype.filter` -> `require('es5-ext/array/#/filter')`\n* `Array.prototype.find` -> `require('es5-ext/array/#/find')`\n* `Array.prototype.findIndex` -> `require('es5-ext/array/#/find-index')`\n* `Array.prototype.keys` -> `require('es5-ext/array/#/keys')`\n* `Array.prototype.map` -> `require('es5-ext/array/#/map')`\n* `Array.prototype.slice` -> `require('es5-ext/array/#/slice')`\n* `Array.prototype.splice` -> `require('es5-ext/array/#/splice')`\n* `Array.prototype.values` -> `require('es5-ext/array/#/values')`\n* `Array.prototype[@@iterator]` -> `require('es5-ext/array/#/@@iterator')`\n* `Math.acosh` -> `require('es5-ext/math/acosh')`\n* `Math.asinh` -> `require('es5-ext/math/asinh')`\n* `Math.atanh` -> `require('es5-ext/math/atanh')`\n* `Math.cbrt` -> `require('es5-ext/math/cbrt')`\n* `Math.clz32` -> `require('es5-ext/math/clz32')`\n* `Math.cosh` -> `require('es5-ext/math/cosh')`\n* `Math.exmp1` -> `require('es5-ext/math/expm1')`\n* `Math.fround` -> `require('es5-ext/math/fround')`\n* `Math.hypot` -> `require('es5-ext/math/hypot')`\n* `Math.imul` -> `require('es5-ext/math/imul')`\n* `Math.log1p` -> `require('es5-ext/math/log1p')`\n* `Math.log2` -> `require('es5-ext/math/log2')`\n* `Math.log10` -> `require('es5-ext/math/log10')`\n* `Math.sign` -> `require('es5-ext/math/sign')`\n* `Math.signh` -> `require('es5-ext/math/signh')`\n* `Math.tanh` -> `require('es5-ext/math/tanh')`\n* `Math.trunc` -> `require('es5-ext/math/trunc')`\n* `Number.EPSILON` -> `require('es5-ext/number/epsilon')`\n* `Number.MAX_SAFE_INTEGER` -> `require('es5-ext/number/max-safe-integer')`\n* `Number.MIN_SAFE_INTEGER` -> `require('es5-ext/number/min-safe-integer')`\n* `Number.isFinite` -> `require('es5-ext/number/is-finite')`\n* `Number.isInteger` -> `require('es5-ext/number/is-integer')`\n* `Number.isNaN` -> `require('es5-ext/number/is-nan')`\n* `Number.isSafeInteger` -> `require('es5-ext/number/is-safe-integer')`\n* `Object.assign` -> `require('es5-ext/object/assign')`\n* `Object.keys` -> `require('es5-ext/object/keys')`\n* `Object.setPrototypeOf` -> `require('es5-ext/object/set-prototype-of')`\n* `RegExp.prototype.match` -> `require('es5-ext/reg-exp/#/match')`\n* `RegExp.prototype.replace` -> `require('es5-ext/reg-exp/#/replace')`\n* `RegExp.prototype.search` -> `require('es5-ext/reg-exp/#/search')`\n* `RegExp.prototype.split` -> `require('es5-ext/reg-exp/#/split')`\n* `RegExp.prototype.sticky` -> Implement with `require('es5-ext/reg-exp/#/sticky/implement')`, use as function with `require('es5-ext/reg-exp/#/is-sticky')`\n* `RegExp.prototype.unicode` -> Implement with `require('es5-ext/reg-exp/#/unicode/implement')`, use as function with `require('es5-ext/reg-exp/#/is-unicode')`\n* `String.fromCodePoint` -> `require('es5-ext/string/from-code-point')`\n* `String.raw` -> `require('es5-ext/string/raw')`\n* `String.prototype.codePointAt` -> `require('es5-ext/string/#/code-point-at')`\n* `String.prototype.contains` -> `require('es5-ext/string/#/contains')`\n* `String.prototype.endsWith` -> `require('es5-ext/string/#/ends-with')`\n* `String.prototype.normalize` -> `require('es5-ext/string/#/normalize')`\n* `String.prototype.repeat` -> `require('es5-ext/string/#/repeat')`\n* `String.prototype.startsWith` -> `require('es5-ext/string/#/starts-with')`\n* `String.prototype[@@iterator]` -> `require('es5-ext/string/#/@@iterator')`\n\n#### Non ECMAScript standard features\n\n**es5-ext** provides also other utils, and implements them as if they were proposed for a standard. It mostly offers methods (not functions) which can directly be assigned to native prototypes:\n\n```javascript\nObject.defineProperty(Function.prototype, \"partial\", {\n\tvalue: require(\"es5-ext/function/#/partial\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(Array.prototype, \"flatten\", {\n\tvalue: require(\"es5-ext/array/#/flatten\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(String.prototype, \"capitalize\", {\n\tvalue: require(\"es5-ext/string/#/capitalize\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\n```\n\nSee [es5-extend](https://github.com/wookieb/es5-extend#es5-extend), a great utility that automatically will extend natives for you.\n\n**Important:** Remember to **not** extend natives in scope of generic reusable packages (e.g. ones you intend to publish to npm). Extending natives is fine **only** if you're the _owner_ of the global scope, so e.g. in final project you lead development of.\n\nWhen you're in situation when native extensions are not good idea, then you should use methods indirectly:\n\n```javascript\nvar flatten = require(\"es5-ext/array/#/flatten\");\n\nflatten.call([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nfor better convenience you can turn methods into functions:\n\n```javascript\nvar call = Function.prototype.call;\nvar flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\n\nflatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nYou can configure custom toolkit (like [underscorejs](http://underscorejs.org/)), and use it throughout your application\n\n```javascript\nvar util = {};\nutil.partial = call.bind(require(\"es5-ext/function/#/partial\"));\nutil.flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\nutil.startsWith = call.bind(require(\"es5-ext/string/#/starts-with\"));\n\nutil.flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nAs with native ones most methods are generic and can be run on any type of object.\n\n## API\n\n### Global extensions\n\n#### global _(es5-ext/global)_\n\nObject that represents global scope\n\n### Array Constructor extensions\n\n#### from(arrayLike[, mapFn[, thisArg]]) _(es5-ext/array/from)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from). \nReturns array representation of _iterable_ or _arrayLike_. If _arrayLike_ is an instance of array, its copy is returned.\n\n#### generate([length[, …fill]]) _(es5-ext/array/generate)_\n\nGenerate an array of pre-given _length_ built of repeated arguments.\n\n#### isPlainArray(x) _(es5-ext/array/is-plain-array)_\n\nReturns true if object is plain array (not instance of one of the Array's extensions).\n\n#### of([…items]) _(es5-ext/array/of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of). \nCreate an array from given arguments.\n\n#### toArray(obj) _(es5-ext/array/to-array)_\n\nReturns array representation of `obj`. If `obj` is already an array, `obj` is returned back.\n\n#### validArray(obj) _(es5-ext/array/valid-array)_\n\nReturns `obj` if it's an array, otherwise throws `TypeError`\n\n### Array Prototype extensions\n\n#### arr.binarySearch(compareFn) _(es5-ext/array/#/binary-search)_\n\nIn **sorted** list search for index of item for which _compareFn_ returns value closest to _0_. \nIt's variant of binary search algorithm\n\n#### arr.clear() _(es5-ext/array/#/clear)_\n\nClears the array\n\n#### arr.compact() _(es5-ext/array/#/compact)_\n\nReturns a copy of the context with all non-values (`null` or `undefined`) removed.\n\n#### arr.concat() _(es5-ext/array/#/concat)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.concat). \nES6's version of `concat`. Supports `isConcatSpreadable` symbol, and returns array of same type as the context.\n\n#### arr.contains(searchElement[, position]) _(es5-ext/array/#/contains)_\n\nWhether list contains the given value.\n\n#### arr.copyWithin(target, start[, end]) _(es5-ext/array/#/copy-within)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.copywithin).\n\n#### arr.diff(other) _(es5-ext/array/#/diff)_\n\nReturns the array of elements that are present in context list but not present in other list.\n\n#### arr.eIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-index-of)_\n\n_egal_ version of `indexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.eLastIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-last-index-of)_\n\n_egal_ version of `lastIndexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.entries() _(es5-ext/array/#/entries)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.entries). \nReturns iterator object, which traverses the array. Each value is represented with an array, where first value is an index and second is corresponding to index value.\n\n#### arr.exclusion([…lists]]) _(es5-ext/array/#/exclusion)_\n\nReturns the array of elements that are found only in one of the lists (either context list or list provided in arguments).\n\n#### arr.fill(value[, start, end]) _(es5-ext/array/#/fill)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.fill).\n\n#### arr.filter(callback[, thisArg]) _(es5-ext/array/#/filter)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.filter). \nES6's version of `filter`, returns array of same type as the context.\n\n#### arr.find(predicate[, thisArg]) _(es5-ext/array/#/find)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.find). \nReturn first element for which given function returns true\n\n#### arr.findIndex(predicate[, thisArg]) _(es5-ext/array/#/find-index)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.findindex). \nReturn first index for which given function returns true\n\n#### arr.first() _(es5-ext/array/#/first)_\n\nReturns value for first defined index\n\n#### arr.firstIndex() _(es5-ext/array/#/first-index)_\n\nReturns first declared index of the array\n\n#### arr.flatten() _(es5-ext/array/#/flatten)_\n\nReturns flattened version of the array\n\n#### arr.forEachRight(cb[, thisArg]) _(es5-ext/array/#/for-each-right)_\n\n`forEach` starting from last element\n\n#### arr.group(cb[, thisArg]) _(es5-ext/array/#/group)_\n\nGroup list elements by value returned by _cb_ function\n\n#### arr.indexesOf(searchElement[, fromIndex]) _(es5-ext/array/#/indexes-of)_\n\nReturns array of all indexes of given value\n\n#### arr.intersection([…lists]) _(es5-ext/array/#/intersection)_\n\nComputes the array of values that are the intersection of all lists (context list and lists given in arguments)\n\n#### arr.isCopy(other) _(es5-ext/array/#/is-copy)_\n\nReturns true if both context and _other_ lists have same content\n\n#### arr.isUniq() _(es5-ext/array/#/is-uniq)_\n\nReturns true if all values in array are unique\n\n#### arr.keys() _(es5-ext/array/#/keys)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.keys). \nReturns iterator object, which traverses all array indexes.\n\n#### arr.last() _(es5-ext/array/#/last)_\n\nReturns value of last defined index\n\n#### arr.lastIndex() _(es5-ext/array/#/last)_\n\nReturns last defined index of the array\n\n#### arr.map(callback[, thisArg]) _(es5-ext/array/#/map)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.map). \nES6's version of `map`, returns array of same type as the context.\n\n#### arr.remove(value[, …valuen]) _(es5-ext/array/#/remove)_\n\nRemove values from the array\n\n#### arr.separate(sep) _(es5-ext/array/#/separate)_\n\nReturns array with items separated with `sep` value\n\n#### arr.slice(callback[, thisArg]) _(es5-ext/array/#/slice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.slice). \nES6's version of `slice`, returns array of same type as the context.\n\n#### arr.someRight(cb[, thisArg]) _(es5-ext/array/#/someRight)_\n\n`some` starting from last element\n\n#### arr.splice(callback[, thisArg]) _(es5-ext/array/#/splice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.splice). \nES6's version of `splice`, returns array of same type as the context.\n\n#### arr.uniq() _(es5-ext/array/#/uniq)_\n\nReturns duplicate-free version of the array\n\n#### arr.values() _(es5-ext/array/#/values)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.values). \nReturns iterator object which traverses all array values.\n\n#### arr[@@iterator] _(es5-ext/array/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype-@@iterator). \nReturns iterator object which traverses all array values.\n\n### Boolean Constructor extensions\n\n#### isBoolean(x) _(es5-ext/boolean/is-boolean)_\n\nWhether value is boolean\n\n### Date Constructor extensions\n\n#### isDate(x) _(es5-ext/date/is-date)_\n\nWhether value is date instance\n\n#### validDate(x) _(es5-ext/date/valid-date)_\n\nIf given object is not date throw TypeError in other case return it.\n\n### Date Prototype extensions\n\n#### date.copy(date) _(es5-ext/date/#/copy)_\n\nReturns a copy of the date object\n\n#### date.daysInMonth() _(es5-ext/date/#/days-in-month)_\n\nReturns number of days of date's month\n\n#### date.floorDay() _(es5-ext/date/#/floor-day)_\n\nSets the date time to 00:00:00.000\n\n#### date.floorMonth() _(es5-ext/date/#/floor-month)_\n\nSets date day to 1 and date time to 00:00:00.000\n\n#### date.floorYear() _(es5-ext/date/#/floor-year)_\n\nSets date month to 0, day to 1 and date time to 00:00:00.000\n\n#### date.format(pattern) _(es5-ext/date/#/format)_\n\nFormats date up to given string. Supported patterns:\n\n* `%Y` - Year with century, 1999, 2003\n* `%y` - Year without century, 99, 03\n* `%m` - Month, 01..12\n* `%d` - Day of the month 01..31\n* `%H` - Hour (24-hour clock), 00..23\n* `%M` - Minute, 00..59\n* `%S` - Second, 00..59\n* `%L` - Milliseconds, 000..999\n\n### Error Constructor extensions\n\n#### custom(message/_, code, ext_/) _(es5-ext/error/custom)_\n\nCreates custom error object, optinally extended with `code` and other extension properties (provided with `ext` object)\n\n#### isError(x) _(es5-ext/error/is-error)_\n\nWhether value is an error (instance of `Error`).\n\n#### validError(x) _(es5-ext/error/valid-error)_\n\nIf given object is not error throw TypeError in other case return it.\n\n### Error Prototype extensions\n\n#### err.throw() _(es5-ext/error/#/throw)_\n\nThrows error\n\n### Function Constructor extensions\n\nSome of the functions were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### constant(x) _(es5-ext/function/constant)_\n\nReturns a constant function that returns pregiven argument\n\n_k(x)(y) =def x_\n\n#### identity(x) _(es5-ext/function/identity)_\n\nIdentity function. Returns first argument\n\n_i(x) =def x_\n\n#### invoke(name[, …args]) _(es5-ext/function/invoke)_\n\nReturns a function that takes an object as an argument, and applies object's\n_name_ method to arguments. \n_name_ can be name of the method or method itself.\n\n_invoke(name, …args)(object, …args2) =def object\\[name\\]\\(…args, …args2\\)_\n\n#### isArguments(x) _(es5-ext/function/is-arguments)_\n\nWhether value is arguments object\n\n#### isFunction(arg) _(es5-ext/function/is-function)_\n\nWhether value is instance of function\n\n#### noop() _(es5-ext/function/noop)_\n\nNo operation function\n\n#### pluck(name) _(es5-ext/function/pluck)_\n\nReturns a function that takes an object, and returns the value of its _name_\nproperty\n\n_pluck(name)(obj) =def obj[name]_\n\n#### validFunction(arg) _(es5-ext/function/valid-function)_\n\nIf given object is not function throw TypeError in other case return it.\n\n### Function Prototype extensions\n\nSome of the methods were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### fn.compose([…fns]) _(es5-ext/function/#/compose)_\n\nApplies the functions in reverse argument-list order.\n\n_f1.compose(f2, f3, f4)(…args) =def f1(f2(f3(f4(…arg))))_\n\n#### fn.copy() _(es5-ext/function/#/copy)_\n\nProduces copy of given function\n\n#### fn.curry([n]) _(es5-ext/function/#/curry)_\n\nInvoking the function returned by this function only _n_ arguments are passed to the underlying function. If the underlying function is not saturated, the result is a function that passes all its arguments to the underlying function. \nIf _n_ is not provided then it defaults to context function length\n\n_f.curry(4)(arg1, arg2)(arg3)(arg4) =def f(arg1, args2, arg3, arg4)_\n\n#### fn.lock([…args]) _(es5-ext/function/#/lock)_\n\nReturns a function that applies the underlying function to _args_, and ignores its own arguments.\n\n_f.lock(…args)(…args2) =def f(…args)_\n\n_Named after it's counterpart in Google Closure_\n\n#### fn.not() _(es5-ext/function/#/not)_\n\nReturns a function that returns boolean negation of value returned by underlying function.\n\n_f.not()(…args) =def !f(…args)_\n\n#### fn.partial([…args]) _(es5-ext/function/#/partial)_\n\nReturns a function that when called will behave like context function called with initially passed arguments. If more arguments are suplilied, they are appended to initial args.\n\n_f.partial(…args1)(…args2) =def f(…args1, …args2)_\n\n#### fn.spread() _(es5-ext/function/#/spread)_\n\nReturns a function that applies underlying function with first list argument\n\n_f.match()(args) =def f.apply(null, args)_\n\n#### fn.toStringTokens() _(es5-ext/function/#/to-string-tokens)_\n\nSerializes function into two (arguments and body) string tokens. Result is plain object with `args` and `body` properties.\n\n### Math extensions\n\n#### acosh(x) _(es5-ext/math/acosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.acosh).\n\n#### asinh(x) _(es5-ext/math/asinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.asinh).\n\n#### atanh(x) _(es5-ext/math/atanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.atanh).\n\n#### cbrt(x) _(es5-ext/math/cbrt)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cbrt).\n\n#### clz32(x) _(es5-ext/math/clz32)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.clz32).\n\n#### cosh(x) _(es5-ext/math/cosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cosh).\n\n#### expm1(x) _(es5-ext/math/expm1)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.expm1).\n\n#### fround(x) _(es5-ext/math/fround)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.fround).\n\n#### hypot([…values]) _(es5-ext/math/hypot)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.hypot).\n\n#### imul(x, y) _(es5-ext/math/imul)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.imul).\n\n#### log1p(x) _(es5-ext/math/log1p)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log1p).\n\n#### log2(x) _(es5-ext/math/log2)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log2).\n\n#### log10(x) _(es5-ext/math/log10)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log10).\n\n#### sign(x) _(es5-ext/math/sign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sign).\n\n#### sinh(x) _(es5-ext/math/sinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sinh).\n\n#### tanh(x) _(es5-ext/math/tanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.tanh).\n\n#### trunc(x) _(es5-ext/math/trunc)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.trunc).\n\n### Number Constructor extensions\n\n#### EPSILON _(es5-ext/number/epsilon)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.epsilon).\n\nThe difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10-16.\n\n#### isFinite(x) _(es5-ext/number/is-finite)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite). \nWhether value is finite. Differs from global isNaN that it doesn't do type coercion.\n\n#### isInteger(x) _(es5-ext/number/is-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger). \nWhether value is integer.\n\n#### isNaN(x) _(es5-ext/number/is-nan)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isnan). \nWhether value is NaN. Differs from global isNaN that it doesn't do type coercion.\n\n#### isNumber(x) _(es5-ext/number/is-number)_\n\nWhether given value is number\n\n#### isSafeInteger(x) _(es5-ext/number/is-safe-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.issafeinteger).\n\n#### MAX*SAFE_INTEGER *(es5-ext/number/max-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.maxsafeinteger). \nThe value of Number.MAX_SAFE_INTEGER is 9007199254740991.\n\n#### MIN*SAFE_INTEGER *(es5-ext/number/min-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.minsafeinteger). \nThe value of Number.MIN_SAFE_INTEGER is -9007199254740991 (253-1).\n\n#### toInteger(x) _(es5-ext/number/to-integer)_\n\nConverts value to integer\n\n#### toPosInteger(x) _(es5-ext/number/to-pos-integer)_\n\nConverts value to positive integer. If provided value is less than 0, then 0 is returned\n\n#### toUint32(x) _(es5-ext/number/to-uint32)_\n\nConverts value to unsigned 32 bit integer. This type is used for array lengths.\nSee: http://www.2ality.com/2012/02/js-integers.html\n\n### Number Prototype extensions\n\n#### num.pad(length[, precision]) _(es5-ext/number/#/pad)_\n\nPad given number with zeros. Returns string\n\n### Object Constructor extensions\n\n#### assign(target, source[, …sourcen]) _(es5-ext/object/assign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign). \nExtend _target_ by enumerable own properties of other objects. If properties are already set on target object, they will be overwritten.\n\n#### clear(obj) _(es5-ext/object/clear)_\n\nRemove all enumerable own properties of the object\n\n#### compact(obj) _(es5-ext/object/compact)_\n\nReturns copy of the object with all enumerable properties that have no falsy values\n\n#### compare(obj1, obj2) _(es5-ext/object/compare)_\n\nUniversal cross-type compare function. To be used for e.g. array sort.\n\n#### copy(obj) _(es5-ext/object/copy)_\n\nReturns copy of the object with all enumerable properties.\n\n#### copyDeep(obj) _(es5-ext/object/copy-deep)_\n\nReturns deep copy of the object with all enumerable properties.\n\n#### count(obj) _(es5-ext/object/count)_\n\nCounts number of enumerable own properties on object\n\n#### create(obj[, properties]) _(es5-ext/object/create)_\n\n`Object.create` alternative that provides workaround for [V8 issue](http://code.google.com/p/v8/issues/detail?id=2804).\n\nWhen `null` is provided as a prototype, it's substituted with specially prepared object that derives from Object.prototype but has all Object.prototype properties shadowed with undefined.\n\nIt's quirky solution that allows us to have plain objects with no truthy properties but with turnable prototype.\n\nUse only for objects that you plan to switch prototypes of and be aware of limitations of this workaround.\n\n#### eq(x, y) _(es5-ext/object/eq)_\n\nWhether two values are equal, using [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### every(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/every)_\n\nAnalogous to Array.prototype.every. Returns true if every key-value pair in this object satisfies the provided testing function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### filter(obj, cb[, thisArg]) _(es5-ext/object/filter)_\n\nAnalogous to Array.prototype.filter. Returns new object with properites for which _cb_ function returned truthy value.\n\n#### firstKey(obj) _(es5-ext/object/first-key)_\n\nReturns first enumerable key of the object, as keys are unordered by specification, it can be any key of an object.\n\n#### flatten(obj) _(es5-ext/object/flatten)_\n\nReturns new object, with flatten properties of input object\n\n_flatten({ a: { b: 1 }, c: { d: 1 } }) =def { b: 1, d: 1 }_\n\n#### forEach(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/for-each)_\n\nAnalogous to Array.prototype.forEach. Calls a function for each key-value pair found in object\nOptionally _compareFn_ can be provided which assures that properties are iterated in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### getPropertyNames() _(es5-ext/object/get-property-names)_\n\nGet all (not just own) property names of the object\n\n#### is(x, y) _(es5-ext/object/is)_\n\nWhether two values are equal, using [_SameValue_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### isArrayLike(x) _(es5-ext/object/is-array-like)_\n\nWhether object is array-like object\n\n#### isCopy(x, y) _(es5-ext/object/is-copy)_\n\nTwo values are considered a copy of same value when all of their own enumerable properties have same values.\n\n#### isCopyDeep(x, y) _(es5-ext/object/is-copy-deep)_\n\nDeep comparision of objects\n\n#### isEmpty(obj) _(es5-ext/object/is-empty)_\n\nTrue if object doesn't have any own enumerable property\n\n#### isObject(arg) _(es5-ext/object/is-object)_\n\nWhether value is not primitive\n\n#### isPlainObject(arg) _(es5-ext/object/is-plain-object)_\n\nWhether object is plain object, its protototype should be Object.prototype and it cannot be host object.\n\n#### keyOf(obj, searchValue) _(es5-ext/object/key-of)_\n\nSearch object for value\n\n#### keys(obj) _(es5-ext/object/keys)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys). \nES6's version of `keys`, doesn't throw on primitive input\n\n#### map(obj, cb[, thisArg]) _(es5-ext/object/map)_\n\nAnalogous to Array.prototype.map. Creates a new object with properties which values are results of calling a provided function on every key-value pair in this object.\n\n#### mapKeys(obj, cb[, thisArg]) _(es5-ext/object/map-keys)_\n\nCreate new object with same values, but remapped keys\n\n#### mixin(target, source) _(es5-ext/object/mixin)_\n\nExtend _target_ by all own properties of other objects. Properties found in both objects will be overwritten (unless they're not configurable and cannot be overwritten).\n_It was for a moment part of ECMAScript 6 draft._\n\n#### mixinPrototypes(target, …source]) _(es5-ext/object/mixin-prototypes)_\n\nExtends _target_, with all source and source's prototype properties.\nUseful as an alternative for `setPrototypeOf` in environments in which it cannot be shimmed (no `__proto__` support).\n\n#### normalizeOptions(options) _(es5-ext/object/normalize-options)_\n\nNormalizes options object into flat plain object.\n\nUseful for functions in which we either need to keep options object for future reference or need to modify it for internal use.\n\n* It never returns input `options` object back (always a copy is created)\n* `options` can be undefined in such case empty plain object is returned.\n* Copies all enumerable properties found down prototype chain.\n\n#### primitiveSet([…names]) _(es5-ext/object/primitive-set)_\n\nCreates `null` prototype based plain object, and sets on it all property names provided in arguments to true.\n\n#### safeTraverse(obj[, …names]) _(es5-ext/object/safe-traverse)_\n\nSafe navigation of object properties. See http://wiki.ecmascript.org/doku.php?id=strawman:existential_operator\n\n#### serialize(value) _(es5-ext/object/serialize)_\n\nSerialize value into string. Differs from [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that it serializes also dates, functions and regular expresssions.\n\n#### setPrototypeOf(object, proto) _(es5-ext/object/set-prototype-of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof). \nIf native version is not provided, it depends on existence of `__proto__` functionality, if it's missing, `null` instead of function is exposed.\n\n#### some(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/some)_\n\nAnalogous to Array.prototype.some Returns true if any key-value pair satisfies the provided\ntesting function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### toArray(obj[, cb[, thisArg[, compareFn]]]) _(es5-ext/object/to-array)_\n\nCreates an array of results of calling a provided function on every key-value pair in this object. \nOptionally _compareFn_ can be provided which assures that results are added in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### unserialize(str) _(es5-ext/object/unserialize)_\n\nUserializes value previously serialized with [serialize](#serializevalue-es5-extobjectserialize)\n\n#### validCallable(x) _(es5-ext/object/valid-callable)_\n\nIf given object is not callable throw TypeError in other case return it.\n\n#### validObject(x) _(es5-ext/object/valid-object)_\n\nThrows error if given value is not an object, otherwise it is returned.\n\n#### validValue(x) _(es5-ext/object/valid-value)_\n\nThrows error if given value is `null` or `undefined`, otherwise returns value.\n\n### RegExp Constructor extensions\n\n#### escape(str) _(es5-ext/reg-exp/escape)_\n\nEscapes string to be used in regular expression\n\n#### isRegExp(x) _(es5-ext/reg-exp/is-reg-exp)_\n\nWhether object is regular expression\n\n#### validRegExp(x) _(es5-ext/reg-exp/valid-reg-exp)_\n\nIf object is regular expression it is returned, otherwise TypeError is thrown.\n\n### RegExp Prototype extensions\n\n#### re.isSticky(x) _(es5-ext/reg-exp/#/is-sticky)_\n\nWhether regular expression has `sticky` flag.\n\nIt's to be used as counterpart to [regExp.sticky](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.sticky) if it's not implemented.\n\n#### re.isUnicode(x) _(es5-ext/reg-exp/#/is-unicode)_\n\nWhether regular expression has `unicode` flag.\n\nIt's to be used as counterpart to [regExp.unicode](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.unicode) if it's not implemented.\n\n#### re.match(string) _(es5-ext/reg-exp/#/match)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.match).\n\n#### re.replace(string, replaceValue) _(es5-ext/reg-exp/#/replace)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.replace).\n\n#### re.search(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.search).\n\n#### re.split(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.split).\n\n#### re.sticky _(es5-ext/reg-exp/#/sticky/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.sticky). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n#### re.unicode _(es5-ext/reg-exp/#/unicode/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.unicode). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n### String Constructor extensions\n\n#### formatMethod(fMap) _(es5-ext/string/format-method)_\n\nCreates format method. It's used e.g. to create `Date.prototype.format` method\n\n#### fromCodePoint([…codePoints]) _(es5-ext/string/from-code-point)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.fromcodepoint)\n\n#### isString(x) _(es5-ext/string/is-string)_\n\nWhether object is string\n\n#### randomUniq() _(es5-ext/string/random-uniq)_\n\nReturns randomly generated id, with guarantee of local uniqueness (no same id will be returned twice)\n\n#### raw(callSite[, …substitutions]) _(es5-ext/string/raw)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.raw)\n\n### String Prototype extensions\n\n#### str.at(pos) _(es5-ext/string/#/at)_\n\n_Proposed for ECMAScript 6/7 standard, but not (yet) in a draft_\n\nReturns a string at given position in Unicode-safe manner.\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.at).\n\n#### str.camelToHyphen() _(es5-ext/string/#/camel-to-hyphen)_\n\nConvert camelCase string to hyphen separated, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from js property convention into filename convention.\n\n#### str.capitalize() _(es5-ext/string/#/capitalize)_\n\nCapitalize first character of a string\n\n#### str.caseInsensitiveCompare(str) _(es5-ext/string/#/case-insensitive-compare)_\n\nCase insensitive compare\n\n#### str.codePointAt(pos) _(es5-ext/string/#/code-point-at)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.codepointat)\n\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.codePointAt).\n\n#### str.contains(searchString[, position]) _(es5-ext/string/#/contains)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.contains)\n\nWhether string contains given string.\n\n#### str.endsWith(searchString[, endPosition]) _(es5-ext/string/#/ends-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith). \nWhether strings ends with given string\n\n#### str.hyphenToCamel() _(es5-ext/string/#/hyphen-to-camel)_\n\nConvert hyphen separated string to camelCase, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from filename convention to js property name convention.\n\n#### str.indent(str[, count]) _(es5-ext/string/#/indent)_\n\nIndents each line with provided _str_ (if _count_ given then _str_ is repeated _count_ times).\n\n#### str.last() _(es5-ext/string/#/last)_\n\nReturn last character\n\n#### str.normalize([form]) _(es5-ext/string/#/normalize)_\n\n[_Introduced with ECMAScript 6_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize). \nReturns the Unicode Normalization Form of a given string. \nBased on Matsuza's version. Code used for integrated shim can be found at [github.com/walling/unorm](https://github.com/walling/unorm/blob/master/lib/unorm.js)\n\n#### str.pad(fill[, length]) _(es5-ext/string/#/pad)_\n\nPad string with _fill_.\nIf _length_ si given than _fill_ is reapated _length_ times.\nIf _length_ is negative then pad is applied from right.\n\n#### str.repeat(n) _(es5-ext/string/#/repeat)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.repeat). \nRepeat given string _n_ times\n\n#### str.plainReplace(search, replace) _(es5-ext/string/#/plain-replace)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces just first occurrence of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.plainReplaceAll(search, replace) _(es5-ext/string/#/plain-replace-all)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces all occurrences of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.startsWith(searchString[, position]) _(es5-ext/string/#/starts-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith). \nWhether strings starts with given string\n\n#### str[@@iterator] _(es5-ext/string/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator). \nReturns iterator object which traverses all string characters (with respect to unicode symbols)\n\n### Tests\n\n $ npm test\n\n[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es5-ext/branches/master/shields_badge.svg\n[nix-build-url]: https://semaphoreci.com/medikoo-org/es5-ext\n[win-build-image]: https://ci.appveyor.com/api/projects/status/3jox67ksw3p8hkwh?svg=true\n[win-build-url]: https://ci.appveyor.com/project/medikoo/es5-ext\n[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg\n[npm-image]: https://img.shields.io/npm/v/es5-ext.svg\n[npm-url]: https://www.npmjs.com/package/es5-ext\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/medikoo/es5-ext/issues"
- },
- "homepage": "https://github.com/medikoo/es5-ext#readme",
- "_id": "es5-ext@0.10.45",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "es5-ext@0.10.45",
- "name": "es5-ext",
- "escapedName": "es5-ext",
- "rawSpec": "0.10.45",
- "saveSpec": "[Circular]",
- "fetchSpec": "0.10.45"
- },
- "_spec": "0.10.45",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "es5-ext@0.10.45",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.1",
- "next-tick": "1"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es5-ext",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "es5-ext"
- }
- },
- "devDependencies": {
- "tad": "~0.1.21"
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
- "_integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=",
- "_from": "d@0.1.1",
- "readme": "# D - Property descriptor factory\n\n_Originally derived from [es5-ext](https://github.com/medikoo/es5-ext) package._\n\nDefining properties with descriptors is very verbose:\n\n```javascript\nvar Account = function () {};\nObject.defineProperties(Account.prototype, {\n deposit: { value: function () {\n /* ... */\n }, configurable: true, enumerable: false, writable: true },\n whithdraw: { value: function () {\n /* ... */\n }, configurable: true, enumerable: false, writable: true },\n balance: { get: function () {\n /* ... */\n }, configurable: true, enumerable: false }\n});\n```\n\nD cuts that to:\n\n```javascript\nvar d = require('d');\n\nvar Account = function () {};\nObject.defineProperties(Account.prototype, {\n deposit: d(function () {\n /* ... */\n }),\n whithdraw: d(function () {\n /* ... */\n }),\n balance: d.gs(function () {\n /* ... */\n })\n});\n```\n\nBy default, created descriptor follow characteristics of native ES5 properties, and defines values as:\n\n```javascript\n{ configurable: true, enumerable: false, writable: true }\n```\n\nYou can overwrite it by preceding _value_ argument with instruction:\n```javascript\nd('c', value); // { configurable: true, enumerable: false, writable: false }\nd('ce', value); // { configurable: true, enumerable: true, writable: false }\nd('e', value); // { configurable: false, enumerable: true, writable: false }\n\n// Same way for get/set:\nd.gs('e', value); // { configurable: false, enumerable: true }\n```\n\n### Other utilities\n\n#### autoBind(obj, props) _(d/auto-bind)_\n\nDefine methods which will be automatically bound to its instances\n\n```javascript\nvar d = require('d');\nvar autoBind = require('d/auto-bind');\n\nvar Foo = function () { this._count = 0; };\nautoBind(Foo.prototype, {\n increment: d(function () { ++this._count; });\n});\n\nvar foo = new Foo();\n\n// Increment foo counter on each domEl click\ndomEl.addEventListener('click', foo.increment, false);\n```\n\n#### lazy(obj, props) _(d/lazy)_\n\nDefine lazy properties, which will be resolved on first access\n\n```javascript\nvar d = require('d');\nvar lazy = require('d/lazy');\n\nvar Foo = function () {};\nlazy(Foo.prototype, {\n items: d(function () { return []; })\n});\n\nvar foo = new Foo();\nfoo.items.push(1, 2); // foo.items array created\n```\n\n## Installation\n### NPM\n\nIn your project path:\n\n\t$ npm install d\n\n### Browser\n\nYou can easily bundle _D_ for browser with [modules-webmake](https://github.com/medikoo/modules-webmake)\n\n## Tests [](https://travis-ci.org/medikoo/d)\n\n\t$ npm test\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/medikoo/d/issues"
- },
- "homepage": "https://github.com/medikoo/d#readme",
- "_id": "d@0.1.1",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "d@0.1.1",
- "name": "d",
- "escapedName": "d",
- "rawSpec": "0.1.1",
- "saveSpec": "[Circular]",
- "fetchSpec": "0.1.1"
- },
- "_spec": "0.1.1",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "d@0.1.1",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "es5-ext": "~0.10.2"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/d",
- "error": "[Circular]",
- "extraneous": false
- },
- "es5-ext": {
- "name": "es5-ext",
- "version": "0.10.45",
- "description": "ECMAScript extensions and shims",
- "author": "[Circular]",
- "keywords": "[Circular]",
- "repository": "[Circular]",
- "dependencies": {
- "es6-iterator": {
- "name": "es6-iterator",
- "version": "2.0.3",
- "description": "Iterator abstraction based on ES6 specification",
- "author": {
- "name": "Mariusz Nowak",
- "email": "medyk@medikoo.com",
- "url": "http://www.medikoo.com/"
- },
- "keywords": [
- "iterator",
- "array",
- "list",
- "set",
- "map",
- "generator"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/es6-iterator.git"
- },
- "dependencies": {
- "es5-ext": {
- "name": "es5-ext",
- "version": "0.10.45",
- "description": "ECMAScript extensions and shims",
- "author": "[Circular]",
- "keywords": "[Circular]",
- "repository": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "eslintConfig": "[Circular]",
- "scripts": "[Circular]",
- "license": "ISC",
- "_resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
- "_integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
- "_from": "es5-ext@0.10.45",
- "readme": "[![Build status][nix-build-image]][nix-build-url]\n[![Windows status][win-build-image]][win-build-url]\n![Transpilation status][transpilation-image]\n[![npm version][npm-image]][npm-url]\n\n# es5-ext\n\n## ECMAScript 5 extensions\n\n### (with respect to ECMAScript 6 standard)\n\nShims for upcoming ES6 standard and other goodies implemented strictly with ECMAScript conventions in mind.\n\nIt's designed to be used in compliant ECMAScript 5 or ECMAScript 6 environments. Older environments are not supported, although most of the features should work with correct ECMAScript 5 shim on board.\n\nWhen used in ECMAScript 6 environment, native implementation (if valid) takes precedence over shims.\n\n### Installation\n\n $ npm install es5-ext\n\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Usage\n\n#### ECMAScript 6 features\n\nYou can force ES6 features to be implemented in your environment, e.g. following will assign `from` function to `Array` (only if it's not implemented already).\n\n```javascript\nrequire(\"es5-ext/array/from/implement\");\nArray.from(\"foo\"); // ['f', 'o', 'o']\n```\n\nYou can also access shims directly, without fixing native objects. Following will return native `Array.from` if it's available and fallback to shim if it's not.\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\nIf you want to use shim unconditionally (even if native implementation exists) do:\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from/shim\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\n##### List of ES6 shims\n\nIt's about properties introduced with ES6 and those that have been updated in new spec.\n\n* `Array.from` -> `require('es5-ext/array/from')`\n* `Array.of` -> `require('es5-ext/array/of')`\n* `Array.prototype.concat` -> `require('es5-ext/array/#/concat')`\n* `Array.prototype.copyWithin` -> `require('es5-ext/array/#/copy-within')`\n* `Array.prototype.entries` -> `require('es5-ext/array/#/entries')`\n* `Array.prototype.fill` -> `require('es5-ext/array/#/fill')`\n* `Array.prototype.filter` -> `require('es5-ext/array/#/filter')`\n* `Array.prototype.find` -> `require('es5-ext/array/#/find')`\n* `Array.prototype.findIndex` -> `require('es5-ext/array/#/find-index')`\n* `Array.prototype.keys` -> `require('es5-ext/array/#/keys')`\n* `Array.prototype.map` -> `require('es5-ext/array/#/map')`\n* `Array.prototype.slice` -> `require('es5-ext/array/#/slice')`\n* `Array.prototype.splice` -> `require('es5-ext/array/#/splice')`\n* `Array.prototype.values` -> `require('es5-ext/array/#/values')`\n* `Array.prototype[@@iterator]` -> `require('es5-ext/array/#/@@iterator')`\n* `Math.acosh` -> `require('es5-ext/math/acosh')`\n* `Math.asinh` -> `require('es5-ext/math/asinh')`\n* `Math.atanh` -> `require('es5-ext/math/atanh')`\n* `Math.cbrt` -> `require('es5-ext/math/cbrt')`\n* `Math.clz32` -> `require('es5-ext/math/clz32')`\n* `Math.cosh` -> `require('es5-ext/math/cosh')`\n* `Math.exmp1` -> `require('es5-ext/math/expm1')`\n* `Math.fround` -> `require('es5-ext/math/fround')`\n* `Math.hypot` -> `require('es5-ext/math/hypot')`\n* `Math.imul` -> `require('es5-ext/math/imul')`\n* `Math.log1p` -> `require('es5-ext/math/log1p')`\n* `Math.log2` -> `require('es5-ext/math/log2')`\n* `Math.log10` -> `require('es5-ext/math/log10')`\n* `Math.sign` -> `require('es5-ext/math/sign')`\n* `Math.signh` -> `require('es5-ext/math/signh')`\n* `Math.tanh` -> `require('es5-ext/math/tanh')`\n* `Math.trunc` -> `require('es5-ext/math/trunc')`\n* `Number.EPSILON` -> `require('es5-ext/number/epsilon')`\n* `Number.MAX_SAFE_INTEGER` -> `require('es5-ext/number/max-safe-integer')`\n* `Number.MIN_SAFE_INTEGER` -> `require('es5-ext/number/min-safe-integer')`\n* `Number.isFinite` -> `require('es5-ext/number/is-finite')`\n* `Number.isInteger` -> `require('es5-ext/number/is-integer')`\n* `Number.isNaN` -> `require('es5-ext/number/is-nan')`\n* `Number.isSafeInteger` -> `require('es5-ext/number/is-safe-integer')`\n* `Object.assign` -> `require('es5-ext/object/assign')`\n* `Object.keys` -> `require('es5-ext/object/keys')`\n* `Object.setPrototypeOf` -> `require('es5-ext/object/set-prototype-of')`\n* `RegExp.prototype.match` -> `require('es5-ext/reg-exp/#/match')`\n* `RegExp.prototype.replace` -> `require('es5-ext/reg-exp/#/replace')`\n* `RegExp.prototype.search` -> `require('es5-ext/reg-exp/#/search')`\n* `RegExp.prototype.split` -> `require('es5-ext/reg-exp/#/split')`\n* `RegExp.prototype.sticky` -> Implement with `require('es5-ext/reg-exp/#/sticky/implement')`, use as function with `require('es5-ext/reg-exp/#/is-sticky')`\n* `RegExp.prototype.unicode` -> Implement with `require('es5-ext/reg-exp/#/unicode/implement')`, use as function with `require('es5-ext/reg-exp/#/is-unicode')`\n* `String.fromCodePoint` -> `require('es5-ext/string/from-code-point')`\n* `String.raw` -> `require('es5-ext/string/raw')`\n* `String.prototype.codePointAt` -> `require('es5-ext/string/#/code-point-at')`\n* `String.prototype.contains` -> `require('es5-ext/string/#/contains')`\n* `String.prototype.endsWith` -> `require('es5-ext/string/#/ends-with')`\n* `String.prototype.normalize` -> `require('es5-ext/string/#/normalize')`\n* `String.prototype.repeat` -> `require('es5-ext/string/#/repeat')`\n* `String.prototype.startsWith` -> `require('es5-ext/string/#/starts-with')`\n* `String.prototype[@@iterator]` -> `require('es5-ext/string/#/@@iterator')`\n\n#### Non ECMAScript standard features\n\n**es5-ext** provides also other utils, and implements them as if they were proposed for a standard. It mostly offers methods (not functions) which can directly be assigned to native prototypes:\n\n```javascript\nObject.defineProperty(Function.prototype, \"partial\", {\n\tvalue: require(\"es5-ext/function/#/partial\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(Array.prototype, \"flatten\", {\n\tvalue: require(\"es5-ext/array/#/flatten\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(String.prototype, \"capitalize\", {\n\tvalue: require(\"es5-ext/string/#/capitalize\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\n```\n\nSee [es5-extend](https://github.com/wookieb/es5-extend#es5-extend), a great utility that automatically will extend natives for you.\n\n**Important:** Remember to **not** extend natives in scope of generic reusable packages (e.g. ones you intend to publish to npm). Extending natives is fine **only** if you're the _owner_ of the global scope, so e.g. in final project you lead development of.\n\nWhen you're in situation when native extensions are not good idea, then you should use methods indirectly:\n\n```javascript\nvar flatten = require(\"es5-ext/array/#/flatten\");\n\nflatten.call([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nfor better convenience you can turn methods into functions:\n\n```javascript\nvar call = Function.prototype.call;\nvar flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\n\nflatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nYou can configure custom toolkit (like [underscorejs](http://underscorejs.org/)), and use it throughout your application\n\n```javascript\nvar util = {};\nutil.partial = call.bind(require(\"es5-ext/function/#/partial\"));\nutil.flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\nutil.startsWith = call.bind(require(\"es5-ext/string/#/starts-with\"));\n\nutil.flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nAs with native ones most methods are generic and can be run on any type of object.\n\n## API\n\n### Global extensions\n\n#### global _(es5-ext/global)_\n\nObject that represents global scope\n\n### Array Constructor extensions\n\n#### from(arrayLike[, mapFn[, thisArg]]) _(es5-ext/array/from)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from). \nReturns array representation of _iterable_ or _arrayLike_. If _arrayLike_ is an instance of array, its copy is returned.\n\n#### generate([length[, …fill]]) _(es5-ext/array/generate)_\n\nGenerate an array of pre-given _length_ built of repeated arguments.\n\n#### isPlainArray(x) _(es5-ext/array/is-plain-array)_\n\nReturns true if object is plain array (not instance of one of the Array's extensions).\n\n#### of([…items]) _(es5-ext/array/of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of). \nCreate an array from given arguments.\n\n#### toArray(obj) _(es5-ext/array/to-array)_\n\nReturns array representation of `obj`. If `obj` is already an array, `obj` is returned back.\n\n#### validArray(obj) _(es5-ext/array/valid-array)_\n\nReturns `obj` if it's an array, otherwise throws `TypeError`\n\n### Array Prototype extensions\n\n#### arr.binarySearch(compareFn) _(es5-ext/array/#/binary-search)_\n\nIn **sorted** list search for index of item for which _compareFn_ returns value closest to _0_. \nIt's variant of binary search algorithm\n\n#### arr.clear() _(es5-ext/array/#/clear)_\n\nClears the array\n\n#### arr.compact() _(es5-ext/array/#/compact)_\n\nReturns a copy of the context with all non-values (`null` or `undefined`) removed.\n\n#### arr.concat() _(es5-ext/array/#/concat)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.concat). \nES6's version of `concat`. Supports `isConcatSpreadable` symbol, and returns array of same type as the context.\n\n#### arr.contains(searchElement[, position]) _(es5-ext/array/#/contains)_\n\nWhether list contains the given value.\n\n#### arr.copyWithin(target, start[, end]) _(es5-ext/array/#/copy-within)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.copywithin).\n\n#### arr.diff(other) _(es5-ext/array/#/diff)_\n\nReturns the array of elements that are present in context list but not present in other list.\n\n#### arr.eIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-index-of)_\n\n_egal_ version of `indexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.eLastIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-last-index-of)_\n\n_egal_ version of `lastIndexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.entries() _(es5-ext/array/#/entries)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.entries). \nReturns iterator object, which traverses the array. Each value is represented with an array, where first value is an index and second is corresponding to index value.\n\n#### arr.exclusion([…lists]]) _(es5-ext/array/#/exclusion)_\n\nReturns the array of elements that are found only in one of the lists (either context list or list provided in arguments).\n\n#### arr.fill(value[, start, end]) _(es5-ext/array/#/fill)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.fill).\n\n#### arr.filter(callback[, thisArg]) _(es5-ext/array/#/filter)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.filter). \nES6's version of `filter`, returns array of same type as the context.\n\n#### arr.find(predicate[, thisArg]) _(es5-ext/array/#/find)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.find). \nReturn first element for which given function returns true\n\n#### arr.findIndex(predicate[, thisArg]) _(es5-ext/array/#/find-index)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.findindex). \nReturn first index for which given function returns true\n\n#### arr.first() _(es5-ext/array/#/first)_\n\nReturns value for first defined index\n\n#### arr.firstIndex() _(es5-ext/array/#/first-index)_\n\nReturns first declared index of the array\n\n#### arr.flatten() _(es5-ext/array/#/flatten)_\n\nReturns flattened version of the array\n\n#### arr.forEachRight(cb[, thisArg]) _(es5-ext/array/#/for-each-right)_\n\n`forEach` starting from last element\n\n#### arr.group(cb[, thisArg]) _(es5-ext/array/#/group)_\n\nGroup list elements by value returned by _cb_ function\n\n#### arr.indexesOf(searchElement[, fromIndex]) _(es5-ext/array/#/indexes-of)_\n\nReturns array of all indexes of given value\n\n#### arr.intersection([…lists]) _(es5-ext/array/#/intersection)_\n\nComputes the array of values that are the intersection of all lists (context list and lists given in arguments)\n\n#### arr.isCopy(other) _(es5-ext/array/#/is-copy)_\n\nReturns true if both context and _other_ lists have same content\n\n#### arr.isUniq() _(es5-ext/array/#/is-uniq)_\n\nReturns true if all values in array are unique\n\n#### arr.keys() _(es5-ext/array/#/keys)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.keys). \nReturns iterator object, which traverses all array indexes.\n\n#### arr.last() _(es5-ext/array/#/last)_\n\nReturns value of last defined index\n\n#### arr.lastIndex() _(es5-ext/array/#/last)_\n\nReturns last defined index of the array\n\n#### arr.map(callback[, thisArg]) _(es5-ext/array/#/map)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.map). \nES6's version of `map`, returns array of same type as the context.\n\n#### arr.remove(value[, …valuen]) _(es5-ext/array/#/remove)_\n\nRemove values from the array\n\n#### arr.separate(sep) _(es5-ext/array/#/separate)_\n\nReturns array with items separated with `sep` value\n\n#### arr.slice(callback[, thisArg]) _(es5-ext/array/#/slice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.slice). \nES6's version of `slice`, returns array of same type as the context.\n\n#### arr.someRight(cb[, thisArg]) _(es5-ext/array/#/someRight)_\n\n`some` starting from last element\n\n#### arr.splice(callback[, thisArg]) _(es5-ext/array/#/splice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.splice). \nES6's version of `splice`, returns array of same type as the context.\n\n#### arr.uniq() _(es5-ext/array/#/uniq)_\n\nReturns duplicate-free version of the array\n\n#### arr.values() _(es5-ext/array/#/values)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.values). \nReturns iterator object which traverses all array values.\n\n#### arr[@@iterator] _(es5-ext/array/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype-@@iterator). \nReturns iterator object which traverses all array values.\n\n### Boolean Constructor extensions\n\n#### isBoolean(x) _(es5-ext/boolean/is-boolean)_\n\nWhether value is boolean\n\n### Date Constructor extensions\n\n#### isDate(x) _(es5-ext/date/is-date)_\n\nWhether value is date instance\n\n#### validDate(x) _(es5-ext/date/valid-date)_\n\nIf given object is not date throw TypeError in other case return it.\n\n### Date Prototype extensions\n\n#### date.copy(date) _(es5-ext/date/#/copy)_\n\nReturns a copy of the date object\n\n#### date.daysInMonth() _(es5-ext/date/#/days-in-month)_\n\nReturns number of days of date's month\n\n#### date.floorDay() _(es5-ext/date/#/floor-day)_\n\nSets the date time to 00:00:00.000\n\n#### date.floorMonth() _(es5-ext/date/#/floor-month)_\n\nSets date day to 1 and date time to 00:00:00.000\n\n#### date.floorYear() _(es5-ext/date/#/floor-year)_\n\nSets date month to 0, day to 1 and date time to 00:00:00.000\n\n#### date.format(pattern) _(es5-ext/date/#/format)_\n\nFormats date up to given string. Supported patterns:\n\n* `%Y` - Year with century, 1999, 2003\n* `%y` - Year without century, 99, 03\n* `%m` - Month, 01..12\n* `%d` - Day of the month 01..31\n* `%H` - Hour (24-hour clock), 00..23\n* `%M` - Minute, 00..59\n* `%S` - Second, 00..59\n* `%L` - Milliseconds, 000..999\n\n### Error Constructor extensions\n\n#### custom(message/_, code, ext_/) _(es5-ext/error/custom)_\n\nCreates custom error object, optinally extended with `code` and other extension properties (provided with `ext` object)\n\n#### isError(x) _(es5-ext/error/is-error)_\n\nWhether value is an error (instance of `Error`).\n\n#### validError(x) _(es5-ext/error/valid-error)_\n\nIf given object is not error throw TypeError in other case return it.\n\n### Error Prototype extensions\n\n#### err.throw() _(es5-ext/error/#/throw)_\n\nThrows error\n\n### Function Constructor extensions\n\nSome of the functions were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### constant(x) _(es5-ext/function/constant)_\n\nReturns a constant function that returns pregiven argument\n\n_k(x)(y) =def x_\n\n#### identity(x) _(es5-ext/function/identity)_\n\nIdentity function. Returns first argument\n\n_i(x) =def x_\n\n#### invoke(name[, …args]) _(es5-ext/function/invoke)_\n\nReturns a function that takes an object as an argument, and applies object's\n_name_ method to arguments. \n_name_ can be name of the method or method itself.\n\n_invoke(name, …args)(object, …args2) =def object\\[name\\]\\(…args, …args2\\)_\n\n#### isArguments(x) _(es5-ext/function/is-arguments)_\n\nWhether value is arguments object\n\n#### isFunction(arg) _(es5-ext/function/is-function)_\n\nWhether value is instance of function\n\n#### noop() _(es5-ext/function/noop)_\n\nNo operation function\n\n#### pluck(name) _(es5-ext/function/pluck)_\n\nReturns a function that takes an object, and returns the value of its _name_\nproperty\n\n_pluck(name)(obj) =def obj[name]_\n\n#### validFunction(arg) _(es5-ext/function/valid-function)_\n\nIf given object is not function throw TypeError in other case return it.\n\n### Function Prototype extensions\n\nSome of the methods were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### fn.compose([…fns]) _(es5-ext/function/#/compose)_\n\nApplies the functions in reverse argument-list order.\n\n_f1.compose(f2, f3, f4)(…args) =def f1(f2(f3(f4(…arg))))_\n\n#### fn.copy() _(es5-ext/function/#/copy)_\n\nProduces copy of given function\n\n#### fn.curry([n]) _(es5-ext/function/#/curry)_\n\nInvoking the function returned by this function only _n_ arguments are passed to the underlying function. If the underlying function is not saturated, the result is a function that passes all its arguments to the underlying function. \nIf _n_ is not provided then it defaults to context function length\n\n_f.curry(4)(arg1, arg2)(arg3)(arg4) =def f(arg1, args2, arg3, arg4)_\n\n#### fn.lock([…args]) _(es5-ext/function/#/lock)_\n\nReturns a function that applies the underlying function to _args_, and ignores its own arguments.\n\n_f.lock(…args)(…args2) =def f(…args)_\n\n_Named after it's counterpart in Google Closure_\n\n#### fn.not() _(es5-ext/function/#/not)_\n\nReturns a function that returns boolean negation of value returned by underlying function.\n\n_f.not()(…args) =def !f(…args)_\n\n#### fn.partial([…args]) _(es5-ext/function/#/partial)_\n\nReturns a function that when called will behave like context function called with initially passed arguments. If more arguments are suplilied, they are appended to initial args.\n\n_f.partial(…args1)(…args2) =def f(…args1, …args2)_\n\n#### fn.spread() _(es5-ext/function/#/spread)_\n\nReturns a function that applies underlying function with first list argument\n\n_f.match()(args) =def f.apply(null, args)_\n\n#### fn.toStringTokens() _(es5-ext/function/#/to-string-tokens)_\n\nSerializes function into two (arguments and body) string tokens. Result is plain object with `args` and `body` properties.\n\n### Math extensions\n\n#### acosh(x) _(es5-ext/math/acosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.acosh).\n\n#### asinh(x) _(es5-ext/math/asinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.asinh).\n\n#### atanh(x) _(es5-ext/math/atanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.atanh).\n\n#### cbrt(x) _(es5-ext/math/cbrt)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cbrt).\n\n#### clz32(x) _(es5-ext/math/clz32)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.clz32).\n\n#### cosh(x) _(es5-ext/math/cosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cosh).\n\n#### expm1(x) _(es5-ext/math/expm1)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.expm1).\n\n#### fround(x) _(es5-ext/math/fround)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.fround).\n\n#### hypot([…values]) _(es5-ext/math/hypot)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.hypot).\n\n#### imul(x, y) _(es5-ext/math/imul)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.imul).\n\n#### log1p(x) _(es5-ext/math/log1p)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log1p).\n\n#### log2(x) _(es5-ext/math/log2)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log2).\n\n#### log10(x) _(es5-ext/math/log10)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log10).\n\n#### sign(x) _(es5-ext/math/sign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sign).\n\n#### sinh(x) _(es5-ext/math/sinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sinh).\n\n#### tanh(x) _(es5-ext/math/tanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.tanh).\n\n#### trunc(x) _(es5-ext/math/trunc)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.trunc).\n\n### Number Constructor extensions\n\n#### EPSILON _(es5-ext/number/epsilon)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.epsilon).\n\nThe difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10-16.\n\n#### isFinite(x) _(es5-ext/number/is-finite)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite). \nWhether value is finite. Differs from global isNaN that it doesn't do type coercion.\n\n#### isInteger(x) _(es5-ext/number/is-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger). \nWhether value is integer.\n\n#### isNaN(x) _(es5-ext/number/is-nan)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isnan). \nWhether value is NaN. Differs from global isNaN that it doesn't do type coercion.\n\n#### isNumber(x) _(es5-ext/number/is-number)_\n\nWhether given value is number\n\n#### isSafeInteger(x) _(es5-ext/number/is-safe-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.issafeinteger).\n\n#### MAX*SAFE_INTEGER *(es5-ext/number/max-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.maxsafeinteger). \nThe value of Number.MAX_SAFE_INTEGER is 9007199254740991.\n\n#### MIN*SAFE_INTEGER *(es5-ext/number/min-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.minsafeinteger). \nThe value of Number.MIN_SAFE_INTEGER is -9007199254740991 (253-1).\n\n#### toInteger(x) _(es5-ext/number/to-integer)_\n\nConverts value to integer\n\n#### toPosInteger(x) _(es5-ext/number/to-pos-integer)_\n\nConverts value to positive integer. If provided value is less than 0, then 0 is returned\n\n#### toUint32(x) _(es5-ext/number/to-uint32)_\n\nConverts value to unsigned 32 bit integer. This type is used for array lengths.\nSee: http://www.2ality.com/2012/02/js-integers.html\n\n### Number Prototype extensions\n\n#### num.pad(length[, precision]) _(es5-ext/number/#/pad)_\n\nPad given number with zeros. Returns string\n\n### Object Constructor extensions\n\n#### assign(target, source[, …sourcen]) _(es5-ext/object/assign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign). \nExtend _target_ by enumerable own properties of other objects. If properties are already set on target object, they will be overwritten.\n\n#### clear(obj) _(es5-ext/object/clear)_\n\nRemove all enumerable own properties of the object\n\n#### compact(obj) _(es5-ext/object/compact)_\n\nReturns copy of the object with all enumerable properties that have no falsy values\n\n#### compare(obj1, obj2) _(es5-ext/object/compare)_\n\nUniversal cross-type compare function. To be used for e.g. array sort.\n\n#### copy(obj) _(es5-ext/object/copy)_\n\nReturns copy of the object with all enumerable properties.\n\n#### copyDeep(obj) _(es5-ext/object/copy-deep)_\n\nReturns deep copy of the object with all enumerable properties.\n\n#### count(obj) _(es5-ext/object/count)_\n\nCounts number of enumerable own properties on object\n\n#### create(obj[, properties]) _(es5-ext/object/create)_\n\n`Object.create` alternative that provides workaround for [V8 issue](http://code.google.com/p/v8/issues/detail?id=2804).\n\nWhen `null` is provided as a prototype, it's substituted with specially prepared object that derives from Object.prototype but has all Object.prototype properties shadowed with undefined.\n\nIt's quirky solution that allows us to have plain objects with no truthy properties but with turnable prototype.\n\nUse only for objects that you plan to switch prototypes of and be aware of limitations of this workaround.\n\n#### eq(x, y) _(es5-ext/object/eq)_\n\nWhether two values are equal, using [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### every(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/every)_\n\nAnalogous to Array.prototype.every. Returns true if every key-value pair in this object satisfies the provided testing function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### filter(obj, cb[, thisArg]) _(es5-ext/object/filter)_\n\nAnalogous to Array.prototype.filter. Returns new object with properites for which _cb_ function returned truthy value.\n\n#### firstKey(obj) _(es5-ext/object/first-key)_\n\nReturns first enumerable key of the object, as keys are unordered by specification, it can be any key of an object.\n\n#### flatten(obj) _(es5-ext/object/flatten)_\n\nReturns new object, with flatten properties of input object\n\n_flatten({ a: { b: 1 }, c: { d: 1 } }) =def { b: 1, d: 1 }_\n\n#### forEach(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/for-each)_\n\nAnalogous to Array.prototype.forEach. Calls a function for each key-value pair found in object\nOptionally _compareFn_ can be provided which assures that properties are iterated in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### getPropertyNames() _(es5-ext/object/get-property-names)_\n\nGet all (not just own) property names of the object\n\n#### is(x, y) _(es5-ext/object/is)_\n\nWhether two values are equal, using [_SameValue_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### isArrayLike(x) _(es5-ext/object/is-array-like)_\n\nWhether object is array-like object\n\n#### isCopy(x, y) _(es5-ext/object/is-copy)_\n\nTwo values are considered a copy of same value when all of their own enumerable properties have same values.\n\n#### isCopyDeep(x, y) _(es5-ext/object/is-copy-deep)_\n\nDeep comparision of objects\n\n#### isEmpty(obj) _(es5-ext/object/is-empty)_\n\nTrue if object doesn't have any own enumerable property\n\n#### isObject(arg) _(es5-ext/object/is-object)_\n\nWhether value is not primitive\n\n#### isPlainObject(arg) _(es5-ext/object/is-plain-object)_\n\nWhether object is plain object, its protototype should be Object.prototype and it cannot be host object.\n\n#### keyOf(obj, searchValue) _(es5-ext/object/key-of)_\n\nSearch object for value\n\n#### keys(obj) _(es5-ext/object/keys)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys). \nES6's version of `keys`, doesn't throw on primitive input\n\n#### map(obj, cb[, thisArg]) _(es5-ext/object/map)_\n\nAnalogous to Array.prototype.map. Creates a new object with properties which values are results of calling a provided function on every key-value pair in this object.\n\n#### mapKeys(obj, cb[, thisArg]) _(es5-ext/object/map-keys)_\n\nCreate new object with same values, but remapped keys\n\n#### mixin(target, source) _(es5-ext/object/mixin)_\n\nExtend _target_ by all own properties of other objects. Properties found in both objects will be overwritten (unless they're not configurable and cannot be overwritten).\n_It was for a moment part of ECMAScript 6 draft._\n\n#### mixinPrototypes(target, …source]) _(es5-ext/object/mixin-prototypes)_\n\nExtends _target_, with all source and source's prototype properties.\nUseful as an alternative for `setPrototypeOf` in environments in which it cannot be shimmed (no `__proto__` support).\n\n#### normalizeOptions(options) _(es5-ext/object/normalize-options)_\n\nNormalizes options object into flat plain object.\n\nUseful for functions in which we either need to keep options object for future reference or need to modify it for internal use.\n\n* It never returns input `options` object back (always a copy is created)\n* `options` can be undefined in such case empty plain object is returned.\n* Copies all enumerable properties found down prototype chain.\n\n#### primitiveSet([…names]) _(es5-ext/object/primitive-set)_\n\nCreates `null` prototype based plain object, and sets on it all property names provided in arguments to true.\n\n#### safeTraverse(obj[, …names]) _(es5-ext/object/safe-traverse)_\n\nSafe navigation of object properties. See http://wiki.ecmascript.org/doku.php?id=strawman:existential_operator\n\n#### serialize(value) _(es5-ext/object/serialize)_\n\nSerialize value into string. Differs from [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that it serializes also dates, functions and regular expresssions.\n\n#### setPrototypeOf(object, proto) _(es5-ext/object/set-prototype-of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof). \nIf native version is not provided, it depends on existence of `__proto__` functionality, if it's missing, `null` instead of function is exposed.\n\n#### some(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/some)_\n\nAnalogous to Array.prototype.some Returns true if any key-value pair satisfies the provided\ntesting function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### toArray(obj[, cb[, thisArg[, compareFn]]]) _(es5-ext/object/to-array)_\n\nCreates an array of results of calling a provided function on every key-value pair in this object. \nOptionally _compareFn_ can be provided which assures that results are added in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### unserialize(str) _(es5-ext/object/unserialize)_\n\nUserializes value previously serialized with [serialize](#serializevalue-es5-extobjectserialize)\n\n#### validCallable(x) _(es5-ext/object/valid-callable)_\n\nIf given object is not callable throw TypeError in other case return it.\n\n#### validObject(x) _(es5-ext/object/valid-object)_\n\nThrows error if given value is not an object, otherwise it is returned.\n\n#### validValue(x) _(es5-ext/object/valid-value)_\n\nThrows error if given value is `null` or `undefined`, otherwise returns value.\n\n### RegExp Constructor extensions\n\n#### escape(str) _(es5-ext/reg-exp/escape)_\n\nEscapes string to be used in regular expression\n\n#### isRegExp(x) _(es5-ext/reg-exp/is-reg-exp)_\n\nWhether object is regular expression\n\n#### validRegExp(x) _(es5-ext/reg-exp/valid-reg-exp)_\n\nIf object is regular expression it is returned, otherwise TypeError is thrown.\n\n### RegExp Prototype extensions\n\n#### re.isSticky(x) _(es5-ext/reg-exp/#/is-sticky)_\n\nWhether regular expression has `sticky` flag.\n\nIt's to be used as counterpart to [regExp.sticky](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.sticky) if it's not implemented.\n\n#### re.isUnicode(x) _(es5-ext/reg-exp/#/is-unicode)_\n\nWhether regular expression has `unicode` flag.\n\nIt's to be used as counterpart to [regExp.unicode](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.unicode) if it's not implemented.\n\n#### re.match(string) _(es5-ext/reg-exp/#/match)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.match).\n\n#### re.replace(string, replaceValue) _(es5-ext/reg-exp/#/replace)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.replace).\n\n#### re.search(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.search).\n\n#### re.split(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.split).\n\n#### re.sticky _(es5-ext/reg-exp/#/sticky/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.sticky). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n#### re.unicode _(es5-ext/reg-exp/#/unicode/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.unicode). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n### String Constructor extensions\n\n#### formatMethod(fMap) _(es5-ext/string/format-method)_\n\nCreates format method. It's used e.g. to create `Date.prototype.format` method\n\n#### fromCodePoint([…codePoints]) _(es5-ext/string/from-code-point)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.fromcodepoint)\n\n#### isString(x) _(es5-ext/string/is-string)_\n\nWhether object is string\n\n#### randomUniq() _(es5-ext/string/random-uniq)_\n\nReturns randomly generated id, with guarantee of local uniqueness (no same id will be returned twice)\n\n#### raw(callSite[, …substitutions]) _(es5-ext/string/raw)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.raw)\n\n### String Prototype extensions\n\n#### str.at(pos) _(es5-ext/string/#/at)_\n\n_Proposed for ECMAScript 6/7 standard, but not (yet) in a draft_\n\nReturns a string at given position in Unicode-safe manner.\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.at).\n\n#### str.camelToHyphen() _(es5-ext/string/#/camel-to-hyphen)_\n\nConvert camelCase string to hyphen separated, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from js property convention into filename convention.\n\n#### str.capitalize() _(es5-ext/string/#/capitalize)_\n\nCapitalize first character of a string\n\n#### str.caseInsensitiveCompare(str) _(es5-ext/string/#/case-insensitive-compare)_\n\nCase insensitive compare\n\n#### str.codePointAt(pos) _(es5-ext/string/#/code-point-at)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.codepointat)\n\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.codePointAt).\n\n#### str.contains(searchString[, position]) _(es5-ext/string/#/contains)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.contains)\n\nWhether string contains given string.\n\n#### str.endsWith(searchString[, endPosition]) _(es5-ext/string/#/ends-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith). \nWhether strings ends with given string\n\n#### str.hyphenToCamel() _(es5-ext/string/#/hyphen-to-camel)_\n\nConvert hyphen separated string to camelCase, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from filename convention to js property name convention.\n\n#### str.indent(str[, count]) _(es5-ext/string/#/indent)_\n\nIndents each line with provided _str_ (if _count_ given then _str_ is repeated _count_ times).\n\n#### str.last() _(es5-ext/string/#/last)_\n\nReturn last character\n\n#### str.normalize([form]) _(es5-ext/string/#/normalize)_\n\n[_Introduced with ECMAScript 6_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize). \nReturns the Unicode Normalization Form of a given string. \nBased on Matsuza's version. Code used for integrated shim can be found at [github.com/walling/unorm](https://github.com/walling/unorm/blob/master/lib/unorm.js)\n\n#### str.pad(fill[, length]) _(es5-ext/string/#/pad)_\n\nPad string with _fill_.\nIf _length_ si given than _fill_ is reapated _length_ times.\nIf _length_ is negative then pad is applied from right.\n\n#### str.repeat(n) _(es5-ext/string/#/repeat)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.repeat). \nRepeat given string _n_ times\n\n#### str.plainReplace(search, replace) _(es5-ext/string/#/plain-replace)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces just first occurrence of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.plainReplaceAll(search, replace) _(es5-ext/string/#/plain-replace-all)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces all occurrences of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.startsWith(searchString[, position]) _(es5-ext/string/#/starts-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith). \nWhether strings starts with given string\n\n#### str[@@iterator] _(es5-ext/string/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator). \nReturns iterator object which traverses all string characters (with respect to unicode symbols)\n\n### Tests\n\n $ npm test\n\n[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es5-ext/branches/master/shields_badge.svg\n[nix-build-url]: https://semaphoreci.com/medikoo-org/es5-ext\n[win-build-image]: https://ci.appveyor.com/api/projects/status/3jox67ksw3p8hkwh?svg=true\n[win-build-url]: https://ci.appveyor.com/project/medikoo/es5-ext\n[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg\n[npm-image]: https://img.shields.io/npm/v/es5-ext.svg\n[npm-url]: https://www.npmjs.com/package/es5-ext\n",
- "readmeFilename": "README.md",
- "bugs": "[Circular]",
- "homepage": "https://github.com/medikoo/es5-ext#readme",
- "_id": "es5-ext@0.10.45",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "es5-ext@0.10.45",
- "name": "es5-ext",
- "escapedName": "es5-ext",
- "rawSpec": "0.10.45",
- "saveSpec": "[Circular]",
- "fetchSpec": "0.10.45"
- },
- "_spec": "0.10.45",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es5-ext",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "es5-ext"
- },
- "d": {
- "name": "d",
- "version": "1.0.0",
- "description": "Property descriptor factory",
- "author": {
- "name": "Mariusz Nowak",
- "email": "medyk@medikoo.com",
- "url": "http://www.medikoo.com/"
- },
- "keywords": [
- "descriptor",
- "es",
- "ecmascript",
- "ecma",
- "property",
- "descriptors",
- "meta",
- "properties"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/d.git"
- },
- "dependencies": {
- "es5-ext": {
- "name": "es5-ext",
- "version": "0.10.45",
- "description": "ECMAScript extensions and shims",
- "author": "[Circular]",
- "keywords": "[Circular]",
- "repository": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "eslintConfig": "[Circular]",
- "scripts": "[Circular]",
- "license": "ISC",
- "_resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
- "_integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
- "_from": "es5-ext@0.10.45",
- "readme": "[![Build status][nix-build-image]][nix-build-url]\n[![Windows status][win-build-image]][win-build-url]\n![Transpilation status][transpilation-image]\n[![npm version][npm-image]][npm-url]\n\n# es5-ext\n\n## ECMAScript 5 extensions\n\n### (with respect to ECMAScript 6 standard)\n\nShims for upcoming ES6 standard and other goodies implemented strictly with ECMAScript conventions in mind.\n\nIt's designed to be used in compliant ECMAScript 5 or ECMAScript 6 environments. Older environments are not supported, although most of the features should work with correct ECMAScript 5 shim on board.\n\nWhen used in ECMAScript 6 environment, native implementation (if valid) takes precedence over shims.\n\n### Installation\n\n $ npm install es5-ext\n\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Usage\n\n#### ECMAScript 6 features\n\nYou can force ES6 features to be implemented in your environment, e.g. following will assign `from` function to `Array` (only if it's not implemented already).\n\n```javascript\nrequire(\"es5-ext/array/from/implement\");\nArray.from(\"foo\"); // ['f', 'o', 'o']\n```\n\nYou can also access shims directly, without fixing native objects. Following will return native `Array.from` if it's available and fallback to shim if it's not.\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\nIf you want to use shim unconditionally (even if native implementation exists) do:\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from/shim\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\n##### List of ES6 shims\n\nIt's about properties introduced with ES6 and those that have been updated in new spec.\n\n* `Array.from` -> `require('es5-ext/array/from')`\n* `Array.of` -> `require('es5-ext/array/of')`\n* `Array.prototype.concat` -> `require('es5-ext/array/#/concat')`\n* `Array.prototype.copyWithin` -> `require('es5-ext/array/#/copy-within')`\n* `Array.prototype.entries` -> `require('es5-ext/array/#/entries')`\n* `Array.prototype.fill` -> `require('es5-ext/array/#/fill')`\n* `Array.prototype.filter` -> `require('es5-ext/array/#/filter')`\n* `Array.prototype.find` -> `require('es5-ext/array/#/find')`\n* `Array.prototype.findIndex` -> `require('es5-ext/array/#/find-index')`\n* `Array.prototype.keys` -> `require('es5-ext/array/#/keys')`\n* `Array.prototype.map` -> `require('es5-ext/array/#/map')`\n* `Array.prototype.slice` -> `require('es5-ext/array/#/slice')`\n* `Array.prototype.splice` -> `require('es5-ext/array/#/splice')`\n* `Array.prototype.values` -> `require('es5-ext/array/#/values')`\n* `Array.prototype[@@iterator]` -> `require('es5-ext/array/#/@@iterator')`\n* `Math.acosh` -> `require('es5-ext/math/acosh')`\n* `Math.asinh` -> `require('es5-ext/math/asinh')`\n* `Math.atanh` -> `require('es5-ext/math/atanh')`\n* `Math.cbrt` -> `require('es5-ext/math/cbrt')`\n* `Math.clz32` -> `require('es5-ext/math/clz32')`\n* `Math.cosh` -> `require('es5-ext/math/cosh')`\n* `Math.exmp1` -> `require('es5-ext/math/expm1')`\n* `Math.fround` -> `require('es5-ext/math/fround')`\n* `Math.hypot` -> `require('es5-ext/math/hypot')`\n* `Math.imul` -> `require('es5-ext/math/imul')`\n* `Math.log1p` -> `require('es5-ext/math/log1p')`\n* `Math.log2` -> `require('es5-ext/math/log2')`\n* `Math.log10` -> `require('es5-ext/math/log10')`\n* `Math.sign` -> `require('es5-ext/math/sign')`\n* `Math.signh` -> `require('es5-ext/math/signh')`\n* `Math.tanh` -> `require('es5-ext/math/tanh')`\n* `Math.trunc` -> `require('es5-ext/math/trunc')`\n* `Number.EPSILON` -> `require('es5-ext/number/epsilon')`\n* `Number.MAX_SAFE_INTEGER` -> `require('es5-ext/number/max-safe-integer')`\n* `Number.MIN_SAFE_INTEGER` -> `require('es5-ext/number/min-safe-integer')`\n* `Number.isFinite` -> `require('es5-ext/number/is-finite')`\n* `Number.isInteger` -> `require('es5-ext/number/is-integer')`\n* `Number.isNaN` -> `require('es5-ext/number/is-nan')`\n* `Number.isSafeInteger` -> `require('es5-ext/number/is-safe-integer')`\n* `Object.assign` -> `require('es5-ext/object/assign')`\n* `Object.keys` -> `require('es5-ext/object/keys')`\n* `Object.setPrototypeOf` -> `require('es5-ext/object/set-prototype-of')`\n* `RegExp.prototype.match` -> `require('es5-ext/reg-exp/#/match')`\n* `RegExp.prototype.replace` -> `require('es5-ext/reg-exp/#/replace')`\n* `RegExp.prototype.search` -> `require('es5-ext/reg-exp/#/search')`\n* `RegExp.prototype.split` -> `require('es5-ext/reg-exp/#/split')`\n* `RegExp.prototype.sticky` -> Implement with `require('es5-ext/reg-exp/#/sticky/implement')`, use as function with `require('es5-ext/reg-exp/#/is-sticky')`\n* `RegExp.prototype.unicode` -> Implement with `require('es5-ext/reg-exp/#/unicode/implement')`, use as function with `require('es5-ext/reg-exp/#/is-unicode')`\n* `String.fromCodePoint` -> `require('es5-ext/string/from-code-point')`\n* `String.raw` -> `require('es5-ext/string/raw')`\n* `String.prototype.codePointAt` -> `require('es5-ext/string/#/code-point-at')`\n* `String.prototype.contains` -> `require('es5-ext/string/#/contains')`\n* `String.prototype.endsWith` -> `require('es5-ext/string/#/ends-with')`\n* `String.prototype.normalize` -> `require('es5-ext/string/#/normalize')`\n* `String.prototype.repeat` -> `require('es5-ext/string/#/repeat')`\n* `String.prototype.startsWith` -> `require('es5-ext/string/#/starts-with')`\n* `String.prototype[@@iterator]` -> `require('es5-ext/string/#/@@iterator')`\n\n#### Non ECMAScript standard features\n\n**es5-ext** provides also other utils, and implements them as if they were proposed for a standard. It mostly offers methods (not functions) which can directly be assigned to native prototypes:\n\n```javascript\nObject.defineProperty(Function.prototype, \"partial\", {\n\tvalue: require(\"es5-ext/function/#/partial\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(Array.prototype, \"flatten\", {\n\tvalue: require(\"es5-ext/array/#/flatten\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(String.prototype, \"capitalize\", {\n\tvalue: require(\"es5-ext/string/#/capitalize\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\n```\n\nSee [es5-extend](https://github.com/wookieb/es5-extend#es5-extend), a great utility that automatically will extend natives for you.\n\n**Important:** Remember to **not** extend natives in scope of generic reusable packages (e.g. ones you intend to publish to npm). Extending natives is fine **only** if you're the _owner_ of the global scope, so e.g. in final project you lead development of.\n\nWhen you're in situation when native extensions are not good idea, then you should use methods indirectly:\n\n```javascript\nvar flatten = require(\"es5-ext/array/#/flatten\");\n\nflatten.call([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nfor better convenience you can turn methods into functions:\n\n```javascript\nvar call = Function.prototype.call;\nvar flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\n\nflatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nYou can configure custom toolkit (like [underscorejs](http://underscorejs.org/)), and use it throughout your application\n\n```javascript\nvar util = {};\nutil.partial = call.bind(require(\"es5-ext/function/#/partial\"));\nutil.flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\nutil.startsWith = call.bind(require(\"es5-ext/string/#/starts-with\"));\n\nutil.flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nAs with native ones most methods are generic and can be run on any type of object.\n\n## API\n\n### Global extensions\n\n#### global _(es5-ext/global)_\n\nObject that represents global scope\n\n### Array Constructor extensions\n\n#### from(arrayLike[, mapFn[, thisArg]]) _(es5-ext/array/from)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from). \nReturns array representation of _iterable_ or _arrayLike_. If _arrayLike_ is an instance of array, its copy is returned.\n\n#### generate([length[, …fill]]) _(es5-ext/array/generate)_\n\nGenerate an array of pre-given _length_ built of repeated arguments.\n\n#### isPlainArray(x) _(es5-ext/array/is-plain-array)_\n\nReturns true if object is plain array (not instance of one of the Array's extensions).\n\n#### of([…items]) _(es5-ext/array/of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of). \nCreate an array from given arguments.\n\n#### toArray(obj) _(es5-ext/array/to-array)_\n\nReturns array representation of `obj`. If `obj` is already an array, `obj` is returned back.\n\n#### validArray(obj) _(es5-ext/array/valid-array)_\n\nReturns `obj` if it's an array, otherwise throws `TypeError`\n\n### Array Prototype extensions\n\n#### arr.binarySearch(compareFn) _(es5-ext/array/#/binary-search)_\n\nIn **sorted** list search for index of item for which _compareFn_ returns value closest to _0_. \nIt's variant of binary search algorithm\n\n#### arr.clear() _(es5-ext/array/#/clear)_\n\nClears the array\n\n#### arr.compact() _(es5-ext/array/#/compact)_\n\nReturns a copy of the context with all non-values (`null` or `undefined`) removed.\n\n#### arr.concat() _(es5-ext/array/#/concat)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.concat). \nES6's version of `concat`. Supports `isConcatSpreadable` symbol, and returns array of same type as the context.\n\n#### arr.contains(searchElement[, position]) _(es5-ext/array/#/contains)_\n\nWhether list contains the given value.\n\n#### arr.copyWithin(target, start[, end]) _(es5-ext/array/#/copy-within)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.copywithin).\n\n#### arr.diff(other) _(es5-ext/array/#/diff)_\n\nReturns the array of elements that are present in context list but not present in other list.\n\n#### arr.eIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-index-of)_\n\n_egal_ version of `indexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.eLastIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-last-index-of)_\n\n_egal_ version of `lastIndexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.entries() _(es5-ext/array/#/entries)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.entries). \nReturns iterator object, which traverses the array. Each value is represented with an array, where first value is an index and second is corresponding to index value.\n\n#### arr.exclusion([…lists]]) _(es5-ext/array/#/exclusion)_\n\nReturns the array of elements that are found only in one of the lists (either context list or list provided in arguments).\n\n#### arr.fill(value[, start, end]) _(es5-ext/array/#/fill)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.fill).\n\n#### arr.filter(callback[, thisArg]) _(es5-ext/array/#/filter)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.filter). \nES6's version of `filter`, returns array of same type as the context.\n\n#### arr.find(predicate[, thisArg]) _(es5-ext/array/#/find)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.find). \nReturn first element for which given function returns true\n\n#### arr.findIndex(predicate[, thisArg]) _(es5-ext/array/#/find-index)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.findindex). \nReturn first index for which given function returns true\n\n#### arr.first() _(es5-ext/array/#/first)_\n\nReturns value for first defined index\n\n#### arr.firstIndex() _(es5-ext/array/#/first-index)_\n\nReturns first declared index of the array\n\n#### arr.flatten() _(es5-ext/array/#/flatten)_\n\nReturns flattened version of the array\n\n#### arr.forEachRight(cb[, thisArg]) _(es5-ext/array/#/for-each-right)_\n\n`forEach` starting from last element\n\n#### arr.group(cb[, thisArg]) _(es5-ext/array/#/group)_\n\nGroup list elements by value returned by _cb_ function\n\n#### arr.indexesOf(searchElement[, fromIndex]) _(es5-ext/array/#/indexes-of)_\n\nReturns array of all indexes of given value\n\n#### arr.intersection([…lists]) _(es5-ext/array/#/intersection)_\n\nComputes the array of values that are the intersection of all lists (context list and lists given in arguments)\n\n#### arr.isCopy(other) _(es5-ext/array/#/is-copy)_\n\nReturns true if both context and _other_ lists have same content\n\n#### arr.isUniq() _(es5-ext/array/#/is-uniq)_\n\nReturns true if all values in array are unique\n\n#### arr.keys() _(es5-ext/array/#/keys)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.keys). \nReturns iterator object, which traverses all array indexes.\n\n#### arr.last() _(es5-ext/array/#/last)_\n\nReturns value of last defined index\n\n#### arr.lastIndex() _(es5-ext/array/#/last)_\n\nReturns last defined index of the array\n\n#### arr.map(callback[, thisArg]) _(es5-ext/array/#/map)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.map). \nES6's version of `map`, returns array of same type as the context.\n\n#### arr.remove(value[, …valuen]) _(es5-ext/array/#/remove)_\n\nRemove values from the array\n\n#### arr.separate(sep) _(es5-ext/array/#/separate)_\n\nReturns array with items separated with `sep` value\n\n#### arr.slice(callback[, thisArg]) _(es5-ext/array/#/slice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.slice). \nES6's version of `slice`, returns array of same type as the context.\n\n#### arr.someRight(cb[, thisArg]) _(es5-ext/array/#/someRight)_\n\n`some` starting from last element\n\n#### arr.splice(callback[, thisArg]) _(es5-ext/array/#/splice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.splice). \nES6's version of `splice`, returns array of same type as the context.\n\n#### arr.uniq() _(es5-ext/array/#/uniq)_\n\nReturns duplicate-free version of the array\n\n#### arr.values() _(es5-ext/array/#/values)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.values). \nReturns iterator object which traverses all array values.\n\n#### arr[@@iterator] _(es5-ext/array/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype-@@iterator). \nReturns iterator object which traverses all array values.\n\n### Boolean Constructor extensions\n\n#### isBoolean(x) _(es5-ext/boolean/is-boolean)_\n\nWhether value is boolean\n\n### Date Constructor extensions\n\n#### isDate(x) _(es5-ext/date/is-date)_\n\nWhether value is date instance\n\n#### validDate(x) _(es5-ext/date/valid-date)_\n\nIf given object is not date throw TypeError in other case return it.\n\n### Date Prototype extensions\n\n#### date.copy(date) _(es5-ext/date/#/copy)_\n\nReturns a copy of the date object\n\n#### date.daysInMonth() _(es5-ext/date/#/days-in-month)_\n\nReturns number of days of date's month\n\n#### date.floorDay() _(es5-ext/date/#/floor-day)_\n\nSets the date time to 00:00:00.000\n\n#### date.floorMonth() _(es5-ext/date/#/floor-month)_\n\nSets date day to 1 and date time to 00:00:00.000\n\n#### date.floorYear() _(es5-ext/date/#/floor-year)_\n\nSets date month to 0, day to 1 and date time to 00:00:00.000\n\n#### date.format(pattern) _(es5-ext/date/#/format)_\n\nFormats date up to given string. Supported patterns:\n\n* `%Y` - Year with century, 1999, 2003\n* `%y` - Year without century, 99, 03\n* `%m` - Month, 01..12\n* `%d` - Day of the month 01..31\n* `%H` - Hour (24-hour clock), 00..23\n* `%M` - Minute, 00..59\n* `%S` - Second, 00..59\n* `%L` - Milliseconds, 000..999\n\n### Error Constructor extensions\n\n#### custom(message/_, code, ext_/) _(es5-ext/error/custom)_\n\nCreates custom error object, optinally extended with `code` and other extension properties (provided with `ext` object)\n\n#### isError(x) _(es5-ext/error/is-error)_\n\nWhether value is an error (instance of `Error`).\n\n#### validError(x) _(es5-ext/error/valid-error)_\n\nIf given object is not error throw TypeError in other case return it.\n\n### Error Prototype extensions\n\n#### err.throw() _(es5-ext/error/#/throw)_\n\nThrows error\n\n### Function Constructor extensions\n\nSome of the functions were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### constant(x) _(es5-ext/function/constant)_\n\nReturns a constant function that returns pregiven argument\n\n_k(x)(y) =def x_\n\n#### identity(x) _(es5-ext/function/identity)_\n\nIdentity function. Returns first argument\n\n_i(x) =def x_\n\n#### invoke(name[, …args]) _(es5-ext/function/invoke)_\n\nReturns a function that takes an object as an argument, and applies object's\n_name_ method to arguments. \n_name_ can be name of the method or method itself.\n\n_invoke(name, …args)(object, …args2) =def object\\[name\\]\\(…args, …args2\\)_\n\n#### isArguments(x) _(es5-ext/function/is-arguments)_\n\nWhether value is arguments object\n\n#### isFunction(arg) _(es5-ext/function/is-function)_\n\nWhether value is instance of function\n\n#### noop() _(es5-ext/function/noop)_\n\nNo operation function\n\n#### pluck(name) _(es5-ext/function/pluck)_\n\nReturns a function that takes an object, and returns the value of its _name_\nproperty\n\n_pluck(name)(obj) =def obj[name]_\n\n#### validFunction(arg) _(es5-ext/function/valid-function)_\n\nIf given object is not function throw TypeError in other case return it.\n\n### Function Prototype extensions\n\nSome of the methods were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### fn.compose([…fns]) _(es5-ext/function/#/compose)_\n\nApplies the functions in reverse argument-list order.\n\n_f1.compose(f2, f3, f4)(…args) =def f1(f2(f3(f4(…arg))))_\n\n#### fn.copy() _(es5-ext/function/#/copy)_\n\nProduces copy of given function\n\n#### fn.curry([n]) _(es5-ext/function/#/curry)_\n\nInvoking the function returned by this function only _n_ arguments are passed to the underlying function. If the underlying function is not saturated, the result is a function that passes all its arguments to the underlying function. \nIf _n_ is not provided then it defaults to context function length\n\n_f.curry(4)(arg1, arg2)(arg3)(arg4) =def f(arg1, args2, arg3, arg4)_\n\n#### fn.lock([…args]) _(es5-ext/function/#/lock)_\n\nReturns a function that applies the underlying function to _args_, and ignores its own arguments.\n\n_f.lock(…args)(…args2) =def f(…args)_\n\n_Named after it's counterpart in Google Closure_\n\n#### fn.not() _(es5-ext/function/#/not)_\n\nReturns a function that returns boolean negation of value returned by underlying function.\n\n_f.not()(…args) =def !f(…args)_\n\n#### fn.partial([…args]) _(es5-ext/function/#/partial)_\n\nReturns a function that when called will behave like context function called with initially passed arguments. If more arguments are suplilied, they are appended to initial args.\n\n_f.partial(…args1)(…args2) =def f(…args1, …args2)_\n\n#### fn.spread() _(es5-ext/function/#/spread)_\n\nReturns a function that applies underlying function with first list argument\n\n_f.match()(args) =def f.apply(null, args)_\n\n#### fn.toStringTokens() _(es5-ext/function/#/to-string-tokens)_\n\nSerializes function into two (arguments and body) string tokens. Result is plain object with `args` and `body` properties.\n\n### Math extensions\n\n#### acosh(x) _(es5-ext/math/acosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.acosh).\n\n#### asinh(x) _(es5-ext/math/asinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.asinh).\n\n#### atanh(x) _(es5-ext/math/atanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.atanh).\n\n#### cbrt(x) _(es5-ext/math/cbrt)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cbrt).\n\n#### clz32(x) _(es5-ext/math/clz32)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.clz32).\n\n#### cosh(x) _(es5-ext/math/cosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cosh).\n\n#### expm1(x) _(es5-ext/math/expm1)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.expm1).\n\n#### fround(x) _(es5-ext/math/fround)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.fround).\n\n#### hypot([…values]) _(es5-ext/math/hypot)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.hypot).\n\n#### imul(x, y) _(es5-ext/math/imul)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.imul).\n\n#### log1p(x) _(es5-ext/math/log1p)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log1p).\n\n#### log2(x) _(es5-ext/math/log2)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log2).\n\n#### log10(x) _(es5-ext/math/log10)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log10).\n\n#### sign(x) _(es5-ext/math/sign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sign).\n\n#### sinh(x) _(es5-ext/math/sinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sinh).\n\n#### tanh(x) _(es5-ext/math/tanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.tanh).\n\n#### trunc(x) _(es5-ext/math/trunc)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.trunc).\n\n### Number Constructor extensions\n\n#### EPSILON _(es5-ext/number/epsilon)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.epsilon).\n\nThe difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10-16.\n\n#### isFinite(x) _(es5-ext/number/is-finite)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite). \nWhether value is finite. Differs from global isNaN that it doesn't do type coercion.\n\n#### isInteger(x) _(es5-ext/number/is-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger). \nWhether value is integer.\n\n#### isNaN(x) _(es5-ext/number/is-nan)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isnan). \nWhether value is NaN. Differs from global isNaN that it doesn't do type coercion.\n\n#### isNumber(x) _(es5-ext/number/is-number)_\n\nWhether given value is number\n\n#### isSafeInteger(x) _(es5-ext/number/is-safe-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.issafeinteger).\n\n#### MAX*SAFE_INTEGER *(es5-ext/number/max-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.maxsafeinteger). \nThe value of Number.MAX_SAFE_INTEGER is 9007199254740991.\n\n#### MIN*SAFE_INTEGER *(es5-ext/number/min-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.minsafeinteger). \nThe value of Number.MIN_SAFE_INTEGER is -9007199254740991 (253-1).\n\n#### toInteger(x) _(es5-ext/number/to-integer)_\n\nConverts value to integer\n\n#### toPosInteger(x) _(es5-ext/number/to-pos-integer)_\n\nConverts value to positive integer. If provided value is less than 0, then 0 is returned\n\n#### toUint32(x) _(es5-ext/number/to-uint32)_\n\nConverts value to unsigned 32 bit integer. This type is used for array lengths.\nSee: http://www.2ality.com/2012/02/js-integers.html\n\n### Number Prototype extensions\n\n#### num.pad(length[, precision]) _(es5-ext/number/#/pad)_\n\nPad given number with zeros. Returns string\n\n### Object Constructor extensions\n\n#### assign(target, source[, …sourcen]) _(es5-ext/object/assign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign). \nExtend _target_ by enumerable own properties of other objects. If properties are already set on target object, they will be overwritten.\n\n#### clear(obj) _(es5-ext/object/clear)_\n\nRemove all enumerable own properties of the object\n\n#### compact(obj) _(es5-ext/object/compact)_\n\nReturns copy of the object with all enumerable properties that have no falsy values\n\n#### compare(obj1, obj2) _(es5-ext/object/compare)_\n\nUniversal cross-type compare function. To be used for e.g. array sort.\n\n#### copy(obj) _(es5-ext/object/copy)_\n\nReturns copy of the object with all enumerable properties.\n\n#### copyDeep(obj) _(es5-ext/object/copy-deep)_\n\nReturns deep copy of the object with all enumerable properties.\n\n#### count(obj) _(es5-ext/object/count)_\n\nCounts number of enumerable own properties on object\n\n#### create(obj[, properties]) _(es5-ext/object/create)_\n\n`Object.create` alternative that provides workaround for [V8 issue](http://code.google.com/p/v8/issues/detail?id=2804).\n\nWhen `null` is provided as a prototype, it's substituted with specially prepared object that derives from Object.prototype but has all Object.prototype properties shadowed with undefined.\n\nIt's quirky solution that allows us to have plain objects with no truthy properties but with turnable prototype.\n\nUse only for objects that you plan to switch prototypes of and be aware of limitations of this workaround.\n\n#### eq(x, y) _(es5-ext/object/eq)_\n\nWhether two values are equal, using [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### every(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/every)_\n\nAnalogous to Array.prototype.every. Returns true if every key-value pair in this object satisfies the provided testing function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### filter(obj, cb[, thisArg]) _(es5-ext/object/filter)_\n\nAnalogous to Array.prototype.filter. Returns new object with properites for which _cb_ function returned truthy value.\n\n#### firstKey(obj) _(es5-ext/object/first-key)_\n\nReturns first enumerable key of the object, as keys are unordered by specification, it can be any key of an object.\n\n#### flatten(obj) _(es5-ext/object/flatten)_\n\nReturns new object, with flatten properties of input object\n\n_flatten({ a: { b: 1 }, c: { d: 1 } }) =def { b: 1, d: 1 }_\n\n#### forEach(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/for-each)_\n\nAnalogous to Array.prototype.forEach. Calls a function for each key-value pair found in object\nOptionally _compareFn_ can be provided which assures that properties are iterated in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### getPropertyNames() _(es5-ext/object/get-property-names)_\n\nGet all (not just own) property names of the object\n\n#### is(x, y) _(es5-ext/object/is)_\n\nWhether two values are equal, using [_SameValue_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### isArrayLike(x) _(es5-ext/object/is-array-like)_\n\nWhether object is array-like object\n\n#### isCopy(x, y) _(es5-ext/object/is-copy)_\n\nTwo values are considered a copy of same value when all of their own enumerable properties have same values.\n\n#### isCopyDeep(x, y) _(es5-ext/object/is-copy-deep)_\n\nDeep comparision of objects\n\n#### isEmpty(obj) _(es5-ext/object/is-empty)_\n\nTrue if object doesn't have any own enumerable property\n\n#### isObject(arg) _(es5-ext/object/is-object)_\n\nWhether value is not primitive\n\n#### isPlainObject(arg) _(es5-ext/object/is-plain-object)_\n\nWhether object is plain object, its protototype should be Object.prototype and it cannot be host object.\n\n#### keyOf(obj, searchValue) _(es5-ext/object/key-of)_\n\nSearch object for value\n\n#### keys(obj) _(es5-ext/object/keys)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys). \nES6's version of `keys`, doesn't throw on primitive input\n\n#### map(obj, cb[, thisArg]) _(es5-ext/object/map)_\n\nAnalogous to Array.prototype.map. Creates a new object with properties which values are results of calling a provided function on every key-value pair in this object.\n\n#### mapKeys(obj, cb[, thisArg]) _(es5-ext/object/map-keys)_\n\nCreate new object with same values, but remapped keys\n\n#### mixin(target, source) _(es5-ext/object/mixin)_\n\nExtend _target_ by all own properties of other objects. Properties found in both objects will be overwritten (unless they're not configurable and cannot be overwritten).\n_It was for a moment part of ECMAScript 6 draft._\n\n#### mixinPrototypes(target, …source]) _(es5-ext/object/mixin-prototypes)_\n\nExtends _target_, with all source and source's prototype properties.\nUseful as an alternative for `setPrototypeOf` in environments in which it cannot be shimmed (no `__proto__` support).\n\n#### normalizeOptions(options) _(es5-ext/object/normalize-options)_\n\nNormalizes options object into flat plain object.\n\nUseful for functions in which we either need to keep options object for future reference or need to modify it for internal use.\n\n* It never returns input `options` object back (always a copy is created)\n* `options` can be undefined in such case empty plain object is returned.\n* Copies all enumerable properties found down prototype chain.\n\n#### primitiveSet([…names]) _(es5-ext/object/primitive-set)_\n\nCreates `null` prototype based plain object, and sets on it all property names provided in arguments to true.\n\n#### safeTraverse(obj[, …names]) _(es5-ext/object/safe-traverse)_\n\nSafe navigation of object properties. See http://wiki.ecmascript.org/doku.php?id=strawman:existential_operator\n\n#### serialize(value) _(es5-ext/object/serialize)_\n\nSerialize value into string. Differs from [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that it serializes also dates, functions and regular expresssions.\n\n#### setPrototypeOf(object, proto) _(es5-ext/object/set-prototype-of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof). \nIf native version is not provided, it depends on existence of `__proto__` functionality, if it's missing, `null` instead of function is exposed.\n\n#### some(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/some)_\n\nAnalogous to Array.prototype.some Returns true if any key-value pair satisfies the provided\ntesting function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### toArray(obj[, cb[, thisArg[, compareFn]]]) _(es5-ext/object/to-array)_\n\nCreates an array of results of calling a provided function on every key-value pair in this object. \nOptionally _compareFn_ can be provided which assures that results are added in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### unserialize(str) _(es5-ext/object/unserialize)_\n\nUserializes value previously serialized with [serialize](#serializevalue-es5-extobjectserialize)\n\n#### validCallable(x) _(es5-ext/object/valid-callable)_\n\nIf given object is not callable throw TypeError in other case return it.\n\n#### validObject(x) _(es5-ext/object/valid-object)_\n\nThrows error if given value is not an object, otherwise it is returned.\n\n#### validValue(x) _(es5-ext/object/valid-value)_\n\nThrows error if given value is `null` or `undefined`, otherwise returns value.\n\n### RegExp Constructor extensions\n\n#### escape(str) _(es5-ext/reg-exp/escape)_\n\nEscapes string to be used in regular expression\n\n#### isRegExp(x) _(es5-ext/reg-exp/is-reg-exp)_\n\nWhether object is regular expression\n\n#### validRegExp(x) _(es5-ext/reg-exp/valid-reg-exp)_\n\nIf object is regular expression it is returned, otherwise TypeError is thrown.\n\n### RegExp Prototype extensions\n\n#### re.isSticky(x) _(es5-ext/reg-exp/#/is-sticky)_\n\nWhether regular expression has `sticky` flag.\n\nIt's to be used as counterpart to [regExp.sticky](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.sticky) if it's not implemented.\n\n#### re.isUnicode(x) _(es5-ext/reg-exp/#/is-unicode)_\n\nWhether regular expression has `unicode` flag.\n\nIt's to be used as counterpart to [regExp.unicode](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.unicode) if it's not implemented.\n\n#### re.match(string) _(es5-ext/reg-exp/#/match)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.match).\n\n#### re.replace(string, replaceValue) _(es5-ext/reg-exp/#/replace)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.replace).\n\n#### re.search(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.search).\n\n#### re.split(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.split).\n\n#### re.sticky _(es5-ext/reg-exp/#/sticky/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.sticky). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n#### re.unicode _(es5-ext/reg-exp/#/unicode/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.unicode). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n### String Constructor extensions\n\n#### formatMethod(fMap) _(es5-ext/string/format-method)_\n\nCreates format method. It's used e.g. to create `Date.prototype.format` method\n\n#### fromCodePoint([…codePoints]) _(es5-ext/string/from-code-point)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.fromcodepoint)\n\n#### isString(x) _(es5-ext/string/is-string)_\n\nWhether object is string\n\n#### randomUniq() _(es5-ext/string/random-uniq)_\n\nReturns randomly generated id, with guarantee of local uniqueness (no same id will be returned twice)\n\n#### raw(callSite[, …substitutions]) _(es5-ext/string/raw)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.raw)\n\n### String Prototype extensions\n\n#### str.at(pos) _(es5-ext/string/#/at)_\n\n_Proposed for ECMAScript 6/7 standard, but not (yet) in a draft_\n\nReturns a string at given position in Unicode-safe manner.\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.at).\n\n#### str.camelToHyphen() _(es5-ext/string/#/camel-to-hyphen)_\n\nConvert camelCase string to hyphen separated, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from js property convention into filename convention.\n\n#### str.capitalize() _(es5-ext/string/#/capitalize)_\n\nCapitalize first character of a string\n\n#### str.caseInsensitiveCompare(str) _(es5-ext/string/#/case-insensitive-compare)_\n\nCase insensitive compare\n\n#### str.codePointAt(pos) _(es5-ext/string/#/code-point-at)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.codepointat)\n\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.codePointAt).\n\n#### str.contains(searchString[, position]) _(es5-ext/string/#/contains)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.contains)\n\nWhether string contains given string.\n\n#### str.endsWith(searchString[, endPosition]) _(es5-ext/string/#/ends-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith). \nWhether strings ends with given string\n\n#### str.hyphenToCamel() _(es5-ext/string/#/hyphen-to-camel)_\n\nConvert hyphen separated string to camelCase, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from filename convention to js property name convention.\n\n#### str.indent(str[, count]) _(es5-ext/string/#/indent)_\n\nIndents each line with provided _str_ (if _count_ given then _str_ is repeated _count_ times).\n\n#### str.last() _(es5-ext/string/#/last)_\n\nReturn last character\n\n#### str.normalize([form]) _(es5-ext/string/#/normalize)_\n\n[_Introduced with ECMAScript 6_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize). \nReturns the Unicode Normalization Form of a given string. \nBased on Matsuza's version. Code used for integrated shim can be found at [github.com/walling/unorm](https://github.com/walling/unorm/blob/master/lib/unorm.js)\n\n#### str.pad(fill[, length]) _(es5-ext/string/#/pad)_\n\nPad string with _fill_.\nIf _length_ si given than _fill_ is reapated _length_ times.\nIf _length_ is negative then pad is applied from right.\n\n#### str.repeat(n) _(es5-ext/string/#/repeat)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.repeat). \nRepeat given string _n_ times\n\n#### str.plainReplace(search, replace) _(es5-ext/string/#/plain-replace)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces just first occurrence of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.plainReplaceAll(search, replace) _(es5-ext/string/#/plain-replace-all)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces all occurrences of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.startsWith(searchString[, position]) _(es5-ext/string/#/starts-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith). \nWhether strings starts with given string\n\n#### str[@@iterator] _(es5-ext/string/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator). \nReturns iterator object which traverses all string characters (with respect to unicode symbols)\n\n### Tests\n\n $ npm test\n\n[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es5-ext/branches/master/shields_badge.svg\n[nix-build-url]: https://semaphoreci.com/medikoo-org/es5-ext\n[win-build-image]: https://ci.appveyor.com/api/projects/status/3jox67ksw3p8hkwh?svg=true\n[win-build-url]: https://ci.appveyor.com/project/medikoo/es5-ext\n[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg\n[npm-image]: https://img.shields.io/npm/v/es5-ext.svg\n[npm-url]: https://www.npmjs.com/package/es5-ext\n",
- "readmeFilename": "README.md",
- "bugs": "[Circular]",
- "homepage": "https://github.com/medikoo/es5-ext#readme",
- "_id": "es5-ext@0.10.45",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "es5-ext@0.10.45",
- "name": "es5-ext",
- "escapedName": "es5-ext",
- "rawSpec": "0.10.45",
- "saveSpec": "[Circular]",
- "fetchSpec": "0.10.45"
- },
- "_spec": "0.10.45",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es5-ext",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "es5-ext"
- }
- },
- "devDependencies": {
- "tad": "^0.2.4",
- "xlint": "^0.2.2",
- "xlint-jslint-medikoo": "^0.1.4"
- },
- "scripts": {
- "lint": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream",
- "lint-console": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch",
- "test": "node node_modules/tad/bin/tad"
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "_integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
- "_from": "d@1.0.0",
- "readme": "# D\n## Property descriptor factory\n\n_Originally derived from [es5-ext](https://github.com/medikoo/es5-ext) package._\n\nDefining properties with descriptors is very verbose:\n\n```javascript\nvar Account = function () {};\nObject.defineProperties(Account.prototype, {\n deposit: { value: function () {\n /* ... */\n }, configurable: true, enumerable: false, writable: true },\n withdraw: { value: function () {\n /* ... */\n }, configurable: true, enumerable: false, writable: true },\n balance: { get: function () {\n /* ... */\n }, configurable: true, enumerable: false }\n});\n```\n\nD cuts that to:\n\n```javascript\nvar d = require('d');\n\nvar Account = function () {};\nObject.defineProperties(Account.prototype, {\n deposit: d(function () {\n /* ... */\n }),\n withdraw: d(function () {\n /* ... */\n }),\n balance: d.gs(function () {\n /* ... */\n })\n});\n```\n\nBy default, created descriptor follow characteristics of native ES5 properties, and defines values as:\n\n```javascript\n{ configurable: true, enumerable: false, writable: true }\n```\n\nYou can overwrite it by preceding _value_ argument with instruction:\n```javascript\nd('c', value); // { configurable: true, enumerable: false, writable: false }\nd('ce', value); // { configurable: true, enumerable: true, writable: false }\nd('e', value); // { configurable: false, enumerable: true, writable: false }\n\n// Same way for get/set:\nd.gs('e', value); // { configurable: false, enumerable: true }\n```\n\n### Installation\n\n\t$ npm install d\n\t\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Other utilities\n\n#### autoBind(obj, props) _(d/auto-bind)_\n\nDefine methods which will be automatically bound to its instances\n\n```javascript\nvar d = require('d');\nvar autoBind = require('d/auto-bind');\n\nvar Foo = function () { this._count = 0; };\nObject.defineProperties(Foo.prototype, autoBind({\n increment: d(function () { ++this._count; });\n}));\n\nvar foo = new Foo();\n\n// Increment foo counter on each domEl click\ndomEl.addEventListener('click', foo.increment, false);\n```\n\n#### lazy(obj, props) _(d/lazy)_\n\nDefine lazy properties, which will be resolved on first access\n\n```javascript\nvar d = require('d');\nvar lazy = require('d/lazy');\n\nvar Foo = function () {};\nObject.defineProperties(Foo.prototype, lazy({\n items: d(function () { return []; })\n}));\n\nvar foo = new Foo();\nfoo.items.push(1, 2); // foo.items array created and defined directly on foo\n```\n\n## Tests [](https://travis-ci.org/medikoo/d)\n\n\t$ npm test\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/medikoo/d/issues"
- },
- "homepage": "https://github.com/medikoo/d#readme",
- "_id": "d@1.0.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "d@1.0.0",
- "name": "d",
- "escapedName": "d",
- "rawSpec": "1.0.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.0.0"
- },
- "_spec": "1.0.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "d@1.0.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "es5-ext": "^0.10.9"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es6-iterator/node_modules/d",
- "error": "[Circular]",
- "extraneous": false
- },
- "es6-symbol": {
- "name": "es6-symbol",
- "version": "3.1.1",
- "description": "ECMAScript 6 Symbol polyfill",
- "author": {
- "name": "Mariusz Nowak",
- "email": "medyk@medikoo.com",
- "url": "http://www.medikoo.com/"
- },
- "keywords": [
- "symbol",
- "private",
- "property",
- "es6",
- "ecmascript",
- "harmony",
- "ponyfill",
- "polyfill"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/es6-symbol.git"
- },
- "dependencies": {},
- "devDependencies": {
- "tad": "~0.2.7",
- "xlint": "~0.2.2",
- "xlint-jslint-medikoo": "~0.1.4"
- },
- "scripts": {
- "lint": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream",
- "lint-console": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch",
- "test": "node ./node_modules/tad/bin/tad"
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
- "_integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
- "_from": "es6-symbol@3.1.1",
- "readme": "# es6-symbol\n## ECMAScript 6 Symbol polyfill\n\nFor more information about symbols see following links\n- [Symbols in ECMAScript 6 by Axel Rauschmayer](http://www.2ality.com/2014/12/es6-symbols.html)\n- [MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol)\n- [Specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-constructor)\n\n### Limitations\n\nUnderneath it uses real string property names which can easily be retrieved, however accidental collision with other property names is unlikely.\n\n### Usage\n\nIf you'd like to use native version when it exists and fallback to [ponyfill](https://ponyfill.com) if it doesn't, use *es6-symbol* as following:\n\n```javascript\nvar Symbol = require('es6-symbol');\n```\n\nIf you want to make sure your environment implements `Symbol` globally, do:\n\n```javascript\nrequire('es6-symbol/implement');\n```\n\nIf you strictly want to use polyfill even if native `Symbol` exists (hard to find a good reason for that), do:\n\n```javascript\nvar Symbol = require('es6-symbol/polyfill');\n```\n\n#### API\n\nBest is to refer to [specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-objects). Still if you want quick look, follow examples:\n\n```javascript\nvar Symbol = require('es6-symbol');\n\nvar symbol = Symbol('My custom symbol');\nvar x = {};\n\nx[symbol] = 'foo';\nconsole.log(x[symbol]); 'foo'\n\n// Detect iterable:\nvar iterator, result;\nif (possiblyIterable[Symbol.iterator]) {\n iterator = possiblyIterable[Symbol.iterator]();\n result = iterator.next();\n while(!result.done) {\n console.log(result.value);\n result = iterator.next();\n }\n}\n```\n\n### Installation\n#### NPM\n\nIn your project path:\n\n\t$ npm install es6-symbol\n\n##### Browser\n\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n## Tests [](https://travis-ci.org/medikoo/es6-symbol)\n\n\t$ npm test\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/medikoo/es6-symbol/issues"
- },
- "homepage": "https://github.com/medikoo/es6-symbol#readme",
- "_id": "es6-symbol@3.1.1",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "es6-symbol@3.1.1",
- "name": "es6-symbol",
- "escapedName": "es6-symbol",
- "rawSpec": "3.1.1",
- "saveSpec": "[Circular]",
- "fetchSpec": "3.1.1"
- },
- "_spec": "3.1.1",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "es6-symbol@3.1.1",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "d": "1",
- "es5-ext": "~0.10.14"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es6-symbol",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "es6-symbol"
- }
- },
- "devDependencies": {
- "eslint": "^4.9",
- "eslint-config-medikoo-es5": "^1.4.4",
- "event-emitter": "^0.3.5",
- "tad": "^0.2.7"
- },
- "eslintConfig": {
- "extends": "medikoo-es5",
- "root": true,
- "rules": {
- "no-extend-native": "off"
- }
- },
- "scripts": {
- "lint": "eslint --ignore-path=.gitignore .",
- "test": "node ./node_modules/tad/bin/tad"
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "_integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
- "_from": "es6-iterator@2.0.3",
- "readme": "# es6-iterator\n## ECMAScript 6 Iterator interface\n\n### Installation\n\n\t$ npm install es6-iterator\n\t\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n## API\n\n### Constructors\n\n#### Iterator(list) _(es6-iterator)_\n\nAbstract Iterator interface. Meant for extensions and not to be used on its own.\n\nAccepts any _list_ object (technically object with numeric _length_ property).\n\n_Mind it doesn't iterate strings properly, for that use dedicated [StringIterator](#string-iterator)_\n\n```javascript\nvar Iterator = require('es6-iterator')\nvar iterator = new Iterator([1, 2, 3]);\n\niterator.next(); // { value: 1, done: false }\niterator.next(); // { value: 2, done: false }\niterator.next(); // { value: 3, done: false }\niterator.next(); // { value: undefined, done: true }\n```\n\n\n#### ArrayIterator(arrayLike[, kind]) _(es6-iterator/array)_\n\nDedicated for arrays and array-likes. Supports three iteration kinds:\n* __value__ _(default)_ - Iterates values\n* __key__ - Iterates indexes\n* __key+value__ - Iterates keys and indexes, each iteration value is in _[key, value]_ form.\n\n\n```javascript\nvar ArrayIterator = require('es6-iterator/array')\nvar iterator = new ArrayIterator([1, 2, 3], 'key+value');\n\niterator.next(); // { value: [0, 1], done: false }\niterator.next(); // { value: [1, 2], done: false }\niterator.next(); // { value: [2, 3], done: false }\niterator.next(); // { value: undefined, done: true }\n```\n\nMay also be used for _arguments_ objects:\n\n```javascript\n(function () {\n var iterator = new ArrayIterator(arguments);\n\n iterator.next(); // { value: 1, done: false }\n iterator.next(); // { value: 2, done: false }\n iterator.next(); // { value: 3, done: false }\n iterator.next(); // { value: undefined, done: true }\n}(1, 2, 3));\n```\n\n#### StringIterator(str) _(es6-iterator/string)_\n\nAssures proper iteration over unicode symbols. \nSee: http://mathiasbynens.be/notes/javascript-unicode\n\n```javascript\nvar StringIterator = require('es6-iterator/string');\nvar iterator = new StringIterator('f🙈o🙉o🙊');\n\niterator.next(); // { value: 'f', done: false }\niterator.next(); // { value: '🙈', done: false }\niterator.next(); // { value: 'o', done: false }\niterator.next(); // { value: '🙉', done: false }\niterator.next(); // { value: 'o', done: false }\niterator.next(); // { value: '🙊', done: false }\niterator.next(); // { value: undefined, done: true }\n```\n\n### Function utilities\n\n#### forOf(iterable, callback[, thisArg]) _(es6-iterator/for-of)_\n\nPolyfill for ECMAScript 6 [`for...of`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) statement.\n\n```\nvar forOf = require('es6-iterator/for-of');\nvar result = [];\n\nforOf('🙈🙉🙊', function (monkey) { result.push(monkey); });\nconsole.log(result); // ['🙈', '🙉', '🙊'];\n```\n\nOptionally you can break iteration at any point:\n\n```javascript\nvar result = [];\n\nforOf([1,2,3,4]', function (val, doBreak) {\n result.push(monkey);\n if (val >= 3) doBreak();\n});\nconsole.log(result); // [1, 2, 3];\n```\n\n#### get(obj) _(es6-iterator/get)_\n\nReturn iterator for any iterable object.\n\n```javascript\nvar getIterator = require('es6-iterator/get');\nvar iterator = get([1,2,3]);\n\niterator.next(); // { value: 1, done: false }\niterator.next(); // { value: 2, done: false }\niterator.next(); // { value: 3, done: false }\niterator.next(); // { value: undefined, done: true }\n```\n\n#### isIterable(obj) _(es6-iterator/is-iterable)_\n\nWhether _obj_ is iterable\n\n```javascript\nvar isIterable = require('es6-iterator/is-iterable');\n\nisIterable(null); // false\nisIterable(true); // false\nisIterable('str'); // true\nisIterable(['a', 'r', 'r']); // true\nisIterable(new ArrayIterator([])); // true\n```\n\n#### validIterable(obj) _(es6-iterator/valid-iterable)_\n\nIf _obj_ is an iterable it is returned. Otherwise _TypeError_ is thrown.\n\n### Method extensions\n\n#### iterator.chain(iterator1[, …iteratorn]) _(es6-iterator/#/chain)_\n\nChain multiple iterators into one.\n\n### Tests [](https://travis-ci.org/medikoo/es6-iterator)\n\n\t$ npm test\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/medikoo/es6-iterator/issues"
- },
- "homepage": "https://github.com/medikoo/es6-iterator#readme",
- "_id": "es6-iterator@2.0.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "es6-iterator@2.0.3",
- "name": "es6-iterator",
- "escapedName": "es6-iterator",
- "rawSpec": "2.0.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "2.0.3"
- },
- "_spec": "2.0.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "es6-iterator@2.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es6-iterator",
- "error": "[Circular]",
- "extraneous": false
- },
- "es6-symbol": {
- "name": "es6-symbol",
- "version": "3.1.1",
- "description": "ECMAScript 6 Symbol polyfill",
- "author": "[Circular]",
- "keywords": "[Circular]",
- "repository": "[Circular]",
- "dependencies": {
- "es5-ext": {
- "name": "es5-ext",
- "version": "0.10.45",
- "description": "ECMAScript extensions and shims",
- "author": "[Circular]",
- "keywords": "[Circular]",
- "repository": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "eslintConfig": "[Circular]",
- "scripts": "[Circular]",
- "license": "ISC",
- "_resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
- "_integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
- "_from": "es5-ext@0.10.45",
- "readme": "[![Build status][nix-build-image]][nix-build-url]\n[![Windows status][win-build-image]][win-build-url]\n![Transpilation status][transpilation-image]\n[![npm version][npm-image]][npm-url]\n\n# es5-ext\n\n## ECMAScript 5 extensions\n\n### (with respect to ECMAScript 6 standard)\n\nShims for upcoming ES6 standard and other goodies implemented strictly with ECMAScript conventions in mind.\n\nIt's designed to be used in compliant ECMAScript 5 or ECMAScript 6 environments. Older environments are not supported, although most of the features should work with correct ECMAScript 5 shim on board.\n\nWhen used in ECMAScript 6 environment, native implementation (if valid) takes precedence over shims.\n\n### Installation\n\n $ npm install es5-ext\n\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Usage\n\n#### ECMAScript 6 features\n\nYou can force ES6 features to be implemented in your environment, e.g. following will assign `from` function to `Array` (only if it's not implemented already).\n\n```javascript\nrequire(\"es5-ext/array/from/implement\");\nArray.from(\"foo\"); // ['f', 'o', 'o']\n```\n\nYou can also access shims directly, without fixing native objects. Following will return native `Array.from` if it's available and fallback to shim if it's not.\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\nIf you want to use shim unconditionally (even if native implementation exists) do:\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from/shim\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\n##### List of ES6 shims\n\nIt's about properties introduced with ES6 and those that have been updated in new spec.\n\n* `Array.from` -> `require('es5-ext/array/from')`\n* `Array.of` -> `require('es5-ext/array/of')`\n* `Array.prototype.concat` -> `require('es5-ext/array/#/concat')`\n* `Array.prototype.copyWithin` -> `require('es5-ext/array/#/copy-within')`\n* `Array.prototype.entries` -> `require('es5-ext/array/#/entries')`\n* `Array.prototype.fill` -> `require('es5-ext/array/#/fill')`\n* `Array.prototype.filter` -> `require('es5-ext/array/#/filter')`\n* `Array.prototype.find` -> `require('es5-ext/array/#/find')`\n* `Array.prototype.findIndex` -> `require('es5-ext/array/#/find-index')`\n* `Array.prototype.keys` -> `require('es5-ext/array/#/keys')`\n* `Array.prototype.map` -> `require('es5-ext/array/#/map')`\n* `Array.prototype.slice` -> `require('es5-ext/array/#/slice')`\n* `Array.prototype.splice` -> `require('es5-ext/array/#/splice')`\n* `Array.prototype.values` -> `require('es5-ext/array/#/values')`\n* `Array.prototype[@@iterator]` -> `require('es5-ext/array/#/@@iterator')`\n* `Math.acosh` -> `require('es5-ext/math/acosh')`\n* `Math.asinh` -> `require('es5-ext/math/asinh')`\n* `Math.atanh` -> `require('es5-ext/math/atanh')`\n* `Math.cbrt` -> `require('es5-ext/math/cbrt')`\n* `Math.clz32` -> `require('es5-ext/math/clz32')`\n* `Math.cosh` -> `require('es5-ext/math/cosh')`\n* `Math.exmp1` -> `require('es5-ext/math/expm1')`\n* `Math.fround` -> `require('es5-ext/math/fround')`\n* `Math.hypot` -> `require('es5-ext/math/hypot')`\n* `Math.imul` -> `require('es5-ext/math/imul')`\n* `Math.log1p` -> `require('es5-ext/math/log1p')`\n* `Math.log2` -> `require('es5-ext/math/log2')`\n* `Math.log10` -> `require('es5-ext/math/log10')`\n* `Math.sign` -> `require('es5-ext/math/sign')`\n* `Math.signh` -> `require('es5-ext/math/signh')`\n* `Math.tanh` -> `require('es5-ext/math/tanh')`\n* `Math.trunc` -> `require('es5-ext/math/trunc')`\n* `Number.EPSILON` -> `require('es5-ext/number/epsilon')`\n* `Number.MAX_SAFE_INTEGER` -> `require('es5-ext/number/max-safe-integer')`\n* `Number.MIN_SAFE_INTEGER` -> `require('es5-ext/number/min-safe-integer')`\n* `Number.isFinite` -> `require('es5-ext/number/is-finite')`\n* `Number.isInteger` -> `require('es5-ext/number/is-integer')`\n* `Number.isNaN` -> `require('es5-ext/number/is-nan')`\n* `Number.isSafeInteger` -> `require('es5-ext/number/is-safe-integer')`\n* `Object.assign` -> `require('es5-ext/object/assign')`\n* `Object.keys` -> `require('es5-ext/object/keys')`\n* `Object.setPrototypeOf` -> `require('es5-ext/object/set-prototype-of')`\n* `RegExp.prototype.match` -> `require('es5-ext/reg-exp/#/match')`\n* `RegExp.prototype.replace` -> `require('es5-ext/reg-exp/#/replace')`\n* `RegExp.prototype.search` -> `require('es5-ext/reg-exp/#/search')`\n* `RegExp.prototype.split` -> `require('es5-ext/reg-exp/#/split')`\n* `RegExp.prototype.sticky` -> Implement with `require('es5-ext/reg-exp/#/sticky/implement')`, use as function with `require('es5-ext/reg-exp/#/is-sticky')`\n* `RegExp.prototype.unicode` -> Implement with `require('es5-ext/reg-exp/#/unicode/implement')`, use as function with `require('es5-ext/reg-exp/#/is-unicode')`\n* `String.fromCodePoint` -> `require('es5-ext/string/from-code-point')`\n* `String.raw` -> `require('es5-ext/string/raw')`\n* `String.prototype.codePointAt` -> `require('es5-ext/string/#/code-point-at')`\n* `String.prototype.contains` -> `require('es5-ext/string/#/contains')`\n* `String.prototype.endsWith` -> `require('es5-ext/string/#/ends-with')`\n* `String.prototype.normalize` -> `require('es5-ext/string/#/normalize')`\n* `String.prototype.repeat` -> `require('es5-ext/string/#/repeat')`\n* `String.prototype.startsWith` -> `require('es5-ext/string/#/starts-with')`\n* `String.prototype[@@iterator]` -> `require('es5-ext/string/#/@@iterator')`\n\n#### Non ECMAScript standard features\n\n**es5-ext** provides also other utils, and implements them as if they were proposed for a standard. It mostly offers methods (not functions) which can directly be assigned to native prototypes:\n\n```javascript\nObject.defineProperty(Function.prototype, \"partial\", {\n\tvalue: require(\"es5-ext/function/#/partial\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(Array.prototype, \"flatten\", {\n\tvalue: require(\"es5-ext/array/#/flatten\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(String.prototype, \"capitalize\", {\n\tvalue: require(\"es5-ext/string/#/capitalize\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\n```\n\nSee [es5-extend](https://github.com/wookieb/es5-extend#es5-extend), a great utility that automatically will extend natives for you.\n\n**Important:** Remember to **not** extend natives in scope of generic reusable packages (e.g. ones you intend to publish to npm). Extending natives is fine **only** if you're the _owner_ of the global scope, so e.g. in final project you lead development of.\n\nWhen you're in situation when native extensions are not good idea, then you should use methods indirectly:\n\n```javascript\nvar flatten = require(\"es5-ext/array/#/flatten\");\n\nflatten.call([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nfor better convenience you can turn methods into functions:\n\n```javascript\nvar call = Function.prototype.call;\nvar flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\n\nflatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nYou can configure custom toolkit (like [underscorejs](http://underscorejs.org/)), and use it throughout your application\n\n```javascript\nvar util = {};\nutil.partial = call.bind(require(\"es5-ext/function/#/partial\"));\nutil.flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\nutil.startsWith = call.bind(require(\"es5-ext/string/#/starts-with\"));\n\nutil.flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nAs with native ones most methods are generic and can be run on any type of object.\n\n## API\n\n### Global extensions\n\n#### global _(es5-ext/global)_\n\nObject that represents global scope\n\n### Array Constructor extensions\n\n#### from(arrayLike[, mapFn[, thisArg]]) _(es5-ext/array/from)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from). \nReturns array representation of _iterable_ or _arrayLike_. If _arrayLike_ is an instance of array, its copy is returned.\n\n#### generate([length[, …fill]]) _(es5-ext/array/generate)_\n\nGenerate an array of pre-given _length_ built of repeated arguments.\n\n#### isPlainArray(x) _(es5-ext/array/is-plain-array)_\n\nReturns true if object is plain array (not instance of one of the Array's extensions).\n\n#### of([…items]) _(es5-ext/array/of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of). \nCreate an array from given arguments.\n\n#### toArray(obj) _(es5-ext/array/to-array)_\n\nReturns array representation of `obj`. If `obj` is already an array, `obj` is returned back.\n\n#### validArray(obj) _(es5-ext/array/valid-array)_\n\nReturns `obj` if it's an array, otherwise throws `TypeError`\n\n### Array Prototype extensions\n\n#### arr.binarySearch(compareFn) _(es5-ext/array/#/binary-search)_\n\nIn **sorted** list search for index of item for which _compareFn_ returns value closest to _0_. \nIt's variant of binary search algorithm\n\n#### arr.clear() _(es5-ext/array/#/clear)_\n\nClears the array\n\n#### arr.compact() _(es5-ext/array/#/compact)_\n\nReturns a copy of the context with all non-values (`null` or `undefined`) removed.\n\n#### arr.concat() _(es5-ext/array/#/concat)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.concat). \nES6's version of `concat`. Supports `isConcatSpreadable` symbol, and returns array of same type as the context.\n\n#### arr.contains(searchElement[, position]) _(es5-ext/array/#/contains)_\n\nWhether list contains the given value.\n\n#### arr.copyWithin(target, start[, end]) _(es5-ext/array/#/copy-within)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.copywithin).\n\n#### arr.diff(other) _(es5-ext/array/#/diff)_\n\nReturns the array of elements that are present in context list but not present in other list.\n\n#### arr.eIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-index-of)_\n\n_egal_ version of `indexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.eLastIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-last-index-of)_\n\n_egal_ version of `lastIndexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.entries() _(es5-ext/array/#/entries)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.entries). \nReturns iterator object, which traverses the array. Each value is represented with an array, where first value is an index and second is corresponding to index value.\n\n#### arr.exclusion([…lists]]) _(es5-ext/array/#/exclusion)_\n\nReturns the array of elements that are found only in one of the lists (either context list or list provided in arguments).\n\n#### arr.fill(value[, start, end]) _(es5-ext/array/#/fill)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.fill).\n\n#### arr.filter(callback[, thisArg]) _(es5-ext/array/#/filter)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.filter). \nES6's version of `filter`, returns array of same type as the context.\n\n#### arr.find(predicate[, thisArg]) _(es5-ext/array/#/find)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.find). \nReturn first element for which given function returns true\n\n#### arr.findIndex(predicate[, thisArg]) _(es5-ext/array/#/find-index)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.findindex). \nReturn first index for which given function returns true\n\n#### arr.first() _(es5-ext/array/#/first)_\n\nReturns value for first defined index\n\n#### arr.firstIndex() _(es5-ext/array/#/first-index)_\n\nReturns first declared index of the array\n\n#### arr.flatten() _(es5-ext/array/#/flatten)_\n\nReturns flattened version of the array\n\n#### arr.forEachRight(cb[, thisArg]) _(es5-ext/array/#/for-each-right)_\n\n`forEach` starting from last element\n\n#### arr.group(cb[, thisArg]) _(es5-ext/array/#/group)_\n\nGroup list elements by value returned by _cb_ function\n\n#### arr.indexesOf(searchElement[, fromIndex]) _(es5-ext/array/#/indexes-of)_\n\nReturns array of all indexes of given value\n\n#### arr.intersection([…lists]) _(es5-ext/array/#/intersection)_\n\nComputes the array of values that are the intersection of all lists (context list and lists given in arguments)\n\n#### arr.isCopy(other) _(es5-ext/array/#/is-copy)_\n\nReturns true if both context and _other_ lists have same content\n\n#### arr.isUniq() _(es5-ext/array/#/is-uniq)_\n\nReturns true if all values in array are unique\n\n#### arr.keys() _(es5-ext/array/#/keys)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.keys). \nReturns iterator object, which traverses all array indexes.\n\n#### arr.last() _(es5-ext/array/#/last)_\n\nReturns value of last defined index\n\n#### arr.lastIndex() _(es5-ext/array/#/last)_\n\nReturns last defined index of the array\n\n#### arr.map(callback[, thisArg]) _(es5-ext/array/#/map)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.map). \nES6's version of `map`, returns array of same type as the context.\n\n#### arr.remove(value[, …valuen]) _(es5-ext/array/#/remove)_\n\nRemove values from the array\n\n#### arr.separate(sep) _(es5-ext/array/#/separate)_\n\nReturns array with items separated with `sep` value\n\n#### arr.slice(callback[, thisArg]) _(es5-ext/array/#/slice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.slice). \nES6's version of `slice`, returns array of same type as the context.\n\n#### arr.someRight(cb[, thisArg]) _(es5-ext/array/#/someRight)_\n\n`some` starting from last element\n\n#### arr.splice(callback[, thisArg]) _(es5-ext/array/#/splice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.splice). \nES6's version of `splice`, returns array of same type as the context.\n\n#### arr.uniq() _(es5-ext/array/#/uniq)_\n\nReturns duplicate-free version of the array\n\n#### arr.values() _(es5-ext/array/#/values)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.values). \nReturns iterator object which traverses all array values.\n\n#### arr[@@iterator] _(es5-ext/array/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype-@@iterator). \nReturns iterator object which traverses all array values.\n\n### Boolean Constructor extensions\n\n#### isBoolean(x) _(es5-ext/boolean/is-boolean)_\n\nWhether value is boolean\n\n### Date Constructor extensions\n\n#### isDate(x) _(es5-ext/date/is-date)_\n\nWhether value is date instance\n\n#### validDate(x) _(es5-ext/date/valid-date)_\n\nIf given object is not date throw TypeError in other case return it.\n\n### Date Prototype extensions\n\n#### date.copy(date) _(es5-ext/date/#/copy)_\n\nReturns a copy of the date object\n\n#### date.daysInMonth() _(es5-ext/date/#/days-in-month)_\n\nReturns number of days of date's month\n\n#### date.floorDay() _(es5-ext/date/#/floor-day)_\n\nSets the date time to 00:00:00.000\n\n#### date.floorMonth() _(es5-ext/date/#/floor-month)_\n\nSets date day to 1 and date time to 00:00:00.000\n\n#### date.floorYear() _(es5-ext/date/#/floor-year)_\n\nSets date month to 0, day to 1 and date time to 00:00:00.000\n\n#### date.format(pattern) _(es5-ext/date/#/format)_\n\nFormats date up to given string. Supported patterns:\n\n* `%Y` - Year with century, 1999, 2003\n* `%y` - Year without century, 99, 03\n* `%m` - Month, 01..12\n* `%d` - Day of the month 01..31\n* `%H` - Hour (24-hour clock), 00..23\n* `%M` - Minute, 00..59\n* `%S` - Second, 00..59\n* `%L` - Milliseconds, 000..999\n\n### Error Constructor extensions\n\n#### custom(message/_, code, ext_/) _(es5-ext/error/custom)_\n\nCreates custom error object, optinally extended with `code` and other extension properties (provided with `ext` object)\n\n#### isError(x) _(es5-ext/error/is-error)_\n\nWhether value is an error (instance of `Error`).\n\n#### validError(x) _(es5-ext/error/valid-error)_\n\nIf given object is not error throw TypeError in other case return it.\n\n### Error Prototype extensions\n\n#### err.throw() _(es5-ext/error/#/throw)_\n\nThrows error\n\n### Function Constructor extensions\n\nSome of the functions were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### constant(x) _(es5-ext/function/constant)_\n\nReturns a constant function that returns pregiven argument\n\n_k(x)(y) =def x_\n\n#### identity(x) _(es5-ext/function/identity)_\n\nIdentity function. Returns first argument\n\n_i(x) =def x_\n\n#### invoke(name[, …args]) _(es5-ext/function/invoke)_\n\nReturns a function that takes an object as an argument, and applies object's\n_name_ method to arguments. \n_name_ can be name of the method or method itself.\n\n_invoke(name, …args)(object, …args2) =def object\\[name\\]\\(…args, …args2\\)_\n\n#### isArguments(x) _(es5-ext/function/is-arguments)_\n\nWhether value is arguments object\n\n#### isFunction(arg) _(es5-ext/function/is-function)_\n\nWhether value is instance of function\n\n#### noop() _(es5-ext/function/noop)_\n\nNo operation function\n\n#### pluck(name) _(es5-ext/function/pluck)_\n\nReturns a function that takes an object, and returns the value of its _name_\nproperty\n\n_pluck(name)(obj) =def obj[name]_\n\n#### validFunction(arg) _(es5-ext/function/valid-function)_\n\nIf given object is not function throw TypeError in other case return it.\n\n### Function Prototype extensions\n\nSome of the methods were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### fn.compose([…fns]) _(es5-ext/function/#/compose)_\n\nApplies the functions in reverse argument-list order.\n\n_f1.compose(f2, f3, f4)(…args) =def f1(f2(f3(f4(…arg))))_\n\n#### fn.copy() _(es5-ext/function/#/copy)_\n\nProduces copy of given function\n\n#### fn.curry([n]) _(es5-ext/function/#/curry)_\n\nInvoking the function returned by this function only _n_ arguments are passed to the underlying function. If the underlying function is not saturated, the result is a function that passes all its arguments to the underlying function. \nIf _n_ is not provided then it defaults to context function length\n\n_f.curry(4)(arg1, arg2)(arg3)(arg4) =def f(arg1, args2, arg3, arg4)_\n\n#### fn.lock([…args]) _(es5-ext/function/#/lock)_\n\nReturns a function that applies the underlying function to _args_, and ignores its own arguments.\n\n_f.lock(…args)(…args2) =def f(…args)_\n\n_Named after it's counterpart in Google Closure_\n\n#### fn.not() _(es5-ext/function/#/not)_\n\nReturns a function that returns boolean negation of value returned by underlying function.\n\n_f.not()(…args) =def !f(…args)_\n\n#### fn.partial([…args]) _(es5-ext/function/#/partial)_\n\nReturns a function that when called will behave like context function called with initially passed arguments. If more arguments are suplilied, they are appended to initial args.\n\n_f.partial(…args1)(…args2) =def f(…args1, …args2)_\n\n#### fn.spread() _(es5-ext/function/#/spread)_\n\nReturns a function that applies underlying function with first list argument\n\n_f.match()(args) =def f.apply(null, args)_\n\n#### fn.toStringTokens() _(es5-ext/function/#/to-string-tokens)_\n\nSerializes function into two (arguments and body) string tokens. Result is plain object with `args` and `body` properties.\n\n### Math extensions\n\n#### acosh(x) _(es5-ext/math/acosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.acosh).\n\n#### asinh(x) _(es5-ext/math/asinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.asinh).\n\n#### atanh(x) _(es5-ext/math/atanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.atanh).\n\n#### cbrt(x) _(es5-ext/math/cbrt)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cbrt).\n\n#### clz32(x) _(es5-ext/math/clz32)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.clz32).\n\n#### cosh(x) _(es5-ext/math/cosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cosh).\n\n#### expm1(x) _(es5-ext/math/expm1)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.expm1).\n\n#### fround(x) _(es5-ext/math/fround)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.fround).\n\n#### hypot([…values]) _(es5-ext/math/hypot)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.hypot).\n\n#### imul(x, y) _(es5-ext/math/imul)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.imul).\n\n#### log1p(x) _(es5-ext/math/log1p)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log1p).\n\n#### log2(x) _(es5-ext/math/log2)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log2).\n\n#### log10(x) _(es5-ext/math/log10)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log10).\n\n#### sign(x) _(es5-ext/math/sign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sign).\n\n#### sinh(x) _(es5-ext/math/sinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sinh).\n\n#### tanh(x) _(es5-ext/math/tanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.tanh).\n\n#### trunc(x) _(es5-ext/math/trunc)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.trunc).\n\n### Number Constructor extensions\n\n#### EPSILON _(es5-ext/number/epsilon)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.epsilon).\n\nThe difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10-16.\n\n#### isFinite(x) _(es5-ext/number/is-finite)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite). \nWhether value is finite. Differs from global isNaN that it doesn't do type coercion.\n\n#### isInteger(x) _(es5-ext/number/is-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger). \nWhether value is integer.\n\n#### isNaN(x) _(es5-ext/number/is-nan)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isnan). \nWhether value is NaN. Differs from global isNaN that it doesn't do type coercion.\n\n#### isNumber(x) _(es5-ext/number/is-number)_\n\nWhether given value is number\n\n#### isSafeInteger(x) _(es5-ext/number/is-safe-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.issafeinteger).\n\n#### MAX*SAFE_INTEGER *(es5-ext/number/max-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.maxsafeinteger). \nThe value of Number.MAX_SAFE_INTEGER is 9007199254740991.\n\n#### MIN*SAFE_INTEGER *(es5-ext/number/min-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.minsafeinteger). \nThe value of Number.MIN_SAFE_INTEGER is -9007199254740991 (253-1).\n\n#### toInteger(x) _(es5-ext/number/to-integer)_\n\nConverts value to integer\n\n#### toPosInteger(x) _(es5-ext/number/to-pos-integer)_\n\nConverts value to positive integer. If provided value is less than 0, then 0 is returned\n\n#### toUint32(x) _(es5-ext/number/to-uint32)_\n\nConverts value to unsigned 32 bit integer. This type is used for array lengths.\nSee: http://www.2ality.com/2012/02/js-integers.html\n\n### Number Prototype extensions\n\n#### num.pad(length[, precision]) _(es5-ext/number/#/pad)_\n\nPad given number with zeros. Returns string\n\n### Object Constructor extensions\n\n#### assign(target, source[, …sourcen]) _(es5-ext/object/assign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign). \nExtend _target_ by enumerable own properties of other objects. If properties are already set on target object, they will be overwritten.\n\n#### clear(obj) _(es5-ext/object/clear)_\n\nRemove all enumerable own properties of the object\n\n#### compact(obj) _(es5-ext/object/compact)_\n\nReturns copy of the object with all enumerable properties that have no falsy values\n\n#### compare(obj1, obj2) _(es5-ext/object/compare)_\n\nUniversal cross-type compare function. To be used for e.g. array sort.\n\n#### copy(obj) _(es5-ext/object/copy)_\n\nReturns copy of the object with all enumerable properties.\n\n#### copyDeep(obj) _(es5-ext/object/copy-deep)_\n\nReturns deep copy of the object with all enumerable properties.\n\n#### count(obj) _(es5-ext/object/count)_\n\nCounts number of enumerable own properties on object\n\n#### create(obj[, properties]) _(es5-ext/object/create)_\n\n`Object.create` alternative that provides workaround for [V8 issue](http://code.google.com/p/v8/issues/detail?id=2804).\n\nWhen `null` is provided as a prototype, it's substituted with specially prepared object that derives from Object.prototype but has all Object.prototype properties shadowed with undefined.\n\nIt's quirky solution that allows us to have plain objects with no truthy properties but with turnable prototype.\n\nUse only for objects that you plan to switch prototypes of and be aware of limitations of this workaround.\n\n#### eq(x, y) _(es5-ext/object/eq)_\n\nWhether two values are equal, using [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### every(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/every)_\n\nAnalogous to Array.prototype.every. Returns true if every key-value pair in this object satisfies the provided testing function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### filter(obj, cb[, thisArg]) _(es5-ext/object/filter)_\n\nAnalogous to Array.prototype.filter. Returns new object with properites for which _cb_ function returned truthy value.\n\n#### firstKey(obj) _(es5-ext/object/first-key)_\n\nReturns first enumerable key of the object, as keys are unordered by specification, it can be any key of an object.\n\n#### flatten(obj) _(es5-ext/object/flatten)_\n\nReturns new object, with flatten properties of input object\n\n_flatten({ a: { b: 1 }, c: { d: 1 } }) =def { b: 1, d: 1 }_\n\n#### forEach(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/for-each)_\n\nAnalogous to Array.prototype.forEach. Calls a function for each key-value pair found in object\nOptionally _compareFn_ can be provided which assures that properties are iterated in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### getPropertyNames() _(es5-ext/object/get-property-names)_\n\nGet all (not just own) property names of the object\n\n#### is(x, y) _(es5-ext/object/is)_\n\nWhether two values are equal, using [_SameValue_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### isArrayLike(x) _(es5-ext/object/is-array-like)_\n\nWhether object is array-like object\n\n#### isCopy(x, y) _(es5-ext/object/is-copy)_\n\nTwo values are considered a copy of same value when all of their own enumerable properties have same values.\n\n#### isCopyDeep(x, y) _(es5-ext/object/is-copy-deep)_\n\nDeep comparision of objects\n\n#### isEmpty(obj) _(es5-ext/object/is-empty)_\n\nTrue if object doesn't have any own enumerable property\n\n#### isObject(arg) _(es5-ext/object/is-object)_\n\nWhether value is not primitive\n\n#### isPlainObject(arg) _(es5-ext/object/is-plain-object)_\n\nWhether object is plain object, its protototype should be Object.prototype and it cannot be host object.\n\n#### keyOf(obj, searchValue) _(es5-ext/object/key-of)_\n\nSearch object for value\n\n#### keys(obj) _(es5-ext/object/keys)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys). \nES6's version of `keys`, doesn't throw on primitive input\n\n#### map(obj, cb[, thisArg]) _(es5-ext/object/map)_\n\nAnalogous to Array.prototype.map. Creates a new object with properties which values are results of calling a provided function on every key-value pair in this object.\n\n#### mapKeys(obj, cb[, thisArg]) _(es5-ext/object/map-keys)_\n\nCreate new object with same values, but remapped keys\n\n#### mixin(target, source) _(es5-ext/object/mixin)_\n\nExtend _target_ by all own properties of other objects. Properties found in both objects will be overwritten (unless they're not configurable and cannot be overwritten).\n_It was for a moment part of ECMAScript 6 draft._\n\n#### mixinPrototypes(target, …source]) _(es5-ext/object/mixin-prototypes)_\n\nExtends _target_, with all source and source's prototype properties.\nUseful as an alternative for `setPrototypeOf` in environments in which it cannot be shimmed (no `__proto__` support).\n\n#### normalizeOptions(options) _(es5-ext/object/normalize-options)_\n\nNormalizes options object into flat plain object.\n\nUseful for functions in which we either need to keep options object for future reference or need to modify it for internal use.\n\n* It never returns input `options` object back (always a copy is created)\n* `options` can be undefined in such case empty plain object is returned.\n* Copies all enumerable properties found down prototype chain.\n\n#### primitiveSet([…names]) _(es5-ext/object/primitive-set)_\n\nCreates `null` prototype based plain object, and sets on it all property names provided in arguments to true.\n\n#### safeTraverse(obj[, …names]) _(es5-ext/object/safe-traverse)_\n\nSafe navigation of object properties. See http://wiki.ecmascript.org/doku.php?id=strawman:existential_operator\n\n#### serialize(value) _(es5-ext/object/serialize)_\n\nSerialize value into string. Differs from [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that it serializes also dates, functions and regular expresssions.\n\n#### setPrototypeOf(object, proto) _(es5-ext/object/set-prototype-of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof). \nIf native version is not provided, it depends on existence of `__proto__` functionality, if it's missing, `null` instead of function is exposed.\n\n#### some(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/some)_\n\nAnalogous to Array.prototype.some Returns true if any key-value pair satisfies the provided\ntesting function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### toArray(obj[, cb[, thisArg[, compareFn]]]) _(es5-ext/object/to-array)_\n\nCreates an array of results of calling a provided function on every key-value pair in this object. \nOptionally _compareFn_ can be provided which assures that results are added in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### unserialize(str) _(es5-ext/object/unserialize)_\n\nUserializes value previously serialized with [serialize](#serializevalue-es5-extobjectserialize)\n\n#### validCallable(x) _(es5-ext/object/valid-callable)_\n\nIf given object is not callable throw TypeError in other case return it.\n\n#### validObject(x) _(es5-ext/object/valid-object)_\n\nThrows error if given value is not an object, otherwise it is returned.\n\n#### validValue(x) _(es5-ext/object/valid-value)_\n\nThrows error if given value is `null` or `undefined`, otherwise returns value.\n\n### RegExp Constructor extensions\n\n#### escape(str) _(es5-ext/reg-exp/escape)_\n\nEscapes string to be used in regular expression\n\n#### isRegExp(x) _(es5-ext/reg-exp/is-reg-exp)_\n\nWhether object is regular expression\n\n#### validRegExp(x) _(es5-ext/reg-exp/valid-reg-exp)_\n\nIf object is regular expression it is returned, otherwise TypeError is thrown.\n\n### RegExp Prototype extensions\n\n#### re.isSticky(x) _(es5-ext/reg-exp/#/is-sticky)_\n\nWhether regular expression has `sticky` flag.\n\nIt's to be used as counterpart to [regExp.sticky](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.sticky) if it's not implemented.\n\n#### re.isUnicode(x) _(es5-ext/reg-exp/#/is-unicode)_\n\nWhether regular expression has `unicode` flag.\n\nIt's to be used as counterpart to [regExp.unicode](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.unicode) if it's not implemented.\n\n#### re.match(string) _(es5-ext/reg-exp/#/match)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.match).\n\n#### re.replace(string, replaceValue) _(es5-ext/reg-exp/#/replace)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.replace).\n\n#### re.search(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.search).\n\n#### re.split(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.split).\n\n#### re.sticky _(es5-ext/reg-exp/#/sticky/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.sticky). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n#### re.unicode _(es5-ext/reg-exp/#/unicode/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.unicode). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n### String Constructor extensions\n\n#### formatMethod(fMap) _(es5-ext/string/format-method)_\n\nCreates format method. It's used e.g. to create `Date.prototype.format` method\n\n#### fromCodePoint([…codePoints]) _(es5-ext/string/from-code-point)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.fromcodepoint)\n\n#### isString(x) _(es5-ext/string/is-string)_\n\nWhether object is string\n\n#### randomUniq() _(es5-ext/string/random-uniq)_\n\nReturns randomly generated id, with guarantee of local uniqueness (no same id will be returned twice)\n\n#### raw(callSite[, …substitutions]) _(es5-ext/string/raw)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.raw)\n\n### String Prototype extensions\n\n#### str.at(pos) _(es5-ext/string/#/at)_\n\n_Proposed for ECMAScript 6/7 standard, but not (yet) in a draft_\n\nReturns a string at given position in Unicode-safe manner.\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.at).\n\n#### str.camelToHyphen() _(es5-ext/string/#/camel-to-hyphen)_\n\nConvert camelCase string to hyphen separated, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from js property convention into filename convention.\n\n#### str.capitalize() _(es5-ext/string/#/capitalize)_\n\nCapitalize first character of a string\n\n#### str.caseInsensitiveCompare(str) _(es5-ext/string/#/case-insensitive-compare)_\n\nCase insensitive compare\n\n#### str.codePointAt(pos) _(es5-ext/string/#/code-point-at)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.codepointat)\n\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.codePointAt).\n\n#### str.contains(searchString[, position]) _(es5-ext/string/#/contains)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.contains)\n\nWhether string contains given string.\n\n#### str.endsWith(searchString[, endPosition]) _(es5-ext/string/#/ends-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith). \nWhether strings ends with given string\n\n#### str.hyphenToCamel() _(es5-ext/string/#/hyphen-to-camel)_\n\nConvert hyphen separated string to camelCase, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from filename convention to js property name convention.\n\n#### str.indent(str[, count]) _(es5-ext/string/#/indent)_\n\nIndents each line with provided _str_ (if _count_ given then _str_ is repeated _count_ times).\n\n#### str.last() _(es5-ext/string/#/last)_\n\nReturn last character\n\n#### str.normalize([form]) _(es5-ext/string/#/normalize)_\n\n[_Introduced with ECMAScript 6_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize). \nReturns the Unicode Normalization Form of a given string. \nBased on Matsuza's version. Code used for integrated shim can be found at [github.com/walling/unorm](https://github.com/walling/unorm/blob/master/lib/unorm.js)\n\n#### str.pad(fill[, length]) _(es5-ext/string/#/pad)_\n\nPad string with _fill_.\nIf _length_ si given than _fill_ is reapated _length_ times.\nIf _length_ is negative then pad is applied from right.\n\n#### str.repeat(n) _(es5-ext/string/#/repeat)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.repeat). \nRepeat given string _n_ times\n\n#### str.plainReplace(search, replace) _(es5-ext/string/#/plain-replace)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces just first occurrence of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.plainReplaceAll(search, replace) _(es5-ext/string/#/plain-replace-all)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces all occurrences of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.startsWith(searchString[, position]) _(es5-ext/string/#/starts-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith). \nWhether strings starts with given string\n\n#### str[@@iterator] _(es5-ext/string/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator). \nReturns iterator object which traverses all string characters (with respect to unicode symbols)\n\n### Tests\n\n $ npm test\n\n[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es5-ext/branches/master/shields_badge.svg\n[nix-build-url]: https://semaphoreci.com/medikoo-org/es5-ext\n[win-build-image]: https://ci.appveyor.com/api/projects/status/3jox67ksw3p8hkwh?svg=true\n[win-build-url]: https://ci.appveyor.com/project/medikoo/es5-ext\n[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg\n[npm-image]: https://img.shields.io/npm/v/es5-ext.svg\n[npm-url]: https://www.npmjs.com/package/es5-ext\n",
- "readmeFilename": "README.md",
- "bugs": "[Circular]",
- "homepage": "https://github.com/medikoo/es5-ext#readme",
- "_id": "es5-ext@0.10.45",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "es5-ext@0.10.45",
- "name": "es5-ext",
- "escapedName": "es5-ext",
- "rawSpec": "0.10.45",
- "saveSpec": "[Circular]",
- "fetchSpec": "0.10.45"
- },
- "_spec": "0.10.45",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es5-ext",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "es5-ext"
- },
- "d": {
- "name": "d",
- "version": "1.0.0",
- "description": "Property descriptor factory",
- "author": {
- "name": "Mariusz Nowak",
- "email": "medyk@medikoo.com",
- "url": "http://www.medikoo.com/"
- },
- "keywords": [
- "descriptor",
- "es",
- "ecmascript",
- "ecma",
- "property",
- "descriptors",
- "meta",
- "properties"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/d.git"
- },
- "dependencies": {
- "es5-ext": {
- "name": "es5-ext",
- "version": "0.10.45",
- "description": "ECMAScript extensions and shims",
- "author": "[Circular]",
- "keywords": "[Circular]",
- "repository": "[Circular]",
- "dependencies": {},
- "devDependencies": "[Circular]",
- "eslintConfig": "[Circular]",
- "scripts": "[Circular]",
- "license": "ISC",
- "_resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
- "_integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
- "_from": "es5-ext@0.10.45",
- "readme": "[![Build status][nix-build-image]][nix-build-url]\n[![Windows status][win-build-image]][win-build-url]\n![Transpilation status][transpilation-image]\n[![npm version][npm-image]][npm-url]\n\n# es5-ext\n\n## ECMAScript 5 extensions\n\n### (with respect to ECMAScript 6 standard)\n\nShims for upcoming ES6 standard and other goodies implemented strictly with ECMAScript conventions in mind.\n\nIt's designed to be used in compliant ECMAScript 5 or ECMAScript 6 environments. Older environments are not supported, although most of the features should work with correct ECMAScript 5 shim on board.\n\nWhen used in ECMAScript 6 environment, native implementation (if valid) takes precedence over shims.\n\n### Installation\n\n $ npm install es5-ext\n\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Usage\n\n#### ECMAScript 6 features\n\nYou can force ES6 features to be implemented in your environment, e.g. following will assign `from` function to `Array` (only if it's not implemented already).\n\n```javascript\nrequire(\"es5-ext/array/from/implement\");\nArray.from(\"foo\"); // ['f', 'o', 'o']\n```\n\nYou can also access shims directly, without fixing native objects. Following will return native `Array.from` if it's available and fallback to shim if it's not.\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\nIf you want to use shim unconditionally (even if native implementation exists) do:\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from/shim\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\n##### List of ES6 shims\n\nIt's about properties introduced with ES6 and those that have been updated in new spec.\n\n* `Array.from` -> `require('es5-ext/array/from')`\n* `Array.of` -> `require('es5-ext/array/of')`\n* `Array.prototype.concat` -> `require('es5-ext/array/#/concat')`\n* `Array.prototype.copyWithin` -> `require('es5-ext/array/#/copy-within')`\n* `Array.prototype.entries` -> `require('es5-ext/array/#/entries')`\n* `Array.prototype.fill` -> `require('es5-ext/array/#/fill')`\n* `Array.prototype.filter` -> `require('es5-ext/array/#/filter')`\n* `Array.prototype.find` -> `require('es5-ext/array/#/find')`\n* `Array.prototype.findIndex` -> `require('es5-ext/array/#/find-index')`\n* `Array.prototype.keys` -> `require('es5-ext/array/#/keys')`\n* `Array.prototype.map` -> `require('es5-ext/array/#/map')`\n* `Array.prototype.slice` -> `require('es5-ext/array/#/slice')`\n* `Array.prototype.splice` -> `require('es5-ext/array/#/splice')`\n* `Array.prototype.values` -> `require('es5-ext/array/#/values')`\n* `Array.prototype[@@iterator]` -> `require('es5-ext/array/#/@@iterator')`\n* `Math.acosh` -> `require('es5-ext/math/acosh')`\n* `Math.asinh` -> `require('es5-ext/math/asinh')`\n* `Math.atanh` -> `require('es5-ext/math/atanh')`\n* `Math.cbrt` -> `require('es5-ext/math/cbrt')`\n* `Math.clz32` -> `require('es5-ext/math/clz32')`\n* `Math.cosh` -> `require('es5-ext/math/cosh')`\n* `Math.exmp1` -> `require('es5-ext/math/expm1')`\n* `Math.fround` -> `require('es5-ext/math/fround')`\n* `Math.hypot` -> `require('es5-ext/math/hypot')`\n* `Math.imul` -> `require('es5-ext/math/imul')`\n* `Math.log1p` -> `require('es5-ext/math/log1p')`\n* `Math.log2` -> `require('es5-ext/math/log2')`\n* `Math.log10` -> `require('es5-ext/math/log10')`\n* `Math.sign` -> `require('es5-ext/math/sign')`\n* `Math.signh` -> `require('es5-ext/math/signh')`\n* `Math.tanh` -> `require('es5-ext/math/tanh')`\n* `Math.trunc` -> `require('es5-ext/math/trunc')`\n* `Number.EPSILON` -> `require('es5-ext/number/epsilon')`\n* `Number.MAX_SAFE_INTEGER` -> `require('es5-ext/number/max-safe-integer')`\n* `Number.MIN_SAFE_INTEGER` -> `require('es5-ext/number/min-safe-integer')`\n* `Number.isFinite` -> `require('es5-ext/number/is-finite')`\n* `Number.isInteger` -> `require('es5-ext/number/is-integer')`\n* `Number.isNaN` -> `require('es5-ext/number/is-nan')`\n* `Number.isSafeInteger` -> `require('es5-ext/number/is-safe-integer')`\n* `Object.assign` -> `require('es5-ext/object/assign')`\n* `Object.keys` -> `require('es5-ext/object/keys')`\n* `Object.setPrototypeOf` -> `require('es5-ext/object/set-prototype-of')`\n* `RegExp.prototype.match` -> `require('es5-ext/reg-exp/#/match')`\n* `RegExp.prototype.replace` -> `require('es5-ext/reg-exp/#/replace')`\n* `RegExp.prototype.search` -> `require('es5-ext/reg-exp/#/search')`\n* `RegExp.prototype.split` -> `require('es5-ext/reg-exp/#/split')`\n* `RegExp.prototype.sticky` -> Implement with `require('es5-ext/reg-exp/#/sticky/implement')`, use as function with `require('es5-ext/reg-exp/#/is-sticky')`\n* `RegExp.prototype.unicode` -> Implement with `require('es5-ext/reg-exp/#/unicode/implement')`, use as function with `require('es5-ext/reg-exp/#/is-unicode')`\n* `String.fromCodePoint` -> `require('es5-ext/string/from-code-point')`\n* `String.raw` -> `require('es5-ext/string/raw')`\n* `String.prototype.codePointAt` -> `require('es5-ext/string/#/code-point-at')`\n* `String.prototype.contains` -> `require('es5-ext/string/#/contains')`\n* `String.prototype.endsWith` -> `require('es5-ext/string/#/ends-with')`\n* `String.prototype.normalize` -> `require('es5-ext/string/#/normalize')`\n* `String.prototype.repeat` -> `require('es5-ext/string/#/repeat')`\n* `String.prototype.startsWith` -> `require('es5-ext/string/#/starts-with')`\n* `String.prototype[@@iterator]` -> `require('es5-ext/string/#/@@iterator')`\n\n#### Non ECMAScript standard features\n\n**es5-ext** provides also other utils, and implements them as if they were proposed for a standard. It mostly offers methods (not functions) which can directly be assigned to native prototypes:\n\n```javascript\nObject.defineProperty(Function.prototype, \"partial\", {\n\tvalue: require(\"es5-ext/function/#/partial\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(Array.prototype, \"flatten\", {\n\tvalue: require(\"es5-ext/array/#/flatten\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(String.prototype, \"capitalize\", {\n\tvalue: require(\"es5-ext/string/#/capitalize\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\n```\n\nSee [es5-extend](https://github.com/wookieb/es5-extend#es5-extend), a great utility that automatically will extend natives for you.\n\n**Important:** Remember to **not** extend natives in scope of generic reusable packages (e.g. ones you intend to publish to npm). Extending natives is fine **only** if you're the _owner_ of the global scope, so e.g. in final project you lead development of.\n\nWhen you're in situation when native extensions are not good idea, then you should use methods indirectly:\n\n```javascript\nvar flatten = require(\"es5-ext/array/#/flatten\");\n\nflatten.call([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nfor better convenience you can turn methods into functions:\n\n```javascript\nvar call = Function.prototype.call;\nvar flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\n\nflatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nYou can configure custom toolkit (like [underscorejs](http://underscorejs.org/)), and use it throughout your application\n\n```javascript\nvar util = {};\nutil.partial = call.bind(require(\"es5-ext/function/#/partial\"));\nutil.flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\nutil.startsWith = call.bind(require(\"es5-ext/string/#/starts-with\"));\n\nutil.flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nAs with native ones most methods are generic and can be run on any type of object.\n\n## API\n\n### Global extensions\n\n#### global _(es5-ext/global)_\n\nObject that represents global scope\n\n### Array Constructor extensions\n\n#### from(arrayLike[, mapFn[, thisArg]]) _(es5-ext/array/from)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from). \nReturns array representation of _iterable_ or _arrayLike_. If _arrayLike_ is an instance of array, its copy is returned.\n\n#### generate([length[, …fill]]) _(es5-ext/array/generate)_\n\nGenerate an array of pre-given _length_ built of repeated arguments.\n\n#### isPlainArray(x) _(es5-ext/array/is-plain-array)_\n\nReturns true if object is plain array (not instance of one of the Array's extensions).\n\n#### of([…items]) _(es5-ext/array/of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of). \nCreate an array from given arguments.\n\n#### toArray(obj) _(es5-ext/array/to-array)_\n\nReturns array representation of `obj`. If `obj` is already an array, `obj` is returned back.\n\n#### validArray(obj) _(es5-ext/array/valid-array)_\n\nReturns `obj` if it's an array, otherwise throws `TypeError`\n\n### Array Prototype extensions\n\n#### arr.binarySearch(compareFn) _(es5-ext/array/#/binary-search)_\n\nIn **sorted** list search for index of item for which _compareFn_ returns value closest to _0_. \nIt's variant of binary search algorithm\n\n#### arr.clear() _(es5-ext/array/#/clear)_\n\nClears the array\n\n#### arr.compact() _(es5-ext/array/#/compact)_\n\nReturns a copy of the context with all non-values (`null` or `undefined`) removed.\n\n#### arr.concat() _(es5-ext/array/#/concat)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.concat). \nES6's version of `concat`. Supports `isConcatSpreadable` symbol, and returns array of same type as the context.\n\n#### arr.contains(searchElement[, position]) _(es5-ext/array/#/contains)_\n\nWhether list contains the given value.\n\n#### arr.copyWithin(target, start[, end]) _(es5-ext/array/#/copy-within)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.copywithin).\n\n#### arr.diff(other) _(es5-ext/array/#/diff)_\n\nReturns the array of elements that are present in context list but not present in other list.\n\n#### arr.eIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-index-of)_\n\n_egal_ version of `indexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.eLastIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-last-index-of)_\n\n_egal_ version of `lastIndexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.entries() _(es5-ext/array/#/entries)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.entries). \nReturns iterator object, which traverses the array. Each value is represented with an array, where first value is an index and second is corresponding to index value.\n\n#### arr.exclusion([…lists]]) _(es5-ext/array/#/exclusion)_\n\nReturns the array of elements that are found only in one of the lists (either context list or list provided in arguments).\n\n#### arr.fill(value[, start, end]) _(es5-ext/array/#/fill)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.fill).\n\n#### arr.filter(callback[, thisArg]) _(es5-ext/array/#/filter)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.filter). \nES6's version of `filter`, returns array of same type as the context.\n\n#### arr.find(predicate[, thisArg]) _(es5-ext/array/#/find)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.find). \nReturn first element for which given function returns true\n\n#### arr.findIndex(predicate[, thisArg]) _(es5-ext/array/#/find-index)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.findindex). \nReturn first index for which given function returns true\n\n#### arr.first() _(es5-ext/array/#/first)_\n\nReturns value for first defined index\n\n#### arr.firstIndex() _(es5-ext/array/#/first-index)_\n\nReturns first declared index of the array\n\n#### arr.flatten() _(es5-ext/array/#/flatten)_\n\nReturns flattened version of the array\n\n#### arr.forEachRight(cb[, thisArg]) _(es5-ext/array/#/for-each-right)_\n\n`forEach` starting from last element\n\n#### arr.group(cb[, thisArg]) _(es5-ext/array/#/group)_\n\nGroup list elements by value returned by _cb_ function\n\n#### arr.indexesOf(searchElement[, fromIndex]) _(es5-ext/array/#/indexes-of)_\n\nReturns array of all indexes of given value\n\n#### arr.intersection([…lists]) _(es5-ext/array/#/intersection)_\n\nComputes the array of values that are the intersection of all lists (context list and lists given in arguments)\n\n#### arr.isCopy(other) _(es5-ext/array/#/is-copy)_\n\nReturns true if both context and _other_ lists have same content\n\n#### arr.isUniq() _(es5-ext/array/#/is-uniq)_\n\nReturns true if all values in array are unique\n\n#### arr.keys() _(es5-ext/array/#/keys)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.keys). \nReturns iterator object, which traverses all array indexes.\n\n#### arr.last() _(es5-ext/array/#/last)_\n\nReturns value of last defined index\n\n#### arr.lastIndex() _(es5-ext/array/#/last)_\n\nReturns last defined index of the array\n\n#### arr.map(callback[, thisArg]) _(es5-ext/array/#/map)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.map). \nES6's version of `map`, returns array of same type as the context.\n\n#### arr.remove(value[, …valuen]) _(es5-ext/array/#/remove)_\n\nRemove values from the array\n\n#### arr.separate(sep) _(es5-ext/array/#/separate)_\n\nReturns array with items separated with `sep` value\n\n#### arr.slice(callback[, thisArg]) _(es5-ext/array/#/slice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.slice). \nES6's version of `slice`, returns array of same type as the context.\n\n#### arr.someRight(cb[, thisArg]) _(es5-ext/array/#/someRight)_\n\n`some` starting from last element\n\n#### arr.splice(callback[, thisArg]) _(es5-ext/array/#/splice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.splice). \nES6's version of `splice`, returns array of same type as the context.\n\n#### arr.uniq() _(es5-ext/array/#/uniq)_\n\nReturns duplicate-free version of the array\n\n#### arr.values() _(es5-ext/array/#/values)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.values). \nReturns iterator object which traverses all array values.\n\n#### arr[@@iterator] _(es5-ext/array/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype-@@iterator). \nReturns iterator object which traverses all array values.\n\n### Boolean Constructor extensions\n\n#### isBoolean(x) _(es5-ext/boolean/is-boolean)_\n\nWhether value is boolean\n\n### Date Constructor extensions\n\n#### isDate(x) _(es5-ext/date/is-date)_\n\nWhether value is date instance\n\n#### validDate(x) _(es5-ext/date/valid-date)_\n\nIf given object is not date throw TypeError in other case return it.\n\n### Date Prototype extensions\n\n#### date.copy(date) _(es5-ext/date/#/copy)_\n\nReturns a copy of the date object\n\n#### date.daysInMonth() _(es5-ext/date/#/days-in-month)_\n\nReturns number of days of date's month\n\n#### date.floorDay() _(es5-ext/date/#/floor-day)_\n\nSets the date time to 00:00:00.000\n\n#### date.floorMonth() _(es5-ext/date/#/floor-month)_\n\nSets date day to 1 and date time to 00:00:00.000\n\n#### date.floorYear() _(es5-ext/date/#/floor-year)_\n\nSets date month to 0, day to 1 and date time to 00:00:00.000\n\n#### date.format(pattern) _(es5-ext/date/#/format)_\n\nFormats date up to given string. Supported patterns:\n\n* `%Y` - Year with century, 1999, 2003\n* `%y` - Year without century, 99, 03\n* `%m` - Month, 01..12\n* `%d` - Day of the month 01..31\n* `%H` - Hour (24-hour clock), 00..23\n* `%M` - Minute, 00..59\n* `%S` - Second, 00..59\n* `%L` - Milliseconds, 000..999\n\n### Error Constructor extensions\n\n#### custom(message/_, code, ext_/) _(es5-ext/error/custom)_\n\nCreates custom error object, optinally extended with `code` and other extension properties (provided with `ext` object)\n\n#### isError(x) _(es5-ext/error/is-error)_\n\nWhether value is an error (instance of `Error`).\n\n#### validError(x) _(es5-ext/error/valid-error)_\n\nIf given object is not error throw TypeError in other case return it.\n\n### Error Prototype extensions\n\n#### err.throw() _(es5-ext/error/#/throw)_\n\nThrows error\n\n### Function Constructor extensions\n\nSome of the functions were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### constant(x) _(es5-ext/function/constant)_\n\nReturns a constant function that returns pregiven argument\n\n_k(x)(y) =def x_\n\n#### identity(x) _(es5-ext/function/identity)_\n\nIdentity function. Returns first argument\n\n_i(x) =def x_\n\n#### invoke(name[, …args]) _(es5-ext/function/invoke)_\n\nReturns a function that takes an object as an argument, and applies object's\n_name_ method to arguments. \n_name_ can be name of the method or method itself.\n\n_invoke(name, …args)(object, …args2) =def object\\[name\\]\\(…args, …args2\\)_\n\n#### isArguments(x) _(es5-ext/function/is-arguments)_\n\nWhether value is arguments object\n\n#### isFunction(arg) _(es5-ext/function/is-function)_\n\nWhether value is instance of function\n\n#### noop() _(es5-ext/function/noop)_\n\nNo operation function\n\n#### pluck(name) _(es5-ext/function/pluck)_\n\nReturns a function that takes an object, and returns the value of its _name_\nproperty\n\n_pluck(name)(obj) =def obj[name]_\n\n#### validFunction(arg) _(es5-ext/function/valid-function)_\n\nIf given object is not function throw TypeError in other case return it.\n\n### Function Prototype extensions\n\nSome of the methods were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### fn.compose([…fns]) _(es5-ext/function/#/compose)_\n\nApplies the functions in reverse argument-list order.\n\n_f1.compose(f2, f3, f4)(…args) =def f1(f2(f3(f4(…arg))))_\n\n#### fn.copy() _(es5-ext/function/#/copy)_\n\nProduces copy of given function\n\n#### fn.curry([n]) _(es5-ext/function/#/curry)_\n\nInvoking the function returned by this function only _n_ arguments are passed to the underlying function. If the underlying function is not saturated, the result is a function that passes all its arguments to the underlying function. \nIf _n_ is not provided then it defaults to context function length\n\n_f.curry(4)(arg1, arg2)(arg3)(arg4) =def f(arg1, args2, arg3, arg4)_\n\n#### fn.lock([…args]) _(es5-ext/function/#/lock)_\n\nReturns a function that applies the underlying function to _args_, and ignores its own arguments.\n\n_f.lock(…args)(…args2) =def f(…args)_\n\n_Named after it's counterpart in Google Closure_\n\n#### fn.not() _(es5-ext/function/#/not)_\n\nReturns a function that returns boolean negation of value returned by underlying function.\n\n_f.not()(…args) =def !f(…args)_\n\n#### fn.partial([…args]) _(es5-ext/function/#/partial)_\n\nReturns a function that when called will behave like context function called with initially passed arguments. If more arguments are suplilied, they are appended to initial args.\n\n_f.partial(…args1)(…args2) =def f(…args1, …args2)_\n\n#### fn.spread() _(es5-ext/function/#/spread)_\n\nReturns a function that applies underlying function with first list argument\n\n_f.match()(args) =def f.apply(null, args)_\n\n#### fn.toStringTokens() _(es5-ext/function/#/to-string-tokens)_\n\nSerializes function into two (arguments and body) string tokens. Result is plain object with `args` and `body` properties.\n\n### Math extensions\n\n#### acosh(x) _(es5-ext/math/acosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.acosh).\n\n#### asinh(x) _(es5-ext/math/asinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.asinh).\n\n#### atanh(x) _(es5-ext/math/atanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.atanh).\n\n#### cbrt(x) _(es5-ext/math/cbrt)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cbrt).\n\n#### clz32(x) _(es5-ext/math/clz32)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.clz32).\n\n#### cosh(x) _(es5-ext/math/cosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cosh).\n\n#### expm1(x) _(es5-ext/math/expm1)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.expm1).\n\n#### fround(x) _(es5-ext/math/fround)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.fround).\n\n#### hypot([…values]) _(es5-ext/math/hypot)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.hypot).\n\n#### imul(x, y) _(es5-ext/math/imul)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.imul).\n\n#### log1p(x) _(es5-ext/math/log1p)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log1p).\n\n#### log2(x) _(es5-ext/math/log2)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log2).\n\n#### log10(x) _(es5-ext/math/log10)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log10).\n\n#### sign(x) _(es5-ext/math/sign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sign).\n\n#### sinh(x) _(es5-ext/math/sinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sinh).\n\n#### tanh(x) _(es5-ext/math/tanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.tanh).\n\n#### trunc(x) _(es5-ext/math/trunc)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.trunc).\n\n### Number Constructor extensions\n\n#### EPSILON _(es5-ext/number/epsilon)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.epsilon).\n\nThe difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10-16.\n\n#### isFinite(x) _(es5-ext/number/is-finite)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite). \nWhether value is finite. Differs from global isNaN that it doesn't do type coercion.\n\n#### isInteger(x) _(es5-ext/number/is-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger). \nWhether value is integer.\n\n#### isNaN(x) _(es5-ext/number/is-nan)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isnan). \nWhether value is NaN. Differs from global isNaN that it doesn't do type coercion.\n\n#### isNumber(x) _(es5-ext/number/is-number)_\n\nWhether given value is number\n\n#### isSafeInteger(x) _(es5-ext/number/is-safe-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.issafeinteger).\n\n#### MAX*SAFE_INTEGER *(es5-ext/number/max-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.maxsafeinteger). \nThe value of Number.MAX_SAFE_INTEGER is 9007199254740991.\n\n#### MIN*SAFE_INTEGER *(es5-ext/number/min-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.minsafeinteger). \nThe value of Number.MIN_SAFE_INTEGER is -9007199254740991 (253-1).\n\n#### toInteger(x) _(es5-ext/number/to-integer)_\n\nConverts value to integer\n\n#### toPosInteger(x) _(es5-ext/number/to-pos-integer)_\n\nConverts value to positive integer. If provided value is less than 0, then 0 is returned\n\n#### toUint32(x) _(es5-ext/number/to-uint32)_\n\nConverts value to unsigned 32 bit integer. This type is used for array lengths.\nSee: http://www.2ality.com/2012/02/js-integers.html\n\n### Number Prototype extensions\n\n#### num.pad(length[, precision]) _(es5-ext/number/#/pad)_\n\nPad given number with zeros. Returns string\n\n### Object Constructor extensions\n\n#### assign(target, source[, …sourcen]) _(es5-ext/object/assign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign). \nExtend _target_ by enumerable own properties of other objects. If properties are already set on target object, they will be overwritten.\n\n#### clear(obj) _(es5-ext/object/clear)_\n\nRemove all enumerable own properties of the object\n\n#### compact(obj) _(es5-ext/object/compact)_\n\nReturns copy of the object with all enumerable properties that have no falsy values\n\n#### compare(obj1, obj2) _(es5-ext/object/compare)_\n\nUniversal cross-type compare function. To be used for e.g. array sort.\n\n#### copy(obj) _(es5-ext/object/copy)_\n\nReturns copy of the object with all enumerable properties.\n\n#### copyDeep(obj) _(es5-ext/object/copy-deep)_\n\nReturns deep copy of the object with all enumerable properties.\n\n#### count(obj) _(es5-ext/object/count)_\n\nCounts number of enumerable own properties on object\n\n#### create(obj[, properties]) _(es5-ext/object/create)_\n\n`Object.create` alternative that provides workaround for [V8 issue](http://code.google.com/p/v8/issues/detail?id=2804).\n\nWhen `null` is provided as a prototype, it's substituted with specially prepared object that derives from Object.prototype but has all Object.prototype properties shadowed with undefined.\n\nIt's quirky solution that allows us to have plain objects with no truthy properties but with turnable prototype.\n\nUse only for objects that you plan to switch prototypes of and be aware of limitations of this workaround.\n\n#### eq(x, y) _(es5-ext/object/eq)_\n\nWhether two values are equal, using [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### every(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/every)_\n\nAnalogous to Array.prototype.every. Returns true if every key-value pair in this object satisfies the provided testing function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### filter(obj, cb[, thisArg]) _(es5-ext/object/filter)_\n\nAnalogous to Array.prototype.filter. Returns new object with properites for which _cb_ function returned truthy value.\n\n#### firstKey(obj) _(es5-ext/object/first-key)_\n\nReturns first enumerable key of the object, as keys are unordered by specification, it can be any key of an object.\n\n#### flatten(obj) _(es5-ext/object/flatten)_\n\nReturns new object, with flatten properties of input object\n\n_flatten({ a: { b: 1 }, c: { d: 1 } }) =def { b: 1, d: 1 }_\n\n#### forEach(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/for-each)_\n\nAnalogous to Array.prototype.forEach. Calls a function for each key-value pair found in object\nOptionally _compareFn_ can be provided which assures that properties are iterated in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### getPropertyNames() _(es5-ext/object/get-property-names)_\n\nGet all (not just own) property names of the object\n\n#### is(x, y) _(es5-ext/object/is)_\n\nWhether two values are equal, using [_SameValue_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### isArrayLike(x) _(es5-ext/object/is-array-like)_\n\nWhether object is array-like object\n\n#### isCopy(x, y) _(es5-ext/object/is-copy)_\n\nTwo values are considered a copy of same value when all of their own enumerable properties have same values.\n\n#### isCopyDeep(x, y) _(es5-ext/object/is-copy-deep)_\n\nDeep comparision of objects\n\n#### isEmpty(obj) _(es5-ext/object/is-empty)_\n\nTrue if object doesn't have any own enumerable property\n\n#### isObject(arg) _(es5-ext/object/is-object)_\n\nWhether value is not primitive\n\n#### isPlainObject(arg) _(es5-ext/object/is-plain-object)_\n\nWhether object is plain object, its protototype should be Object.prototype and it cannot be host object.\n\n#### keyOf(obj, searchValue) _(es5-ext/object/key-of)_\n\nSearch object for value\n\n#### keys(obj) _(es5-ext/object/keys)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys). \nES6's version of `keys`, doesn't throw on primitive input\n\n#### map(obj, cb[, thisArg]) _(es5-ext/object/map)_\n\nAnalogous to Array.prototype.map. Creates a new object with properties which values are results of calling a provided function on every key-value pair in this object.\n\n#### mapKeys(obj, cb[, thisArg]) _(es5-ext/object/map-keys)_\n\nCreate new object with same values, but remapped keys\n\n#### mixin(target, source) _(es5-ext/object/mixin)_\n\nExtend _target_ by all own properties of other objects. Properties found in both objects will be overwritten (unless they're not configurable and cannot be overwritten).\n_It was for a moment part of ECMAScript 6 draft._\n\n#### mixinPrototypes(target, …source]) _(es5-ext/object/mixin-prototypes)_\n\nExtends _target_, with all source and source's prototype properties.\nUseful as an alternative for `setPrototypeOf` in environments in which it cannot be shimmed (no `__proto__` support).\n\n#### normalizeOptions(options) _(es5-ext/object/normalize-options)_\n\nNormalizes options object into flat plain object.\n\nUseful for functions in which we either need to keep options object for future reference or need to modify it for internal use.\n\n* It never returns input `options` object back (always a copy is created)\n* `options` can be undefined in such case empty plain object is returned.\n* Copies all enumerable properties found down prototype chain.\n\n#### primitiveSet([…names]) _(es5-ext/object/primitive-set)_\n\nCreates `null` prototype based plain object, and sets on it all property names provided in arguments to true.\n\n#### safeTraverse(obj[, …names]) _(es5-ext/object/safe-traverse)_\n\nSafe navigation of object properties. See http://wiki.ecmascript.org/doku.php?id=strawman:existential_operator\n\n#### serialize(value) _(es5-ext/object/serialize)_\n\nSerialize value into string. Differs from [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that it serializes also dates, functions and regular expresssions.\n\n#### setPrototypeOf(object, proto) _(es5-ext/object/set-prototype-of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof). \nIf native version is not provided, it depends on existence of `__proto__` functionality, if it's missing, `null` instead of function is exposed.\n\n#### some(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/some)_\n\nAnalogous to Array.prototype.some Returns true if any key-value pair satisfies the provided\ntesting function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### toArray(obj[, cb[, thisArg[, compareFn]]]) _(es5-ext/object/to-array)_\n\nCreates an array of results of calling a provided function on every key-value pair in this object. \nOptionally _compareFn_ can be provided which assures that results are added in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### unserialize(str) _(es5-ext/object/unserialize)_\n\nUserializes value previously serialized with [serialize](#serializevalue-es5-extobjectserialize)\n\n#### validCallable(x) _(es5-ext/object/valid-callable)_\n\nIf given object is not callable throw TypeError in other case return it.\n\n#### validObject(x) _(es5-ext/object/valid-object)_\n\nThrows error if given value is not an object, otherwise it is returned.\n\n#### validValue(x) _(es5-ext/object/valid-value)_\n\nThrows error if given value is `null` or `undefined`, otherwise returns value.\n\n### RegExp Constructor extensions\n\n#### escape(str) _(es5-ext/reg-exp/escape)_\n\nEscapes string to be used in regular expression\n\n#### isRegExp(x) _(es5-ext/reg-exp/is-reg-exp)_\n\nWhether object is regular expression\n\n#### validRegExp(x) _(es5-ext/reg-exp/valid-reg-exp)_\n\nIf object is regular expression it is returned, otherwise TypeError is thrown.\n\n### RegExp Prototype extensions\n\n#### re.isSticky(x) _(es5-ext/reg-exp/#/is-sticky)_\n\nWhether regular expression has `sticky` flag.\n\nIt's to be used as counterpart to [regExp.sticky](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.sticky) if it's not implemented.\n\n#### re.isUnicode(x) _(es5-ext/reg-exp/#/is-unicode)_\n\nWhether regular expression has `unicode` flag.\n\nIt's to be used as counterpart to [regExp.unicode](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.unicode) if it's not implemented.\n\n#### re.match(string) _(es5-ext/reg-exp/#/match)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.match).\n\n#### re.replace(string, replaceValue) _(es5-ext/reg-exp/#/replace)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.replace).\n\n#### re.search(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.search).\n\n#### re.split(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.split).\n\n#### re.sticky _(es5-ext/reg-exp/#/sticky/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.sticky). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n#### re.unicode _(es5-ext/reg-exp/#/unicode/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.unicode). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n### String Constructor extensions\n\n#### formatMethod(fMap) _(es5-ext/string/format-method)_\n\nCreates format method. It's used e.g. to create `Date.prototype.format` method\n\n#### fromCodePoint([…codePoints]) _(es5-ext/string/from-code-point)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.fromcodepoint)\n\n#### isString(x) _(es5-ext/string/is-string)_\n\nWhether object is string\n\n#### randomUniq() _(es5-ext/string/random-uniq)_\n\nReturns randomly generated id, with guarantee of local uniqueness (no same id will be returned twice)\n\n#### raw(callSite[, …substitutions]) _(es5-ext/string/raw)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.raw)\n\n### String Prototype extensions\n\n#### str.at(pos) _(es5-ext/string/#/at)_\n\n_Proposed for ECMAScript 6/7 standard, but not (yet) in a draft_\n\nReturns a string at given position in Unicode-safe manner.\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.at).\n\n#### str.camelToHyphen() _(es5-ext/string/#/camel-to-hyphen)_\n\nConvert camelCase string to hyphen separated, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from js property convention into filename convention.\n\n#### str.capitalize() _(es5-ext/string/#/capitalize)_\n\nCapitalize first character of a string\n\n#### str.caseInsensitiveCompare(str) _(es5-ext/string/#/case-insensitive-compare)_\n\nCase insensitive compare\n\n#### str.codePointAt(pos) _(es5-ext/string/#/code-point-at)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.codepointat)\n\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.codePointAt).\n\n#### str.contains(searchString[, position]) _(es5-ext/string/#/contains)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.contains)\n\nWhether string contains given string.\n\n#### str.endsWith(searchString[, endPosition]) _(es5-ext/string/#/ends-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith). \nWhether strings ends with given string\n\n#### str.hyphenToCamel() _(es5-ext/string/#/hyphen-to-camel)_\n\nConvert hyphen separated string to camelCase, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from filename convention to js property name convention.\n\n#### str.indent(str[, count]) _(es5-ext/string/#/indent)_\n\nIndents each line with provided _str_ (if _count_ given then _str_ is repeated _count_ times).\n\n#### str.last() _(es5-ext/string/#/last)_\n\nReturn last character\n\n#### str.normalize([form]) _(es5-ext/string/#/normalize)_\n\n[_Introduced with ECMAScript 6_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize). \nReturns the Unicode Normalization Form of a given string. \nBased on Matsuza's version. Code used for integrated shim can be found at [github.com/walling/unorm](https://github.com/walling/unorm/blob/master/lib/unorm.js)\n\n#### str.pad(fill[, length]) _(es5-ext/string/#/pad)_\n\nPad string with _fill_.\nIf _length_ si given than _fill_ is reapated _length_ times.\nIf _length_ is negative then pad is applied from right.\n\n#### str.repeat(n) _(es5-ext/string/#/repeat)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.repeat). \nRepeat given string _n_ times\n\n#### str.plainReplace(search, replace) _(es5-ext/string/#/plain-replace)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces just first occurrence of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.plainReplaceAll(search, replace) _(es5-ext/string/#/plain-replace-all)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces all occurrences of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.startsWith(searchString[, position]) _(es5-ext/string/#/starts-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith). \nWhether strings starts with given string\n\n#### str[@@iterator] _(es5-ext/string/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator). \nReturns iterator object which traverses all string characters (with respect to unicode symbols)\n\n### Tests\n\n $ npm test\n\n[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es5-ext/branches/master/shields_badge.svg\n[nix-build-url]: https://semaphoreci.com/medikoo-org/es5-ext\n[win-build-image]: https://ci.appveyor.com/api/projects/status/3jox67ksw3p8hkwh?svg=true\n[win-build-url]: https://ci.appveyor.com/project/medikoo/es5-ext\n[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg\n[npm-image]: https://img.shields.io/npm/v/es5-ext.svg\n[npm-url]: https://www.npmjs.com/package/es5-ext\n",
- "readmeFilename": "README.md",
- "bugs": "[Circular]",
- "homepage": "https://github.com/medikoo/es5-ext#readme",
- "_id": "es5-ext@0.10.45",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "es5-ext@0.10.45",
- "name": "es5-ext",
- "escapedName": "es5-ext",
- "rawSpec": "0.10.45",
- "saveSpec": "[Circular]",
- "fetchSpec": "0.10.45"
- },
- "_spec": "0.10.45",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es5-ext",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "es5-ext"
- }
- },
- "devDependencies": {
- "tad": "^0.2.4",
- "xlint": "^0.2.2",
- "xlint-jslint-medikoo": "^0.1.4"
- },
- "scripts": {
- "lint": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream",
- "lint-console": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch",
- "test": "node node_modules/tad/bin/tad"
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "_integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
- "_from": "d@1.0.0",
- "readme": "# D\n## Property descriptor factory\n\n_Originally derived from [es5-ext](https://github.com/medikoo/es5-ext) package._\n\nDefining properties with descriptors is very verbose:\n\n```javascript\nvar Account = function () {};\nObject.defineProperties(Account.prototype, {\n deposit: { value: function () {\n /* ... */\n }, configurable: true, enumerable: false, writable: true },\n withdraw: { value: function () {\n /* ... */\n }, configurable: true, enumerable: false, writable: true },\n balance: { get: function () {\n /* ... */\n }, configurable: true, enumerable: false }\n});\n```\n\nD cuts that to:\n\n```javascript\nvar d = require('d');\n\nvar Account = function () {};\nObject.defineProperties(Account.prototype, {\n deposit: d(function () {\n /* ... */\n }),\n withdraw: d(function () {\n /* ... */\n }),\n balance: d.gs(function () {\n /* ... */\n })\n});\n```\n\nBy default, created descriptor follow characteristics of native ES5 properties, and defines values as:\n\n```javascript\n{ configurable: true, enumerable: false, writable: true }\n```\n\nYou can overwrite it by preceding _value_ argument with instruction:\n```javascript\nd('c', value); // { configurable: true, enumerable: false, writable: false }\nd('ce', value); // { configurable: true, enumerable: true, writable: false }\nd('e', value); // { configurable: false, enumerable: true, writable: false }\n\n// Same way for get/set:\nd.gs('e', value); // { configurable: false, enumerable: true }\n```\n\n### Installation\n\n\t$ npm install d\n\t\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Other utilities\n\n#### autoBind(obj, props) _(d/auto-bind)_\n\nDefine methods which will be automatically bound to its instances\n\n```javascript\nvar d = require('d');\nvar autoBind = require('d/auto-bind');\n\nvar Foo = function () { this._count = 0; };\nObject.defineProperties(Foo.prototype, autoBind({\n increment: d(function () { ++this._count; });\n}));\n\nvar foo = new Foo();\n\n// Increment foo counter on each domEl click\ndomEl.addEventListener('click', foo.increment, false);\n```\n\n#### lazy(obj, props) _(d/lazy)_\n\nDefine lazy properties, which will be resolved on first access\n\n```javascript\nvar d = require('d');\nvar lazy = require('d/lazy');\n\nvar Foo = function () {};\nObject.defineProperties(Foo.prototype, lazy({\n items: d(function () { return []; })\n}));\n\nvar foo = new Foo();\nfoo.items.push(1, 2); // foo.items array created and defined directly on foo\n```\n\n## Tests [](https://travis-ci.org/medikoo/d)\n\n\t$ npm test\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/medikoo/d/issues"
- },
- "homepage": "https://github.com/medikoo/d#readme",
- "_id": "d@1.0.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "d@1.0.0",
- "name": "d",
- "escapedName": "d",
- "rawSpec": "1.0.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.0.0"
- },
- "_spec": "1.0.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "d@1.0.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "es5-ext": "^0.10.9"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es6-symbol/node_modules/d",
- "error": "[Circular]",
- "extraneous": false
- }
- },
- "devDependencies": "[Circular]",
- "scripts": "[Circular]",
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
- "_integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
- "_from": "es6-symbol@3.1.1",
- "readme": "# es6-symbol\n## ECMAScript 6 Symbol polyfill\n\nFor more information about symbols see following links\n- [Symbols in ECMAScript 6 by Axel Rauschmayer](http://www.2ality.com/2014/12/es6-symbols.html)\n- [MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol)\n- [Specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-constructor)\n\n### Limitations\n\nUnderneath it uses real string property names which can easily be retrieved, however accidental collision with other property names is unlikely.\n\n### Usage\n\nIf you'd like to use native version when it exists and fallback to [ponyfill](https://ponyfill.com) if it doesn't, use *es6-symbol* as following:\n\n```javascript\nvar Symbol = require('es6-symbol');\n```\n\nIf you want to make sure your environment implements `Symbol` globally, do:\n\n```javascript\nrequire('es6-symbol/implement');\n```\n\nIf you strictly want to use polyfill even if native `Symbol` exists (hard to find a good reason for that), do:\n\n```javascript\nvar Symbol = require('es6-symbol/polyfill');\n```\n\n#### API\n\nBest is to refer to [specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-symbol-objects). Still if you want quick look, follow examples:\n\n```javascript\nvar Symbol = require('es6-symbol');\n\nvar symbol = Symbol('My custom symbol');\nvar x = {};\n\nx[symbol] = 'foo';\nconsole.log(x[symbol]); 'foo'\n\n// Detect iterable:\nvar iterator, result;\nif (possiblyIterable[Symbol.iterator]) {\n iterator = possiblyIterable[Symbol.iterator]();\n result = iterator.next();\n while(!result.done) {\n console.log(result.value);\n result = iterator.next();\n }\n}\n```\n\n### Installation\n#### NPM\n\nIn your project path:\n\n\t$ npm install es6-symbol\n\n##### Browser\n\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n## Tests [](https://travis-ci.org/medikoo/es6-symbol)\n\n\t$ npm test\n",
- "readmeFilename": "README.md",
- "bugs": "[Circular]",
- "homepage": "https://github.com/medikoo/es6-symbol#readme",
- "_id": "es6-symbol@3.1.1",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "es6-symbol@3.1.1",
- "name": "es6-symbol",
- "escapedName": "es6-symbol",
- "rawSpec": "3.1.1",
- "saveSpec": "[Circular]",
- "fetchSpec": "3.1.1"
- },
- "_spec": "3.1.1",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es6-symbol",
- "error": "[Circular]",
- "extraneous": false
- },
- "next-tick": {
- "name": "next-tick",
- "version": "1.0.0",
- "description": "Environment agnostic nextTick polyfill",
- "author": {
- "name": "Mariusz Nowak",
- "email": "medyk@medikoo.com",
- "url": "http://www.medikoo.com/"
- },
- "keywords": [
- "nexttick",
- "setImmediate",
- "setTimeout",
- "async"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/next-tick.git"
- },
- "devDependencies": {
- "tad": "^0.2.4",
- "xlint": "^0.2.2",
- "xlint-jslint-medikoo": "^0.1.4"
- },
- "scripts": {
- "lint": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream",
- "lint-console": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch",
- "test": "node node_modules/tad/bin/tad"
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
- "_integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
- "_from": "next-tick@1.0.0",
- "readme": "# next-tick\n## Environment agnostic nextTick polyfill\n\nTo be used in environment agnostic modules that need nextTick functionality.\n\n- When run in Node.js `process.nextTick` is used\n- In modern browsers microtask resolution is guaranteed by `MutationObserver`\n- In other engines `setImmediate` or `setTimeout(fn, 0)` is used as fallback.\n- If none of the above is supported module resolves to `null`\n\n## Installation\n### NPM\n\nIn your project path:\n\n\t$ npm install next-tick\n\n#### Browser\n\nYou can easily bundle `next-tick` for browser with any CJS bundler, e.g. [modules-webmake](https://github.com/medikoo/modules-webmake)\n\n## Tests [](https://travis-ci.org/medikoo/next-tick)\n\n\t$ npm test\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/medikoo/next-tick/issues"
- },
- "homepage": "https://github.com/medikoo/next-tick#readme",
- "_id": "next-tick@1.0.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "next-tick@1.0.0",
- "name": "next-tick",
- "escapedName": "next-tick",
- "rawSpec": "1.0.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.0.0"
- },
- "_spec": "1.0.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "next-tick@1.0.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/next-tick",
- "error": "[Circular]",
- "extraneous": false
- }
- },
- "devDependencies": "[Circular]",
- "eslintConfig": "[Circular]",
- "scripts": "[Circular]",
- "license": "ISC",
- "_resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
- "_integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
- "_from": "es5-ext@0.10.45",
- "readme": "[![Build status][nix-build-image]][nix-build-url]\n[![Windows status][win-build-image]][win-build-url]\n![Transpilation status][transpilation-image]\n[![npm version][npm-image]][npm-url]\n\n# es5-ext\n\n## ECMAScript 5 extensions\n\n### (with respect to ECMAScript 6 standard)\n\nShims for upcoming ES6 standard and other goodies implemented strictly with ECMAScript conventions in mind.\n\nIt's designed to be used in compliant ECMAScript 5 or ECMAScript 6 environments. Older environments are not supported, although most of the features should work with correct ECMAScript 5 shim on board.\n\nWhen used in ECMAScript 6 environment, native implementation (if valid) takes precedence over shims.\n\n### Installation\n\n $ npm install es5-ext\n\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Usage\n\n#### ECMAScript 6 features\n\nYou can force ES6 features to be implemented in your environment, e.g. following will assign `from` function to `Array` (only if it's not implemented already).\n\n```javascript\nrequire(\"es5-ext/array/from/implement\");\nArray.from(\"foo\"); // ['f', 'o', 'o']\n```\n\nYou can also access shims directly, without fixing native objects. Following will return native `Array.from` if it's available and fallback to shim if it's not.\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\nIf you want to use shim unconditionally (even if native implementation exists) do:\n\n```javascript\nvar aFrom = require(\"es5-ext/array/from/shim\");\naFrom(\"foo\"); // ['f', 'o', 'o']\n```\n\n##### List of ES6 shims\n\nIt's about properties introduced with ES6 and those that have been updated in new spec.\n\n* `Array.from` -> `require('es5-ext/array/from')`\n* `Array.of` -> `require('es5-ext/array/of')`\n* `Array.prototype.concat` -> `require('es5-ext/array/#/concat')`\n* `Array.prototype.copyWithin` -> `require('es5-ext/array/#/copy-within')`\n* `Array.prototype.entries` -> `require('es5-ext/array/#/entries')`\n* `Array.prototype.fill` -> `require('es5-ext/array/#/fill')`\n* `Array.prototype.filter` -> `require('es5-ext/array/#/filter')`\n* `Array.prototype.find` -> `require('es5-ext/array/#/find')`\n* `Array.prototype.findIndex` -> `require('es5-ext/array/#/find-index')`\n* `Array.prototype.keys` -> `require('es5-ext/array/#/keys')`\n* `Array.prototype.map` -> `require('es5-ext/array/#/map')`\n* `Array.prototype.slice` -> `require('es5-ext/array/#/slice')`\n* `Array.prototype.splice` -> `require('es5-ext/array/#/splice')`\n* `Array.prototype.values` -> `require('es5-ext/array/#/values')`\n* `Array.prototype[@@iterator]` -> `require('es5-ext/array/#/@@iterator')`\n* `Math.acosh` -> `require('es5-ext/math/acosh')`\n* `Math.asinh` -> `require('es5-ext/math/asinh')`\n* `Math.atanh` -> `require('es5-ext/math/atanh')`\n* `Math.cbrt` -> `require('es5-ext/math/cbrt')`\n* `Math.clz32` -> `require('es5-ext/math/clz32')`\n* `Math.cosh` -> `require('es5-ext/math/cosh')`\n* `Math.exmp1` -> `require('es5-ext/math/expm1')`\n* `Math.fround` -> `require('es5-ext/math/fround')`\n* `Math.hypot` -> `require('es5-ext/math/hypot')`\n* `Math.imul` -> `require('es5-ext/math/imul')`\n* `Math.log1p` -> `require('es5-ext/math/log1p')`\n* `Math.log2` -> `require('es5-ext/math/log2')`\n* `Math.log10` -> `require('es5-ext/math/log10')`\n* `Math.sign` -> `require('es5-ext/math/sign')`\n* `Math.signh` -> `require('es5-ext/math/signh')`\n* `Math.tanh` -> `require('es5-ext/math/tanh')`\n* `Math.trunc` -> `require('es5-ext/math/trunc')`\n* `Number.EPSILON` -> `require('es5-ext/number/epsilon')`\n* `Number.MAX_SAFE_INTEGER` -> `require('es5-ext/number/max-safe-integer')`\n* `Number.MIN_SAFE_INTEGER` -> `require('es5-ext/number/min-safe-integer')`\n* `Number.isFinite` -> `require('es5-ext/number/is-finite')`\n* `Number.isInteger` -> `require('es5-ext/number/is-integer')`\n* `Number.isNaN` -> `require('es5-ext/number/is-nan')`\n* `Number.isSafeInteger` -> `require('es5-ext/number/is-safe-integer')`\n* `Object.assign` -> `require('es5-ext/object/assign')`\n* `Object.keys` -> `require('es5-ext/object/keys')`\n* `Object.setPrototypeOf` -> `require('es5-ext/object/set-prototype-of')`\n* `RegExp.prototype.match` -> `require('es5-ext/reg-exp/#/match')`\n* `RegExp.prototype.replace` -> `require('es5-ext/reg-exp/#/replace')`\n* `RegExp.prototype.search` -> `require('es5-ext/reg-exp/#/search')`\n* `RegExp.prototype.split` -> `require('es5-ext/reg-exp/#/split')`\n* `RegExp.prototype.sticky` -> Implement with `require('es5-ext/reg-exp/#/sticky/implement')`, use as function with `require('es5-ext/reg-exp/#/is-sticky')`\n* `RegExp.prototype.unicode` -> Implement with `require('es5-ext/reg-exp/#/unicode/implement')`, use as function with `require('es5-ext/reg-exp/#/is-unicode')`\n* `String.fromCodePoint` -> `require('es5-ext/string/from-code-point')`\n* `String.raw` -> `require('es5-ext/string/raw')`\n* `String.prototype.codePointAt` -> `require('es5-ext/string/#/code-point-at')`\n* `String.prototype.contains` -> `require('es5-ext/string/#/contains')`\n* `String.prototype.endsWith` -> `require('es5-ext/string/#/ends-with')`\n* `String.prototype.normalize` -> `require('es5-ext/string/#/normalize')`\n* `String.prototype.repeat` -> `require('es5-ext/string/#/repeat')`\n* `String.prototype.startsWith` -> `require('es5-ext/string/#/starts-with')`\n* `String.prototype[@@iterator]` -> `require('es5-ext/string/#/@@iterator')`\n\n#### Non ECMAScript standard features\n\n**es5-ext** provides also other utils, and implements them as if they were proposed for a standard. It mostly offers methods (not functions) which can directly be assigned to native prototypes:\n\n```javascript\nObject.defineProperty(Function.prototype, \"partial\", {\n\tvalue: require(\"es5-ext/function/#/partial\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(Array.prototype, \"flatten\", {\n\tvalue: require(\"es5-ext/array/#/flatten\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\nObject.defineProperty(String.prototype, \"capitalize\", {\n\tvalue: require(\"es5-ext/string/#/capitalize\"),\n\tconfigurable: true,\n\tenumerable: false,\n\twritable: true\n});\n```\n\nSee [es5-extend](https://github.com/wookieb/es5-extend#es5-extend), a great utility that automatically will extend natives for you.\n\n**Important:** Remember to **not** extend natives in scope of generic reusable packages (e.g. ones you intend to publish to npm). Extending natives is fine **only** if you're the _owner_ of the global scope, so e.g. in final project you lead development of.\n\nWhen you're in situation when native extensions are not good idea, then you should use methods indirectly:\n\n```javascript\nvar flatten = require(\"es5-ext/array/#/flatten\");\n\nflatten.call([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nfor better convenience you can turn methods into functions:\n\n```javascript\nvar call = Function.prototype.call;\nvar flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\n\nflatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nYou can configure custom toolkit (like [underscorejs](http://underscorejs.org/)), and use it throughout your application\n\n```javascript\nvar util = {};\nutil.partial = call.bind(require(\"es5-ext/function/#/partial\"));\nutil.flatten = call.bind(require(\"es5-ext/array/#/flatten\"));\nutil.startsWith = call.bind(require(\"es5-ext/string/#/starts-with\"));\n\nutil.flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]\n```\n\nAs with native ones most methods are generic and can be run on any type of object.\n\n## API\n\n### Global extensions\n\n#### global _(es5-ext/global)_\n\nObject that represents global scope\n\n### Array Constructor extensions\n\n#### from(arrayLike[, mapFn[, thisArg]]) _(es5-ext/array/from)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from). \nReturns array representation of _iterable_ or _arrayLike_. If _arrayLike_ is an instance of array, its copy is returned.\n\n#### generate([length[, …fill]]) _(es5-ext/array/generate)_\n\nGenerate an array of pre-given _length_ built of repeated arguments.\n\n#### isPlainArray(x) _(es5-ext/array/is-plain-array)_\n\nReturns true if object is plain array (not instance of one of the Array's extensions).\n\n#### of([…items]) _(es5-ext/array/of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of). \nCreate an array from given arguments.\n\n#### toArray(obj) _(es5-ext/array/to-array)_\n\nReturns array representation of `obj`. If `obj` is already an array, `obj` is returned back.\n\n#### validArray(obj) _(es5-ext/array/valid-array)_\n\nReturns `obj` if it's an array, otherwise throws `TypeError`\n\n### Array Prototype extensions\n\n#### arr.binarySearch(compareFn) _(es5-ext/array/#/binary-search)_\n\nIn **sorted** list search for index of item for which _compareFn_ returns value closest to _0_. \nIt's variant of binary search algorithm\n\n#### arr.clear() _(es5-ext/array/#/clear)_\n\nClears the array\n\n#### arr.compact() _(es5-ext/array/#/compact)_\n\nReturns a copy of the context with all non-values (`null` or `undefined`) removed.\n\n#### arr.concat() _(es5-ext/array/#/concat)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.concat). \nES6's version of `concat`. Supports `isConcatSpreadable` symbol, and returns array of same type as the context.\n\n#### arr.contains(searchElement[, position]) _(es5-ext/array/#/contains)_\n\nWhether list contains the given value.\n\n#### arr.copyWithin(target, start[, end]) _(es5-ext/array/#/copy-within)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.copywithin).\n\n#### arr.diff(other) _(es5-ext/array/#/diff)_\n\nReturns the array of elements that are present in context list but not present in other list.\n\n#### arr.eIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-index-of)_\n\n_egal_ version of `indexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.eLastIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-last-index-of)_\n\n_egal_ version of `lastIndexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision\n\n#### arr.entries() _(es5-ext/array/#/entries)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.entries). \nReturns iterator object, which traverses the array. Each value is represented with an array, where first value is an index and second is corresponding to index value.\n\n#### arr.exclusion([…lists]]) _(es5-ext/array/#/exclusion)_\n\nReturns the array of elements that are found only in one of the lists (either context list or list provided in arguments).\n\n#### arr.fill(value[, start, end]) _(es5-ext/array/#/fill)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.fill).\n\n#### arr.filter(callback[, thisArg]) _(es5-ext/array/#/filter)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.filter). \nES6's version of `filter`, returns array of same type as the context.\n\n#### arr.find(predicate[, thisArg]) _(es5-ext/array/#/find)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.find). \nReturn first element for which given function returns true\n\n#### arr.findIndex(predicate[, thisArg]) _(es5-ext/array/#/find-index)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.findindex). \nReturn first index for which given function returns true\n\n#### arr.first() _(es5-ext/array/#/first)_\n\nReturns value for first defined index\n\n#### arr.firstIndex() _(es5-ext/array/#/first-index)_\n\nReturns first declared index of the array\n\n#### arr.flatten() _(es5-ext/array/#/flatten)_\n\nReturns flattened version of the array\n\n#### arr.forEachRight(cb[, thisArg]) _(es5-ext/array/#/for-each-right)_\n\n`forEach` starting from last element\n\n#### arr.group(cb[, thisArg]) _(es5-ext/array/#/group)_\n\nGroup list elements by value returned by _cb_ function\n\n#### arr.indexesOf(searchElement[, fromIndex]) _(es5-ext/array/#/indexes-of)_\n\nReturns array of all indexes of given value\n\n#### arr.intersection([…lists]) _(es5-ext/array/#/intersection)_\n\nComputes the array of values that are the intersection of all lists (context list and lists given in arguments)\n\n#### arr.isCopy(other) _(es5-ext/array/#/is-copy)_\n\nReturns true if both context and _other_ lists have same content\n\n#### arr.isUniq() _(es5-ext/array/#/is-uniq)_\n\nReturns true if all values in array are unique\n\n#### arr.keys() _(es5-ext/array/#/keys)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.keys). \nReturns iterator object, which traverses all array indexes.\n\n#### arr.last() _(es5-ext/array/#/last)_\n\nReturns value of last defined index\n\n#### arr.lastIndex() _(es5-ext/array/#/last)_\n\nReturns last defined index of the array\n\n#### arr.map(callback[, thisArg]) _(es5-ext/array/#/map)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.map). \nES6's version of `map`, returns array of same type as the context.\n\n#### arr.remove(value[, …valuen]) _(es5-ext/array/#/remove)_\n\nRemove values from the array\n\n#### arr.separate(sep) _(es5-ext/array/#/separate)_\n\nReturns array with items separated with `sep` value\n\n#### arr.slice(callback[, thisArg]) _(es5-ext/array/#/slice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.slice). \nES6's version of `slice`, returns array of same type as the context.\n\n#### arr.someRight(cb[, thisArg]) _(es5-ext/array/#/someRight)_\n\n`some` starting from last element\n\n#### arr.splice(callback[, thisArg]) _(es5-ext/array/#/splice)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.splice). \nES6's version of `splice`, returns array of same type as the context.\n\n#### arr.uniq() _(es5-ext/array/#/uniq)_\n\nReturns duplicate-free version of the array\n\n#### arr.values() _(es5-ext/array/#/values)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.values). \nReturns iterator object which traverses all array values.\n\n#### arr[@@iterator] _(es5-ext/array/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype-@@iterator). \nReturns iterator object which traverses all array values.\n\n### Boolean Constructor extensions\n\n#### isBoolean(x) _(es5-ext/boolean/is-boolean)_\n\nWhether value is boolean\n\n### Date Constructor extensions\n\n#### isDate(x) _(es5-ext/date/is-date)_\n\nWhether value is date instance\n\n#### validDate(x) _(es5-ext/date/valid-date)_\n\nIf given object is not date throw TypeError in other case return it.\n\n### Date Prototype extensions\n\n#### date.copy(date) _(es5-ext/date/#/copy)_\n\nReturns a copy of the date object\n\n#### date.daysInMonth() _(es5-ext/date/#/days-in-month)_\n\nReturns number of days of date's month\n\n#### date.floorDay() _(es5-ext/date/#/floor-day)_\n\nSets the date time to 00:00:00.000\n\n#### date.floorMonth() _(es5-ext/date/#/floor-month)_\n\nSets date day to 1 and date time to 00:00:00.000\n\n#### date.floorYear() _(es5-ext/date/#/floor-year)_\n\nSets date month to 0, day to 1 and date time to 00:00:00.000\n\n#### date.format(pattern) _(es5-ext/date/#/format)_\n\nFormats date up to given string. Supported patterns:\n\n* `%Y` - Year with century, 1999, 2003\n* `%y` - Year without century, 99, 03\n* `%m` - Month, 01..12\n* `%d` - Day of the month 01..31\n* `%H` - Hour (24-hour clock), 00..23\n* `%M` - Minute, 00..59\n* `%S` - Second, 00..59\n* `%L` - Milliseconds, 000..999\n\n### Error Constructor extensions\n\n#### custom(message/_, code, ext_/) _(es5-ext/error/custom)_\n\nCreates custom error object, optinally extended with `code` and other extension properties (provided with `ext` object)\n\n#### isError(x) _(es5-ext/error/is-error)_\n\nWhether value is an error (instance of `Error`).\n\n#### validError(x) _(es5-ext/error/valid-error)_\n\nIf given object is not error throw TypeError in other case return it.\n\n### Error Prototype extensions\n\n#### err.throw() _(es5-ext/error/#/throw)_\n\nThrows error\n\n### Function Constructor extensions\n\nSome of the functions were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### constant(x) _(es5-ext/function/constant)_\n\nReturns a constant function that returns pregiven argument\n\n_k(x)(y) =def x_\n\n#### identity(x) _(es5-ext/function/identity)_\n\nIdentity function. Returns first argument\n\n_i(x) =def x_\n\n#### invoke(name[, …args]) _(es5-ext/function/invoke)_\n\nReturns a function that takes an object as an argument, and applies object's\n_name_ method to arguments. \n_name_ can be name of the method or method itself.\n\n_invoke(name, …args)(object, …args2) =def object\\[name\\]\\(…args, …args2\\)_\n\n#### isArguments(x) _(es5-ext/function/is-arguments)_\n\nWhether value is arguments object\n\n#### isFunction(arg) _(es5-ext/function/is-function)_\n\nWhether value is instance of function\n\n#### noop() _(es5-ext/function/noop)_\n\nNo operation function\n\n#### pluck(name) _(es5-ext/function/pluck)_\n\nReturns a function that takes an object, and returns the value of its _name_\nproperty\n\n_pluck(name)(obj) =def obj[name]_\n\n#### validFunction(arg) _(es5-ext/function/valid-function)_\n\nIf given object is not function throw TypeError in other case return it.\n\n### Function Prototype extensions\n\nSome of the methods were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele\n\n#### fn.compose([…fns]) _(es5-ext/function/#/compose)_\n\nApplies the functions in reverse argument-list order.\n\n_f1.compose(f2, f3, f4)(…args) =def f1(f2(f3(f4(…arg))))_\n\n#### fn.copy() _(es5-ext/function/#/copy)_\n\nProduces copy of given function\n\n#### fn.curry([n]) _(es5-ext/function/#/curry)_\n\nInvoking the function returned by this function only _n_ arguments are passed to the underlying function. If the underlying function is not saturated, the result is a function that passes all its arguments to the underlying function. \nIf _n_ is not provided then it defaults to context function length\n\n_f.curry(4)(arg1, arg2)(arg3)(arg4) =def f(arg1, args2, arg3, arg4)_\n\n#### fn.lock([…args]) _(es5-ext/function/#/lock)_\n\nReturns a function that applies the underlying function to _args_, and ignores its own arguments.\n\n_f.lock(…args)(…args2) =def f(…args)_\n\n_Named after it's counterpart in Google Closure_\n\n#### fn.not() _(es5-ext/function/#/not)_\n\nReturns a function that returns boolean negation of value returned by underlying function.\n\n_f.not()(…args) =def !f(…args)_\n\n#### fn.partial([…args]) _(es5-ext/function/#/partial)_\n\nReturns a function that when called will behave like context function called with initially passed arguments. If more arguments are suplilied, they are appended to initial args.\n\n_f.partial(…args1)(…args2) =def f(…args1, …args2)_\n\n#### fn.spread() _(es5-ext/function/#/spread)_\n\nReturns a function that applies underlying function with first list argument\n\n_f.match()(args) =def f.apply(null, args)_\n\n#### fn.toStringTokens() _(es5-ext/function/#/to-string-tokens)_\n\nSerializes function into two (arguments and body) string tokens. Result is plain object with `args` and `body` properties.\n\n### Math extensions\n\n#### acosh(x) _(es5-ext/math/acosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.acosh).\n\n#### asinh(x) _(es5-ext/math/asinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.asinh).\n\n#### atanh(x) _(es5-ext/math/atanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.atanh).\n\n#### cbrt(x) _(es5-ext/math/cbrt)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cbrt).\n\n#### clz32(x) _(es5-ext/math/clz32)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.clz32).\n\n#### cosh(x) _(es5-ext/math/cosh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cosh).\n\n#### expm1(x) _(es5-ext/math/expm1)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.expm1).\n\n#### fround(x) _(es5-ext/math/fround)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.fround).\n\n#### hypot([…values]) _(es5-ext/math/hypot)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.hypot).\n\n#### imul(x, y) _(es5-ext/math/imul)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.imul).\n\n#### log1p(x) _(es5-ext/math/log1p)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log1p).\n\n#### log2(x) _(es5-ext/math/log2)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log2).\n\n#### log10(x) _(es5-ext/math/log10)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log10).\n\n#### sign(x) _(es5-ext/math/sign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sign).\n\n#### sinh(x) _(es5-ext/math/sinh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sinh).\n\n#### tanh(x) _(es5-ext/math/tanh)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.tanh).\n\n#### trunc(x) _(es5-ext/math/trunc)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.trunc).\n\n### Number Constructor extensions\n\n#### EPSILON _(es5-ext/number/epsilon)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.epsilon).\n\nThe difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10-16.\n\n#### isFinite(x) _(es5-ext/number/is-finite)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite). \nWhether value is finite. Differs from global isNaN that it doesn't do type coercion.\n\n#### isInteger(x) _(es5-ext/number/is-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger). \nWhether value is integer.\n\n#### isNaN(x) _(es5-ext/number/is-nan)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isnan). \nWhether value is NaN. Differs from global isNaN that it doesn't do type coercion.\n\n#### isNumber(x) _(es5-ext/number/is-number)_\n\nWhether given value is number\n\n#### isSafeInteger(x) _(es5-ext/number/is-safe-integer)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.issafeinteger).\n\n#### MAX*SAFE_INTEGER *(es5-ext/number/max-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.maxsafeinteger). \nThe value of Number.MAX_SAFE_INTEGER is 9007199254740991.\n\n#### MIN*SAFE_INTEGER *(es5-ext/number/min-safe-integer)\\_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.minsafeinteger). \nThe value of Number.MIN_SAFE_INTEGER is -9007199254740991 (253-1).\n\n#### toInteger(x) _(es5-ext/number/to-integer)_\n\nConverts value to integer\n\n#### toPosInteger(x) _(es5-ext/number/to-pos-integer)_\n\nConverts value to positive integer. If provided value is less than 0, then 0 is returned\n\n#### toUint32(x) _(es5-ext/number/to-uint32)_\n\nConverts value to unsigned 32 bit integer. This type is used for array lengths.\nSee: http://www.2ality.com/2012/02/js-integers.html\n\n### Number Prototype extensions\n\n#### num.pad(length[, precision]) _(es5-ext/number/#/pad)_\n\nPad given number with zeros. Returns string\n\n### Object Constructor extensions\n\n#### assign(target, source[, …sourcen]) _(es5-ext/object/assign)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign). \nExtend _target_ by enumerable own properties of other objects. If properties are already set on target object, they will be overwritten.\n\n#### clear(obj) _(es5-ext/object/clear)_\n\nRemove all enumerable own properties of the object\n\n#### compact(obj) _(es5-ext/object/compact)_\n\nReturns copy of the object with all enumerable properties that have no falsy values\n\n#### compare(obj1, obj2) _(es5-ext/object/compare)_\n\nUniversal cross-type compare function. To be used for e.g. array sort.\n\n#### copy(obj) _(es5-ext/object/copy)_\n\nReturns copy of the object with all enumerable properties.\n\n#### copyDeep(obj) _(es5-ext/object/copy-deep)_\n\nReturns deep copy of the object with all enumerable properties.\n\n#### count(obj) _(es5-ext/object/count)_\n\nCounts number of enumerable own properties on object\n\n#### create(obj[, properties]) _(es5-ext/object/create)_\n\n`Object.create` alternative that provides workaround for [V8 issue](http://code.google.com/p/v8/issues/detail?id=2804).\n\nWhen `null` is provided as a prototype, it's substituted with specially prepared object that derives from Object.prototype but has all Object.prototype properties shadowed with undefined.\n\nIt's quirky solution that allows us to have plain objects with no truthy properties but with turnable prototype.\n\nUse only for objects that you plan to switch prototypes of and be aware of limitations of this workaround.\n\n#### eq(x, y) _(es5-ext/object/eq)_\n\nWhether two values are equal, using [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### every(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/every)_\n\nAnalogous to Array.prototype.every. Returns true if every key-value pair in this object satisfies the provided testing function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### filter(obj, cb[, thisArg]) _(es5-ext/object/filter)_\n\nAnalogous to Array.prototype.filter. Returns new object with properites for which _cb_ function returned truthy value.\n\n#### firstKey(obj) _(es5-ext/object/first-key)_\n\nReturns first enumerable key of the object, as keys are unordered by specification, it can be any key of an object.\n\n#### flatten(obj) _(es5-ext/object/flatten)_\n\nReturns new object, with flatten properties of input object\n\n_flatten({ a: { b: 1 }, c: { d: 1 } }) =def { b: 1, d: 1 }_\n\n#### forEach(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/for-each)_\n\nAnalogous to Array.prototype.forEach. Calls a function for each key-value pair found in object\nOptionally _compareFn_ can be provided which assures that properties are iterated in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### getPropertyNames() _(es5-ext/object/get-property-names)_\n\nGet all (not just own) property names of the object\n\n#### is(x, y) _(es5-ext/object/is)_\n\nWhether two values are equal, using [_SameValue_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.\n\n#### isArrayLike(x) _(es5-ext/object/is-array-like)_\n\nWhether object is array-like object\n\n#### isCopy(x, y) _(es5-ext/object/is-copy)_\n\nTwo values are considered a copy of same value when all of their own enumerable properties have same values.\n\n#### isCopyDeep(x, y) _(es5-ext/object/is-copy-deep)_\n\nDeep comparision of objects\n\n#### isEmpty(obj) _(es5-ext/object/is-empty)_\n\nTrue if object doesn't have any own enumerable property\n\n#### isObject(arg) _(es5-ext/object/is-object)_\n\nWhether value is not primitive\n\n#### isPlainObject(arg) _(es5-ext/object/is-plain-object)_\n\nWhether object is plain object, its protototype should be Object.prototype and it cannot be host object.\n\n#### keyOf(obj, searchValue) _(es5-ext/object/key-of)_\n\nSearch object for value\n\n#### keys(obj) _(es5-ext/object/keys)_\n\n[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys). \nES6's version of `keys`, doesn't throw on primitive input\n\n#### map(obj, cb[, thisArg]) _(es5-ext/object/map)_\n\nAnalogous to Array.prototype.map. Creates a new object with properties which values are results of calling a provided function on every key-value pair in this object.\n\n#### mapKeys(obj, cb[, thisArg]) _(es5-ext/object/map-keys)_\n\nCreate new object with same values, but remapped keys\n\n#### mixin(target, source) _(es5-ext/object/mixin)_\n\nExtend _target_ by all own properties of other objects. Properties found in both objects will be overwritten (unless they're not configurable and cannot be overwritten).\n_It was for a moment part of ECMAScript 6 draft._\n\n#### mixinPrototypes(target, …source]) _(es5-ext/object/mixin-prototypes)_\n\nExtends _target_, with all source and source's prototype properties.\nUseful as an alternative for `setPrototypeOf` in environments in which it cannot be shimmed (no `__proto__` support).\n\n#### normalizeOptions(options) _(es5-ext/object/normalize-options)_\n\nNormalizes options object into flat plain object.\n\nUseful for functions in which we either need to keep options object for future reference or need to modify it for internal use.\n\n* It never returns input `options` object back (always a copy is created)\n* `options` can be undefined in such case empty plain object is returned.\n* Copies all enumerable properties found down prototype chain.\n\n#### primitiveSet([…names]) _(es5-ext/object/primitive-set)_\n\nCreates `null` prototype based plain object, and sets on it all property names provided in arguments to true.\n\n#### safeTraverse(obj[, …names]) _(es5-ext/object/safe-traverse)_\n\nSafe navigation of object properties. See http://wiki.ecmascript.org/doku.php?id=strawman:existential_operator\n\n#### serialize(value) _(es5-ext/object/serialize)_\n\nSerialize value into string. Differs from [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that it serializes also dates, functions and regular expresssions.\n\n#### setPrototypeOf(object, proto) _(es5-ext/object/set-prototype-of)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof). \nIf native version is not provided, it depends on existence of `__proto__` functionality, if it's missing, `null` instead of function is exposed.\n\n#### some(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/some)_\n\nAnalogous to Array.prototype.some Returns true if any key-value pair satisfies the provided\ntesting function. \nOptionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### toArray(obj[, cb[, thisArg[, compareFn]]]) _(es5-ext/object/to-array)_\n\nCreates an array of results of calling a provided function on every key-value pair in this object. \nOptionally _compareFn_ can be provided which assures that results are added in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).\n\n#### unserialize(str) _(es5-ext/object/unserialize)_\n\nUserializes value previously serialized with [serialize](#serializevalue-es5-extobjectserialize)\n\n#### validCallable(x) _(es5-ext/object/valid-callable)_\n\nIf given object is not callable throw TypeError in other case return it.\n\n#### validObject(x) _(es5-ext/object/valid-object)_\n\nThrows error if given value is not an object, otherwise it is returned.\n\n#### validValue(x) _(es5-ext/object/valid-value)_\n\nThrows error if given value is `null` or `undefined`, otherwise returns value.\n\n### RegExp Constructor extensions\n\n#### escape(str) _(es5-ext/reg-exp/escape)_\n\nEscapes string to be used in regular expression\n\n#### isRegExp(x) _(es5-ext/reg-exp/is-reg-exp)_\n\nWhether object is regular expression\n\n#### validRegExp(x) _(es5-ext/reg-exp/valid-reg-exp)_\n\nIf object is regular expression it is returned, otherwise TypeError is thrown.\n\n### RegExp Prototype extensions\n\n#### re.isSticky(x) _(es5-ext/reg-exp/#/is-sticky)_\n\nWhether regular expression has `sticky` flag.\n\nIt's to be used as counterpart to [regExp.sticky](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.sticky) if it's not implemented.\n\n#### re.isUnicode(x) _(es5-ext/reg-exp/#/is-unicode)_\n\nWhether regular expression has `unicode` flag.\n\nIt's to be used as counterpart to [regExp.unicode](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.unicode) if it's not implemented.\n\n#### re.match(string) _(es5-ext/reg-exp/#/match)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.match).\n\n#### re.replace(string, replaceValue) _(es5-ext/reg-exp/#/replace)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.replace).\n\n#### re.search(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.search).\n\n#### re.split(string) _(es5-ext/reg-exp/#/search)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.split).\n\n#### re.sticky _(es5-ext/reg-exp/#/sticky/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.sticky). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n#### re.unicode _(es5-ext/reg-exp/#/unicode/implement)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.unicode). \nIt's a getter, so only `implement` and `is-implemented` modules are provided.\n\n### String Constructor extensions\n\n#### formatMethod(fMap) _(es5-ext/string/format-method)_\n\nCreates format method. It's used e.g. to create `Date.prototype.format` method\n\n#### fromCodePoint([…codePoints]) _(es5-ext/string/from-code-point)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.fromcodepoint)\n\n#### isString(x) _(es5-ext/string/is-string)_\n\nWhether object is string\n\n#### randomUniq() _(es5-ext/string/random-uniq)_\n\nReturns randomly generated id, with guarantee of local uniqueness (no same id will be returned twice)\n\n#### raw(callSite[, …substitutions]) _(es5-ext/string/raw)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.raw)\n\n### String Prototype extensions\n\n#### str.at(pos) _(es5-ext/string/#/at)_\n\n_Proposed for ECMAScript 6/7 standard, but not (yet) in a draft_\n\nReturns a string at given position in Unicode-safe manner.\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.at).\n\n#### str.camelToHyphen() _(es5-ext/string/#/camel-to-hyphen)_\n\nConvert camelCase string to hyphen separated, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from js property convention into filename convention.\n\n#### str.capitalize() _(es5-ext/string/#/capitalize)_\n\nCapitalize first character of a string\n\n#### str.caseInsensitiveCompare(str) _(es5-ext/string/#/case-insensitive-compare)_\n\nCase insensitive compare\n\n#### str.codePointAt(pos) _(es5-ext/string/#/code-point-at)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.codepointat)\n\nBased on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.codePointAt).\n\n#### str.contains(searchString[, position]) _(es5-ext/string/#/contains)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.contains)\n\nWhether string contains given string.\n\n#### str.endsWith(searchString[, endPosition]) _(es5-ext/string/#/ends-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith). \nWhether strings ends with given string\n\n#### str.hyphenToCamel() _(es5-ext/string/#/hyphen-to-camel)_\n\nConvert hyphen separated string to camelCase, e.g. one-two-three -> oneTwoThree.\nUseful when converting names from filename convention to js property name convention.\n\n#### str.indent(str[, count]) _(es5-ext/string/#/indent)_\n\nIndents each line with provided _str_ (if _count_ given then _str_ is repeated _count_ times).\n\n#### str.last() _(es5-ext/string/#/last)_\n\nReturn last character\n\n#### str.normalize([form]) _(es5-ext/string/#/normalize)_\n\n[_Introduced with ECMAScript 6_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize). \nReturns the Unicode Normalization Form of a given string. \nBased on Matsuza's version. Code used for integrated shim can be found at [github.com/walling/unorm](https://github.com/walling/unorm/blob/master/lib/unorm.js)\n\n#### str.pad(fill[, length]) _(es5-ext/string/#/pad)_\n\nPad string with _fill_.\nIf _length_ si given than _fill_ is reapated _length_ times.\nIf _length_ is negative then pad is applied from right.\n\n#### str.repeat(n) _(es5-ext/string/#/repeat)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.repeat). \nRepeat given string _n_ times\n\n#### str.plainReplace(search, replace) _(es5-ext/string/#/plain-replace)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces just first occurrence of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.plainReplaceAll(search, replace) _(es5-ext/string/#/plain-replace-all)_\n\nSimple `replace` version. Doesn't support regular expressions. Replaces all occurrences of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _$_ characters escape in such case).\n\n#### str.startsWith(searchString[, position]) _(es5-ext/string/#/starts-with)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith). \nWhether strings starts with given string\n\n#### str[@@iterator] _(es5-ext/string/#/@@iterator)_\n\n[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator). \nReturns iterator object which traverses all string characters (with respect to unicode symbols)\n\n### Tests\n\n $ npm test\n\n[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es5-ext/branches/master/shields_badge.svg\n[nix-build-url]: https://semaphoreci.com/medikoo-org/es5-ext\n[win-build-image]: https://ci.appveyor.com/api/projects/status/3jox67ksw3p8hkwh?svg=true\n[win-build-url]: https://ci.appveyor.com/project/medikoo/es5-ext\n[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg\n[npm-image]: https://img.shields.io/npm/v/es5-ext.svg\n[npm-url]: https://www.npmjs.com/package/es5-ext\n",
- "readmeFilename": "README.md",
- "bugs": "[Circular]",
- "homepage": "https://github.com/medikoo/es5-ext#readme",
- "_id": "es5-ext@0.10.45",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "es5-ext@0.10.45",
- "name": "es5-ext",
- "escapedName": "es5-ext",
- "rawSpec": "0.10.45",
- "saveSpec": "[Circular]",
- "fetchSpec": "0.10.45"
- },
- "_spec": "0.10.45",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/es5-ext",
- "error": "[Circular]",
- "extraneous": false
- }
- },
- "devDependencies": {
- "tad": "~0.2.3",
- "xlint": "~0.2.2",
- "xlint-jslint-medikoo": "~0.1.4"
- },
- "scripts": {
- "lint": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream",
- "lint-console": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch",
- "test": "node ./node_modules/tad/bin/tad"
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz",
- "_integrity": "sha1-jWPd+0z+H647MsomXExyAiIIC7U=",
- "_from": "event-emitter@0.3.4",
- "readme": "# event-emitter\n## Environment agnostic event emitter\n\n### Installation\n\n\t$ npm install event-emitter\n\t\nTo port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)\n\n### Usage\n\n```javascript\nvar ee = require('event-emitter');\n\nvar emitter = ee({}), listener;\n\nemitter.on('test', listener = function (args) {\n // …emitter logic\n});\n\nemitter.once('test', function (args) {\n // …invoked only once(!)\n});\n\nemitter.emit('test', arg1, arg2/*…args*/); // Two above listeners invoked\nemitter.emit('test', arg1, arg2/*…args*/); // Only first listener invoked\n\nemitter.off('test', listener); // Removed first listener\nemitter.emit('test', arg1, arg2/*…args*/); // No listeners invoked\n```\n### Additional utilities\n\n#### allOff(obj) _(event-emitter/all-off)_\n\nRemoves all listeners from given event emitter object\n\n#### hasListeners(obj[, name]) _(event-emitter/has-listeners)_\n\nWhether object has some listeners attached to the object.\nWhen `name` is provided, it checks listeners for specific event name\n\n```javascript\nvar emitter = ee();\nvar hasListeners = require('event-emitter/has-listeners');\nvar listener = function () {};\n\nhasListeners(emitter); // false\n\nemitter.on('foo', listener);\nhasListeners(emitter); // true\nhasListeners(emitter, 'foo'); // true\nhasListeners(emitter, 'bar'); // false\n\nemitter.off('foo', listener);\nhasListeners(emitter, 'foo'); // false\n```\n\n#### pipe(source, target[, emitMethodName]) _(event-emitter/pipe)_\n\nPipes all events from _source_ emitter onto _target_ emitter (all events from _source_ emitter will be emitted also on _target_ emitter, but not other way). \nReturns _pipe_ object which exposes `pipe.close` function. Invoke it to close configured _pipe_. \nIt works internally by redefinition of `emit` method, if in your interface this method is referenced differently, provide its name (or symbol) with third argument.\n\n#### unify(emitter1, emitter2) _(event-emitter/unify)_\n\nUnifies event handling for two objects. Events emitted on _emitter1_ would be also emitter on _emitter2_, and other way back. \nNon reversible.\n\n```javascript\nvar eeUnify = require('event-emitter/unify');\n\nvar emitter1 = ee(), listener1, listener3;\nvar emitter2 = ee(), listener2, listener4;\n\nemitter1.on('test', listener1 = function () { });\nemitter2.on('test', listener2 = function () { });\n\nemitter1.emit('test'); // Invoked listener1\nemitter2.emit('test'); // Invoked listener2\n\nvar unify = eeUnify(emitter1, emitter2);\n\nemitter1.emit('test'); // Invoked listener1 and listener2\nemitter2.emit('test'); // Invoked listener1 and listener2\n\nemitter1.on('test', listener3 = function () { });\nemitter2.on('test', listener4 = function () { });\n\nemitter1.emit('test'); // Invoked listener1, listener2, listener3 and listener4\nemitter2.emit('test'); // Invoked listener1, listener2, listener3 and listener4\n```\n\n### Tests [](https://travis-ci.org/medikoo/event-emitter)\n\n\t$ npm test\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/medikoo/event-emitter/issues"
- },
- "homepage": "https://github.com/medikoo/event-emitter#readme",
- "_id": "event-emitter@0.3.4",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "event-emitter@0.3.4",
- "name": "event-emitter",
- "escapedName": "event-emitter",
- "rawSpec": "0.3.4",
- "saveSpec": "[Circular]",
- "fetchSpec": "0.3.4"
- },
- "_spec": "0.3.4",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "event-emitter@0.3.4",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "es5-ext": "~0.10.7",
- "d": "~0.1.1"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/event-emitter",
- "error": "[Circular]",
- "extraneous": false
- },
- "superagent": {
- "name": "superagent",
- "version": "3.8.2",
- "description": "elegant & feature rich browser / node HTTP with a fluent API",
- "scripts": {
- "prepare": "make all",
- "test": "make test"
- },
- "keywords": [
- "http",
- "ajax",
- "request",
- "agent"
- ],
- "license": "MIT",
- "author": {
- "name": "TJ Holowaychuk",
- "email": "tj@vision-media.ca"
- },
- "contributors": [
- {
- "name": "Kornel Lesiński",
- "email": "kornel@geekhood.net"
- },
- {
- "name": "Peter Lyons",
- "email": "pete@peterlyons.com"
- },
- {
- "name": "Hunter Loftis",
- "email": "hunter@hunterloftis.com"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/visionmedia/superagent.git"
- },
- "dependencies": {
- "component-emitter": {
- "name": "component-emitter",
- "description": "Event emitter",
- "version": "1.2.1",
- "license": "MIT",
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
- "component": {
- "scripts": {
- "emitter/index.js": "index.js"
- }
- },
- "main": "index.js",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/component/emitter.git"
- },
- "scripts": {
- "test": "make test"
- },
- "files": [
- "index.js",
- "LICENSE"
- ],
- "_resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "_integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "_from": "component-emitter@1.2.1",
- "readme": "# Emitter [](https://travis-ci.org/component/emitter)\r\n\r\n Event emitter component.\r\n\r\n## Installation\r\n\r\n```\r\n$ component install component/emitter\r\n```\r\n\r\n## API\r\n\r\n### Emitter(obj)\r\n\r\n The `Emitter` may also be used as a mixin. For example\r\n a \"plain\" object may become an emitter, or you may\r\n extend an existing prototype.\r\n\r\n As an `Emitter` instance:\r\n\r\n```js\r\nvar Emitter = require('emitter');\r\nvar emitter = new Emitter;\r\nemitter.emit('something');\r\n```\r\n\r\n As a mixin:\r\n\r\n```js\r\nvar Emitter = require('emitter');\r\nvar user = { name: 'tobi' };\r\nEmitter(user);\r\n\r\nuser.emit('im a user');\r\n```\r\n\r\n As a prototype mixin:\r\n\r\n```js\r\nvar Emitter = require('emitter');\r\nEmitter(User.prototype);\r\n```\r\n\r\n### Emitter#on(event, fn)\r\n\r\n Register an `event` handler `fn`.\r\n\r\n### Emitter#once(event, fn)\r\n\r\n Register a single-shot `event` handler `fn`,\r\n removed immediately after it is invoked the\r\n first time.\r\n\r\n### Emitter#off(event, fn)\r\n\r\n * Pass `event` and `fn` to remove a listener.\r\n * Pass `event` to remove all listeners on that event.\r\n * Pass nothing to remove all listeners on all events.\r\n\r\n### Emitter#emit(event, ...)\r\n\r\n Emit an `event` with variable option args.\r\n\r\n### Emitter#listeners(event)\r\n\r\n Return an array of callbacks, or an empty array.\r\n\r\n### Emitter#hasListeners(event)\r\n\r\n Check if this emitter has `event` handlers.\r\n\r\n## License\r\n\r\nMIT\r\n",
- "readmeFilename": "Readme.md",
- "bugs": {
- "url": "https://github.com/component/emitter/issues"
- },
- "homepage": "https://github.com/component/emitter#readme",
- "_id": "component-emitter@1.2.1",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "component-emitter@1.2.1",
- "name": "component-emitter",
- "escapedName": "component-emitter",
- "rawSpec": "1.2.1",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.2.1"
- },
- "_spec": "1.2.1",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "component-emitter@1.2.1",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/component-emitter",
- "error": "[Circular]",
- "extraneous": false
- },
- "cookiejar": {
- "name": "cookiejar",
- "version": "2.1.2",
- "author": {
- "name": "bradleymeck"
- },
- "main": "cookiejar.js",
- "description": "simple persistent cookiejar system",
- "files": [
- "cookiejar.js"
- ],
- "license": "MIT",
- "jshintConfig": {
- "node": true
- },
- "scripts": {
- "test": "node tests/test.js"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/bmeck/node-cookiejar.git"
- },
- "devDependencies": {
- "jshint": "^2.9.4"
- },
- "_resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
- "_integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
- "_from": "cookiejar@2.1.2",
- "readme": "# CookieJar\n\n[](https://www.npmjs.org/package/cookiejar)\n[](https://david-dm.org/bmeck/node-cookiejar?type=dev)\n\nSimple robust cookie library\n\n## Exports\n\n### CookieAccessInfo(domain,path,secure,script)\n\nclass to determine matching qualities of a cookie\n\n##### Properties\n\n* String domain - domain to match\n* String path - path to match\n* Boolean secure - access is secure (ssl generally)\n* Boolean script - access is from a script\n\n\n### Cookie(cookiestr_or_cookie, request_domain, request_path)\n\nIt turns input into a Cookie (singleton if given a Cookie),\nthe `request_domain` argument is used to default the domain if it is not explicit in the cookie string,\nthe `request_path` argument is used to set the path if it is not explicit in a cookie String.\n\nExplicit domains/paths will cascade, implied domains/paths must *exactly* match (see http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Pat).\n\n##### Properties\n\n* String name - name of the cookie\n* String value - string associated with the cookie\n* String domain - domain to match (on a cookie a '.' at the start means a wildcard matching anything ending in the rest)\n* Boolean explicit_domain - if the domain was explicitly set via the cookie string\n* String path - base path to match (matches any path starting with this '/' is root)\n* Boolean explicit_path - if the path was explicitly set via the cookie string\n* Boolean noscript - if it should be kept from scripts\n* Boolean secure - should it only be transmitted over secure means\n* Number expiration_date - number of millis since 1970 at which this should be removed\n\n##### Methods\n\n* `String toString()` - the __set-cookie:__ string for this cookie\n* `String toValueString()` - the __cookie:__ string for this cookie\n* `Cookie parse(cookiestr, request_domain, request_path)` - parses the string onto this cookie or a new one if called directly\n* `Boolean matches(access_info)` - returns true if the access_info allows retrieval of this cookie\n* `Boolean collidesWith(cookie)` - returns true if the cookies cannot exist in the same space (domain and path match)\n\n\n### CookieJar()\n\nclass to hold numerous cookies from multiple domains correctly\n\n##### Methods\n\n* `Cookie setCookie(cookie, request_domain, request_path)` - modify (or add if not already-existing) a cookie to the jar\n* `Cookie[] setCookies(cookiestr_or_list, request_domain, request_path)` - modify (or add if not already-existing) a large number of cookies to the jar\n* `Cookie getCookie(cookie_name,access_info)` - get a cookie with the name and access_info matching\n* `Cookie[] getCookies(access_info)` - grab all cookies matching this access_info\n",
- "readmeFilename": "readme.md",
- "bugs": {
- "url": "https://github.com/bmeck/node-cookiejar/issues"
- },
- "homepage": "https://github.com/bmeck/node-cookiejar#readme",
- "_id": "cookiejar@2.1.2",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "cookiejar@2.1.2",
- "name": "cookiejar",
- "escapedName": "cookiejar",
- "rawSpec": "2.1.2",
- "saveSpec": "[Circular]",
- "fetchSpec": "2.1.2"
- },
- "_spec": "2.1.2",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "cookiejar@2.1.2",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/cookiejar",
- "error": "[Circular]",
- "extraneous": false
- },
- "debug": {
- "name": "debug",
- "version": "3.1.0",
- "repository": {
- "type": "git",
- "url": "git://github.com/visionmedia/debug.git"
- },
- "description": "small debugging utility",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "author": {
- "name": "TJ Holowaychuk",
- "email": "tj@vision-media.ca"
- },
- "contributors": [
- {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io"
- },
- {
- "name": "Andrew Rhyne",
- "email": "rhyneandrew@gmail.com"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "ms": {
- "name": "ms",
- "version": "2.0.0",
- "description": "Tiny milisecond conversion utility",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zeit/ms.git"
- },
- "main": "./index",
- "files": [
- "index.js"
- ],
- "scripts": {
- "precommit": "lint-staged",
- "lint": "eslint lib/* bin/*",
- "test": "mocha tests.js"
- },
- "eslintConfig": {
- "extends": "eslint:recommended",
- "env": {
- "node": true,
- "es6": true
- }
- },
- "lint-staged": {
- "*.js": [
- "npm run lint",
- "prettier --single-quote --write",
- "git add"
- ]
- },
- "license": "MIT",
- "devDependencies": {
- "eslint": "3.19.0",
- "expect.js": "0.3.1",
- "husky": "0.13.3",
- "lint-staged": "3.4.1",
- "mocha": "3.4.1"
- },
- "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "_from": "ms@2.0.0",
- "readme": "# ms\n\n[](https://travis-ci.org/zeit/ms)\n[](https://zeit.chat/)\n\nUse this package to easily convert various time formats to milliseconds.\n\n## Examples\n\n```js\nms('2 days') // 172800000\nms('1d') // 86400000\nms('10h') // 36000000\nms('2.5 hrs') // 9000000\nms('2h') // 7200000\nms('1m') // 60000\nms('5s') // 5000\nms('1y') // 31557600000\nms('100') // 100\n```\n\n### Convert from milliseconds\n\n```js\nms(60000) // \"1m\"\nms(2 * 60000) // \"2m\"\nms(ms('10 hours')) // \"10h\"\n```\n\n### Time format written-out\n\n```js\nms(60000, { long: true }) // \"1 minute\"\nms(2 * 60000, { long: true }) // \"2 minutes\"\nms(ms('10 hours'), { long: true }) // \"10 hours\"\n```\n\n## Features\n\n- Works both in [node](https://nodejs.org) and in the browser.\n- If a number is supplied to `ms`, a string with a unit is returned.\n- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).\n- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.\n\n## Caught a bug?\n\n1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device\n2. Link the package to the global module directory: `npm link`\n3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!\n\nAs always, you can run the tests using: `npm test`\n",
- "readmeFilename": "readme.md",
- "bugs": {
- "url": "https://github.com/zeit/ms/issues"
- },
- "homepage": "https://github.com/zeit/ms#readme",
- "_id": "ms@2.0.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "ms@2.0.0",
- "name": "ms",
- "escapedName": "ms",
- "rawSpec": "2.0.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "2.0.0"
- },
- "_spec": "2.0.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "ms@2.0.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/ms",
- "error": "[Circular]",
- "extraneous": false
- }
- },
- "devDependencies": {
- "browserify": "14.4.0",
- "chai": "^3.5.0",
- "concurrently": "^3.1.0",
- "coveralls": "^2.11.15",
- "eslint": "^3.12.1",
- "istanbul": "^0.4.5",
- "karma": "^1.3.0",
- "karma-chai": "^0.1.0",
- "karma-mocha": "^1.3.0",
- "karma-phantomjs-launcher": "^1.0.2",
- "karma-sinon": "^1.0.5",
- "mocha": "^3.2.0",
- "mocha-lcov-reporter": "^1.2.0",
- "rimraf": "^2.5.4",
- "sinon": "^1.17.6",
- "sinon-chai": "^2.8.0"
- },
- "main": "./src/index.js",
- "browser": "./src/browser.js",
- "_resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "_integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "_from": "debug@3.1.0",
- "readme": "# debug\n[](https://travis-ci.org/visionmedia/debug) [](https://coveralls.io/github/visionmedia/debug?branch=master) [](https://visionmedia-community-slackin.now.sh/) [](#backers)\n[](#sponsors)\n\n\n\nA tiny JavaScript debugging utility modelled after Node.js core's debugging\ntechnique. Works in Node.js and web browsers.\n\n## Installation\n\n```bash\n$ npm install debug\n```\n\n## Usage\n\n`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.\n\nExample [_app.js_](./examples/node/app.js):\n\n```js\nvar debug = require('debug')('http')\n , http = require('http')\n , name = 'My App';\n\n// fake app\n\ndebug('booting %o', name);\n\nhttp.createServer(function(req, res){\n debug(req.method + ' ' + req.url);\n res.end('hello\\n');\n}).listen(3000, function(){\n debug('listening');\n});\n\n// fake worker of some kind\n\nrequire('./worker');\n```\n\nExample [_worker.js_](./examples/node/worker.js):\n\n```js\nvar a = require('debug')('worker:a')\n , b = require('debug')('worker:b');\n\nfunction work() {\n a('doing lots of uninteresting work');\n setTimeout(work, Math.random() * 1000);\n}\n\nwork();\n\nfunction workb() {\n b('doing some work');\n setTimeout(workb, Math.random() * 2000);\n}\n\nworkb();\n```\n\nThe `DEBUG` environment variable is then used to enable these based on space or\ncomma-delimited names.\n\nHere are some examples:\n\n\n\n\n\n#### Windows note\n\nOn Windows the environment variable is set using the `set` command.\n\n```cmd\nset DEBUG=*,-not_this\n```\n\nNote that PowerShell uses different syntax to set environment variables.\n\n```cmd\n$env:DEBUG = \"*,-not_this\"\n```\n\nThen, run the program to be debugged as usual.\n\n\n## Namespace Colors\n\nEvery debug instance has a color generated for it based on its namespace name.\nThis helps when visually parsing the debug output to identify which debug instance\na debug line belongs to.\n\n#### Node.js\n\nIn Node.js, colors are enabled when stderr is a TTY. You also _should_ install\nthe [`supports-color`](https://npmjs.org/supports-color) module alongside debug,\notherwise debug will only use a small handful of basic colors.\n\n\n\n#### Web Browser\n\nColors are also enabled on \"Web Inspectors\" that understand the `%c` formatting\noption. These are WebKit web inspectors, Firefox ([since version\n31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))\nand the Firebug plugin for Firefox (any version).\n\n\n\n\n## Millisecond diff\n\nWhen actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the \"+NNNms\" will show you how much time was spent between calls.\n\n\n\nWhen stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below:\n\n\n\n\n## Conventions\n\nIf you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use \":\" to separate features. For example \"bodyParser\" from Connect would then be \"connect:bodyParser\". If you append a \"*\" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output.\n\n## Wildcards\n\nThe `*` character may be used as a wildcard. Suppose for example your library has\ndebuggers named \"connect:bodyParser\", \"connect:compress\", \"connect:session\",\ninstead of listing all three with\n`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do\n`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.\n\nYou can also exclude specific debuggers by prefixing them with a \"-\" character.\nFor example, `DEBUG=*,-connect:*` would include all debuggers except those\nstarting with \"connect:\".\n\n## Environment Variables\n\nWhen running through Node.js, you can set a few environment variables that will\nchange the behavior of the debug logging:\n\n| Name | Purpose |\n|-----------|-------------------------------------------------|\n| `DEBUG` | Enables/disables specific debugging namespaces. |\n| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). |\n| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |\n| `DEBUG_DEPTH` | Object inspection depth. |\n| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |\n\n\n__Note:__ The environment variables beginning with `DEBUG_` end up being\nconverted into an Options object that gets used with `%o`/`%O` formatters.\nSee the Node.js documentation for\n[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)\nfor the complete list.\n\n## Formatters\n\nDebug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting.\nBelow are the officially supported formatters:\n\n| Formatter | Representation |\n|-----------|----------------|\n| `%O` | Pretty-print an Object on multiple lines. |\n| `%o` | Pretty-print an Object all on a single line. |\n| `%s` | String. |\n| `%d` | Number (both integer and float). |\n| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |\n| `%%` | Single percent sign ('%'). This does not consume an argument. |\n\n\n### Custom formatters\n\nYou can add custom formatters by extending the `debug.formatters` object.\nFor example, if you wanted to add support for rendering a Buffer as hex with\n`%h`, you could do something like:\n\n```js\nconst createDebug = require('debug')\ncreateDebug.formatters.h = (v) => {\n return v.toString('hex')\n}\n\n// …elsewhere\nconst debug = createDebug('foo')\ndebug('this is hex: %h', new Buffer('hello world'))\n// foo this is hex: 68656c6c6f20776f726c6421 +0ms\n```\n\n\n## Browser Support\n\nYou can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),\nor just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),\nif you don't want to build it yourself.\n\nDebug's enable state is currently persisted by `localStorage`.\nConsider the situation shown below where you have `worker:a` and `worker:b`,\nand wish to debug both. You can enable this using `localStorage.debug`:\n\n```js\nlocalStorage.debug = 'worker:*'\n```\n\nAnd then refresh the page.\n\n```js\na = debug('worker:a');\nb = debug('worker:b');\n\nsetInterval(function(){\n a('doing some work');\n}, 1000);\n\nsetInterval(function(){\n b('doing some work');\n}, 1200);\n```\n\n\n## Output streams\n\n By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:\n\nExample [_stdout.js_](./examples/node/stdout.js):\n\n```js\nvar debug = require('debug');\nvar error = debug('app:error');\n\n// by default stderr is used\nerror('goes to stderr!');\n\nvar log = debug('app:log');\n// set this namespace to log via console.log\nlog.log = console.log.bind(console); // don't forget to bind to console!\nlog('goes to stdout');\nerror('still goes to stderr!');\n\n// set all output to go via console.info\n// overrides all per-namespace log settings\ndebug.log = console.info.bind(console);\nerror('now goes to stdout via console.info');\nlog('still goes to stdout, but via console.info now');\n```\n\n## Checking whether a debug target is enabled\n\nAfter you've created a debug instance, you can determine whether or not it is\nenabled by checking the `enabled` property:\n\n```javascript\nconst debug = require('debug')('http');\n\nif (debug.enabled) {\n // do stuff...\n}\n```\n\nYou can also manually toggle this property to force the debug instance to be\nenabled or disabled.\n\n\n## Authors\n\n - TJ Holowaychuk\n - Nathan Rajlich\n - Andrew Rhyne\n\n## Backers\n\nSupport us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Sponsors\n\nBecome a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)]\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/visionmedia/debug/issues"
- },
- "homepage": "https://github.com/visionmedia/debug#readme",
- "_id": "debug@3.1.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "debug@3.1.0",
- "name": "debug",
- "escapedName": "debug",
- "rawSpec": "3.1.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "3.1.0"
- },
- "_spec": "3.1.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "debug@3.1.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "ms": "2.0.0"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/debug",
- "error": "[Circular]",
- "extraneous": false
- },
- "extend": {
- "name": "extend",
- "author": {
- "name": "Stefan Thomas",
- "email": "justmoon@members.fsf.org",
- "url": "http://www.justmoon.net"
- },
- "version": "3.0.2",
- "description": "Port of jQuery.extend for node.js and the browser",
- "main": "index",
- "scripts": {
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "posttest": "npm run coverage-quiet",
- "tests-only": "node test",
- "coverage": "covert test/index.js",
- "coverage-quiet": "covert test/index.js --quiet",
- "lint": "npm run jscs && npm run eslint",
- "jscs": "jscs *.js */*.js",
- "eslint": "eslint *.js */*.js"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "url": "https://github.com/ljharb"
- }
- ],
- "keywords": [
- "extend",
- "clone",
- "merge"
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/justmoon/node-extend.git"
- },
- "dependencies": {},
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "covert": "^1.1.0",
- "eslint": "^4.19.1",
- "jscs": "^3.0.7",
- "tape": "^4.9.1"
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "_integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "_from": "extend@3.0.2",
- "readme": "[![Build Status][travis-svg]][travis-url]\n[![dependency status][deps-svg]][deps-url]\n[![dev dependency status][dev-deps-svg]][dev-deps-url]\n\n# extend() for Node.js [![Version Badge][npm-version-png]][npm-url]\n\n`node-extend` is a port of the classic extend() method from jQuery. It behaves as you expect. It is simple, tried and true.\n\nNotes:\n\n* Since Node.js >= 4,\n [`Object.assign`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n now offers the same functionality natively (but without the \"deep copy\" option).\n See [ECMAScript 2015 (ES6) in Node.js](https://nodejs.org/en/docs/es6).\n* Some native implementations of `Object.assign` in both Node.js and many\n browsers (since NPM modules are for the browser too) may not be fully\n spec-compliant.\n Check [`object.assign`](https://www.npmjs.com/package/object.assign) module for\n a compliant candidate.\n\n## Installation\n\nThis package is available on [npm][npm-url] as: `extend`\n\n``` sh\nnpm install extend\n```\n\n## Usage\n\n**Syntax:** extend **(** [`deep`], `target`, `object1`, [`objectN`] **)**\n\n*Extend one object with one or more others, returning the modified object.*\n\n**Example:**\n\n``` js\nvar extend = require('extend');\nextend(targetObject, object1, object2);\n```\n\nKeep in mind that the target object will be modified, and will be returned from extend().\n\nIf a boolean true is specified as the first argument, extend performs a deep copy, recursively copying any objects it finds. Otherwise, the copy will share structure with the original object(s).\nUndefined properties are not copied. However, properties inherited from the object's prototype will be copied over.\nWarning: passing `false` as the first argument is not supported.\n\n### Arguments\n\n* `deep` *Boolean* (optional)\nIf set, the merge becomes recursive (i.e. deep copy).\n* `target`\t*Object*\nThe object to extend.\n* `object1`\t*Object*\nThe object that will be merged into the first.\n* `objectN` *Object* (Optional)\nMore objects to merge into the first.\n\n## License\n\n`node-extend` is licensed under the [MIT License][mit-license-url].\n\n## Acknowledgements\n\nAll credit to the jQuery authors for perfecting this amazing utility.\n\nPorted to Node.js by [Stefan Thomas][github-justmoon] with contributions by [Jonathan Buchanan][github-insin] and [Jordan Harband][github-ljharb].\n\n[travis-svg]: https://travis-ci.org/justmoon/node-extend.svg\n[travis-url]: https://travis-ci.org/justmoon/node-extend\n[npm-url]: https://npmjs.org/package/extend\n[mit-license-url]: http://opensource.org/licenses/MIT\n[github-justmoon]: https://github.com/justmoon\n[github-insin]: https://github.com/insin\n[github-ljharb]: https://github.com/ljharb\n[npm-version-png]: http://versionbadg.es/justmoon/node-extend.svg\n[deps-svg]: https://david-dm.org/justmoon/node-extend.svg\n[deps-url]: https://david-dm.org/justmoon/node-extend\n[dev-deps-svg]: https://david-dm.org/justmoon/node-extend/dev-status.svg\n[dev-deps-url]: https://david-dm.org/justmoon/node-extend#info=devDependencies\n\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/justmoon/node-extend/issues"
- },
- "homepage": "https://github.com/justmoon/node-extend#readme",
- "_id": "extend@3.0.2",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "extend@3.0.2",
- "name": "extend",
- "escapedName": "extend",
- "rawSpec": "3.0.2",
- "saveSpec": "[Circular]",
- "fetchSpec": "3.0.2"
- },
- "_spec": "3.0.2",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "extend@3.0.2",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/extend",
- "error": "[Circular]",
- "extraneous": false
- },
- "form-data": {
- "author": {
- "name": "Felix Geisendörfer",
- "email": "felix@debuggable.com",
- "url": "http://debuggable.com/"
- },
- "name": "form-data",
- "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.",
- "version": "2.3.2",
- "repository": {
- "type": "git",
- "url": "git://github.com/form-data/form-data.git"
- },
- "main": "./lib/form_data",
- "browser": "./lib/browser",
- "scripts": {
- "pretest": "rimraf coverage test/tmp",
- "test": "istanbul cover test/run.js",
- "posttest": "istanbul report lcov text",
- "lint": "eslint lib/*.js test/*.js test/integration/*.js",
- "report": "istanbul report lcov text",
- "ci-lint": "is-node-modern 6 && npm run lint || is-node-not-modern 6",
- "ci-test": "npm run test && npm run browser && npm run report",
- "predebug": "rimraf coverage test/tmp",
- "debug": "verbose=1 ./test/run.js",
- "browser": "browserify -t browserify-istanbul test/run-browser.js | obake --coverage",
- "check": "istanbul check-coverage coverage/coverage*.json",
- "files": "pkgfiles --sort=name",
- "get-version": "node -e \"console.log(require('./package.json').version)\"",
- "update-readme": "sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md",
- "restore-readme": "mv README.md.bak README.md",
- "prepublish": "in-publish && npm run update-readme || not-in-publish",
- "postpublish": "npm run restore-readme"
- },
- "pre-commit": [
- "lint",
- "ci-test",
- "check"
- ],
- "engines": {
- "node": ">= 0.12"
- },
- "dependencies": {
- "asynckit": {
- "name": "asynckit",
- "version": "0.4.0",
- "description": "Minimal async jobs utility library, with streams support",
- "main": "index.js",
- "scripts": {
- "clean": "rimraf coverage",
- "lint": "eslint *.js lib/*.js test/*.js",
- "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec",
- "win-test": "tape test/test-*.js",
- "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec",
- "report": "istanbul report",
- "size": "browserify index.js | size-table asynckit",
- "debug": "tape test/test-*.js"
- },
- "pre-commit": [
- "clean",
- "lint",
- "test",
- "browser",
- "report",
- "size"
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/alexindigo/asynckit.git"
- },
- "keywords": [
- "async",
- "jobs",
- "parallel",
- "serial",
- "iterator",
- "array",
- "object",
- "stream",
- "destroy",
- "terminate",
- "abort"
- ],
- "author": {
- "name": "Alex Indigo",
- "email": "iam@alexindigo.com"
- },
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/alexindigo/asynckit/issues"
- },
- "homepage": "https://github.com/alexindigo/asynckit#readme",
- "devDependencies": {
- "browserify": "^13.0.0",
- "browserify-istanbul": "^2.0.0",
- "coveralls": "^2.11.9",
- "eslint": "^2.9.0",
- "istanbul": "^0.4.3",
- "obake": "^0.1.2",
- "phantomjs-prebuilt": "^2.1.7",
- "pre-commit": "^1.1.3",
- "reamde": "^1.1.0",
- "rimraf": "^2.5.2",
- "size-table": "^0.2.0",
- "tap-spec": "^4.1.1",
- "tape": "^4.5.1"
- },
- "dependencies": {},
- "_resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "_integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "_from": "asynckit@0.4.0",
- "readme": "# asynckit [](https://www.npmjs.com/package/asynckit)\n\nMinimal async jobs utility library, with streams support.\n\n[](https://travis-ci.org/alexindigo/asynckit)\n[](https://travis-ci.org/alexindigo/asynckit)\n[](https://ci.appveyor.com/project/alexindigo/asynckit)\n\n[](https://coveralls.io/github/alexindigo/asynckit?branch=master)\n[](https://david-dm.org/alexindigo/asynckit)\n[](https://www.bithound.io/github/alexindigo/asynckit)\n\n\n\nAsyncKit provides harness for `parallel` and `serial` iterators over list of items represented by arrays or objects.\nOptionally it accepts abort function (should be synchronously return by iterator for each item), and terminates left over jobs upon an error event. For specific iteration order built-in (`ascending` and `descending`) and custom sort helpers also supported, via `asynckit.serialOrdered` method.\n\nIt ensures async operations to keep behavior more stable and prevent `Maximum call stack size exceeded` errors, from sync iterators.\n\n| compression | size |\n| :----------------- | -------: |\n| asynckit.js | 12.34 kB |\n| asynckit.min.js | 4.11 kB |\n| asynckit.min.js.gz | 1.47 kB |\n\n\n## Install\n\n```sh\n$ npm install --save asynckit\n```\n\n## Examples\n\n### Parallel Jobs\n\nRuns iterator over provided array in parallel. Stores output in the `result` array,\non the matching positions. In unlikely event of an error from one of the jobs,\nwill terminate rest of the active jobs (if abort function is provided)\nand return error along with salvaged data to the main callback function.\n\n#### Input Array\n\n```javascript\nvar parallel = require('asynckit').parallel\n , assert = require('assert')\n ;\n\nvar source = [ 1, 1, 4, 16, 64, 32, 8, 2 ]\n , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ]\n , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ]\n , target = []\n ;\n\nparallel(source, asyncJob, function(err, result)\n{\n assert.deepEqual(result, expectedResult);\n assert.deepEqual(target, expectedTarget);\n});\n\n// async job accepts one element from the array\n// and a callback function\nfunction asyncJob(item, cb)\n{\n // different delays (in ms) per item\n var delay = item * 25;\n\n // pretend different jobs take different time to finish\n // and not in consequential order\n var timeoutId = setTimeout(function() {\n target.push(item);\n cb(null, item * 2);\n }, delay);\n\n // allow to cancel \"leftover\" jobs upon error\n // return function, invoking of which will abort this job\n return clearTimeout.bind(null, timeoutId);\n}\n```\n\nMore examples could be found in [test/test-parallel-array.js](test/test-parallel-array.js).\n\n#### Input Object\n\nAlso it supports named jobs, listed via object.\n\n```javascript\nvar parallel = require('asynckit/parallel')\n , assert = require('assert')\n ;\n\nvar source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 }\n , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 }\n , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ]\n , expectedKeys = [ 'first', 'one', 'two', 'four', 'eight', 'sixteen', 'thirtyTwo', 'sixtyFour' ]\n , target = []\n , keys = []\n ;\n\nparallel(source, asyncJob, function(err, result)\n{\n assert.deepEqual(result, expectedResult);\n assert.deepEqual(target, expectedTarget);\n assert.deepEqual(keys, expectedKeys);\n});\n\n// supports full value, key, callback (shortcut) interface\nfunction asyncJob(item, key, cb)\n{\n // different delays (in ms) per item\n var delay = item * 25;\n\n // pretend different jobs take different time to finish\n // and not in consequential order\n var timeoutId = setTimeout(function() {\n keys.push(key);\n target.push(item);\n cb(null, item * 2);\n }, delay);\n\n // allow to cancel \"leftover\" jobs upon error\n // return function, invoking of which will abort this job\n return clearTimeout.bind(null, timeoutId);\n}\n```\n\nMore examples could be found in [test/test-parallel-object.js](test/test-parallel-object.js).\n\n### Serial Jobs\n\nRuns iterator over provided array sequentially. Stores output in the `result` array,\non the matching positions. In unlikely event of an error from one of the jobs,\nwill not proceed to the rest of the items in the list\nand return error along with salvaged data to the main callback function.\n\n#### Input Array\n\n```javascript\nvar serial = require('asynckit/serial')\n , assert = require('assert')\n ;\n\nvar source = [ 1, 1, 4, 16, 64, 32, 8, 2 ]\n , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ]\n , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ]\n , target = []\n ;\n\nserial(source, asyncJob, function(err, result)\n{\n assert.deepEqual(result, expectedResult);\n assert.deepEqual(target, expectedTarget);\n});\n\n// extended interface (item, key, callback)\n// also supported for arrays\nfunction asyncJob(item, key, cb)\n{\n target.push(key);\n\n // it will be automatically made async\n // even it iterator \"returns\" in the same event loop\n cb(null, item * 2);\n}\n```\n\nMore examples could be found in [test/test-serial-array.js](test/test-serial-array.js).\n\n#### Input Object\n\nAlso it supports named jobs, listed via object.\n\n```javascript\nvar serial = require('asynckit').serial\n , assert = require('assert')\n ;\n\nvar source = [ 1, 1, 4, 16, 64, 32, 8, 2 ]\n , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ]\n , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ]\n , target = []\n ;\n\nvar source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 }\n , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 }\n , expectedTarget = [ 1, 1, 4, 16, 64, 32, 8, 2 ]\n , target = []\n ;\n\n\nserial(source, asyncJob, function(err, result)\n{\n assert.deepEqual(result, expectedResult);\n assert.deepEqual(target, expectedTarget);\n});\n\n// shortcut interface (item, callback)\n// works for object as well as for the arrays\nfunction asyncJob(item, cb)\n{\n target.push(item);\n\n // it will be automatically made async\n // even it iterator \"returns\" in the same event loop\n cb(null, item * 2);\n}\n```\n\nMore examples could be found in [test/test-serial-object.js](test/test-serial-object.js).\n\n_Note: Since _object_ is an _unordered_ collection of properties,\nit may produce unexpected results with sequential iterations.\nWhenever order of the jobs' execution is important please use `serialOrdered` method._\n\n### Ordered Serial Iterations\n\nTBD\n\nFor example [compare-property](compare-property) package.\n\n### Streaming interface\n\nTBD\n\n## Want to Know More?\n\nMore examples can be found in [test folder](test/).\n\nOr open an [issue](https://github.com/alexindigo/asynckit/issues) with questions and/or suggestions.\n\n## License\n\nAsyncKit is licensed under the MIT license.\n",
- "readmeFilename": "README.md",
- "_id": "asynckit@0.4.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "asynckit@0.4.0",
- "name": "asynckit",
- "escapedName": "asynckit",
- "rawSpec": "0.4.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "0.4.0"
- },
- "_spec": "0.4.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "asynckit@0.4.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/asynckit",
- "error": "[Circular]",
- "extraneous": false
- },
- "combined-stream": {
- "author": {
- "name": "Felix Geisendörfer",
- "email": "felix@debuggable.com",
- "url": "http://debuggable.com/"
- },
- "name": "combined-stream",
- "description": "A stream that emits multiple other streams one after another.",
- "version": "1.0.6",
- "homepage": "https://github.com/felixge/node-combined-stream",
- "repository": {
- "type": "git",
- "url": "git://github.com/felixge/node-combined-stream.git"
- },
- "main": "./lib/combined_stream",
- "scripts": {
- "test": "node test/run.js"
- },
- "engines": {
- "node": ">= 0.8"
- },
- "dependencies": {
- "delayed-stream": {
- "author": {
- "name": "Felix Geisendörfer",
- "email": "felix@debuggable.com",
- "url": "http://debuggable.com/"
- },
- "contributors": [
- {
- "name": "Mike Atkins",
- "email": "apeherder@gmail.com"
- }
- ],
- "name": "delayed-stream",
- "description": "Buffers events from a stream until you are ready to handle them.",
- "license": "MIT",
- "version": "1.0.0",
- "homepage": "https://github.com/felixge/node-delayed-stream",
- "repository": {
- "type": "git",
- "url": "git://github.com/felixge/node-delayed-stream.git"
- },
- "main": "./lib/delayed_stream",
- "engines": {
- "node": ">=0.4.0"
- },
- "scripts": {
- "test": "make test"
- },
- "dependencies": {},
- "devDependencies": {
- "fake": "0.2.0",
- "far": "0.0.1"
- },
- "_resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "_integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "_from": "delayed-stream@1.0.0",
- "readme": "# delayed-stream\n\nBuffers events from a stream until you are ready to handle them.\n\n## Installation\n\n``` bash\nnpm install delayed-stream\n```\n\n## Usage\n\nThe following example shows how to write a http echo server that delays its\nresponse by 1000 ms.\n\n``` javascript\nvar DelayedStream = require('delayed-stream');\nvar http = require('http');\n\nhttp.createServer(function(req, res) {\n var delayed = DelayedStream.create(req);\n\n setTimeout(function() {\n res.writeHead(200);\n delayed.pipe(res);\n }, 1000);\n});\n```\n\nIf you are not using `Stream#pipe`, you can also manually release the buffered\nevents by calling `delayedStream.resume()`:\n\n``` javascript\nvar delayed = DelayedStream.create(req);\n\nsetTimeout(function() {\n // Emit all buffered events and resume underlaying source\n delayed.resume();\n}, 1000);\n```\n\n## Implementation\n\nIn order to use this meta stream properly, here are a few things you should\nknow about the implementation.\n\n### Event Buffering / Proxying\n\nAll events of the `source` stream are hijacked by overwriting the `source.emit`\nmethod. Until node implements a catch-all event listener, this is the only way.\n\nHowever, delayed-stream still continues to emit all events it captures on the\n`source`, regardless of whether you have released the delayed stream yet or\nnot.\n\nUpon creation, delayed-stream captures all `source` events and stores them in\nan internal event buffer. Once `delayedStream.release()` is called, all\nbuffered events are emitted on the `delayedStream`, and the event buffer is\ncleared. After that, delayed-stream merely acts as a proxy for the underlaying\nsource.\n\n### Error handling\n\nError events on `source` are buffered / proxied just like any other events.\nHowever, `delayedStream.create` attaches a no-op `'error'` listener to the\n`source`. This way you only have to handle errors on the `delayedStream`\nobject, rather than in two places.\n\n### Buffer limits\n\ndelayed-stream provides a `maxDataSize` property that can be used to limit\nthe amount of data being buffered. In order to protect you from bad `source`\nstreams that don't react to `source.pause()`, this feature is enabled by\ndefault.\n\n## API\n\n### DelayedStream.create(source, [options])\n\nReturns a new `delayedStream`. Available options are:\n\n* `pauseStream`\n* `maxDataSize`\n\nThe description for those properties can be found below.\n\n### delayedStream.source\n\nThe `source` stream managed by this object. This is useful if you are\npassing your `delayedStream` around, and you still want to access properties\non the `source` object.\n\n### delayedStream.pauseStream = true\n\nWhether to pause the underlaying `source` when calling\n`DelayedStream.create()`. Modifying this property afterwards has no effect.\n\n### delayedStream.maxDataSize = 1024 * 1024\n\nThe amount of data to buffer before emitting an `error`.\n\nIf the underlaying source is emitting `Buffer` objects, the `maxDataSize`\nrefers to bytes.\n\nIf the underlaying source is emitting JavaScript strings, the size refers to\ncharacters.\n\nIf you know what you are doing, you can set this property to `Infinity` to\ndisable this feature. You can also modify this property during runtime.\n\n### delayedStream.dataSize = 0\n\nThe amount of data buffered so far.\n\n### delayedStream.readable\n\nAn ECMA5 getter that returns the value of `source.readable`.\n\n### delayedStream.resume()\n\nIf the `delayedStream` has not been released so far, `delayedStream.release()`\nis called.\n\nIn either case, `source.resume()` is called.\n\n### delayedStream.pause()\n\nCalls `source.pause()`.\n\n### delayedStream.pipe(dest)\n\nCalls `delayedStream.resume()` and then proxies the arguments to `source.pipe`.\n\n### delayedStream.release()\n\nEmits and clears all events that have been buffered up so far. This does not\nresume the underlaying source, use `delayedStream.resume()` instead.\n\n## License\n\ndelayed-stream is licensed under the MIT license.\n",
- "readmeFilename": "Readme.md",
- "bugs": {
- "url": "https://github.com/felixge/node-delayed-stream/issues"
- },
- "_id": "delayed-stream@1.0.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "delayed-stream@1.0.0",
- "name": "delayed-stream",
- "escapedName": "delayed-stream",
- "rawSpec": "1.0.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.0.0"
- },
- "_spec": "1.0.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "delayed-stream@1.0.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/delayed-stream",
- "error": "[Circular]",
- "extraneous": false
- }
- },
- "devDependencies": {
- "far": "~0.0.7"
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
- "_integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
- "_from": "combined-stream@1.0.6",
- "readme": "# combined-stream\n\nA stream that emits multiple other streams one after another.\n\n**NB** Currently `combined-stream` works with streams version 1 only. There is ongoing effort to switch this library to streams version 2. Any help is welcome. :) Meanwhile you can explore other libraries that provide streams2 support with more or less compatibility with `combined-stream`.\n\n- [combined-stream2](https://www.npmjs.com/package/combined-stream2): A drop-in streams2-compatible replacement for the combined-stream module.\n\n- [multistream](https://www.npmjs.com/package/multistream): A stream that emits multiple other streams one after another.\n\n## Installation\n\n``` bash\nnpm install combined-stream\n```\n\n## Usage\n\nHere is a simple example that shows how you can use combined-stream to combine\ntwo files into one:\n\n``` javascript\nvar CombinedStream = require('combined-stream');\nvar fs = require('fs');\n\nvar combinedStream = CombinedStream.create();\ncombinedStream.append(fs.createReadStream('file1.txt'));\ncombinedStream.append(fs.createReadStream('file2.txt'));\n\ncombinedStream.pipe(fs.createWriteStream('combined.txt'));\n```\n\nWhile the example above works great, it will pause all source streams until\nthey are needed. If you don't want that to happen, you can set `pauseStreams`\nto `false`:\n\n``` javascript\nvar CombinedStream = require('combined-stream');\nvar fs = require('fs');\n\nvar combinedStream = CombinedStream.create({pauseStreams: false});\ncombinedStream.append(fs.createReadStream('file1.txt'));\ncombinedStream.append(fs.createReadStream('file2.txt'));\n\ncombinedStream.pipe(fs.createWriteStream('combined.txt'));\n```\n\nHowever, what if you don't have all the source streams yet, or you don't want\nto allocate the resources (file descriptors, memory, etc.) for them right away?\nWell, in that case you can simply provide a callback that supplies the stream\nby calling a `next()` function:\n\n``` javascript\nvar CombinedStream = require('combined-stream');\nvar fs = require('fs');\n\nvar combinedStream = CombinedStream.create();\ncombinedStream.append(function(next) {\n next(fs.createReadStream('file1.txt'));\n});\ncombinedStream.append(function(next) {\n next(fs.createReadStream('file2.txt'));\n});\n\ncombinedStream.pipe(fs.createWriteStream('combined.txt'));\n```\n\n## API\n\n### CombinedStream.create([options])\n\nReturns a new combined stream object. Available options are:\n\n* `maxDataSize`\n* `pauseStreams`\n\nThe effect of those options is described below.\n\n### combinedStream.pauseStreams = `true`\n\nWhether to apply back pressure to the underlaying streams. If set to `false`,\nthe underlaying streams will never be paused. If set to `true`, the\nunderlaying streams will be paused right after being appended, as well as when\n`delayedStream.pipe()` wants to throttle.\n\n### combinedStream.maxDataSize = `2 * 1024 * 1024`\n\nThe maximum amount of bytes (or characters) to buffer for all source streams.\nIf this value is exceeded, `combinedStream` emits an `'error'` event.\n\n### combinedStream.dataSize = `0`\n\nThe amount of bytes (or characters) currently buffered by `combinedStream`.\n\n### combinedStream.append(stream)\n\nAppends the given `stream` to the combinedStream object. If `pauseStreams` is\nset to `true, this stream will also be paused right away.\n\n`streams` can also be a function that takes one parameter called `next`. `next`\nis a function that must be invoked in order to provide the `next` stream, see\nexample above.\n\nRegardless of how the `stream` is appended, combined-stream always attaches an\n`'error'` listener to it, so you don't have to do that manually.\n\nSpecial case: `stream` can also be a String or Buffer.\n\n### combinedStream.write(data)\n\nYou should not call this, `combinedStream` takes care of piping the appended\nstreams into itself for you.\n\n### combinedStream.resume()\n\nCauses `combinedStream` to start drain the streams it manages. The function is\nidempotent, and also emits a `'resume'` event each time which usually goes to\nthe stream that is currently being drained.\n\n### combinedStream.pause();\n\nIf `combinedStream.pauseStreams` is set to `false`, this does nothing.\nOtherwise a `'pause'` event is emitted, this goes to the stream that is\ncurrently being drained, so you can use it to apply back pressure.\n\n### combinedStream.end();\n\nSets `combinedStream.writable` to false, emits an `'end'` event, and removes\nall streams from the queue.\n\n### combinedStream.destroy();\n\nSame as `combinedStream.end()`, except it emits a `'close'` event instead of\n`'end'`.\n\n## License\n\ncombined-stream is licensed under the MIT license.\n",
- "readmeFilename": "Readme.md",
- "bugs": {
- "url": "https://github.com/felixge/node-combined-stream/issues"
- },
- "_id": "combined-stream@1.0.6",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "combined-stream@1.0.6",
- "name": "combined-stream",
- "escapedName": "combined-stream",
- "rawSpec": "1.0.6",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.0.6"
- },
- "_spec": "1.0.6",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "combined-stream@1.0.6",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/combined-stream",
- "error": "[Circular]",
- "extraneous": false
- },
- "mime-types": {
- "name": "mime-types",
- "description": "The ultimate javascript content-type utility.",
- "version": "2.1.19",
- "contributors": [
- {
- "name": "Douglas Christopher Wilson",
- "email": "doug@somethingdoug.com"
- },
- {
- "name": "Jeremiah Senkpiel",
- "email": "fishrock123@rocketmail.com",
- "url": "https://searchbeam.jit.su"
- },
- {
- "name": "Jonathan Ong",
- "email": "me@jongleberry.com",
- "url": "http://jongleberry.com"
- }
- ],
- "license": "MIT",
- "keywords": [
- "mime",
- "types"
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/jshttp/mime-types.git"
- },
- "dependencies": {
- "mime-db": {
- "name": "mime-db",
- "description": "Media Type Database",
- "version": "1.35.0",
- "contributors": [
- {
- "name": "Douglas Christopher Wilson",
- "email": "doug@somethingdoug.com"
- },
- {
- "name": "Jonathan Ong",
- "email": "me@jongleberry.com",
- "url": "http://jongleberry.com"
- },
- {
- "name": "Robert Kieffer",
- "email": "robert@broofa.com",
- "url": "http://github.com/broofa"
- }
- ],
- "license": "MIT",
- "keywords": [
- "mime",
- "db",
- "type",
- "types",
- "database",
- "charset",
- "charsets"
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/jshttp/mime-db.git"
- },
- "devDependencies": {
- "bluebird": "3.5.1",
- "co": "4.6.0",
- "cogent": "1.0.1",
- "csv-parse": "2.5.0",
- "eslint": "4.19.1",
- "eslint-config-standard": "11.0.0",
- "eslint-plugin-import": "2.13.0",
- "eslint-plugin-node": "6.0.1",
- "eslint-plugin-promise": "3.8.0",
- "eslint-plugin-standard": "3.1.0",
- "gnode": "0.1.2",
- "mocha": "1.21.5",
- "nyc": "11.8.0",
- "raw-body": "2.3.3",
- "stream-to-array": "2.3.0"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "README.md",
- "db.json",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "build": "node scripts/build",
- "fetch": "node scripts/fetch-apache && gnode scripts/fetch-iana && node scripts/fetch-nginx",
- "lint": "eslint .",
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "nyc --reporter=html --reporter=text npm test",
- "test-travis": "nyc --reporter=text npm test",
- "update": "npm run fetch && npm run build"
- },
- "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
- "_integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==",
- "_from": "mime-db@1.35.0",
- "readme": "# mime-db\n\n[![NPM Version][npm-version-image]][npm-url]\n[![NPM Downloads][npm-downloads-image]][npm-url]\n[![Node.js Version][node-image]][node-url]\n[![Build Status][travis-image]][travis-url]\n[![Coverage Status][coveralls-image]][coveralls-url]\n\nThis is a database of all mime types.\nIt consists of a single, public JSON file and does not include any logic,\nallowing it to remain as un-opinionated as possible with an API.\nIt aggregates data from the following sources:\n\n- http://www.iana.org/assignments/media-types/media-types.xhtml\n- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types\n- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types\n\n## Installation\n\n```bash\nnpm install mime-db\n```\n\n### Database Download\n\nIf you're crazy enough to use this in the browser, you can just grab the\nJSON file using [RawGit](https://rawgit.com/). It is recommended to replace\n`master` with [a release tag](https://github.com/jshttp/mime-db/tags) as the\nJSON format may change in the future.\n\n```\nhttps://cdn.rawgit.com/jshttp/mime-db/master/db.json\n```\n\n## Usage\n\n```js\nvar db = require('mime-db');\n\n// grab data on .js files\nvar data = db['application/javascript'];\n```\n\n## Data Structure\n\nThe JSON file is a map lookup for lowercased mime types.\nEach mime type has the following properties:\n\n- `.source` - where the mime type is defined.\n If not set, it's probably a custom media type.\n - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types)\n - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml)\n - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types)\n- `.extensions[]` - known extensions associated with this mime type.\n- `.compressible` - whether a file of this type can be gzipped.\n- `.charset` - the default charset associated with this type, if any.\n\nIf unknown, every property could be `undefined`.\n\n## Contributing\n\nTo edit the database, only make PRs against `src/custom.json` or\n`src/custom-suffix.json`.\n\nThe `src/custom.json` file is a JSON object with the MIME type as the keys\nand the values being an object with the following keys:\n\n- `compressible` - leave out if you don't know, otherwise `true`/`false` to\n indicate whether the data represented by the type is typically compressible.\n- `extensions` - include an array of file extensions that are associated with\n the type.\n- `notes` - human-readable notes about the type, typically what the type is.\n- `sources` - include an array of URLs of where the MIME type and the associated\n extensions are sourced from. This needs to be a [primary source](https://en.wikipedia.org/wiki/Primary_source);\n links to type aggregating sites and Wikipedia are _not acceptable_.\n\nTo update the build, run `npm run build`.\n\n## Adding Custom Media Types\n\nThe best way to get new media types included in this library is to register\nthem with the IANA. The community registration procedure is outlined in\n[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types\nregistered with the IANA are automatically pulled into this library.\n\n[npm-version-image]: https://img.shields.io/npm/v/mime-db.svg\n[npm-downloads-image]: https://img.shields.io/npm/dm/mime-db.svg\n[npm-url]: https://npmjs.org/package/mime-db\n[travis-image]: https://img.shields.io/travis/jshttp/mime-db/master.svg\n[travis-url]: https://travis-ci.org/jshttp/mime-db\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-db/master.svg\n[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master\n[node-image]: https://img.shields.io/node/v/mime-db.svg\n[node-url]: https://nodejs.org/en/download/\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/jshttp/mime-db/issues"
- },
- "homepage": "https://github.com/jshttp/mime-db#readme",
- "_id": "mime-db@1.35.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "mime-db@1.35.0",
- "name": "mime-db",
- "escapedName": "mime-db",
- "rawSpec": "1.35.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.35.0"
- },
- "_spec": "1.35.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "mime-db@1.35.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/mime-db",
- "error": "[Circular]",
- "extraneous": false
- }
- },
- "devDependencies": {
- "eslint": "4.19.1",
- "eslint-config-standard": "11.0.0",
- "eslint-plugin-import": "2.13.0",
- "eslint-plugin-node": "6.0.1",
- "eslint-plugin-promise": "3.8.0",
- "eslint-plugin-standard": "3.1.0",
- "istanbul": "0.4.5",
- "mocha": "1.21.5"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "index.js"
- ],
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "lint": "eslint .",
- "test": "mocha --reporter spec test/test.js",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js"
- },
- "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz",
- "_integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==",
- "_from": "mime-types@2.1.19",
- "readme": "# mime-types\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-version-image]][node-version-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nThe ultimate javascript content-type utility.\n\nSimilar to [the `mime@1.x` module](https://www.npmjs.com/package/mime), except:\n\n- __No fallbacks.__ Instead of naively returning the first available type,\n `mime-types` simply returns `false`, so do\n `var type = mime.lookup('unrecognized') || 'application/octet-stream'`.\n- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`.\n- No `.define()` functionality\n- Bug fixes for `.lookup(path)`\n\nOtherwise, the API is compatible with `mime` 1.x.\n\n## Install\n\nThis is a [Node.js](https://nodejs.org/en/) module available through the\n[npm registry](https://www.npmjs.com/). Installation is done using the\n[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):\n\n```sh\n$ npm install mime-types\n```\n\n## Adding Types\n\nAll mime types are based on [mime-db](https://www.npmjs.com/package/mime-db),\nso open a PR there if you'd like to add mime types.\n\n## API\n\n```js\nvar mime = require('mime-types')\n```\n\nAll functions return `false` if input is invalid or not found.\n\n### mime.lookup(path)\n\nLookup the content-type associated with a file.\n\n```js\nmime.lookup('json') // 'application/json'\nmime.lookup('.md') // 'text/markdown'\nmime.lookup('file.html') // 'text/html'\nmime.lookup('folder/file.js') // 'application/javascript'\nmime.lookup('folder/.htaccess') // false\n\nmime.lookup('cats') // false\n```\n\n### mime.contentType(type)\n\nCreate a full content-type header given a content-type or extension.\n\n```js\nmime.contentType('markdown') // 'text/x-markdown; charset=utf-8'\nmime.contentType('file.json') // 'application/json; charset=utf-8'\n\n// from a full path\nmime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8'\n```\n\n### mime.extension(type)\n\nGet the default extension for a content-type.\n\n```js\nmime.extension('application/octet-stream') // 'bin'\n```\n\n### mime.charset(type)\n\nLookup the implied default charset of a content-type.\n\n```js\nmime.charset('text/markdown') // 'UTF-8'\n```\n\n### var type = mime.types[extension]\n\nA map of content-types by extension.\n\n### [extensions...] = mime.extensions[type]\n\nA map of extensions by content-type.\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/mime-types.svg\n[npm-url]: https://npmjs.org/package/mime-types\n[node-version-image]: https://img.shields.io/node/v/mime-types.svg\n[node-version-url]: https://nodejs.org/en/download/\n[travis-image]: https://img.shields.io/travis/jshttp/mime-types/master.svg\n[travis-url]: https://travis-ci.org/jshttp/mime-types\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-types/master.svg\n[coveralls-url]: https://coveralls.io/r/jshttp/mime-types\n[downloads-image]: https://img.shields.io/npm/dm/mime-types.svg\n[downloads-url]: https://npmjs.org/package/mime-types\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/jshttp/mime-types/issues"
- },
- "homepage": "https://github.com/jshttp/mime-types#readme",
- "_id": "mime-types@2.1.19",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "mime-types@2.1.19",
- "name": "mime-types",
- "escapedName": "mime-types",
- "rawSpec": "2.1.19",
- "saveSpec": "[Circular]",
- "fetchSpec": "2.1.19"
- },
- "_spec": "2.1.19",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "mime-types@2.1.19",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "mime-db": "~1.35.0"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/mime-types",
- "error": "[Circular]",
- "extraneous": false
- }
- },
- "devDependencies": {
- "browserify": "^13.1.1",
- "browserify-istanbul": "^2.0.0",
- "coveralls": "^2.11.14",
- "cross-spawn": "^4.0.2",
- "eslint": "^3.9.1",
- "fake": "^0.2.2",
- "far": "^0.0.7",
- "formidable": "^1.0.17",
- "in-publish": "^2.0.0",
- "is-node-modern": "^1.0.0",
- "istanbul": "^0.4.5",
- "obake": "^0.1.2",
- "phantomjs-prebuilt": "^2.1.13",
- "pkgfiles": "^2.3.0",
- "pre-commit": "^1.1.3",
- "request": "2.76.0",
- "rimraf": "^2.5.4",
- "tape": "^4.6.2"
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
- "_integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
- "_from": "form-data@2.3.2",
- "readme": "# Form-Data [](https://www.npmjs.com/package/form-data) [](https://gitter.im/form-data/form-data)\n\nA library to create readable ```\"multipart/form-data\"``` streams. Can be used to submit forms and file uploads to other web applications.\n\nThe API of this library is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd].\n\n[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface\n\n[](https://travis-ci.org/form-data/form-data)\n[](https://travis-ci.org/form-data/form-data)\n[](https://ci.appveyor.com/project/alexindigo/form-data)\n\n[](https://coveralls.io/github/form-data/form-data?branch=master)\n[](https://david-dm.org/form-data/form-data)\n[](https://www.bithound.io/github/form-data/form-data)\n\n## Install\n\n```\nnpm install --save form-data\n```\n\n## Usage\n\nIn this example we are constructing a form with 3 fields that contain a string,\na buffer and a file stream.\n\n``` javascript\nvar FormData = require('form-data');\nvar fs = require('fs');\n\nvar form = new FormData();\nform.append('my_field', 'my value');\nform.append('my_buffer', new Buffer(10));\nform.append('my_file', fs.createReadStream('/foo/bar.jpg'));\n```\n\nAlso you can use http-response stream:\n\n``` javascript\nvar FormData = require('form-data');\nvar http = require('http');\n\nvar form = new FormData();\n\nhttp.request('http://nodejs.org/images/logo.png', function(response) {\n form.append('my_field', 'my value');\n form.append('my_buffer', new Buffer(10));\n form.append('my_logo', response);\n});\n```\n\nOr @mikeal's [request](https://github.com/request/request) stream:\n\n``` javascript\nvar FormData = require('form-data');\nvar request = require('request');\n\nvar form = new FormData();\n\nform.append('my_field', 'my value');\nform.append('my_buffer', new Buffer(10));\nform.append('my_logo', request('http://nodejs.org/images/logo.png'));\n```\n\nIn order to submit this form to a web application, call ```submit(url, [callback])``` method:\n\n``` javascript\nform.submit('http://example.org/', function(err, res) {\n // res – response object (http.IncomingMessage) //\n res.resume();\n});\n\n```\n\nFor more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods.\n\n### Custom options\n\nYou can provide custom options, such as `maxDataSize`:\n\n``` javascript\nvar FormData = require('form-data');\n\nvar form = new FormData({ maxDataSize: 20971520 });\nform.append('my_field', 'my value');\nform.append('my_buffer', /* something big */);\n```\n\nList of available options could be found in [combined-stream](https://github.com/felixge/node-combined-stream/blob/master/lib/combined_stream.js#L7-L15)\n\n### Alternative submission methods\n\nYou can use node's http client interface:\n\n``` javascript\nvar http = require('http');\n\nvar request = http.request({\n method: 'post',\n host: 'example.org',\n path: '/upload',\n headers: form.getHeaders()\n});\n\nform.pipe(request);\n\nrequest.on('response', function(res) {\n console.log(res.statusCode);\n});\n```\n\nOr if you would prefer the `'Content-Length'` header to be set for you:\n\n``` javascript\nform.submit('example.org/upload', function(err, res) {\n console.log(res.statusCode);\n});\n```\n\nTo use custom headers and pre-known length in parts:\n\n``` javascript\nvar CRLF = '\\r\\n';\nvar form = new FormData();\n\nvar options = {\n header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF,\n knownLength: 1\n};\n\nform.append('my_buffer', buffer, options);\n\nform.submit('http://example.com/', function(err, res) {\n if (err) throw err;\n console.log('Done');\n});\n```\n\nForm-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal's request```), for some other types of streams you'd need to provide \"file\"-related information manually:\n\n``` javascript\nsomeModule.stream(function(err, stdout, stderr) {\n if (err) throw err;\n\n var form = new FormData();\n\n form.append('file', stdout, {\n filename: 'unicycle.jpg', // ... or:\n filepath: 'photos/toys/unicycle.jpg',\n contentType: 'image/jpeg',\n knownLength: 19806\n });\n\n form.submit('http://example.com/', function(err, res) {\n if (err) throw err;\n console.log('Done');\n });\n});\n```\n\nThe `filepath` property overrides `filename` and may contain a relative path. This is typically used when uploading [multiple files from a directory](https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory).\n\nFor edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter:\n\n``` javascript\nform.submit({\n host: 'example.com',\n path: '/probably.php?extra=params',\n auth: 'username:password'\n}, function(err, res) {\n console.log(res.statusCode);\n});\n```\n\nIn case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`:\n\n``` javascript\nform.submit({\n host: 'example.com',\n path: '/surelynot.php',\n headers: {'x-test-header': 'test-header-value'}\n}, function(err, res) {\n console.log(res.statusCode);\n});\n```\n\n### Integration with other libraries\n\n#### Request\n\nForm submission using [request](https://github.com/request/request):\n\n```javascript\nvar formData = {\n my_field: 'my_value',\n my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),\n};\n\nrequest.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) {\n if (err) {\n return console.error('upload failed:', err);\n }\n console.log('Upload successful! Server responded with:', body);\n});\n```\n\nFor more details see [request readme](https://github.com/request/request#multipartform-data-multipart-form-uploads).\n\n#### node-fetch\n\nYou can also submit a form using [node-fetch](https://github.com/bitinn/node-fetch):\n\n```javascript\nvar form = new FormData();\n\nform.append('a', 1);\n\nfetch('http://example.com', { method: 'POST', body: form })\n .then(function(res) {\n return res.json();\n }).then(function(json) {\n console.log(json);\n });\n```\n\n## Notes\n\n- ```getLengthSync()``` method DOESN'T calculate length for streams, use ```knownLength``` options as workaround.\n- Starting version `2.x` FormData has dropped support for `node@0.10.x`.\n\n## License\n\nForm-Data is released under the [MIT](License) license.\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/form-data/form-data/issues"
- },
- "homepage": "https://github.com/form-data/form-data#readme",
- "_id": "form-data@2.3.2",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "form-data@2.3.2",
- "name": "form-data",
- "escapedName": "form-data",
- "rawSpec": "2.3.2",
- "saveSpec": "[Circular]",
- "fetchSpec": "2.3.2"
- },
- "_spec": "2.3.2",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "form-data@2.3.2",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "1.0.6",
- "mime-types": "^2.1.12"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/form-data",
- "error": "[Circular]",
- "extraneous": false
- },
- "formidable": {
- "name": "formidable",
- "description": "A node.js module for parsing form data, especially file uploads.",
- "homepage": "https://github.com/felixge/node-formidable",
- "license": "MIT",
- "version": "1.2.1",
- "devDependencies": {
- "gently": "^0.8.0",
- "findit": "^0.1.2",
- "hashish": "^0.0.4",
- "urun": "^0.0.6",
- "utest": "^0.0.8",
- "request": "^2.11.4"
- },
- "directories": {
- "lib": "./lib"
- },
- "main": "./lib/index",
- "scripts": {
- "test": "node test/run.js",
- "clean": "rm test/tmp/*"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/felixge/node-formidable.git"
- },
- "bugs": {
- "url": "http://github.com/felixge/node-formidable/issues"
- },
- "optionalDependencies": {},
- "_resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
- "_integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==",
- "_from": "formidable@1.2.1",
- "readme": "# Formidable\n\n[](https://travis-ci.org/felixge/node-formidable)\n\n## Purpose\n\nA Node.js module for parsing form data, especially file uploads.\n\n## Current status\n\n**Maintainers Wanted:** Please see https://github.com/felixge/node-formidable/issues/412\n\nThis module was developed for [Transloadit](http://transloadit.com/), a service focused on uploading\nand encoding images and videos. It has been battle-tested against hundreds of GB of file uploads from\na large variety of clients and is considered production-ready.\n\n## Features\n\n* Fast (~500mb/sec), non-buffering multipart parser\n* Automatically writing file uploads to disk\n* Low memory footprint\n* Graceful error handling\n* Very high test coverage\n\n## Installation\n\n```sh\nnpm i -S formidable\n```\n\nThis is a low-level package, and if you're using a high-level framework it may already be included. However, [Express v4](http://expressjs.com) does not include any multipart handling, nor does [body-parser](https://github.com/expressjs/body-parser).\n\nNote: Formidable requires [gently](http://github.com/felixge/node-gently) to run the unit tests, but you won't need it for just using the library.\n\n## Example\n\nParse an incoming file upload.\n```javascript\nvar formidable = require('formidable'),\n http = require('http'),\n util = require('util');\n\nhttp.createServer(function(req, res) {\n if (req.url == '/upload' && req.method.toLowerCase() == 'post') {\n // parse a file upload\n var form = new formidable.IncomingForm();\n\n form.parse(req, function(err, fields, files) {\n res.writeHead(200, {'content-type': 'text/plain'});\n res.write('received upload:\\n\\n');\n res.end(util.inspect({fields: fields, files: files}));\n });\n\n return;\n }\n\n // show a file upload form\n res.writeHead(200, {'content-type': 'text/html'});\n res.end(\n ''\n );\n}).listen(8080);\n```\n## API\n\n### Formidable.IncomingForm\n```javascript\nvar form = new formidable.IncomingForm()\n```\nCreates a new incoming form.\n\n```javascript\nform.encoding = 'utf-8';\n```\nSets encoding for incoming form fields.\n\n```javascript\nform.uploadDir = \"/my/dir\";\n```\nSets the directory for placing file uploads in. You can move them later on using\n`fs.rename()`. The default is `os.tmpdir()`.\n\n```javascript\nform.keepExtensions = false;\n```\nIf you want the files written to `form.uploadDir` to include the extensions of the original files, set this property to `true`.\n\n```javascript\nform.type\n```\nEither 'multipart' or 'urlencoded' depending on the incoming request.\n\n```javascript\nform.maxFieldsSize = 20 * 1024 * 1024;\n```\nLimits the amount of memory all fields together (except files) can allocate in bytes.\nIf this value is exceeded, an `'error'` event is emitted. The default\nsize is 20MB.\n\n```javascript\nform.maxFileSize = 200 * 1024 * 1024;\n```\nLimits the size of uploaded file.\nIf this value is exceeded, an `'error'` event is emitted. The default\nsize is 200MB.\n\n```javascript\nform.maxFields = 1000;\n```\nLimits the number of fields that the querystring parser will decode. Defaults\nto 1000 (0 for unlimited).\n\n```javascript\nform.hash = false;\n```\nIf you want checksums calculated for incoming files, set this to either `'sha1'` or `'md5'`.\n\n```javascript\nform.multiples = false;\n```\nIf this option is enabled, when you call `form.parse`, the `files` argument will contain arrays of files for inputs which submit multiple files using the HTML5 `multiple` attribute.\n\n```javascript\nform.bytesReceived\n```\nThe amount of bytes received for this form so far.\n\n```javascript\nform.bytesExpected\n```\nThe expected number of bytes in this form.\n\n```javascript\nform.parse(request, [cb]);\n```\nParses an incoming node.js `request` containing form data. If `cb` is provided, all fields and files are collected and passed to the callback:\n\n\n```javascript\nform.parse(req, function(err, fields, files) {\n // ...\n});\n\nform.onPart(part);\n```\nYou may overwrite this method if you are interested in directly accessing the multipart stream. Doing so will disable any `'field'` / `'file'` events processing which would occur otherwise, making you fully responsible for handling the processing.\n\n```javascript\nform.onPart = function(part) {\n part.addListener('data', function() {\n // ...\n });\n}\n```\nIf you want to use formidable to only handle certain parts for you, you can do so:\n```javascript\nform.onPart = function(part) {\n if (!part.filename) {\n // let formidable handle all non-file parts\n form.handlePart(part);\n }\n}\n```\nCheck the code in this method for further inspiration.\n\n\n### Formidable.File\n```javascript\nfile.size = 0\n```\nThe size of the uploaded file in bytes. If the file is still being uploaded (see `'fileBegin'` event), this property says how many bytes of the file have been written to disk yet.\n```javascript\nfile.path = null\n```\nThe path this file is being written to. You can modify this in the `'fileBegin'` event in\ncase you are unhappy with the way formidable generates a temporary path for your files.\n```javascript\nfile.name = null\n```\nThe name this file had according to the uploading client.\n```javascript\nfile.type = null\n```\nThe mime type of this file, according to the uploading client.\n```javascript\nfile.lastModifiedDate = null\n```\nA date object (or `null`) containing the time this file was last written to. Mostly\nhere for compatibility with the [W3C File API Draft](http://dev.w3.org/2006/webapi/FileAPI/).\n```javascript\nfile.hash = null\n```\nIf hash calculation was set, you can read the hex digest out of this var.\n\n#### Formidable.File#toJSON()\n\n This method returns a JSON-representation of the file, allowing you to\n `JSON.stringify()` the file which is useful for logging and responding\n to requests.\n\n### Events\n\n\n#### 'progress'\n\nEmitted after each incoming chunk of data that has been parsed. Can be used to roll your own progress bar.\n\n```javascript\nform.on('progress', function(bytesReceived, bytesExpected) {\n});\n```\n\n\n\n#### 'field'\n\nEmitted whenever a field / value pair has been received.\n\n```javascript\nform.on('field', function(name, value) {\n});\n```\n\n#### 'fileBegin'\n\nEmitted whenever a new file is detected in the upload stream. Use this event if\nyou want to stream the file to somewhere else while buffering the upload on\nthe file system.\n\n```javascript\nform.on('fileBegin', function(name, file) {\n});\n```\n\n#### 'file'\n\nEmitted whenever a field / file pair has been received. `file` is an instance of `File`.\n\n```javascript\nform.on('file', function(name, file) {\n});\n```\n\n#### 'error'\n\nEmitted when there is an error processing the incoming form. A request that experiences an error is automatically paused, you will have to manually call `request.resume()` if you want the request to continue firing `'data'` events.\n\n```javascript\nform.on('error', function(err) {\n});\n```\n\n#### 'aborted'\n\n\nEmitted when the request was aborted by the user. Right now this can be due to a 'timeout' or 'close' event on the socket. After this event is emitted, an `error` event will follow. In the future there will be a separate 'timeout' event (needs a change in the node core).\n```javascript\nform.on('aborted', function() {\n});\n```\n\n##### 'end'\n```javascript\nform.on('end', function() {\n});\n```\nEmitted when the entire request has been received, and all contained files have finished flushing to disk. This is a great place for you to send your response.\n\n\n\n## Changelog\n\n### v1.1.1 (2017-01-15)\n\n * Fix DeprecationWarning about os.tmpDir() (Christian)\n * Update `buffer.write` order of arguments for Node 7 (Kornel Lesiński)\n * JSON Parser emits error events to the IncomingForm (alessio.montagnani)\n * Improved Content-Disposition parsing (Sebastien)\n * Access WriteStream of fs during runtime instead of include time (Jonas Amundsen)\n * Use built-in toString to convert buffer to hex (Charmander)\n * Add hash to json if present (Nick Stamas)\n * Add license to package.json (Simen Bekkhus)\n\n### v1.0.14 (2013-05-03)\n\n* Add failing hash tests. (Ben Trask)\n* Enable hash calculation again (Eugene Girshov)\n* Test for immediate data events (Tim Smart)\n* Re-arrange IncomingForm#parse (Tim Smart)\n\n### v1.0.13\n\n* Only update hash if update method exists (Sven Lito)\n* According to travis v0.10 needs to go quoted (Sven Lito)\n* Bumping build node versions (Sven Lito)\n* Additional fix for empty requests (Eugene Girshov)\n* Change the default to 1000, to match the new Node behaviour. (OrangeDog)\n* Add ability to control maxKeys in the querystring parser. (OrangeDog)\n* Adjust test case to work with node 0.9.x (Eugene Girshov)\n* Update package.json (Sven Lito)\n* Path adjustment according to eb4468b (Markus Ast)\n\n### v1.0.12\n\n* Emit error on aborted connections (Eugene Girshov)\n* Add support for empty requests (Eugene Girshov)\n* Fix name/filename handling in Content-Disposition (jesperp)\n* Tolerate malformed closing boundary in multipart (Eugene Girshov)\n* Ignore preamble in multipart messages (Eugene Girshov)\n* Add support for application/json (Mike Frey, Carlos Rodriguez)\n* Add support for Base64 encoding (Elmer Bulthuis)\n* Add File#toJSON (TJ Holowaychuk)\n* Remove support for Node.js 0.4 & 0.6 (Andrew Kelley)\n* Documentation improvements (Sven Lito, Andre Azevedo)\n* Add support for application/octet-stream (Ion Lupascu, Chris Scribner)\n* Use os.tmpdir() to get tmp directory (Andrew Kelley)\n* Improve package.json (Andrew Kelley, Sven Lito)\n* Fix benchmark script (Andrew Kelley)\n* Fix scope issue in incoming_forms (Sven Lito)\n* Fix file handle leak on error (OrangeDog)\n\n## License\n\nFormidable is licensed under the MIT license.\n\n## Ports\n\n* [multipart-parser](http://github.com/FooBarWidget/multipart-parser): a C++ parser based on formidable\n\n## Credits\n\n* [Ryan Dahl](http://twitter.com/ryah) for his work on [http-parser](http://github.com/ry/http-parser) which heavily inspired multipart_parser.js\n",
- "readmeFilename": "Readme.md",
- "dependencies": {},
- "_id": "formidable@1.2.1",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "formidable@1.2.1",
- "name": "formidable",
- "escapedName": "formidable",
- "rawSpec": "1.2.1",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.2.1"
- },
- "_spec": "1.2.1",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "formidable@1.2.1",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/formidable",
- "error": "[Circular]",
- "extraneous": false
- },
- "methods": {
- "name": "methods",
- "description": "HTTP methods that node supports",
- "version": "1.1.2",
- "contributors": [
- {
- "name": "Douglas Christopher Wilson",
- "email": "doug@somethingdoug.com"
- },
- {
- "name": "Jonathan Ong",
- "email": "me@jongleberry.com",
- "url": "http://jongleberry.com"
- },
- {
- "name": "TJ Holowaychuk",
- "email": "tj@vision-media.ca",
- "url": "http://tjholowaychuk.com"
- }
- ],
- "license": "MIT",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/jshttp/methods.git"
- },
- "devDependencies": {
- "istanbul": "0.4.1",
- "mocha": "1.21.5"
- },
- "files": [
- "index.js",
- "HISTORY.md",
- "LICENSE"
- ],
- "engines": {
- "node": ">= 0.6"
- },
- "scripts": {
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
- },
- "browser": {
- "http": false
- },
- "keywords": [
- "http",
- "methods"
- ],
- "_resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "_integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
- "_from": "methods@1.1.2",
- "readme": "# Methods\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-version-image]][node-version-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nHTTP verbs that Node.js core's HTTP parser supports.\n\nThis module provides an export that is just like `http.METHODS` from Node.js core,\nwith the following differences:\n\n * All method names are lower-cased.\n * Contains a fallback list of methods for Node.js versions that do not have a\n `http.METHODS` export (0.10 and lower).\n * Provides the fallback list when using tools like `browserify` without pulling\n in the `http` shim module.\n\n## Install\n\n```bash\n$ npm install methods\n```\n\n## API\n\n```js\nvar methods = require('methods')\n```\n\n### methods\n\nThis is an array of lower-cased method names that Node.js supports. If Node.js\nprovides the `http.METHODS` export, then this is the same array lower-cased,\notherwise it is a snapshot of the verbs from Node.js 0.10.\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/methods.svg?style=flat\n[npm-url]: https://npmjs.org/package/methods\n[node-version-image]: https://img.shields.io/node/v/methods.svg?style=flat\n[node-version-url]: https://nodejs.org/en/download/\n[travis-image]: https://img.shields.io/travis/jshttp/methods.svg?style=flat\n[travis-url]: https://travis-ci.org/jshttp/methods\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/methods.svg?style=flat\n[coveralls-url]: https://coveralls.io/r/jshttp/methods?branch=master\n[downloads-image]: https://img.shields.io/npm/dm/methods.svg?style=flat\n[downloads-url]: https://npmjs.org/package/methods\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/jshttp/methods/issues"
- },
- "homepage": "https://github.com/jshttp/methods#readme",
- "_id": "methods@1.1.2",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "methods@1.1.2",
- "name": "methods",
- "escapedName": "methods",
- "rawSpec": "1.1.2",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.1.2"
- },
- "_spec": "1.1.2",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "methods@1.1.2",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/methods",
- "error": "[Circular]",
- "extraneous": false
- },
- "mime": {
- "author": {
- "name": "Robert Kieffer",
- "email": "robert@broofa.com",
- "url": "http://github.com/broofa"
- },
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- },
- "contributors": [
- {
- "name": "Benjamin Thomas",
- "email": "benjamin@benjaminthomas.org",
- "url": "http://github.com/bentomas"
- }
- ],
- "description": "A comprehensive library for mime-type mapping",
- "license": "MIT",
- "dependencies": {},
- "devDependencies": {
- "github-release-notes": "0.13.1",
- "mime-db": "1.31.0",
- "mime-score": "1.1.0"
- },
- "scripts": {
- "prepare": "node src/build.js",
- "changelog": "gren changelog --tags=all --generate --override",
- "test": "node src/test.js"
- },
- "keywords": [
- "util",
- "mime"
- ],
- "main": "mime.js",
- "name": "mime",
- "repository": {
- "url": "git+https://github.com/broofa/node-mime.git",
- "type": "git"
- },
- "version": "1.6.0",
- "_resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "_integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "_from": "mime@1.6.0",
- "readme": "# mime\n\nComprehensive MIME type mapping API based on mime-db module.\n\n## Install\n\nInstall with [npm](http://github.com/isaacs/npm):\n\n npm install mime\n\n## Contributing / Testing\n\n npm run test\n\n## Command Line\n\n mime [path_string]\n\nE.g.\n\n > mime scripts/jquery.js\n application/javascript\n\n## API - Queries\n\n### mime.lookup(path)\nGet the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g.\n\n```js\nvar mime = require('mime');\n\nmime.lookup('/path/to/file.txt'); // => 'text/plain'\nmime.lookup('file.txt'); // => 'text/plain'\nmime.lookup('.TXT'); // => 'text/plain'\nmime.lookup('htm'); // => 'text/html'\n```\n\n### mime.default_type\nSets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.)\n\n### mime.extension(type)\nGet the default extension for `type`\n\n```js\nmime.extension('text/html'); // => 'html'\nmime.extension('application/octet-stream'); // => 'bin'\n```\n\n### mime.charsets.lookup()\n\nMap mime-type to charset\n\n```js\nmime.charsets.lookup('text/plain'); // => 'UTF-8'\n```\n\n(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.)\n\n## API - Defining Custom Types\n\nCustom type mappings can be added on a per-project basis via the following APIs.\n\n### mime.define()\n\nAdd custom mime/extension mappings\n\n```js\nmime.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\nmime.lookup('x-sft'); // => 'text/x-some-format'\n```\n\nThe first entry in the extensions array is returned by `mime.extension()`. E.g.\n\n```js\nmime.extension('text/x-some-format'); // => 'x-sf'\n```\n\n### mime.load(filepath)\n\nLoad mappings from an Apache \".types\" format file\n\n```js\nmime.load('./my_project.types');\n```\nThe .types file format is simple - See the `types` dir for examples.\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/broofa/node-mime/issues"
- },
- "homepage": "https://github.com/broofa/node-mime#readme",
- "_id": "mime@1.6.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "mime@1.6.0",
- "name": "mime",
- "escapedName": "mime",
- "rawSpec": "1.6.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.6.0"
- },
- "_spec": "1.6.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "mime@1.6.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/mime",
- "error": "[Circular]",
- "extraneous": false
- },
- "qs": {
- "name": "qs",
- "description": "A querystring parser that supports nesting and arrays, with a depth limit",
- "homepage": "https://github.com/ljharb/qs",
- "version": "6.5.2",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/ljharb/qs.git"
- },
- "main": "lib/index.js",
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "keywords": [
- "querystring",
- "qs"
- ],
- "engines": {
- "node": ">=0.6"
- },
- "dependencies": {},
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "browserify": "^16.2.0",
- "covert": "^1.1.0",
- "editorconfig-tools": "^0.1.1",
- "eslint": "^4.19.1",
- "evalmd": "^0.0.17",
- "iconv-lite": "^0.4.21",
- "mkdirp": "^0.5.1",
- "qs-iconv": "^1.0.4",
- "safe-publish-latest": "^1.1.1",
- "safer-buffer": "^2.1.2",
- "tape": "^4.9.0"
- },
- "scripts": {
- "prepublish": "safe-publish-latest && npm run dist",
- "pretest": "npm run --silent readme && npm run --silent lint",
- "test": "npm run --silent coverage",
- "tests-only": "node test",
- "readme": "evalmd README.md",
- "prelint": "editorconfig-tools check * lib/* test/*",
- "lint": "eslint lib/*.js test/*.js",
- "coverage": "covert test",
- "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js"
- },
- "license": "BSD-3-Clause",
- "_resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "_integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
- "_from": "qs@6.5.2",
- "readme": "# qs [![Version Badge][2]][1]\n\n[![Build Status][3]][4]\n[![dependency status][5]][6]\n[![dev dependency status][7]][8]\n[![License][license-image]][license-url]\n[![Downloads][downloads-image]][downloads-url]\n\n[![npm badge][11]][1]\n\nA querystring parsing and stringifying library with some added security.\n\nLead Maintainer: [Jordan Harband](https://github.com/ljharb)\n\nThe **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring).\n\n## Usage\n\n```javascript\nvar qs = require('qs');\nvar assert = require('assert');\n\nvar obj = qs.parse('a=c');\nassert.deepEqual(obj, { a: 'c' });\n\nvar str = qs.stringify(obj);\nassert.equal(str, 'a=c');\n```\n\n### Parsing Objects\n\n[](#preventEval)\n```javascript\nqs.parse(string, [options]);\n```\n\n**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`.\nFor example, the string `'foo[bar]=baz'` converts to:\n\n```javascript\nassert.deepEqual(qs.parse('foo[bar]=baz'), {\n foo: {\n bar: 'baz'\n }\n});\n```\n\nWhen using the `plainObjects` option the parsed value is returned as a null object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like:\n\n```javascript\nvar nullObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true });\nassert.deepEqual(nullObject, { a: { hasOwnProperty: 'b' } });\n```\n\nBy default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option.\n\n```javascript\nvar protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true });\nassert.deepEqual(protoObject, { a: { hasOwnProperty: 'b' } });\n```\n\nURI encoded strings work too:\n\n```javascript\nassert.deepEqual(qs.parse('a%5Bb%5D=c'), {\n a: { b: 'c' }\n});\n```\n\nYou can also nest your objects, like `'foo[bar][baz]=foobarbaz'`:\n\n```javascript\nassert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), {\n foo: {\n bar: {\n baz: 'foobarbaz'\n }\n }\n});\n```\n\nBy default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like\n`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be:\n\n```javascript\nvar expected = {\n a: {\n b: {\n c: {\n d: {\n e: {\n f: {\n '[g][h][i]': 'j'\n }\n }\n }\n }\n }\n }\n};\nvar string = 'a[b][c][d][e][f][g][h][i]=j';\nassert.deepEqual(qs.parse(string), expected);\n```\n\nThis depth can be overridden by passing a `depth` option to `qs.parse(string, [options])`:\n\n```javascript\nvar deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 });\nassert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } });\n```\n\nThe depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number.\n\nFor similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option:\n\n```javascript\nvar limited = qs.parse('a=b&c=d', { parameterLimit: 1 });\nassert.deepEqual(limited, { a: 'b' });\n```\n\nTo bypass the leading question mark, use `ignoreQueryPrefix`:\n\n```javascript\nvar prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true });\nassert.deepEqual(prefixed, { a: 'b', c: 'd' });\n```\n\nAn optional delimiter can also be passed:\n\n```javascript\nvar delimited = qs.parse('a=b;c=d', { delimiter: ';' });\nassert.deepEqual(delimited, { a: 'b', c: 'd' });\n```\n\nDelimiters can be a regular expression too:\n\n```javascript\nvar regexed = qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ });\nassert.deepEqual(regexed, { a: 'b', c: 'd', e: 'f' });\n```\n\nOption `allowDots` can be used to enable dot notation:\n\n```javascript\nvar withDots = qs.parse('a.b=c', { allowDots: true });\nassert.deepEqual(withDots, { a: { b: 'c' } });\n```\n\n### Parsing Arrays\n\n**qs** can also parse arrays using a similar `[]` notation:\n\n```javascript\nvar withArray = qs.parse('a[]=b&a[]=c');\nassert.deepEqual(withArray, { a: ['b', 'c'] });\n```\n\nYou may specify an index as well:\n\n```javascript\nvar withIndexes = qs.parse('a[1]=c&a[0]=b');\nassert.deepEqual(withIndexes, { a: ['b', 'c'] });\n```\n\nNote that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number\nto create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving\ntheir order:\n\n```javascript\nvar noSparse = qs.parse('a[1]=b&a[15]=c');\nassert.deepEqual(noSparse, { a: ['b', 'c'] });\n```\n\nNote that an empty string is also a value, and will be preserved:\n\n```javascript\nvar withEmptyString = qs.parse('a[]=&a[]=b');\nassert.deepEqual(withEmptyString, { a: ['', 'b'] });\n\nvar withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c');\nassert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] });\n```\n\n**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will\ninstead be converted to an object with the index as the key:\n\n```javascript\nvar withMaxIndex = qs.parse('a[100]=b');\nassert.deepEqual(withMaxIndex, { a: { '100': 'b' } });\n```\n\nThis limit can be overridden by passing an `arrayLimit` option:\n\n```javascript\nvar withArrayLimit = qs.parse('a[1]=b', { arrayLimit: 0 });\nassert.deepEqual(withArrayLimit, { a: { '1': 'b' } });\n```\n\nTo disable array parsing entirely, set `parseArrays` to `false`.\n\n```javascript\nvar noParsingArrays = qs.parse('a[]=b', { parseArrays: false });\nassert.deepEqual(noParsingArrays, { a: { '0': 'b' } });\n```\n\nIf you mix notations, **qs** will merge the two items into an object:\n\n```javascript\nvar mixedNotation = qs.parse('a[0]=b&a[b]=c');\nassert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } });\n```\n\nYou can also create arrays of objects:\n\n```javascript\nvar arraysOfObjects = qs.parse('a[][b]=c');\nassert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] });\n```\n\n### Stringifying\n\n[](#preventEval)\n```javascript\nqs.stringify(object, [options]);\n```\n\nWhen stringifying, **qs** by default URI encodes output. Objects are stringified as you would expect:\n\n```javascript\nassert.equal(qs.stringify({ a: 'b' }), 'a=b');\nassert.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');\n```\n\nThis encoding can be disabled by setting the `encode` option to `false`:\n\n```javascript\nvar unencoded = qs.stringify({ a: { b: 'c' } }, { encode: false });\nassert.equal(unencoded, 'a[b]=c');\n```\n\nEncoding can be disabled for keys by setting the `encodeValuesOnly` option to `true`:\n```javascript\nvar encodedValues = qs.stringify(\n { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] },\n { encodeValuesOnly: true }\n);\nassert.equal(encodedValues,'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h');\n```\n\nThis encoding can also be replaced by a custom encoding method set as `encoder` option:\n\n```javascript\nvar encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str) {\n // Passed in values `a`, `b`, `c`\n return // Return encoded string\n}})\n```\n\n_(Note: the `encoder` option does not apply if `encode` is `false`)_\n\nAnalogue to the `encoder` there is a `decoder` option for `parse` to override decoding of properties and values:\n\n```javascript\nvar decoded = qs.parse('x=z', { decoder: function (str) {\n // Passed in values `x`, `z`\n return // Return decoded string\n}})\n```\n\nExamples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage.\n\nWhen arrays are stringified, by default they are given explicit indices:\n\n```javascript\nqs.stringify({ a: ['b', 'c', 'd'] });\n// 'a[0]=b&a[1]=c&a[2]=d'\n```\n\nYou may override this by setting the `indices` option to `false`:\n\n```javascript\nqs.stringify({ a: ['b', 'c', 'd'] }, { indices: false });\n// 'a=b&a=c&a=d'\n```\n\nYou may use the `arrayFormat` option to specify the format of the output array:\n\n```javascript\nqs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })\n// 'a[0]=b&a[1]=c'\nqs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })\n// 'a[]=b&a[]=c'\nqs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })\n// 'a=b&a=c'\n```\n\nWhen objects are stringified, by default they use bracket notation:\n\n```javascript\nqs.stringify({ a: { b: { c: 'd', e: 'f' } } });\n// 'a[b][c]=d&a[b][e]=f'\n```\n\nYou may override this to use dot notation by setting the `allowDots` option to `true`:\n\n```javascript\nqs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true });\n// 'a.b.c=d&a.b.e=f'\n```\n\nEmpty strings and null values will omit the value, but the equals sign (=) remains in place:\n\n```javascript\nassert.equal(qs.stringify({ a: '' }), 'a=');\n```\n\nKey with no values (such as an empty object or array) will return nothing:\n\n```javascript\nassert.equal(qs.stringify({ a: [] }), '');\nassert.equal(qs.stringify({ a: {} }), '');\nassert.equal(qs.stringify({ a: [{}] }), '');\nassert.equal(qs.stringify({ a: { b: []} }), '');\nassert.equal(qs.stringify({ a: { b: {}} }), '');\n```\n\nProperties that are set to `undefined` will be omitted entirely:\n\n```javascript\nassert.equal(qs.stringify({ a: null, b: undefined }), 'a=');\n```\n\nThe query string may optionally be prepended with a question mark:\n\n```javascript\nassert.equal(qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true }), '?a=b&c=d');\n```\n\nThe delimiter may be overridden with stringify as well:\n\n```javascript\nassert.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d');\n```\n\nIf you only want to override the serialization of `Date` objects, you can provide a `serializeDate` option:\n\n```javascript\nvar date = new Date(7);\nassert.equal(qs.stringify({ a: date }), 'a=1970-01-01T00:00:00.007Z'.replace(/:/g, '%3A'));\nassert.equal(\n qs.stringify({ a: date }, { serializeDate: function (d) { return d.getTime(); } }),\n 'a=7'\n);\n```\n\nYou may use the `sort` option to affect the order of parameter keys:\n\n```javascript\nfunction alphabeticalSort(a, b) {\n return a.localeCompare(b);\n}\nassert.equal(qs.stringify({ a: 'c', z: 'y', b : 'f' }, { sort: alphabeticalSort }), 'a=c&b=f&z=y');\n```\n\nFinally, you can use the `filter` option to restrict which keys will be included in the stringified output.\nIf you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you\npass an array, it will be used to select properties and array indices for stringification:\n\n```javascript\nfunction filterFunc(prefix, value) {\n if (prefix == 'b') {\n // Return an `undefined` value to omit a property.\n return;\n }\n if (prefix == 'e[f]') {\n return value.getTime();\n }\n if (prefix == 'e[g][0]') {\n return value * 2;\n }\n return value;\n}\nqs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc });\n// 'a=b&c=d&e[f]=123&e[g][0]=4'\nqs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] });\n// 'a=b&e=f'\nqs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] });\n// 'a[0]=b&a[2]=d'\n```\n\n### Handling of `null` values\n\nBy default, `null` values are treated like empty strings:\n\n```javascript\nvar withNull = qs.stringify({ a: null, b: '' });\nassert.equal(withNull, 'a=&b=');\n```\n\nParsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings.\n\n```javascript\nvar equalsInsensitive = qs.parse('a&b=');\nassert.deepEqual(equalsInsensitive, { a: '', b: '' });\n```\n\nTo distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null`\nvalues have no `=` sign:\n\n```javascript\nvar strictNull = qs.stringify({ a: null, b: '' }, { strictNullHandling: true });\nassert.equal(strictNull, 'a&b=');\n```\n\nTo parse values without `=` back to `null` use the `strictNullHandling` flag:\n\n```javascript\nvar parsedStrictNull = qs.parse('a&b=', { strictNullHandling: true });\nassert.deepEqual(parsedStrictNull, { a: null, b: '' });\n```\n\nTo completely skip rendering keys with `null` values, use the `skipNulls` flag:\n\n```javascript\nvar nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true });\nassert.equal(nullsSkipped, 'a=b');\n```\n\n### Dealing with special character sets\n\nBy default the encoding and decoding of characters is done in `utf-8`. If you\nwish to encode querystrings to a different character set (i.e.\n[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the\n[`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library:\n\n```javascript\nvar encoder = require('qs-iconv/encoder')('shift_jis');\nvar shiftJISEncoded = qs.stringify({ a: 'こんにちは!' }, { encoder: encoder });\nassert.equal(shiftJISEncoded, 'a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I');\n```\n\nThis also works for decoding of query strings:\n\n```javascript\nvar decoder = require('qs-iconv/decoder')('shift_jis');\nvar obj = qs.parse('a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I', { decoder: decoder });\nassert.deepEqual(obj, { a: 'こんにちは!' });\n```\n\n### RFC 3986 and RFC 1738 space encoding\n\nRFC3986 used as default option and encodes ' ' to *%20* which is backward compatible.\nIn the same time, output can be stringified as per RFC1738 with ' ' equal to '+'.\n\n```\nassert.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');\nassert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC3986' }), 'a=b%20c');\nassert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC1738' }), 'a=b+c');\n```\n\n[1]: https://npmjs.org/package/qs\n[2]: http://versionbadg.es/ljharb/qs.svg\n[3]: https://api.travis-ci.org/ljharb/qs.svg\n[4]: https://travis-ci.org/ljharb/qs\n[5]: https://david-dm.org/ljharb/qs.svg\n[6]: https://david-dm.org/ljharb/qs\n[7]: https://david-dm.org/ljharb/qs/dev-status.svg\n[8]: https://david-dm.org/ljharb/qs?type=dev\n[9]: https://ci.testling.com/ljharb/qs.png\n[10]: https://ci.testling.com/ljharb/qs\n[11]: https://nodei.co/npm/qs.png?downloads=true&stars=true\n[license-image]: http://img.shields.io/npm/l/qs.svg\n[license-url]: LICENSE\n[downloads-image]: http://img.shields.io/npm/dm/qs.svg\n[downloads-url]: http://npm-stat.com/charts.html?package=qs\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/ljharb/qs/issues"
- },
- "_id": "qs@6.5.2",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "qs@6.5.2",
- "name": "qs",
- "escapedName": "qs",
- "rawSpec": "6.5.2",
- "saveSpec": "[Circular]",
- "fetchSpec": "6.5.2"
- },
- "_spec": "6.5.2",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "qs@6.5.2",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/qs",
- "error": "[Circular]",
- "extraneous": false
- },
- "readable-stream": {
- "name": "readable-stream",
- "version": "2.3.6",
- "description": "Streams3, a user-land copy of the stream library from Node.js",
- "main": "readable.js",
- "dependencies": {
- "core-util-is": {
- "name": "core-util-is",
- "version": "1.0.2",
- "description": "The `util.is*` functions introduced in Node v0.12.",
- "main": "lib/util.js",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/core-util-is.git"
- },
- "keywords": [
- "util",
- "isBuffer",
- "isArray",
- "isNumber",
- "isString",
- "isRegExp",
- "isThis",
- "isThat",
- "polyfill"
- ],
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/isaacs/core-util-is/issues"
- },
- "scripts": {
- "test": "tap test.js"
- },
- "devDependencies": {
- "tap": "^2.3.0"
- },
- "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "_integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "_from": "core-util-is@1.0.2",
- "readme": "# core-util-is\n\nThe `util.is*` functions introduced in Node v0.12.\n",
- "readmeFilename": "README.md",
- "homepage": "https://github.com/isaacs/core-util-is#readme",
- "_id": "core-util-is@1.0.2",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "core-util-is@1.0.2",
- "name": "core-util-is",
- "escapedName": "core-util-is",
- "rawSpec": "1.0.2",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.0.2"
- },
- "_spec": "1.0.2",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "core-util-is@1.0.2",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/core-util-is",
- "error": "[Circular]",
- "extraneous": false
- },
- "inherits": {
- "name": "inherits",
- "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
- "version": "2.0.3",
- "keywords": [
- "inheritance",
- "class",
- "klass",
- "oop",
- "object-oriented",
- "inherits",
- "browser",
- "browserify"
- ],
- "main": "./inherits.js",
- "browser": "./inherits_browser.js",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/inherits.git"
- },
- "license": "ISC",
- "scripts": {
- "test": "node test"
- },
- "devDependencies": {
- "tap": "^7.1.0"
- },
- "files": [
- "inherits.js",
- "inherits_browser.js"
- ],
- "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "_from": "inherits@2.0.3",
- "readme": "Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom it.\n\nIt's recommended to use this package instead of\n`require('util').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require('inherits');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n superclass\n* new version overwrites current prototype while old one preserves any\n existing fields on it\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/isaacs/inherits/issues"
- },
- "homepage": "https://github.com/isaacs/inherits#readme",
- "_id": "inherits@2.0.3",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "inherits@2.0.3",
- "name": "inherits",
- "escapedName": "inherits",
- "rawSpec": "2.0.3",
- "saveSpec": "[Circular]",
- "fetchSpec": "2.0.3"
- },
- "_spec": "2.0.3",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "inherits@2.0.3",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/inherits",
- "error": "[Circular]",
- "extraneous": false
- },
- "isarray": {
- "name": "isarray",
- "description": "Array#isArray for older browsers",
- "version": "1.0.0",
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/isarray.git"
- },
- "homepage": "https://github.com/juliangruber/isarray",
- "main": "index.js",
- "dependencies": {},
- "devDependencies": {
- "tape": "~2.13.4"
- },
- "keywords": [
- "browser",
- "isarray",
- "array"
- ],
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "license": "MIT",
- "testling": {
- "files": "test.js",
- "browsers": [
- "ie/8..latest",
- "firefox/17..latest",
- "firefox/nightly",
- "chrome/22..latest",
- "chrome/canary",
- "opera/12..latest",
- "opera/next",
- "safari/5.1..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2..latest"
- ]
- },
- "scripts": {
- "test": "tape test.js"
- },
- "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "_integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "_from": "isarray@1.0.0",
- "readme": "\n# isarray\n\n`Array#isArray` for older browsers.\n\n[](http://travis-ci.org/juliangruber/isarray)\n[](https://www.npmjs.org/package/isarray)\n\n[\n](https://ci.testling.com/juliangruber/isarray)\n\n## Usage\n\n```js\nvar isArray = require('isarray');\n\nconsole.log(isArray([])); // => true\nconsole.log(isArray({})); // => false\n```\n\n## Installation\n\nWith [npm](http://npmjs.org) do\n\n```bash\n$ npm install isarray\n```\n\nThen bundle for the browser with\n[browserify](https://github.com/substack/browserify).\n\nWith [component](http://component.io) do\n\n```bash\n$ component install juliangruber/isarray\n```\n\n## License\n\n(MIT)\n\nCopyright (c) 2013 Julian Gruber <julian@juliangruber.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/juliangruber/isarray/issues"
- },
- "_id": "isarray@1.0.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "isarray@1.0.0",
- "name": "isarray",
- "escapedName": "isarray",
- "rawSpec": "1.0.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.0.0"
- },
- "_spec": "1.0.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "isarray@1.0.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/isarray",
- "error": "[Circular]",
- "extraneous": false
- },
- "process-nextick-args": {
- "name": "process-nextick-args",
- "version": "2.0.0",
- "description": "process.nextTick but always with args",
- "main": "index.js",
- "files": [
- "index.js"
- ],
- "scripts": {
- "test": "node test.js"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git"
- },
- "author": "",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/calvinmetcalf/process-nextick-args/issues"
- },
- "homepage": "https://github.com/calvinmetcalf/process-nextick-args",
- "devDependencies": {
- "tap": "~0.2.6"
- },
- "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
- "_integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
- "_from": "process-nextick-args@2.0.0",
- "readme": "process-nextick-args\n=====\n\n[](https://travis-ci.org/calvinmetcalf/process-nextick-args)\n\n```bash\nnpm install --save process-nextick-args\n```\n\nAlways be able to pass arguments to process.nextTick, no matter the platform\n\n```js\nvar pna = require('process-nextick-args');\n\npna.nextTick(function (a, b, c) {\n console.log(a, b, c);\n}, 'step', 3, 'profit');\n```\n",
- "readmeFilename": "readme.md",
- "_id": "process-nextick-args@2.0.0",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "process-nextick-args@2.0.0",
- "name": "process-nextick-args",
- "escapedName": "process-nextick-args",
- "rawSpec": "2.0.0",
- "saveSpec": "[Circular]",
- "fetchSpec": "2.0.0"
- },
- "_spec": "2.0.0",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "process-nextick-args@2.0.0",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/process-nextick-args",
- "error": "[Circular]",
- "extraneous": false
- },
- "safe-buffer": {
- "name": "safe-buffer",
- "description": "Safer Node.js Buffer API",
- "version": "5.1.2",
- "author": {
- "name": "Feross Aboukhadijeh",
- "email": "feross@feross.org",
- "url": "http://feross.org"
- },
- "bugs": {
- "url": "https://github.com/feross/safe-buffer/issues"
- },
- "devDependencies": {
- "standard": "*",
- "tape": "^4.0.0"
- },
- "homepage": "https://github.com/feross/safe-buffer",
- "keywords": [
- "buffer",
- "buffer allocate",
- "node security",
- "safe",
- "safe-buffer",
- "security",
- "uninitialized"
- ],
- "license": "MIT",
- "main": "index.js",
- "types": "index.d.ts",
- "repository": {
- "type": "git",
- "url": "git://github.com/feross/safe-buffer.git"
- },
- "scripts": {
- "test": "standard && tape test/*.js"
- },
- "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "_from": "safe-buffer@5.1.2",
- "readme": "# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]\n\n[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg\n[travis-url]: https://travis-ci.org/feross/safe-buffer\n[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg\n[npm-url]: https://npmjs.org/package/safe-buffer\n[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg\n[downloads-url]: https://npmjs.org/package/safe-buffer\n[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg\n[standard-url]: https://standardjs.com\n\n#### Safer Node.js Buffer API\n\n**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`,\n`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.**\n\n**Uses the built-in implementation when available.**\n\n## install\n\n```\nnpm install safe-buffer\n```\n\n## usage\n\nThe goal of this package is to provide a safe replacement for the node.js `Buffer`.\n\nIt's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to\nthe top of your node.js modules:\n\n```js\nvar Buffer = require('safe-buffer').Buffer\n\n// Existing buffer code will continue to work without issues:\n\nnew Buffer('hey', 'utf8')\nnew Buffer([1, 2, 3], 'utf8')\nnew Buffer(obj)\nnew Buffer(16) // create an uninitialized buffer (potentially unsafe)\n\n// But you can use these new explicit APIs to make clear what you want:\n\nBuffer.from('hey', 'utf8') // convert from many types to a Buffer\nBuffer.alloc(16) // create a zero-filled buffer (safe)\nBuffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe)\n```\n\n## api\n\n### Class Method: Buffer.from(array)\n\n\n* `array` {Array}\n\nAllocates a new `Buffer` using an `array` of octets.\n\n```js\nconst buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]);\n // creates a new Buffer containing ASCII bytes\n // ['b','u','f','f','e','r']\n```\n\nA `TypeError` will be thrown if `array` is not an `Array`.\n\n### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]])\n\n\n* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or\n a `new ArrayBuffer()`\n* `byteOffset` {Number} Default: `0`\n* `length` {Number} Default: `arrayBuffer.length - byteOffset`\n\nWhen passed a reference to the `.buffer` property of a `TypedArray` instance,\nthe newly created `Buffer` will share the same allocated memory as the\nTypedArray.\n\n```js\nconst arr = new Uint16Array(2);\narr[0] = 5000;\narr[1] = 4000;\n\nconst buf = Buffer.from(arr.buffer); // shares the memory with arr;\n\nconsole.log(buf);\n // Prints: \n\n// changing the TypedArray changes the Buffer also\narr[1] = 6000;\n\nconsole.log(buf);\n // Prints: \n```\n\nThe optional `byteOffset` and `length` arguments specify a memory range within\nthe `arrayBuffer` that will be shared by the `Buffer`.\n\n```js\nconst ab = new ArrayBuffer(10);\nconst buf = Buffer.from(ab, 0, 2);\nconsole.log(buf.length);\n // Prints: 2\n```\n\nA `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`.\n\n### Class Method: Buffer.from(buffer)\n\n\n* `buffer` {Buffer}\n\nCopies the passed `buffer` data onto a new `Buffer` instance.\n\n```js\nconst buf1 = Buffer.from('buffer');\nconst buf2 = Buffer.from(buf1);\n\nbuf1[0] = 0x61;\nconsole.log(buf1.toString());\n // 'auffer'\nconsole.log(buf2.toString());\n // 'buffer' (copy is not changed)\n```\n\nA `TypeError` will be thrown if `buffer` is not a `Buffer`.\n\n### Class Method: Buffer.from(str[, encoding])\n\n\n* `str` {String} String to encode.\n* `encoding` {String} Encoding to use, Default: `'utf8'`\n\nCreates a new `Buffer` containing the given JavaScript string `str`. If\nprovided, the `encoding` parameter identifies the character encoding.\nIf not provided, `encoding` defaults to `'utf8'`.\n\n```js\nconst buf1 = Buffer.from('this is a tést');\nconsole.log(buf1.toString());\n // prints: this is a tést\nconsole.log(buf1.toString('ascii'));\n // prints: this is a tC)st\n\nconst buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex');\nconsole.log(buf2.toString());\n // prints: this is a tést\n```\n\nA `TypeError` will be thrown if `str` is not a string.\n\n### Class Method: Buffer.alloc(size[, fill[, encoding]])\n\n\n* `size` {Number}\n* `fill` {Value} Default: `undefined`\n* `encoding` {String} Default: `utf8`\n\nAllocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the\n`Buffer` will be *zero-filled*.\n\n```js\nconst buf = Buffer.alloc(5);\nconsole.log(buf);\n // \n```\n\nThe `size` must be less than or equal to the value of\n`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is\n`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will\nbe created if a `size` less than or equal to 0 is specified.\n\nIf `fill` is specified, the allocated `Buffer` will be initialized by calling\n`buf.fill(fill)`. See [`buf.fill()`][] for more information.\n\n```js\nconst buf = Buffer.alloc(5, 'a');\nconsole.log(buf);\n // \n```\n\nIf both `fill` and `encoding` are specified, the allocated `Buffer` will be\ninitialized by calling `buf.fill(fill, encoding)`. For example:\n\n```js\nconst buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');\nconsole.log(buf);\n // \n```\n\nCalling `Buffer.alloc(size)` can be significantly slower than the alternative\n`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance\ncontents will *never contain sensitive data*.\n\nA `TypeError` will be thrown if `size` is not a number.\n\n### Class Method: Buffer.allocUnsafe(size)\n\n\n* `size` {Number}\n\nAllocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must\nbe less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit\narchitectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is\nthrown. A zero-length Buffer will be created if a `size` less than or equal to\n0 is specified.\n\nThe underlying memory for `Buffer` instances created in this way is *not\ninitialized*. The contents of the newly created `Buffer` are unknown and\n*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such\n`Buffer` instances to zeroes.\n\n```js\nconst buf = Buffer.allocUnsafe(5);\nconsole.log(buf);\n // \n // (octets will be different, every time)\nbuf.fill(0);\nconsole.log(buf);\n // \n```\n\nA `TypeError` will be thrown if `size` is not a number.\n\nNote that the `Buffer` module pre-allocates an internal `Buffer` instance of\nsize `Buffer.poolSize` that is used as a pool for the fast allocation of new\n`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated\n`new Buffer(size)` constructor) only when `size` is less than or equal to\n`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default\nvalue of `Buffer.poolSize` is `8192` but can be modified.\n\nUse of this pre-allocated internal memory pool is a key difference between\ncalling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`.\nSpecifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer\npool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal\nBuffer pool if `size` is less than or equal to half `Buffer.poolSize`. The\ndifference is subtle but can be important when an application requires the\nadditional performance that `Buffer.allocUnsafe(size)` provides.\n\n### Class Method: Buffer.allocUnsafeSlow(size)\n\n\n* `size` {Number}\n\nAllocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The\n`size` must be less than or equal to the value of\n`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is\n`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will\nbe created if a `size` less than or equal to 0 is specified.\n\nThe underlying memory for `Buffer` instances created in this way is *not\ninitialized*. The contents of the newly created `Buffer` are unknown and\n*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such\n`Buffer` instances to zeroes.\n\nWhen using `Buffer.allocUnsafe()` to allocate new `Buffer` instances,\nallocations under 4KB are, by default, sliced from a single pre-allocated\n`Buffer`. This allows applications to avoid the garbage collection overhead of\ncreating many individually allocated Buffers. This approach improves both\nperformance and memory usage by eliminating the need to track and cleanup as\nmany `Persistent` objects.\n\nHowever, in the case where a developer may need to retain a small chunk of\nmemory from a pool for an indeterminate amount of time, it may be appropriate\nto create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then\ncopy out the relevant bits.\n\n```js\n// need to keep around a few small chunks of memory\nconst store = [];\n\nsocket.on('readable', () => {\n const data = socket.read();\n // allocate for retained data\n const sb = Buffer.allocUnsafeSlow(10);\n // copy the data into the new allocation\n data.copy(sb, 0, 0, 10);\n store.push(sb);\n});\n```\n\nUse of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after*\na developer has observed undue memory retention in their applications.\n\nA `TypeError` will be thrown if `size` is not a number.\n\n### All the Rest\n\nThe rest of the `Buffer` API is exactly the same as in node.js.\n[See the docs](https://nodejs.org/api/buffer.html).\n\n\n## Related links\n\n- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660)\n- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4)\n\n## Why is `Buffer` unsafe?\n\nToday, the node.js `Buffer` constructor is overloaded to handle many different argument\ntypes like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.),\n`ArrayBuffer`, and also `Number`.\n\nThe API is optimized for convenience: you can throw any type at it, and it will try to do\nwhat you want.\n\nBecause the Buffer constructor is so powerful, you often see code like this:\n\n```js\n// Convert UTF-8 strings to hex\nfunction toHex (str) {\n return new Buffer(str).toString('hex')\n}\n```\n\n***But what happens if `toHex` is called with a `Number` argument?***\n\n### Remote Memory Disclosure\n\nIf an attacker can make your program call the `Buffer` constructor with a `Number`\nargument, then they can make it allocate uninitialized memory from the node.js process.\nThis could potentially disclose TLS private keys, user data, or database passwords.\n\nWhen the `Buffer` constructor is passed a `Number` argument, it returns an\n**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like\nthis, you **MUST** overwrite the contents before returning it to the user.\n\nFrom the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size):\n\n> `new Buffer(size)`\n>\n> - `size` Number\n>\n> The underlying memory for `Buffer` instances created in this way is not initialized.\n> **The contents of a newly created `Buffer` are unknown and could contain sensitive\n> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes.\n\n(Emphasis our own.)\n\nWhenever the programmer intended to create an uninitialized `Buffer` you often see code\nlike this:\n\n```js\nvar buf = new Buffer(16)\n\n// Immediately overwrite the uninitialized buffer with data from another buffer\nfor (var i = 0; i < buf.length; i++) {\n buf[i] = otherBuf[i]\n}\n```\n\n\n### Would this ever be a problem in real code?\n\nYes. It's surprisingly common to forget to check the type of your variables in a\ndynamically-typed language like JavaScript.\n\nUsually the consequences of assuming the wrong type is that your program crashes with an\nuncaught exception. But the failure mode for forgetting to check the type of arguments to\nthe `Buffer` constructor is more catastrophic.\n\nHere's an example of a vulnerable service that takes a JSON payload and converts it to\nhex:\n\n```js\n// Take a JSON payload {str: \"some string\"} and convert it to hex\nvar server = http.createServer(function (req, res) {\n var data = ''\n req.setEncoding('utf8')\n req.on('data', function (chunk) {\n data += chunk\n })\n req.on('end', function () {\n var body = JSON.parse(data)\n res.end(new Buffer(body.str).toString('hex'))\n })\n})\n\nserver.listen(8080)\n```\n\nIn this example, an http client just has to send:\n\n```json\n{\n \"str\": 1000\n}\n```\n\nand it will get back 1,000 bytes of uninitialized memory from the server.\n\nThis is a very serious bug. It's similar in severity to the\n[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process\nmemory by remote attackers.\n\n\n### Which real-world packages were vulnerable?\n\n#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht)\n\n[Mathias Buus](https://github.com/mafintosh) and I\n([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages,\n[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow\nanyone on the internet to send a series of messages to a user of `bittorrent-dht` and get\nthem to reveal 20 bytes at a time of uninitialized memory from the node.js process.\n\nHere's\n[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8)\nthat fixed it. We released a new fixed version, created a\n[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all\nvulnerable versions on npm so users will get a warning to upgrade to a newer version.\n\n#### [`ws`](https://www.npmjs.com/package/ws)\n\nThat got us wondering if there were other vulnerable packages. Sure enough, within a short\nperiod of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the\nmost popular WebSocket implementation in node.js.\n\nIf certain APIs were called with `Number` parameters instead of `String` or `Buffer` as\nexpected, then uninitialized server memory would be disclosed to the remote peer.\n\nThese were the vulnerable methods:\n\n```js\nsocket.send(number)\nsocket.ping(number)\nsocket.pong(number)\n```\n\nHere's a vulnerable socket server with some echo functionality:\n\n```js\nserver.on('connection', function (socket) {\n socket.on('message', function (message) {\n message = JSON.parse(message)\n if (message.type === 'echo') {\n socket.send(message.data) // send back the user's message\n }\n })\n})\n```\n\n`socket.send(number)` called on the server, will disclose server memory.\n\nHere's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue\nwas fixed, with a more detailed explanation. Props to\n[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the\n[Node Security Project disclosure](https://nodesecurity.io/advisories/67).\n\n\n### What's the solution?\n\nIt's important that node.js offers a fast way to get memory otherwise performance-critical\napplications would needlessly get a lot slower.\n\nBut we need a better way to *signal our intent* as programmers. **When we want\nuninitialized memory, we should request it explicitly.**\n\nSensitive functionality should not be packed into a developer-friendly API that loosely\naccepts many different types. This type of API encourages the lazy practice of passing\nvariables in without checking the type very carefully.\n\n#### A new API: `Buffer.allocUnsafe(number)`\n\nThe functionality of creating buffers with uninitialized memory should be part of another\nAPI. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that\nfrequently gets user input of all sorts of different types passed into it.\n\n```js\nvar buf = Buffer.allocUnsafe(16) // careful, uninitialized memory!\n\n// Immediately overwrite the uninitialized buffer with data from another buffer\nfor (var i = 0; i < buf.length; i++) {\n buf[i] = otherBuf[i]\n}\n```\n\n\n### How do we fix node.js core?\n\nWe sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as\n`semver-major`) which defends against one case:\n\n```js\nvar str = 16\nnew Buffer(str, 'utf8')\n```\n\nIn this situation, it's implied that the programmer intended the first argument to be a\nstring, since they passed an encoding as a second argument. Today, node.js will allocate\nuninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not\nwhat the programmer intended.\n\nBut this is only a partial solution, since if the programmer does `new Buffer(variable)`\n(without an `encoding` parameter) there's no way to know what they intended. If `variable`\nis sometimes a number, then uninitialized memory will sometimes be returned.\n\n### What's the real long-term fix?\n\nWe could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when\nwe need uninitialized memory. But that would break 1000s of packages.\n\n~~We believe the best solution is to:~~\n\n~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~\n\n~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~\n\n#### Update\n\nWe now support adding three new APIs:\n\n- `Buffer.from(value)` - convert from any type to a buffer\n- `Buffer.alloc(size)` - create a zero-filled buffer\n- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size\n\nThis solves the core problem that affected `ws` and `bittorrent-dht` which is\n`Buffer(variable)` getting tricked into taking a number argument.\n\nThis way, existing code continues working and the impact on the npm ecosystem will be\nminimal. Over time, npm maintainers can migrate performance-critical code to use\n`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`.\n\n\n### Conclusion\n\nWe think there's a serious design issue with the `Buffer` API as it exists today. It\npromotes insecure software by putting high-risk functionality into a convenient API\nwith friendly \"developer ergonomics\".\n\nThis wasn't merely a theoretical exercise because we found the issue in some of the\nmost popular npm packages.\n\nFortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of\n`buffer`.\n\n```js\nvar Buffer = require('safe-buffer').Buffer\n```\n\nEventually, we hope that node.js core can switch to this new, safer behavior. We believe\nthe impact on the ecosystem would be minimal since it's not a breaking change.\nWell-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while\nolder, insecure packages would magically become safe from this attack vector.\n\n\n## links\n\n- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514)\n- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67)\n- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68)\n\n\n## credit\n\nThe original issues in `bittorrent-dht`\n([disclosure](https://nodesecurity.io/advisories/68)) and\n`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by\n[Mathias Buus](https://github.com/mafintosh) and\n[Feross Aboukhadijeh](http://feross.org/).\n\nThanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues\nand for his work running the [Node Security Project](https://nodesecurity.io/).\n\nThanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and\nauditing the code.\n\n\n## license\n\nMIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org)\n",
- "readmeFilename": "README.md",
- "_id": "safe-buffer@5.1.2",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "safe-buffer@5.1.2",
- "name": "safe-buffer",
- "escapedName": "safe-buffer",
- "rawSpec": "5.1.2",
- "saveSpec": "[Circular]",
- "fetchSpec": "5.1.2"
- },
- "_spec": "5.1.2",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "safe-buffer@5.1.2",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/safe-buffer",
- "error": "[Circular]",
- "extraneous": false
- },
- "string_decoder": {
- "name": "string_decoder",
- "version": "1.1.1",
- "description": "The string_decoder module from Node core",
- "main": "lib/string_decoder.js",
- "dependencies": {
- "safe-buffer": {
- "name": "safe-buffer",
- "description": "Safer Node.js Buffer API",
- "version": "5.1.2",
- "author": "[Circular]",
- "bugs": "[Circular]",
- "devDependencies": "[Circular]",
- "homepage": "https://github.com/feross/safe-buffer",
- "keywords": "[Circular]",
- "license": "MIT",
- "main": "index.js",
- "types": "index.d.ts",
- "repository": "[Circular]",
- "scripts": "[Circular]",
- "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "_from": "safe-buffer@5.1.2",
- "readme": "# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]\n\n[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg\n[travis-url]: https://travis-ci.org/feross/safe-buffer\n[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg\n[npm-url]: https://npmjs.org/package/safe-buffer\n[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg\n[downloads-url]: https://npmjs.org/package/safe-buffer\n[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg\n[standard-url]: https://standardjs.com\n\n#### Safer Node.js Buffer API\n\n**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`,\n`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.**\n\n**Uses the built-in implementation when available.**\n\n## install\n\n```\nnpm install safe-buffer\n```\n\n## usage\n\nThe goal of this package is to provide a safe replacement for the node.js `Buffer`.\n\nIt's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to\nthe top of your node.js modules:\n\n```js\nvar Buffer = require('safe-buffer').Buffer\n\n// Existing buffer code will continue to work without issues:\n\nnew Buffer('hey', 'utf8')\nnew Buffer([1, 2, 3], 'utf8')\nnew Buffer(obj)\nnew Buffer(16) // create an uninitialized buffer (potentially unsafe)\n\n// But you can use these new explicit APIs to make clear what you want:\n\nBuffer.from('hey', 'utf8') // convert from many types to a Buffer\nBuffer.alloc(16) // create a zero-filled buffer (safe)\nBuffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe)\n```\n\n## api\n\n### Class Method: Buffer.from(array)\n\n\n* `array` {Array}\n\nAllocates a new `Buffer` using an `array` of octets.\n\n```js\nconst buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]);\n // creates a new Buffer containing ASCII bytes\n // ['b','u','f','f','e','r']\n```\n\nA `TypeError` will be thrown if `array` is not an `Array`.\n\n### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]])\n\n\n* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or\n a `new ArrayBuffer()`\n* `byteOffset` {Number} Default: `0`\n* `length` {Number} Default: `arrayBuffer.length - byteOffset`\n\nWhen passed a reference to the `.buffer` property of a `TypedArray` instance,\nthe newly created `Buffer` will share the same allocated memory as the\nTypedArray.\n\n```js\nconst arr = new Uint16Array(2);\narr[0] = 5000;\narr[1] = 4000;\n\nconst buf = Buffer.from(arr.buffer); // shares the memory with arr;\n\nconsole.log(buf);\n // Prints: \n\n// changing the TypedArray changes the Buffer also\narr[1] = 6000;\n\nconsole.log(buf);\n // Prints: \n```\n\nThe optional `byteOffset` and `length` arguments specify a memory range within\nthe `arrayBuffer` that will be shared by the `Buffer`.\n\n```js\nconst ab = new ArrayBuffer(10);\nconst buf = Buffer.from(ab, 0, 2);\nconsole.log(buf.length);\n // Prints: 2\n```\n\nA `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`.\n\n### Class Method: Buffer.from(buffer)\n\n\n* `buffer` {Buffer}\n\nCopies the passed `buffer` data onto a new `Buffer` instance.\n\n```js\nconst buf1 = Buffer.from('buffer');\nconst buf2 = Buffer.from(buf1);\n\nbuf1[0] = 0x61;\nconsole.log(buf1.toString());\n // 'auffer'\nconsole.log(buf2.toString());\n // 'buffer' (copy is not changed)\n```\n\nA `TypeError` will be thrown if `buffer` is not a `Buffer`.\n\n### Class Method: Buffer.from(str[, encoding])\n\n\n* `str` {String} String to encode.\n* `encoding` {String} Encoding to use, Default: `'utf8'`\n\nCreates a new `Buffer` containing the given JavaScript string `str`. If\nprovided, the `encoding` parameter identifies the character encoding.\nIf not provided, `encoding` defaults to `'utf8'`.\n\n```js\nconst buf1 = Buffer.from('this is a tést');\nconsole.log(buf1.toString());\n // prints: this is a tést\nconsole.log(buf1.toString('ascii'));\n // prints: this is a tC)st\n\nconst buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex');\nconsole.log(buf2.toString());\n // prints: this is a tést\n```\n\nA `TypeError` will be thrown if `str` is not a string.\n\n### Class Method: Buffer.alloc(size[, fill[, encoding]])\n\n\n* `size` {Number}\n* `fill` {Value} Default: `undefined`\n* `encoding` {String} Default: `utf8`\n\nAllocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the\n`Buffer` will be *zero-filled*.\n\n```js\nconst buf = Buffer.alloc(5);\nconsole.log(buf);\n // \n```\n\nThe `size` must be less than or equal to the value of\n`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is\n`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will\nbe created if a `size` less than or equal to 0 is specified.\n\nIf `fill` is specified, the allocated `Buffer` will be initialized by calling\n`buf.fill(fill)`. See [`buf.fill()`][] for more information.\n\n```js\nconst buf = Buffer.alloc(5, 'a');\nconsole.log(buf);\n // \n```\n\nIf both `fill` and `encoding` are specified, the allocated `Buffer` will be\ninitialized by calling `buf.fill(fill, encoding)`. For example:\n\n```js\nconst buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');\nconsole.log(buf);\n // \n```\n\nCalling `Buffer.alloc(size)` can be significantly slower than the alternative\n`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance\ncontents will *never contain sensitive data*.\n\nA `TypeError` will be thrown if `size` is not a number.\n\n### Class Method: Buffer.allocUnsafe(size)\n\n\n* `size` {Number}\n\nAllocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must\nbe less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit\narchitectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is\nthrown. A zero-length Buffer will be created if a `size` less than or equal to\n0 is specified.\n\nThe underlying memory for `Buffer` instances created in this way is *not\ninitialized*. The contents of the newly created `Buffer` are unknown and\n*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such\n`Buffer` instances to zeroes.\n\n```js\nconst buf = Buffer.allocUnsafe(5);\nconsole.log(buf);\n // \n // (octets will be different, every time)\nbuf.fill(0);\nconsole.log(buf);\n // \n```\n\nA `TypeError` will be thrown if `size` is not a number.\n\nNote that the `Buffer` module pre-allocates an internal `Buffer` instance of\nsize `Buffer.poolSize` that is used as a pool for the fast allocation of new\n`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated\n`new Buffer(size)` constructor) only when `size` is less than or equal to\n`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default\nvalue of `Buffer.poolSize` is `8192` but can be modified.\n\nUse of this pre-allocated internal memory pool is a key difference between\ncalling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`.\nSpecifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer\npool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal\nBuffer pool if `size` is less than or equal to half `Buffer.poolSize`. The\ndifference is subtle but can be important when an application requires the\nadditional performance that `Buffer.allocUnsafe(size)` provides.\n\n### Class Method: Buffer.allocUnsafeSlow(size)\n\n\n* `size` {Number}\n\nAllocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The\n`size` must be less than or equal to the value of\n`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is\n`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will\nbe created if a `size` less than or equal to 0 is specified.\n\nThe underlying memory for `Buffer` instances created in this way is *not\ninitialized*. The contents of the newly created `Buffer` are unknown and\n*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such\n`Buffer` instances to zeroes.\n\nWhen using `Buffer.allocUnsafe()` to allocate new `Buffer` instances,\nallocations under 4KB are, by default, sliced from a single pre-allocated\n`Buffer`. This allows applications to avoid the garbage collection overhead of\ncreating many individually allocated Buffers. This approach improves both\nperformance and memory usage by eliminating the need to track and cleanup as\nmany `Persistent` objects.\n\nHowever, in the case where a developer may need to retain a small chunk of\nmemory from a pool for an indeterminate amount of time, it may be appropriate\nto create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then\ncopy out the relevant bits.\n\n```js\n// need to keep around a few small chunks of memory\nconst store = [];\n\nsocket.on('readable', () => {\n const data = socket.read();\n // allocate for retained data\n const sb = Buffer.allocUnsafeSlow(10);\n // copy the data into the new allocation\n data.copy(sb, 0, 0, 10);\n store.push(sb);\n});\n```\n\nUse of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after*\na developer has observed undue memory retention in their applications.\n\nA `TypeError` will be thrown if `size` is not a number.\n\n### All the Rest\n\nThe rest of the `Buffer` API is exactly the same as in node.js.\n[See the docs](https://nodejs.org/api/buffer.html).\n\n\n## Related links\n\n- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660)\n- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4)\n\n## Why is `Buffer` unsafe?\n\nToday, the node.js `Buffer` constructor is overloaded to handle many different argument\ntypes like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.),\n`ArrayBuffer`, and also `Number`.\n\nThe API is optimized for convenience: you can throw any type at it, and it will try to do\nwhat you want.\n\nBecause the Buffer constructor is so powerful, you often see code like this:\n\n```js\n// Convert UTF-8 strings to hex\nfunction toHex (str) {\n return new Buffer(str).toString('hex')\n}\n```\n\n***But what happens if `toHex` is called with a `Number` argument?***\n\n### Remote Memory Disclosure\n\nIf an attacker can make your program call the `Buffer` constructor with a `Number`\nargument, then they can make it allocate uninitialized memory from the node.js process.\nThis could potentially disclose TLS private keys, user data, or database passwords.\n\nWhen the `Buffer` constructor is passed a `Number` argument, it returns an\n**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like\nthis, you **MUST** overwrite the contents before returning it to the user.\n\nFrom the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size):\n\n> `new Buffer(size)`\n>\n> - `size` Number\n>\n> The underlying memory for `Buffer` instances created in this way is not initialized.\n> **The contents of a newly created `Buffer` are unknown and could contain sensitive\n> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes.\n\n(Emphasis our own.)\n\nWhenever the programmer intended to create an uninitialized `Buffer` you often see code\nlike this:\n\n```js\nvar buf = new Buffer(16)\n\n// Immediately overwrite the uninitialized buffer with data from another buffer\nfor (var i = 0; i < buf.length; i++) {\n buf[i] = otherBuf[i]\n}\n```\n\n\n### Would this ever be a problem in real code?\n\nYes. It's surprisingly common to forget to check the type of your variables in a\ndynamically-typed language like JavaScript.\n\nUsually the consequences of assuming the wrong type is that your program crashes with an\nuncaught exception. But the failure mode for forgetting to check the type of arguments to\nthe `Buffer` constructor is more catastrophic.\n\nHere's an example of a vulnerable service that takes a JSON payload and converts it to\nhex:\n\n```js\n// Take a JSON payload {str: \"some string\"} and convert it to hex\nvar server = http.createServer(function (req, res) {\n var data = ''\n req.setEncoding('utf8')\n req.on('data', function (chunk) {\n data += chunk\n })\n req.on('end', function () {\n var body = JSON.parse(data)\n res.end(new Buffer(body.str).toString('hex'))\n })\n})\n\nserver.listen(8080)\n```\n\nIn this example, an http client just has to send:\n\n```json\n{\n \"str\": 1000\n}\n```\n\nand it will get back 1,000 bytes of uninitialized memory from the server.\n\nThis is a very serious bug. It's similar in severity to the\n[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process\nmemory by remote attackers.\n\n\n### Which real-world packages were vulnerable?\n\n#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht)\n\n[Mathias Buus](https://github.com/mafintosh) and I\n([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages,\n[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow\nanyone on the internet to send a series of messages to a user of `bittorrent-dht` and get\nthem to reveal 20 bytes at a time of uninitialized memory from the node.js process.\n\nHere's\n[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8)\nthat fixed it. We released a new fixed version, created a\n[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all\nvulnerable versions on npm so users will get a warning to upgrade to a newer version.\n\n#### [`ws`](https://www.npmjs.com/package/ws)\n\nThat got us wondering if there were other vulnerable packages. Sure enough, within a short\nperiod of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the\nmost popular WebSocket implementation in node.js.\n\nIf certain APIs were called with `Number` parameters instead of `String` or `Buffer` as\nexpected, then uninitialized server memory would be disclosed to the remote peer.\n\nThese were the vulnerable methods:\n\n```js\nsocket.send(number)\nsocket.ping(number)\nsocket.pong(number)\n```\n\nHere's a vulnerable socket server with some echo functionality:\n\n```js\nserver.on('connection', function (socket) {\n socket.on('message', function (message) {\n message = JSON.parse(message)\n if (message.type === 'echo') {\n socket.send(message.data) // send back the user's message\n }\n })\n})\n```\n\n`socket.send(number)` called on the server, will disclose server memory.\n\nHere's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue\nwas fixed, with a more detailed explanation. Props to\n[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the\n[Node Security Project disclosure](https://nodesecurity.io/advisories/67).\n\n\n### What's the solution?\n\nIt's important that node.js offers a fast way to get memory otherwise performance-critical\napplications would needlessly get a lot slower.\n\nBut we need a better way to *signal our intent* as programmers. **When we want\nuninitialized memory, we should request it explicitly.**\n\nSensitive functionality should not be packed into a developer-friendly API that loosely\naccepts many different types. This type of API encourages the lazy practice of passing\nvariables in without checking the type very carefully.\n\n#### A new API: `Buffer.allocUnsafe(number)`\n\nThe functionality of creating buffers with uninitialized memory should be part of another\nAPI. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that\nfrequently gets user input of all sorts of different types passed into it.\n\n```js\nvar buf = Buffer.allocUnsafe(16) // careful, uninitialized memory!\n\n// Immediately overwrite the uninitialized buffer with data from another buffer\nfor (var i = 0; i < buf.length; i++) {\n buf[i] = otherBuf[i]\n}\n```\n\n\n### How do we fix node.js core?\n\nWe sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as\n`semver-major`) which defends against one case:\n\n```js\nvar str = 16\nnew Buffer(str, 'utf8')\n```\n\nIn this situation, it's implied that the programmer intended the first argument to be a\nstring, since they passed an encoding as a second argument. Today, node.js will allocate\nuninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not\nwhat the programmer intended.\n\nBut this is only a partial solution, since if the programmer does `new Buffer(variable)`\n(without an `encoding` parameter) there's no way to know what they intended. If `variable`\nis sometimes a number, then uninitialized memory will sometimes be returned.\n\n### What's the real long-term fix?\n\nWe could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when\nwe need uninitialized memory. But that would break 1000s of packages.\n\n~~We believe the best solution is to:~~\n\n~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~\n\n~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~\n\n#### Update\n\nWe now support adding three new APIs:\n\n- `Buffer.from(value)` - convert from any type to a buffer\n- `Buffer.alloc(size)` - create a zero-filled buffer\n- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size\n\nThis solves the core problem that affected `ws` and `bittorrent-dht` which is\n`Buffer(variable)` getting tricked into taking a number argument.\n\nThis way, existing code continues working and the impact on the npm ecosystem will be\nminimal. Over time, npm maintainers can migrate performance-critical code to use\n`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`.\n\n\n### Conclusion\n\nWe think there's a serious design issue with the `Buffer` API as it exists today. It\npromotes insecure software by putting high-risk functionality into a convenient API\nwith friendly \"developer ergonomics\".\n\nThis wasn't merely a theoretical exercise because we found the issue in some of the\nmost popular npm packages.\n\nFortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of\n`buffer`.\n\n```js\nvar Buffer = require('safe-buffer').Buffer\n```\n\nEventually, we hope that node.js core can switch to this new, safer behavior. We believe\nthe impact on the ecosystem would be minimal since it's not a breaking change.\nWell-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while\nolder, insecure packages would magically become safe from this attack vector.\n\n\n## links\n\n- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514)\n- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67)\n- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68)\n\n\n## credit\n\nThe original issues in `bittorrent-dht`\n([disclosure](https://nodesecurity.io/advisories/68)) and\n`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by\n[Mathias Buus](https://github.com/mafintosh) and\n[Feross Aboukhadijeh](http://feross.org/).\n\nThanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues\nand for his work running the [Node Security Project](https://nodesecurity.io/).\n\nThanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and\nauditing the code.\n\n\n## license\n\nMIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org)\n",
- "readmeFilename": "README.md",
- "_id": "safe-buffer@5.1.2",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "safe-buffer@5.1.2",
- "name": "safe-buffer",
- "escapedName": "safe-buffer",
- "rawSpec": "5.1.2",
- "saveSpec": "[Circular]",
- "fetchSpec": "5.1.2"
- },
- "_spec": "5.1.2",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": "[Circular]",
- "dependencies": {},
- "optionalDependencies": "[Circular]",
- "_dependencies": "[Circular]",
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/safe-buffer",
- "error": "[Circular]",
- "extraneous": false,
- "_deduped": "safe-buffer"
- }
- },
- "devDependencies": {
- "babel-polyfill": "^6.23.0",
- "core-util-is": "^1.0.2",
- "inherits": "^2.0.3",
- "tap": "~0.4.8"
- },
- "scripts": {
- "test": "tap test/parallel/*.js && node test/verify-dependencies",
- "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/nodejs/string_decoder.git"
- },
- "homepage": "https://github.com/nodejs/string_decoder",
- "keywords": [
- "string",
- "decoder",
- "browser",
- "browserify"
- ],
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "_integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "_from": "string_decoder@1.1.1",
- "readme": "# string_decoder\n\n***Node-core v8.9.4 string_decoder for userland***\n\n\n[](https://nodei.co/npm/string_decoder/)\n[](https://nodei.co/npm/string_decoder/)\n\n\n```bash\nnpm install --save string_decoder\n```\n\n***Node-core string_decoder for userland***\n\nThis package is a mirror of the string_decoder implementation in Node-core.\n\nFull documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.9.4/docs/api/).\n\nAs of version 1.0.0 **string_decoder** uses semantic versioning.\n\n## Previous versions\n\nPrevious version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10.\n\n## Update\n\nThe *build/* directory contains a build script that will scrape the source from the [nodejs/node](https://github.com/nodejs/node) repo given a specific Node version.\n\n## Streams Working Group\n\n`string_decoder` is maintained by the Streams Working Group, which\noversees the development and maintenance of the Streams API within\nNode.js. The responsibilities of the Streams Working Group include:\n\n* Addressing stream issues on the Node.js issue tracker.\n* Authoring and editing stream documentation within the Node.js project.\n* Reviewing changes to stream subclasses within the Node.js project.\n* Redirecting changes to streams from the Node.js project to this\n project.\n* Assisting in the implementation of stream providers within Node.js.\n* Recommending versions of `readable-stream` to be included in Node.js.\n* Messaging about the future of streams to give the community advance\n notice of changes.\n\nSee [readable-stream](https://github.com/nodejs/readable-stream) for\nmore details.\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/nodejs/string_decoder/issues"
- },
- "_id": "string_decoder@1.1.1",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "string_decoder@1.1.1",
- "name": "string_decoder",
- "escapedName": "string_decoder",
- "rawSpec": "1.1.1",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.1.1"
- },
- "_spec": "1.1.1",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "string_decoder@1.1.1",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "safe-buffer": "~5.1.0"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/string_decoder",
- "error": "[Circular]",
- "extraneous": false
- },
- "util-deprecate": {
- "name": "util-deprecate",
- "version": "1.0.2",
- "description": "The Node.js `util.deprecate()` function with browser support",
- "main": "node.js",
- "browser": "browser.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/TooTallNate/util-deprecate.git"
- },
- "keywords": [
- "util",
- "deprecate",
- "browserify",
- "browser",
- "node"
- ],
- "author": {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io/"
- },
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/TooTallNate/util-deprecate/issues"
- },
- "homepage": "https://github.com/TooTallNate/util-deprecate",
- "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "_integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "_from": "util-deprecate@1.0.2",
- "readme": "util-deprecate\n==============\n### The Node.js `util.deprecate()` function with browser support\n\nIn Node.js, this module simply re-exports the `util.deprecate()` function.\n\nIn the web browser (i.e. via browserify), a browser-specific implementation\nof the `util.deprecate()` function is used.\n\n\n## API\n\nA `deprecate()` function is the only thing exposed by this module.\n\n``` javascript\n// setup:\nexports.foo = deprecate(foo, 'foo() is deprecated, use bar() instead');\n\n\n// users see:\nfoo();\n// foo() is deprecated, use bar() instead\nfoo();\nfoo();\n```\n\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2014 Nathan Rajlich \n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n",
- "readmeFilename": "README.md",
- "_id": "util-deprecate@1.0.2",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "util-deprecate@1.0.2",
- "name": "util-deprecate",
- "escapedName": "util-deprecate",
- "rawSpec": "1.0.2",
- "saveSpec": "[Circular]",
- "fetchSpec": "1.0.2"
- },
- "_spec": "1.0.2",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "util-deprecate@1.0.2",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "dependencies": {},
- "devDependencies": {},
- "optionalDependencies": {},
- "_dependencies": {},
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/util-deprecate",
- "error": "[Circular]",
- "extraneous": false
- }
- },
- "devDependencies": {
- "assert": "^1.4.0",
- "babel-polyfill": "^6.9.1",
- "buffer": "^4.9.0",
- "lolex": "^2.3.2",
- "nyc": "^6.4.0",
- "tap": "^0.7.0",
- "tape": "^4.8.0"
- },
- "scripts": {
- "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js",
- "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js",
- "cover": "nyc npm test",
- "report": "nyc report --reporter=lcov"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/nodejs/readable-stream.git"
- },
- "keywords": [
- "readable",
- "stream",
- "pipe"
- ],
- "browser": {
- "util": false,
- "./readable.js": "./readable-browser.js",
- "./writable.js": "./writable-browser.js",
- "./duplex.js": "./duplex-browser.js",
- "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js"
- },
- "nyc": {
- "include": [
- "lib/**.js"
- ]
- },
- "license": "MIT",
- "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
- "_integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
- "_from": "readable-stream@2.3.6",
- "readme": "# readable-stream\n\n***Node-core v8.11.1 streams for userland*** [](https://travis-ci.org/nodejs/readable-stream)\n\n\n[](https://nodei.co/npm/readable-stream/)\n[](https://nodei.co/npm/readable-stream/)\n\n\n[](https://saucelabs.com/u/readable-stream)\n\n```bash\nnpm install --save readable-stream\n```\n\n***Node-core streams for userland***\n\nThis package is a mirror of the Streams2 and Streams3 implementations in\nNode-core.\n\nFull documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.11.1/docs/api/stream.html).\n\nIf you want to guarantee a stable streams base, regardless of what version of\nNode you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *\"stream\"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).\n\nAs of version 2.0.0 **readable-stream** uses semantic versioning.\n\n# Streams Working Group\n\n`readable-stream` is maintained by the Streams Working Group, which\noversees the development and maintenance of the Streams API within\nNode.js. The responsibilities of the Streams Working Group include:\n\n* Addressing stream issues on the Node.js issue tracker.\n* Authoring and editing stream documentation within the Node.js project.\n* Reviewing changes to stream subclasses within the Node.js project.\n* Redirecting changes to streams from the Node.js project to this\n project.\n* Assisting in the implementation of stream providers within Node.js.\n* Recommending versions of `readable-stream` to be included in Node.js.\n* Messaging about the future of streams to give the community advance\n notice of changes.\n\n\n## Team Members\n\n* **Chris Dickinson** ([@chrisdickinson](https://github.com/chrisdickinson)) <christopher.s.dickinson@gmail.com>\n - Release GPG key: 9554F04D7259F04124DE6B476D5A82AC7E37093B\n* **Calvin Metcalf** ([@calvinmetcalf](https://github.com/calvinmetcalf)) <calvin.metcalf@gmail.com>\n - Release GPG key: F3EF5F62A87FC27A22E643F714CE4FF5015AA242\n* **Rod Vagg** ([@rvagg](https://github.com/rvagg)) <rod@vagg.org>\n - Release GPG key: DD8F2338BAE7501E3DD5AC78C273792F7D83545D\n* **Sam Newman** ([@sonewman](https://github.com/sonewman)) <newmansam@outlook.com>\n* **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) <mathiasbuus@gmail.com>\n* **Domenic Denicola** ([@domenic](https://github.com/domenic)) <d@domenic.me>\n* **Matteo Collina** ([@mcollina](https://github.com/mcollina)) <matteo.collina@gmail.com>\n - Release GPG key: 3ABC01543F22DD2239285CDD818674489FBC127E\n* **Irina Shestak** ([@lrlna](https://github.com/lrlna)) <shestak.irina@gmail.com>\n",
- "readmeFilename": "README.md",
- "bugs": {
- "url": "https://github.com/nodejs/readable-stream/issues"
- },
- "homepage": "https://github.com/nodejs/readable-stream#readme",
- "_id": "readable-stream@2.3.6",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "readable-stream@2.3.6",
- "name": "readable-stream",
- "escapedName": "readable-stream",
- "rawSpec": "2.3.6",
- "saveSpec": "[Circular]",
- "fetchSpec": "2.3.6"
- },
- "_spec": "2.3.6",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "readable-stream@2.3.6",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/readable-stream",
- "error": "[Circular]",
- "extraneous": false
- }
- },
- "devDependencies": {
- "Base64": "^1.0.1",
- "basic-auth-connect": "^1.0.0",
- "body-parser": "^1.18.2",
- "browserify": "^14.1.0",
- "cookie-parser": "^1.4.3",
- "express": "^4.16.0",
- "express-session": "^1.15.6",
- "marked": "^0.3.6",
- "mocha": "^3.5.3",
- "multer": "^1.3.0",
- "should": "^11.2.0",
- "should-http": "^0.1.1",
- "zuul": "^3.11.1"
- },
- "browser": {
- "./lib/node/index.js": "./lib/client.js",
- "./test/support/server.js": "./test/support/blank.js"
- },
- "component": {
- "scripts": {
- "superagent": "lib/client.js"
- }
- },
- "main": "./lib/node/index.js",
- "engines": {
- "node": ">= 4.0"
- },
- "_resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz",
- "_integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==",
- "_from": "superagent@3.8.2",
- "readme": "# SuperAgent [](https://travis-ci.org/visionmedia/superagent)\n\n[](https://saucelabs.com/u/shtylman-superagent)\n\nSuperAgent is a small progressive __client-side__ HTTP request library, and __Node.js__ module with the same API, sporting many high-level HTTP client features. View the [docs](http://visionmedia.github.io/superagent/).\n\n\n\n## Installation\n\nnode:\n\n```\n$ npm install superagent\n```\n\nWorks with [browserify](https://github.com/substack/node-browserify) and [webpack](https://github.com/visionmedia/superagent/wiki/SuperAgent-for-Webpack).\n\n```js\nrequest\n .post('/api/pet')\n .send({ name: 'Manny', species: 'cat' }) // sends a JSON post body\n .set('X-API-Key', 'foobar')\n .set('accept', 'json')\n .end((err, res) => {\n // Calling the end function will send the request\n });\n```\n\n## Supported browsers and Node versions\n\nTested browsers:\n\n- Latest Firefox, Chrome, Safari\n- Latest Android, iPhone\n- IE10 through latest. IE9 with polyfills. Even though IE9 is supported, a polyfill for `window.FormData` is required for `.field()`.\n\nNode 4 or later is required.\n\n## Plugins\n\nSuperAgent is easily extended via plugins.\n\n```js\nconst nocache = require('superagent-no-cache');\nconst request = require('superagent');\nconst prefix = require('superagent-prefix')('/static');\n\nrequest\n .get('/some-url')\n .query({ action: 'edit', city: 'London' }) // query string\n .use(prefix) // Prefixes *only* this request\n .use(nocache) // Prevents caching of *only* this request\n .end((err, res) => {\n // Do something\n });\n```\n\nExisting plugins:\n * [superagent-no-cache](https://github.com/johntron/superagent-no-cache) - prevents caching by including Cache-Control header\n * [superagent-prefix](https://github.com/johntron/superagent-prefix) - prefixes absolute URLs (useful in test environment)\n * [superagent-suffix](https://github.com/timneutkens1/superagent-suffix) - suffix URLs with a given path\n * [superagent-mock](https://github.com/M6Web/superagent-mock) - simulate HTTP calls by returning data fixtures based on the requested URL\n * [superagent-mocker](https://github.com/shuvalov-anton/superagent-mocker) — simulate REST API\n * [superagent-cache](https://github.com/jpodwys/superagent-cache) - A global SuperAgent patch with built-in, flexible caching\n * [superagent-cache-plugin](https://github.com/jpodwys/superagent-cache-plugin) - A SuperAgent plugin with built-in, flexible caching\n * [superagent-jsonapify](https://github.com/alex94puchades/superagent-jsonapify) - A lightweight [json-api](http://jsonapi.org/format/) client addon for superagent\n * [superagent-serializer](https://github.com/zzarcon/superagent-serializer) - Converts server payload into different cases\n * [superagent-use](https://github.com/koenpunt/superagent-use) - A client addon to apply plugins to all requests.\n * [superagent-httpbackend](https://www.npmjs.com/package/superagent-httpbackend) - stub out requests using AngularJS' $httpBackend syntax\n * [superagent-throttle](https://github.com/leviwheatcroft/superagent-throttle) - queues and intelligently throttles requests\n * [superagent-charset](https://github.com/magicdawn/superagent-charset) - add charset support for node's SuperAgent\n\nPlease prefix your plugin with `superagent-*` so that it can easily be found by others.\n\nFor SuperAgent extensions such as couchdb and oauth visit the [wiki](https://github.com/visionmedia/superagent/wiki).\n\n## Upgrading from previous versions:\n\nOur breaking changes are mostly in rarely used functionality and from stricter error handling.\n\n* [2.x to 3.x](https://github.com/visionmedia/superagent/releases/tag/v3.0.0):\n - Ensure you're running Node 4 or later. We dropped support for Node 0.x.\n - Test code that calls `.send()` multiple times. Invalid calls to `.send()` will now throw instead of sending garbage.\n* [1.x to 2.x](https://github.com/visionmedia/superagent/releases/tag/v2.0.0):\n - If you use `.parse()` in the *browser* version, rename it to `.serialize()`.\n - If you rely on `undefined` in query-string values being sent literally as the text \"undefined\", switch to checking for missing value instead. `?key=undefined` is now `?key` (without a value).\n - If you use `.then()` in Internet Explorer, ensure that you have a polyfill that adds a global `Promise` object.\n* 0.x to 1.x:\n - Use `.end(function(err, res){})`. 1-argument version is no longer supported.\n\n## Running node tests\n\nInstall dependencies:\n\n```shell\n$ npm install\n```\nRun em!\n\n```shell\n$ make test\n```\n\n## Running browser tests\n\nInstall dependencies:\n\n```shell\n$ npm install\n```\n\nStart the test runner:\n\n```shell\n$ make test-browser-local\n```\n\nVisit `http://localhost:4000/__zuul` in your browser.\n\nEdit tests and refresh your browser. You do not have to restart the test runner.\n\n\n## Packaging Notes for Developers\n\n**npm (for node)** is configured via the `package.json` file and the `.npmignore` file. Key metadata in the `package.json` file is the `version` field which should be changed according to semantic versioning and have a 1-1 correspondence with git tags. So for example, if you were to `git show v1.5.0:package.json | grep version`, you should see `\"version\": \"1.5.0\",` and this should hold true for every release. This can be handled via the `npm version` command. Be aware that when publishing, npm will presume the version being published should also be tagged in npm as `latest`, which is OK for normal incremental releases. For betas and minor/patch releases to older versions, be sure to include `--tag` appropriately to avoid an older release getting tagged as `latest`.\n\n**npm (for browser standalone)** When we publish versions to npm, we run `make superagent.js` which generates the standalone `superagent.js` file via `browserify`, and this file is included in the package published to npm (but this file is never checked into the git repository). If users want to install via npm but serve a single `.js` file directly to the browser, the `node_modules/superagent/superagent.js` is a standalone browserified file ready to go for that purpose. It is not minified.\n\n**npm (for browserify)** is handled via the `package.json` `browser` field which allows users to install SuperAgent via npm, reference it from their browser code with `require('superagent')`, and then build their own application bundle via `browserify`, which will use `lib/client.js` as the SuperAgent entrypoint.\n\n**bower** is configured via the `bower.json` file. Bower installs files directly from git/github without any transformation, so you *must* use Browserify or Webpack (or use npm).\n\n## License\n\nMIT\n",
- "readmeFilename": "Readme.md",
- "bugs": {
- "url": "https://github.com/visionmedia/superagent/issues"
- },
- "homepage": "https://github.com/visionmedia/superagent#readme",
- "_id": "superagent@3.8.2",
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "superagent@3.8.2",
- "name": "superagent",
- "escapedName": "superagent",
- "rawSpec": "3.8.2",
- "saveSpec": "[Circular]",
- "fetchSpec": "3.8.2"
- },
- "_spec": "3.8.2",
- "_where": "/Users/dvuika/github/alfresco-content-app",
- "_args": [
- [
- "superagent@3.8.2",
- "/Users/dvuika/github/alfresco-content-app"
- ]
- ],
- "optionalDependencies": {},
- "_dependencies": {
- "component-emitter": "^1.2.0",
- "cookiejar": "^2.1.0",
- "debug": "^3.1.0",
- "extend": "^3.0.0",
- "form-data": "^2.3.1",
- "formidable": "^1.1.1",
- "methods": "^1.1.1",
- "mime": "^1.4.1",
- "qs": "^6.5.1",
- "readable-stream": "^2.0.5"
- },
- "path": "/Users/dvuika/github/alfresco-content-app/node_modules/superagent",
- "error": "[Circular]",
- "extraneous": false
- }
- },
- "description": "JavaScript client library for the Alfresco REST API",
- "devDependencies": {
- "babel-loader": "^7.0.0",
- "babel-plugin-transform-proto-to-assign": "^6.9.0",
- "babel-preset-es2015": "^6.24.1",
- "babel-preset-es2015-loose": "^8.0.0",
- "babel-preset-es2015-rollup": "^3.0.0",
- "babelify": "^7.3.0",
- "chai": "^3.5.0",
- "chai-datetime": "^1.4.1",
- "expect.js": "~0.3.1",
- "grunt": "~0.4.0",
- "grunt-cli": "^1.1.0",
- "grunt-contrib-jshint": "^1.0.0",
- "grunt-coveralls": "^1.0.0",
- "grunt-istanbul": "^0.7.0",
- "grunt-jscs": "^2.8.0",
- "grunt-mocha-istanbul": "^3.0.1",
- "grunt-mocha-test": "0.13.3",
- "grunt-open": "^0.2.3",
- "load-grunt-tasks": "^3.4.1",
- "markdown-toc": "^0.12.14",
- "mocha": "5.2.0",
- "mocha-lcov-reporter": "^1.2.0",
- "nock": "8.1.0",
- "remove-comments-loader": "0.1.2",
- "rimraf": "^2.5.2",
- "sinon": "^1.17.3",
- "sinon-chai": "^2.8.0",
- "tsd-jsdoc": "^2.0.0-beta.3",
- "tslint": "5.7.0",
- "typescript": "^2.4.0",
- "uglifyjs-webpack-plugin": "^1.2.3",
- "watchify": "^3.7.0",
- "webpack": "4.1.1",
- "webpack-cli": "2.0.12"
- },
- "homepage": "https://github.com/Alfresco/alfresco-js-api#readme",
- "keywords": [
- "alfresco"
- ],
- "license": "Apache-2.0",
- "main": "dist/alfresco-js-api.js",
- "name": "alfresco-js-api",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/Alfresco/alfresco-js-api.git"
- },
- "scripts": {
- "build": "npm run clean-build && grunt && npm run tslint && npm run test && npm run webpack && npm run toc",
- "clean": "rimraf node_modules && npm run clean-build",
- "clean-build": "rimraf dist",
- "coverage": "grunt coverage",
- "generate": "mvn clean generate-sources",
- "generate-api": "mvn install",
- "generate-ts": "jsdoc -c config.json .",
- "prepublish": "npm run webpack",
- "test": "grunt test",
- "toc": "markdown-toc -i README.md && markdown-toc -i test/mockObjects/README.md",
- "tslint": "tslint --type-check -c tslint.json index.d.ts --project tsconfig.json ",
- "watchify": "watchify -s AlfrescoApi main.js -o dist/alfresco-js-api.js",
- "webpack": "webpack"
- },
- "sideEffects": false,
- "typings": "index.d.ts",
- "version": "2.6.1",
- "readme": "# Alfresco JavaScript API Client\n\n\n
\r\n\r\n### `Inlined`\r\n\r\n**App.js**\r\n```js\r\nimport Worker from 'worker-loader!./Worker.js';\r\n```\r\n\r\n### `Config`\r\n\r\n**webpack.config.js**\r\n```js\r\n{\r\n module: {\r\n rules: [\r\n {\r\n test: /\\.worker\\.js$/,\r\n use: { loader: 'worker-loader' }\r\n }\r\n ]\r\n }\r\n}\r\n```\r\n\r\n**App.js**\r\n```js\r\nimport Worker from './file.worker.js';\r\n\r\nconst worker = new Worker();\r\n\r\nworker.postMessage({ a: 1 });\r\nworker.onmessage = function (event) {};\r\n\r\nworker.addEventListener(\"message\", function (event) {});\r\n```\r\n\r\n
Options
\r\n\r\n|Name|Type|Default|Description|\r\n|:--:|:--:|:-----:|:----------|\r\n|[**`name`**](#name)|`{String}`|`[hash].worker.js`|Set a custom name for the output script|\r\n|[**`inline`**](#inline)|`{Boolean}`|`false`|Inline the worker as a BLOB|\r\n|[**`fallback`**](#fallback)|`{Boolean}`|`false`|Require a fallback for non-worker supporting environments|\r\n|[**`publicPath`**](#publicPath)|`{String}`|`null`|Override the path from which worker scripts are downloaded|\r\n\r\n### `name`\r\n\r\nTo set a custom name for the output script, use the `name` parameter. The name may contain the string `[hash]`, which will be replaced with a content dependent hash for caching purposes\r\n\r\n*webpack.config.js**\r\n```js\r\n{\r\n loader: 'worker-loader',\r\n options: { name: 'WorkerName.[hash].js' }\r\n}\r\n```\r\n\r\n### `inline`\r\n\r\nYou can also inline the worker as a BLOB with the `inline` parameter\r\n\r\n**webpack.config.js**\r\n```js\r\n{\r\n loader: 'worker-loader',\r\n options: { inline: true }\r\n}\r\n```\r\n\r\n> ℹ️ Inline mode will also create chunks for browsers without support for inline workers, to disable this behavior just set `fallback` parameter as `false`\r\n\r\n**webpack.config.js**\r\n```js\r\n{\r\n loader: 'worker-loader'\r\n options: { inline: true, fallback: false }\r\n}\r\n```\r\n\r\n### `fallback`\r\n\r\nRequire a fallback for non-worker supporting environments\r\n\r\n**webpack.config.js**\r\n```js\r\n{\r\n loader: 'worker-loader'\r\n options: { fallback: false }\r\n}\r\n```\r\n\r\n### `publicPath`\r\n\r\nOverrides the path from which worker scripts are downloaded. If not specified, the same public path used for other\r\nwebpack assets is used\r\n\r\n**webpack.config.js**\r\n```js\r\n{\r\n loader: 'worker-loader'\r\n options: { publicPath: '/scripts/workers/' }\r\n}\r\n```\r\n\r\n
Examples
\r\n\r\nThe worker file can import dependencies just like any other file\r\n\r\n**Worker.js**\r\n```js\r\nconst _ = require('lodash')\r\n\r\nconst obj = { foo: 'foo' }\r\n\r\n_.has(obj, 'foo')\r\n\r\n// Post data to parent thread\r\nself.postMessage({ foo: 'foo' })\r\n\r\n// Respond to message from parent thread\r\nself.addEventListener('message', (event) => console.log(event)) \r\n```\r\n\r\n### `Integrating with ES2015 Modules`\r\n\r\n> ℹ️ You can even use ES2015 Modules if you have the [`babel-loader`](https://github.com/babel/babel-loader) configured.\r\n\r\n**Worker.js**\r\n```js\r\nimport _ from 'lodash'\r\n\r\nconst obj = { foo: 'foo' }\r\n\r\n_.has(obj, 'foo')\r\n\r\n// Post data to parent thread\r\nself.postMessage({ foo: 'foo' })\r\n\r\n// Respond to message from parent thread\r\nself.addEventListener('message', (event) => console.log(event))\r\n```\r\n\r\n### `Integrating with TypeScript`\r\n\r\nTo integrate with TypeScript, you will need to define a custom module for the exports of your worker\r\n\r\n**typings/custom.d.ts**\r\n```typescript\r\ndeclare module \"worker-loader!*\" {\r\n class WebpackWorker extends Worker {\r\n constructor();\r\n }\r\n\r\n export = WebpackWorker;\r\n}\r\n```\r\n\r\n**Worker.ts**\r\n```typescript\r\nconst ctx: Worker = self as any;\r\n\r\n// Post data to parent thread\r\nctx.postMessage({ foo: \"foo\" });\r\n\r\n// Respond to message from parent thread\r\nctx.addEventListener(\"message\", (event) => console.log(event));\r\n```\r\n\r\n**App.ts**\r\n```typescript\r\nimport Worker = require(\"worker-loader!./Worker\");\r\n\r\nconst worker = new Worker();\r\n\r\nworker.postMessage({ a: 1 });\r\nworker.onmessage = (event) => {};\r\n\r\nworker.addEventListener(\"message\", (event) => {});\r\n```\r\n\r\n### `Cross-Origin Policy`\r\n\r\n[`WebWorkers`](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API) are restricted by a [same-origin policy](https://en.wikipedia.org/wiki/Same-origin_policy), so if your `webpack` assets are not being served from the same origin as your application, their download may be blocked by your browser. This scenario can commonly occur if you are hosting your assets under a CDN domain. Even downloads from the `webpack-dev-server` could be blocked. There are two workarounds\r\n\r\nFirstly, you can inline the worker as a blob instead of downloading it as an external script via the [`inline`](#inline) parameter\r\n\r\n**App.js**\r\n```js\r\nimport Worker from './file.worker.js';\r\n```\r\n\r\n**webpack.config.js**\r\n```js\r\n{\r\n loader: 'worker-loader'\r\n options: { inline: true }\r\n}\r\n```\r\n\r\nSecondly, you may override the base download URL for your worker script via the [`publicPath`](#publicpath) option\r\n\r\n**App.js**\r\n```js\r\n// This will cause the worker to be downloaded from `/workers/file.worker.js`\r\nimport Worker from './file.worker.js';\r\n```\r\n\r\n**webpack.config.js**\r\n```js\r\n{\r\n loader: 'worker-loader'\r\n options: { publicPath: '/workers/' }\r\n}\r\n```\r\n\r\n