diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1128296..a1d614e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,23 +3,39 @@ image: hosttoday/ht-docker-node:npmci
cache:
paths:
- - .yarn/
+ - .npmci_cache/
key: "$CI_BUILD_STAGE"
stages:
-- mirror
+- security
- test
- release
-- trigger
-- pages
+- metadata
+# ====================
+# security stage
+# ====================
mirror:
- stage: mirror
+ stage: security
script:
- npmci git mirror
tags:
- docker
+ - notpriv
+snyk:
+ stage: security
+ script:
+ - npmci command npm install -g snyk
+ - npmci command npm install --ignore-scripts
+ - npmci command snyk test
+ tags:
+ - docker
+ - notpriv
+
+# ====================
+# test stage
+# ====================
testLEGACY:
stage: test
script:
@@ -29,6 +45,7 @@ testLEGACY:
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
+ - notpriv
allow_failure: true
testLTS:
@@ -40,6 +57,7 @@ testLTS:
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
+ - notpriv
testSTABLE:
stage: test
@@ -50,37 +68,75 @@ testSTABLE:
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
+ - notpriv
release:
stage: release
script:
- - npmci npm prepare
+ - npmci node install stable
- npmci npm publish
only:
- tags
tags:
- docker
+ - notpriv
+
+# ====================
+# metadata stage
+# ====================
+codequality:
+ stage: metadata
+ image: docker:stable
+ allow_failure: true
+ services:
+ - docker:stable-dind
+ script:
+ - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
+ - docker run
+ --env SOURCE_CODE="$PWD"
+ --volume "$PWD":/code
+ --volume /var/run/docker.sock:/var/run/docker.sock
+ "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
+ artifacts:
+ paths: [codeclimate.json]
+ tags:
+ - docker
+ - priv
trigger:
- stage: trigger
+ stage: metadata
script:
- npmci trigger
only:
- tags
tags:
- docker
+ - notpriv
pages:
image: hosttoday/ht-docker-node:npmci
- stage: pages
+ stage: metadata
script:
- - npmci command yarn global add npmpage
- - npmci command npmpage
+ - npmci command npm install -g typedoc typescript
+ - npmci npm install
+ - npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/
tags:
- docker
+ - notpriv
only:
- tags
artifacts:
expire_in: 1 week
paths:
- public
+ allow_failure: true
+
+windowsCompatibility:
+ image: stefanscherer/node-windows:10-build-tools
+ stage: metadata
+ script:
+ - npm install & npm test
+ coverage: /\d+.?\d+?\%\s*coverage/
+ tags:
+ - windows
+ allow_failure: true
diff --git a/README.md b/README.md
index 433f6fa..36ef5b2 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,16 @@
# smartstring
+
handle strings in smart ways. TypeScript ready.
## Availabililty
+
[![npm](https://pushrocks.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/smartstring)
[![git](https://pushrocks.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/pushrocks/smartstring)
[![git](https://pushrocks.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/pushrocks/smartstring)
[![docs](https://pushrocks.gitlab.io/assets/repo-button-docs.svg)](https://pushrocks.gitlab.io/smartstring/)
## Status for master
+
[![build status](https://GitLab.com/pushrocks/smartstring/badges/master/build.svg)](https://GitLab.com/pushrocks/smartstring/commits/master)
[![coverage report](https://GitLab.com/pushrocks/smartstring/badges/master/coverage.svg)](https://GitLab.com/pushrocks/smartstring/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/smartstring.svg)](https://www.npmjs.com/package/smartstring)
@@ -19,44 +22,45 @@ handle strings in smart ways. TypeScript ready.
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Usage
+
Use TypeScript for best in class instellisense.
```javascript
-import * as smartstring from "smartstring";
+import * as smartstring from 'smartstring';
// classes
// smartstring.Domain class
-let myDomain = new smartstring.Domain("https://sub.main.tld");
-myDomain.level1 // "tld"
-myDomain.level2 // "main"
+let myDomain = new smartstring.Domain('https://sub.main.tld');
+myDomain.level1; // "tld"
+myDomain.level2; // "main"
// level3 , level 4 and so on...
-myDomain.zoneName // "main.tld"
-myDOmain.protocol // "https"
+myDomain.zoneName; // "main.tld"
+myDOmain.protocol; // "https"
// smartstring.GitRepo class
-let myGitRepo = new smartstring.GitRepo("git@github.com:someorg/somerepo.git"); // takes https and git and npm repo URL versions
-myGitRepo.host // "github.com"
-myGitRepo.user // "someorg"
-myGitRepo.repo // "somerepo"
-myGitRepo.accessToken // accessToken if specified with https
-myGitRepo.sshUrl // "git@github.com:someorg/somerepo.git" (computed also from https)
-myGitRepo.httpsUrl // "https://github.com/someorg/somerepo.git" (computed also from ssh)
+let myGitRepo = new smartstring.GitRepo('git@github.com:someorg/somerepo.git'); // takes https and git and npm repo URL versions
+myGitRepo.host; // "github.com"
+myGitRepo.user; // "someorg"
+myGitRepo.repo; // "somerepo"
+myGitRepo.accessToken; // accessToken if specified with https
+myGitRepo.sshUrl; // "git@github.com:someorg/somerepo.git" (computed also from https)
+myGitRepo.httpsUrl; // "https://github.com/someorg/somerepo.git" (computed also from ssh)
//smartstring.Base64
-let myBase64 = new smartstring.Base64('somestring','string') // first arg is the string, second is string type (can be string, base64, base64uri)
-myBase64.simpleString // 'somestring'
-myBase64.base64String // base64 representation of 'somestring'
-myBase64.base64UriString // base64uri representation of 'sometring'
+let myBase64 = new smartstring.Base64('somestring', 'string'); // first arg is the string, second is string type (can be string, base64, base64uri)
+myBase64.simpleString; // 'somestring'
+myBase64.base64String; // base64 representation of 'somestring'
+myBase64.base64UriString; // base64uri representation of 'sometring'
// methods
-smartstring.base64.encode('somestring') // encodes 'somestring' to base64
-smartstring.base64.encodeUri('sometring') // encodes 'somestring' to base64uri
-smartstring.base64.decode() // decodes base64 and base64uri to simple string respresentation
+smartstring.base64.encode('somestring'); // encodes 'somestring' to base64
+smartstring.base64.encodeUri('sometring'); // encodes 'somestring' to base64uri
+smartstring.base64.decode(); // decodes base64 and base64uri to simple string respresentation
-smartstring.indent.indent('somestring\anotherstring', 4) // indents a string by 4
-smartstring.indent.indent('somestring\anotherstring', '>>>> ') // indents a string with a prefix
-smartstring.indent.normalize(' somestring\ anotherstring', '>>>> ') // looks for the least amount of indention and removes superflouous space
+smartstring.indent.indent('somestringanotherstring', 4); // indents a string by 4
+smartstring.indent.indent('somestringanotherstring', '>>>> '); // indents a string with a prefix
+smartstring.indent.normalize(' somestring anotherstring', '>>>> '); // looks for the least amount of indention and removes superflouous space
```
For further information read the linked docs at the top of this README.
diff --git a/dist/index.d.ts b/dist/index.d.ts
deleted file mode 100644
index 011ecce..0000000
--- a/dist/index.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import * as create from './smartstring.create';
-import * as docker from './smartstring.docker';
-import * as indent from './smartstring.indent';
-import * as normalize from './smartstring.normalize';
-import * as typescript from './smartstring.typescript';
-export { create, docker, typescript, normalize, indent };
-export { Base64, base64 } from './smartstring.base64';
-export { Domain } from './smartstring.domain';
-export { GitRepo } from './smartstring.git';
diff --git a/dist/index.js b/dist/index.js
deleted file mode 100644
index 4cf85cf..0000000
--- a/dist/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const create = require("./smartstring.create");
-exports.create = create;
-const docker = require("./smartstring.docker");
-exports.docker = docker;
-const indent = require("./smartstring.indent");
-exports.indent = indent;
-const normalize = require("./smartstring.normalize");
-exports.normalize = normalize;
-const typescript = require("./smartstring.typescript");
-exports.typescript = typescript;
-var smartstring_base64_1 = require("./smartstring.base64");
-exports.Base64 = smartstring_base64_1.Base64;
-exports.base64 = smartstring_base64_1.base64;
-var smartstring_domain_1 = require("./smartstring.domain");
-exports.Domain = smartstring_domain_1.Domain;
-var smartstring_git_1 = require("./smartstring.git");
-exports.GitRepo = smartstring_git_1.GitRepo;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUE4QztBQU81Qyx3QkFBTTtBQU5SLCtDQUE4QztBQU81Qyx3QkFBTTtBQU5SLCtDQUE4QztBQVM1Qyx3QkFBTTtBQVJSLHFEQUFvRDtBQU9sRCw4QkFBUztBQU5YLHVEQUFzRDtBQUtwRCxnQ0FBVTtBQUtaLDJEQUFxRDtBQUE1QyxzQ0FBQSxNQUFNLENBQUE7QUFBRSxzQ0FBQSxNQUFNLENBQUE7QUFDdkIsMkRBQTZDO0FBQXBDLHNDQUFBLE1BQU0sQ0FBQTtBQUNmLHFEQUEyQztBQUFsQyxvQ0FBQSxPQUFPLENBQUEifQ==
\ No newline at end of file
diff --git a/dist/smartstring.base64.d.ts b/dist/smartstring.base64.d.ts
deleted file mode 100644
index 3a8509a..0000000
--- a/dist/smartstring.base64.d.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * the type for base 64
- */
-export declare type TBase64Input = 'string' | 'base64' | 'base64uri';
-/**
- * handle base64 strings
- */
-export declare class Base64 {
- private refString;
- constructor(inputStringArg: any, typeArg: TBase64Input);
- /**
- * the simple string (unencoded)
- */
- readonly simpleString: string;
- /**
- * the base64 encoded version of the original string
- */
- readonly base64String: any;
- /**
- * the base64uri encoded version of the original string
- */
- readonly base64UriString: any;
-}
-export declare let base64: {
- encode: (stringArg: string) => any;
- encodeUri: (stringArg: string) => any;
- decode: (stringArg: string) => any;
-};
diff --git a/dist/smartstring.base64.js b/dist/smartstring.base64.js
deleted file mode 100644
index 6485246..0000000
--- a/dist/smartstring.base64.js
+++ /dev/null
@@ -1,60 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const plugins = require("./smartstring.plugins");
-/**
- * handle base64 strings
- */
-class Base64 {
- constructor(inputStringArg, typeArg) {
- switch (typeArg) {
- case 'string':// easiest case
- this.refString = inputStringArg;
- break;
- case 'base64':
- this.refString = exports.base64.decode(inputStringArg);
- break;
- case 'base64uri':
- this.refString = exports.base64.decode(inputStringArg);
- }
- }
- /**
- * the simple string (unencoded)
- */
- get simpleString() {
- return this.refString;
- }
- /**
- * the base64 encoded version of the original string
- */
- get base64String() {
- return exports.base64.encode(this.refString);
- }
- /**
- * the base64uri encoded version of the original string
- */
- get base64UriString() {
- return exports.base64.encodeUri(this.refString);
- }
-}
-exports.Base64 = Base64;
-exports.base64 = {
- /**
- * encodes the string
- */
- encode: (stringArg) => {
- return plugins.jsBase64.encode(stringArg);
- },
- /**
- * encodes a stringArg to base64 uri style
- */
- encodeUri: (stringArg) => {
- return plugins.jsBase64.encodeURI(stringArg);
- },
- /**
- * decodes a base64 encoded string
- */
- decode: (stringArg) => {
- return plugins.jsBase64.decode(stringArg);
- }
-};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuYmFzZTY0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuYmFzZTY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQWdEO0FBT2hEOztHQUVHO0FBQ0g7SUFFRSxZQUFZLGNBQWMsRUFBRSxPQUFxQjtRQUMvQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLEtBQUssUUFBUSxDQUFFLGVBQWU7Z0JBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFBO2dCQUMvQixLQUFLLENBQUE7WUFDUCxLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO2dCQUM5QyxLQUFLLENBQUE7WUFDUCxLQUFLLFdBQVc7Z0JBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFlBQVk7UUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFlBQVk7UUFDZCxNQUFNLENBQUMsY0FBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxlQUFlO1FBQ2pCLE1BQU0sQ0FBQyxjQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0NBQ0Y7QUFuQ0Qsd0JBbUNDO0FBRVUsUUFBQSxNQUFNLEdBQUc7SUFDbEI7O09BRUc7SUFDSCxNQUFNLEVBQUUsQ0FBQyxTQUFpQixFQUFFLEVBQUU7UUFDNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsRUFBRSxDQUFDLFNBQWlCLEVBQUUsRUFBRTtRQUMvQixNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxFQUFFLENBQUMsU0FBaUIsRUFBRSxFQUFFO1FBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0NBQ0YsQ0FBQSJ9
\ No newline at end of file
diff --git a/dist/smartstring.create.d.ts b/dist/smartstring.create.d.ts
deleted file mode 100644
index 0f6c5f8..0000000
--- a/dist/smartstring.create.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export declare const createRandomString: (patternArg: string, lengthArg: number, optionsArg: any) => string;
-export declare const createCryptoRandomString: (lengthArg: any) => string;
diff --git a/dist/smartstring.create.js b/dist/smartstring.create.js
deleted file mode 100644
index 539d320..0000000
--- a/dist/smartstring.create.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const plugins = require("./smartstring.plugins");
-exports.createRandomString = (patternArg, lengthArg, optionsArg) => {
- return plugins.randomatic(patternArg, lengthArg, optionsArg);
-};
-exports.createCryptoRandomString = (lengthArg) => {
- return plugins.cryptoRandomString(lengthArg);
-};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQWdEO0FBRW5DLFFBQUEsa0JBQWtCLEdBQUcsQ0FDaEMsVUFBa0IsRUFDbEIsU0FBaUIsRUFDakIsVUFBZSxFQUNQLEVBQUU7SUFDVixNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0FBQzlELENBQUMsQ0FBQTtBQUVZLFFBQUEsd0JBQXdCLEdBQUcsQ0FBQyxTQUFTLEVBQVUsRUFBRTtJQUM1RCxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQzlDLENBQUMsQ0FBQSJ9
\ No newline at end of file
diff --git a/dist/smartstring.docker.d.ts b/dist/smartstring.docker.d.ts
deleted file mode 100644
index 97bebec..0000000
--- a/dist/smartstring.docker.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * converts an erray of env strings from docker remote api to an usable object.
- * @param envArrayArg
- * @returns {}
- */
-export declare const makeEnvObject: (envArrayArg: string[]) => {};
diff --git a/dist/smartstring.docker.js b/dist/smartstring.docker.js
deleted file mode 100644
index d2b3f2d..0000000
--- a/dist/smartstring.docker.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * converts an erray of env strings from docker remote api to an usable object.
- * @param envArrayArg
- * @returns {}
- */
-exports.makeEnvObject = function (envArrayArg) {
- let returnObject = {};
- let regexString = /(.*)=(.*)/;
- if (typeof envArrayArg !== 'undefined') {
- for (let envKey in envArrayArg) {
- let regexMatches = regexString.exec(envArrayArg[envKey]);
- returnObject[regexMatches[1]] = regexMatches[2];
- }
- }
- return returnObject;
-};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuZG9ja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuZG9ja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUE7Ozs7R0FJRztBQUNVLFFBQUEsYUFBYSxHQUFHLFVBQVUsV0FBcUI7SUFDMUQsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFBO0lBQ3JCLElBQUksV0FBVyxHQUFHLFdBQVcsQ0FBQTtJQUM3QixFQUFFLENBQUMsQ0FBQyxPQUFPLFdBQVcsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyxDQUFDLElBQUksTUFBTSxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUUsTUFBTSxDQUFFLENBQUMsQ0FBQTtZQUMxRCxZQUFZLENBQUUsWUFBWSxDQUFFLENBQUMsQ0FBRSxDQUFFLEdBQUcsWUFBWSxDQUFFLENBQUMsQ0FBRSxDQUFBO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFlBQVksQ0FBQTtBQUNyQixDQUFDLENBQUEifQ==
\ No newline at end of file
diff --git a/dist/smartstring.domain.d.ts b/dist/smartstring.domain.d.ts
deleted file mode 100644
index 42db770..0000000
--- a/dist/smartstring.domain.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export declare class Domain {
- fullName: string;
- level1: string;
- level2: string;
- level3: string;
- level4: string;
- level5: string;
- protocol: string;
- zoneName: string;
- topLevel: string;
- domainName: any;
- subDomain: any;
- constructor(domainStringArg: string);
-}
diff --git a/dist/smartstring.domain.js b/dist/smartstring.domain.js
deleted file mode 100644
index f77981f..0000000
--- a/dist/smartstring.domain.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-class Domain {
- constructor(domainStringArg) {
- let regexMatches = domainRegex(domainStringArg);
- this.fullName = '';
- for (let i = 1; i <= 5; i++) {
- if (regexMatches[i - 1]) {
- let localMatch = regexMatches[i - 1];
- this['level' + i.toString()] = localMatch;
- if (this.fullName === '') {
- this.fullName = localMatch;
- }
- else {
- this.fullName = localMatch + '.' + this.fullName;
- }
- }
- else {
- this['level' + i.toString()] = undefined;
- }
- ;
- }
- ;
- this.protocol = protocolRegex(domainStringArg);
- this.zoneName = this.level2 + '.' + this.level1;
- // aliases
- this.topLevel = this.level1;
- this.domainName = this.level2;
- this.subDomain = this.level3;
- }
-}
-exports.Domain = Domain;
-let domainRegex = function (stringArg) {
- let regexString = /([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}$/;
- let regexMatches = regexString.exec(stringArg);
- regexMatches.reverse(); //make sure we build the domain from toplevel to subdomain (reversed order)
- regexMatches.pop(); // pop the last element, which is, since we reversed the Array, the full String of matched elements
- let regexMatchesFiltered = regexMatches.filter(function (stringArg) {
- return (stringArg !== '');
- });
- return regexMatchesFiltered;
-};
-let protocolRegex = function (stringArg) {
- let regexString = /^([a-zA-Z0-9]*):\/\//;
- let regexMatches = regexString.exec(stringArg);
- if (regexMatches) {
- return regexMatches[1];
- }
- else {
- return undefined;
- }
-};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuZG9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUE7SUFhRSxZQUFhLGVBQXVCO1FBQ2xDLElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUNsQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzVCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBRSxDQUFDLEdBQUcsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixJQUFJLFVBQVUsR0FBRyxZQUFZLENBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBRSxDQUFBO2dCQUN0QyxJQUFJLENBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBRSxHQUFHLFVBQVUsQ0FBQTtnQkFDM0MsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQTtnQkFDNUIsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtnQkFDbEQsQ0FBQztZQUNILENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixJQUFJLENBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBRSxHQUFHLFNBQVMsQ0FBQTtZQUM1QyxDQUFDO1lBQUEsQ0FBQztRQUNKLENBQUM7UUFBQSxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBRS9DLFVBQVU7UUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUM5QixDQUFDO0NBQ0Y7QUFyQ0Qsd0JBcUNDO0FBR0QsSUFBSSxXQUFXLEdBQUcsVUFBVSxTQUFpQjtJQUMzQyxJQUFJLFdBQVcsR0FBRyxnSUFBZ0ksQ0FBQTtJQUNsSixJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzlDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQSxDQUFDLDJFQUEyRTtJQUNsRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUEsQ0FBQyxtR0FBbUc7SUFDdEgsSUFBSSxvQkFBb0IsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsU0FBaUI7UUFDeEUsTUFBTSxDQUFDLENBQUMsU0FBUyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFBO0FBQzdCLENBQUMsQ0FBQztBQUVGLElBQUksYUFBYSxHQUFHLFVBQVUsU0FBaUI7SUFDN0MsSUFBSSxXQUFXLEdBQUcsc0JBQXNCLENBQUE7SUFDeEMsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM5QyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxZQUFZLENBQUUsQ0FBQyxDQUFFLENBQUE7SUFDMUIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLFNBQVMsQ0FBQTtJQUNsQixDQUFDO0FBQ0gsQ0FBQyxDQUFBIn0=
\ No newline at end of file
diff --git a/dist/smartstring.git.d.ts b/dist/smartstring.git.d.ts
deleted file mode 100644
index 3c14c68..0000000
--- a/dist/smartstring.git.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export declare class GitRepo {
- host: string;
- user: string;
- repo: string;
- accessToken: string;
- sshUrl: string;
- httpsUrl: string;
- constructor(stringArg: string, tokenArg?: string);
-}
diff --git a/dist/smartstring.git.js b/dist/smartstring.git.js
deleted file mode 100644
index b1d3924..0000000
--- a/dist/smartstring.git.js
+++ /dev/null
@@ -1,46 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-/* ---------------------------------------------- *
- * ------------------ classes ------------------- *
- * ---------------------------------------------- */
-class GitRepo {
- constructor(stringArg, tokenArg) {
- let regexMatches = gitRegex(stringArg);
- this.host = regexMatches[1];
- this.user = regexMatches[2];
- this.repo = regexMatches[3];
- this.accessToken = tokenArg;
- this.sshUrl = gitLink(this.host, this.user, this.repo, this.accessToken, 'ssh');
- this.httpsUrl = gitLink(this.host, this.user, this.repo, this.accessToken, 'https');
- }
-}
-exports.GitRepo = GitRepo;
-/* ---------------------------------------------- *
- * ------------------ helpers ------------------- *
- * ---------------------------------------------- */
-const gitRegex = function (stringArg) {
- const regexString = /([a-zA-Z0-9\-\.]*)(?:\/|\:)([a-zA-Z0-9\-\.]*)(?:\/)([a-zA-Z0-9\-\.]*)(?:\.git)/;
- let regexMatches = regexString.exec(stringArg);
- return regexMatches;
-};
-const gitLink = function (hostArg, userArg, repoArg, tokenArg = '', linkTypeArg) {
- let returnString;
- if (tokenArg !== '') {
- tokenArg = tokenArg + '@';
- }
- switch (linkTypeArg) {
- case 'https':
- returnString = 'https://' +
- tokenArg + hostArg + '/' + userArg + '/' + repoArg + '.git';
- break;
- case 'ssh':
- returnString = 'git@' +
- hostArg + ':' + userArg + '/' + repoArg + '.git';
- break;
- default:
- console.error('Link Type ' + linkTypeArg + ' not known');
- break;
- }
- return returnString;
-};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuZ2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuZ2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUE7O29EQUVvRDtBQUNwRDtJQU9FLFlBQWEsU0FBaUIsRUFBRSxRQUFpQjtRQUMvQyxJQUFJLFlBQVksR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUUsQ0FBQyxDQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUUsQ0FBQyxDQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUUsQ0FBQyxDQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUE7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUMvRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3JGLENBQUM7Q0FDRjtBQWhCRCwwQkFnQkM7QUFFRDs7b0RBRW9EO0FBQ3BELE1BQU0sUUFBUSxHQUFHLFVBQVUsU0FBaUI7SUFDMUMsTUFBTSxXQUFXLEdBQUcsZ0ZBQWdGLENBQUE7SUFDcEcsSUFBSSxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM5QyxNQUFNLENBQUMsWUFBWSxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQUVELE1BQU0sT0FBTyxHQUFHLFVBQVUsT0FBZSxFQUFFLE9BQWUsRUFBRSxPQUFlLEVBQUUsV0FBbUIsRUFBRSxFQUFFLFdBQVc7SUFDN0csSUFBSSxZQUFZLENBQUE7SUFDaEIsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEIsUUFBUSxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUE7SUFDM0IsQ0FBQztJQUNELE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDcEIsS0FBSyxPQUFPO1lBQ1YsWUFBWSxHQUFHLFVBQVU7Z0JBQ3ZCLFFBQVEsR0FBRyxPQUFPLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLE1BQU0sQ0FBQTtZQUM3RCxLQUFLLENBQUE7UUFDUCxLQUFLLEtBQUs7WUFDUixZQUFZLEdBQUcsTUFBTTtnQkFDbkIsT0FBTyxHQUFHLEdBQUcsR0FBRyxPQUFPLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxNQUFNLENBQUE7WUFDbEQsS0FBSyxDQUFBO1FBQ1A7WUFDRSxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxXQUFXLEdBQUcsWUFBWSxDQUFDLENBQUE7WUFDeEQsS0FBSyxDQUFBO0lBQ1QsQ0FBQztJQUNELE1BQU0sQ0FBQyxZQUFZLENBQUE7QUFDckIsQ0FBQyxDQUFBIn0=
\ No newline at end of file
diff --git a/dist/smartstring.indent.d.ts b/dist/smartstring.indent.d.ts
deleted file mode 100644
index 0394125..0000000
--- a/dist/smartstring.indent.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * indent an array
- * @param stringArg
- * @param spaceAmount
- */
-export declare const indent: (stringArg: string, spaceAmount: number) => string;
-/**
- * indents a string with prefix
- * @param stringArg
- * @param prefixArg
- */
-export declare const indentWithPrefix: (stringArg: string, prefixArg: string) => string;
-export declare const normalize: (stringArg: string) => string;
diff --git a/dist/smartstring.indent.js b/dist/smartstring.indent.js
deleted file mode 100644
index 98267b9..0000000
--- a/dist/smartstring.indent.js
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-/**
- * splits a string into an array
- * @param stringArg
- */
-const splitStringAtLineBreak = (stringArg) => {
- let resultArray = stringArg.split('\n');
- return cleanStringArray(resultArray);
-};
-/**
- * joins a string together again
- * @param stringArrayArg
- */
-const joinStringWithLineBreaks = (stringArrayArg) => {
- let resultString = '';
- for (let line of stringArrayArg) {
- resultString = resultString + line + '\n'; // add new line at end
- }
- return resultString;
-};
-/**
- * cleans first and last line in case they are empty
- * @param stringArrayArg
- */
-const cleanStringArray = (stringArrayArg) => {
- let testRegex = /^[\s]*$/;
- if (testRegex.test(stringArrayArg[0])) {
- stringArrayArg.shift();
- }
- if (testRegex.test(stringArrayArg[stringArrayArg.length - 1])) {
- stringArrayArg.pop();
- }
- return stringArrayArg;
-};
-/**
- * indent an array
- * @param stringArg
- * @param spaceAmount
- */
-exports.indent = (stringArg, spaceAmount) => {
- let localStringArray = splitStringAtLineBreak(stringArg);
- for (let stringArg of localStringArray) {
- stringArg = ' '.repeat(spaceAmount) + stringArg;
- }
- let resultString = joinStringWithLineBreaks(localStringArray);
- return resultString;
-};
-/**
- * indents a string with prefix
- * @param stringArg
- * @param prefixArg
- */
-exports.indentWithPrefix = (stringArg, prefixArg) => {
- let resultString;
- let stringArray = splitStringAtLineBreak(stringArg);
- let resultArray = [];
- for (let stringItem of stringArray) {
- resultArray.push(prefixArg + stringItem);
- }
- resultString = joinStringWithLineBreaks(resultArray);
- return resultString;
-};
-exports.normalize = (stringArg) => {
- let resultString;
- let splitStringArray = splitStringAtLineBreak(stringArg);
- let minCommonLeftOffset;
- const deIndentRegex = /^(\s*)/;
- const emptyLineRegex = /^(\s*)$/;
- for (let stringItem of splitStringArray) {
- let offsetString = deIndentRegex.exec(stringItem)[1];
- if ((typeof minCommonLeftOffset === 'undefined' || offsetString.length < minCommonLeftOffset)
- && !emptyLineRegex.test(stringItem)) {
- minCommonLeftOffset = offsetString.length;
- }
- }
- ;
- let resultSplitStringArray = [];
- for (let stringItem of splitStringArray) {
- resultSplitStringArray.push(stringItem.substr(minCommonLeftOffset));
- }
- resultString = joinStringWithLineBreaks(resultSplitStringArray);
- return resultString;
-};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcuaW5kZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcuaW5kZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUE7OztHQUdHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLFNBQWlCLEVBQVksRUFBRTtJQUM3RCxJQUFJLFdBQVcsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUN0QyxDQUFDLENBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLHdCQUF3QixHQUFHLENBQUMsY0FBd0IsRUFBVSxFQUFFO0lBQ3BFLElBQUksWUFBWSxHQUFXLEVBQUUsQ0FBQTtJQUM3QixHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLFlBQVksR0FBRyxZQUFZLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQSxDQUFDLHNCQUFzQjtJQUNsRSxDQUFDO0lBQ0QsTUFBTSxDQUFDLFlBQVksQ0FBQTtBQUNyQixDQUFDLENBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsY0FBd0IsRUFBWSxFQUFFO0lBQzlELElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQTtJQUN6QixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBRSxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDeEIsQ0FBQztJQUNELEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFFLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFDRCxNQUFNLENBQUMsY0FBYyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQUVEOzs7O0dBSUc7QUFDVSxRQUFBLE1BQU0sR0FBRyxDQUFDLFNBQWlCLEVBQUUsV0FBbUIsRUFBVSxFQUFFO0lBQ3ZFLElBQUksZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDeEQsR0FBRyxDQUFDLENBQUMsSUFBSSxTQUFTLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLFNBQVMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQTtJQUNqRCxDQUFDO0lBQ0QsSUFBSSxZQUFZLEdBQUcsd0JBQXdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUM3RCxNQUFNLENBQUMsWUFBWSxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQUVEOzs7O0dBSUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHLENBQUMsU0FBaUIsRUFBRSxTQUFpQixFQUFVLEVBQUU7SUFDL0UsSUFBSSxZQUFvQixDQUFBO0lBQ3hCLElBQUksV0FBVyxHQUFHLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ25ELElBQUksV0FBVyxHQUFhLEVBQUUsQ0FBQTtJQUM5QixHQUFHLENBQUMsQ0FBQyxJQUFJLFVBQVUsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ25DLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFDRCxZQUFZLEdBQUcsd0JBQXdCLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDcEQsTUFBTSxDQUFDLFlBQVksQ0FBQTtBQUNyQixDQUFDLENBQUE7QUFFWSxRQUFBLFNBQVMsR0FBRyxDQUFDLFNBQWlCLEVBQVUsRUFBRTtJQUNyRCxJQUFJLFlBQW9CLENBQUE7SUFDeEIsSUFBSSxnQkFBZ0IsR0FBYSxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNsRSxJQUFJLG1CQUEyQixDQUFBO0lBRS9CLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQTtJQUM5QixNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUE7SUFFaEMsR0FBRyxDQUFDLENBQUMsSUFBSSxVQUFVLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksWUFBWSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUUsQ0FBQyxDQUFFLENBQUE7UUFDdEQsRUFBRSxDQUFDLENBQ0QsQ0FBQyxPQUFPLG1CQUFtQixLQUFLLFdBQVcsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDO2VBQ3RGLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQ3BDLENBQUMsQ0FBQyxDQUFDO1lBQ0QsbUJBQW1CLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQTtRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUFBLENBQUM7SUFDRixJQUFJLHNCQUFzQixHQUFHLEVBQUUsQ0FBQTtJQUMvQixHQUFHLENBQUMsQ0FBQyxJQUFJLFVBQVUsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDeEMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFDRCxZQUFZLEdBQUcsd0JBQXdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtJQUMvRCxNQUFNLENBQUMsWUFBWSxDQUFBO0FBQ3JCLENBQUMsQ0FBQSJ9
\ No newline at end of file
diff --git a/dist/smartstring.normalize.d.ts b/dist/smartstring.normalize.d.ts
deleted file mode 100644
index 2fa2b9c..0000000
--- a/dist/smartstring.normalize.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * replaces all occurences of something in a string
- * @param stringArg
- * @param searchRegExp
- * @param replacementString
- */
-export declare const replaceAll: (stringArg: string, searchRegExp: any, replacementString: string) => string;
-/**
- * normalizes a string
- * @param stringArg
- */
-export declare const standard: (stringArg: string) => string;
diff --git a/dist/smartstring.normalize.js b/dist/smartstring.normalize.js
deleted file mode 100644
index 2cd0f68..0000000
--- a/dist/smartstring.normalize.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const plugins = require("./smartstring.plugins");
-/**
- * replaces all occurences of something in a string
- * @param stringArg
- * @param searchRegExp
- * @param replacementString
- */
-exports.replaceAll = (stringArg, searchRegExp, replacementString) => {
- return stringArg.replace(new RegExp(searchRegExp, 'g'), replacementString);
-};
-/**
- * normalizes a string
- * @param stringArg
- */
-exports.standard = (stringArg) => {
- let fix1 = plugins.stripIndent(stringArg); // fix indention
- let fix2 = plugins.normalizeNewline(fix1); // fix newlines
- let fix3 = exports.replaceAll(fix2, /\t/, ' '); // fix tabs
- return fix3;
-};
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcubm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRzdHJpbmcubm9ybWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQWdEO0FBRWhEOzs7OztHQUtHO0FBQ1UsUUFBQSxVQUFVLEdBQUcsQ0FBQyxTQUFpQixFQUFFLFlBQWlCLEVBQUUsaUJBQXlCLEVBQUUsRUFBRTtJQUM1RixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtBQUM1RSxDQUFDLENBQUE7QUFFRDs7O0dBR0c7QUFDVSxRQUFBLFFBQVEsR0FBRyxDQUFDLFNBQWlCLEVBQVUsRUFBRTtJQUNwRCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBLENBQUMsZ0JBQWdCO0lBQzFELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLGVBQWU7SUFDekQsSUFBSSxJQUFJLEdBQUcsa0JBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFBLENBQUMsV0FBVztJQUNsRCxNQUFNLENBQUMsSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBIn0=
\ No newline at end of file
diff --git a/dist/smartstring.plugins.d.ts b/dist/smartstring.plugins.d.ts
deleted file mode 100644
index 6136ed2..0000000
--- a/dist/smartstring.plugins.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import 'typings-global';
-export declare let jsBase64: any;
-export declare let stripIndent: any;
-export declare let normalizeNewline: any;
-export declare let randomatic: any;
-export declare let cryptoRandomString: any;
diff --git a/dist/smartstring.plugins.js b/dist/smartstring.plugins.js
deleted file mode 100644
index 017a5c0..0000000
--- a/dist/smartstring.plugins.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-require("typings-global");
-exports.jsBase64 = require('js-base64').Base64;
-exports.stripIndent = require('strip-indent');
-exports.normalizeNewline = require('normalize-newline');
-exports.randomatic = require('randomatic');
-exports.cryptoRandomString = require('crypto-random-string');
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c3RyaW5nLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBdUI7QUFDWixRQUFBLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBRXRDLFFBQUEsV0FBVyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQTtBQUNyQyxRQUFBLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0FBQy9DLFFBQUEsVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtBQUNsQyxRQUFBLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBIn0=
\ No newline at end of file
diff --git a/dist/smartstring.typescript.d.ts b/dist/smartstring.typescript.d.ts
deleted file mode 100644
index aa521ae..0000000
--- a/dist/smartstring.typescript.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare const regexReferencePath: RegExp;
diff --git a/dist/smartstring.typescript.js b/dist/smartstring.typescript.js
deleted file mode 100644
index 69e6136..0000000
--- a/dist/smartstring.typescript.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.regexReferencePath = /\/\/\/\s*\s*[\\n]?/;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzdHJpbmcudHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0c3RyaW5nLnR5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFYSxRQUFBLGtCQUFrQixHQUFHLDhEQUE4RCxDQUFBIn0=
\ No newline at end of file
diff --git a/npmextra.json b/npmextra.json
index 9c94086..8f9428d 100644
--- a/npmextra.json
+++ b/npmextra.json
@@ -1,8 +1,9 @@
{
"npmci": {
"npmGlobalTools": [
- "npmts"
- ]
+ "@gitzone/npmts"
+ ],
+ "npmAccessLevel": "public"
},
"npmdocker": {
"baseImage": "hosttoday/ht-docker-node:npmci",
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..1c553b6
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,947 @@
+{
+ "name": "smartstring",
+ "version": "2.0.28",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@airbnb/node-memwatch": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@airbnb/node-memwatch/-/node-memwatch-1.0.2.tgz",
+ "integrity": "sha512-2R+MEEMSTUdKwQ6NFWkyA/UNoSjL1tMldZqJbZpgXSwNMBzlNlkUWEXKu9RqTTMkDqJRfGJ2VDs8gPlPK2APDQ==",
+ "dev": true,
+ "requires": {
+ "bindings": "^1.3.0",
+ "nan": "^2.9.2"
+ }
+ },
+ "@gitzone/tsrun": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/@gitzone/tsrun/-/tsrun-1.1.9.tgz",
+ "integrity": "sha512-MbCLj4hSK5nY6cMqT0OxY0BrXffmiC1Rjbzan8CmEpB8OttaAJT+zsJErJWhI+pk4s75Te73PyhHYaJAXUoJhw==",
+ "dev": true,
+ "requires": {
+ "@pushrocks/smartfile": "^6.0.3",
+ "ts-node": "^7.0.0",
+ "typescript": "^2.9.1"
+ }
+ },
+ "@pushrocks/smartdelay": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@pushrocks/smartdelay/-/smartdelay-2.0.1.tgz",
+ "integrity": "sha512-olWwh2/JWfhmYdgqrR5RdSsgv1GlXBnbP+XKUrdKVk3dcCzkoqDx9lRE9NfpoCg1cUM2VMxbTVgTW9PWyexEuw==",
+ "dev": true,
+ "requires": {
+ "@pushrocks/smartpromise": "^2.0.5"
+ }
+ },
+ "@pushrocks/smartfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@pushrocks/smartfile/-/smartfile-6.0.3.tgz",
+ "integrity": "sha512-oYnLQzY/R6kVNerbWY4WwnPvdxXldrzMPWcB9j0aAdSDSqGwBEO1/ZFTQuNzN5MmPopoYmJrc06ZmI6dm4OJmw==",
+ "dev": true,
+ "requires": {
+ "@pushrocks/smartpromise": "^2.0.5",
+ "@pushrocks/smartrequest": "^1.0.15",
+ "@types/fs-extra": "^5.0.3",
+ "@types/vinyl": "^2.0.2",
+ "fs-extra": "^6.0.1",
+ "glob": "^7.1.2",
+ "js-yaml": "^3.10.0",
+ "smartpath": "^3.2.8",
+ "vinyl-file": "^3.0.0"
+ }
+ },
+ "@pushrocks/smartpromise": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz",
+ "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==",
+ "dev": true
+ },
+ "@pushrocks/smartrequest": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/@pushrocks/smartrequest/-/smartrequest-1.1.12.tgz",
+ "integrity": "sha512-8vDpYUADkbJFdxDcHQJyJBpc66+cvsRAJdQ6SwMirz5cIeWNlLSR/PVrdGQ94z5tSusf4mwnODk2Ai9smN6XSA==",
+ "dev": true,
+ "requires": {
+ "@pushrocks/smartpromise": "^2.0.5",
+ "@types/form-data": "^2.2.1",
+ "form-data": "^2.3.2"
+ }
+ },
+ "@pushrocks/tapbundle": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@pushrocks/tapbundle/-/tapbundle-3.0.1.tgz",
+ "integrity": "sha512-QWVz5EwB3sjjqHTMa22xuw78TBgVTyqKTF5H6HT9d/rvxL5Ag4ZrTuoadMPcU9hRBx9gtPsKbWq4lEwOHdCmLA==",
+ "dev": true,
+ "requires": {
+ "@pushrocks/smartdelay": "^2.0.1",
+ "@pushrocks/smartpromise": "^2.0.5",
+ "early": "^2.1.1",
+ "leakage": "^0.4.0",
+ "smartchai": "^2.0.1"
+ }
+ },
+ "@types/chai": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.4.tgz",
+ "integrity": "sha512-h6+VEw2Vr3ORiFCyyJmcho2zALnUq9cvdB/IO8Xs9itrJVCenC7o26A6+m7D0ihTTr65eS259H5/Ghl/VjYs6g==",
+ "dev": true
+ },
+ "@types/chai-as-promised": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.0.tgz",
+ "integrity": "sha512-MFiW54UOSt+f2bRw8J7LgQeIvE/9b4oGvwU7XW30S9QGAiHGnU/fmiOprsyMkdmH2rl8xSPc0/yrQw8juXU6bQ==",
+ "dev": true,
+ "requires": {
+ "@types/chai": "*"
+ }
+ },
+ "@types/chai-string": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@types/chai-string/-/chai-string-1.4.1.tgz",
+ "integrity": "sha512-aRNMs6TKgjgPlCHwDfq/YNy5VtRR2hJ4AUWByddrT0TRVVD8eX4MiHW6/iHvmQHRlVuuPZcwnTUE7b4yFt7bEA==",
+ "dev": true,
+ "requires": {
+ "@types/chai": "*"
+ }
+ },
+ "@types/form-data": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz",
+ "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/fs-extra": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.4.tgz",
+ "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/node": {
+ "version": "10.5.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz",
+ "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==",
+ "dev": true
+ },
+ "@types/vinyl": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.2.tgz",
+ "integrity": "sha512-2iYpNuOl98SrLPBZfEN9Mh2JCJ2EI9HU35SfgBEb51DcmaHkhp8cKMblYeBqMQiwXMgAD3W60DbQ4i/UdLiXhw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "ansi-256-colors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz",
+ "integrity": "sha1-kQ3lDvzHwJ49gvL4er1rcAwYgYo=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "beautycolor": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/beautycolor/-/beautycolor-1.0.11.tgz",
+ "integrity": "sha512-Uxl/39+2uqixPzsrV+0NOHf0sJlWmsKnRTV0oz8+bfwnHPA/E+SZuh3Upn3OXobv0W7LZg5BVoLj1nkMj7m5jA==",
+ "dev": true,
+ "requires": {
+ "ansi-256-colors": "^1.1.0",
+ "typings-global": "^1.0.14"
+ }
+ },
+ "bindings": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz",
+ "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
+ "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==",
+ "dev": true
+ },
+ "chai": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz",
+ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.0.1",
+ "check-error": "^1.0.1",
+ "deep-eql": "^3.0.0",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.0.0",
+ "type-detect": "^4.0.0"
+ }
+ },
+ "chai-as-promised": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz",
+ "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==",
+ "dev": true,
+ "requires": {
+ "check-error": "^1.0.2"
+ }
+ },
+ "chai-string": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/chai-string/-/chai-string-1.4.0.tgz",
+ "integrity": "sha1-NZFAwFHTak5LGl/GuRAVL0OKjUk=",
+ "dev": true
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true
+ },
+ "clone": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz",
+ "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=",
+ "dev": true
+ },
+ "clone-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
+ "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
+ "dev": true
+ },
+ "clone-stats": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
+ "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
+ "dev": true
+ },
+ "cloneable-readable": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz",
+ "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "process-nextick-args": "^2.0.0",
+ "readable-stream": "^2.3.5"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4="
+ },
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "dev": true,
+ "requires": {
+ "foreach": "^2.0.5",
+ "object-keys": "^1.0.8"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
+ },
+ "early": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/early/-/early-2.1.1.tgz",
+ "integrity": "sha1-hB4jJU6l3FTYr67ugvWrZcAO4jw=",
+ "dev": true,
+ "requires": {
+ "beautycolor": "^1.0.7",
+ "smartq": "^1.1.1",
+ "typings-global": "^1.0.16"
+ }
+ },
+ "es-abstract": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
+ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.1.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.1",
+ "is-callable": "^1.1.3",
+ "is-regex": "^1.0.4"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.1",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.1"
+ }
+ },
+ "es6-error": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
+ "dev": true
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "first-chunk-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz",
+ "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fs-extra": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
+ "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "home": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/home/-/home-1.0.1.tgz",
+ "integrity": "sha1-lqQjzrSbmDeP9e886uBZpVf53TU=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.1"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
+ "dev": true
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
+ "is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.1"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
+ "dev": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "js-base64": {
+ "version": "2.4.8",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz",
+ "integrity": "sha512-hm2nYpDrwoO/OzBhdcqs/XGT6XjSuSSCVEpia+Kl2J6x4CYt5hISlVL/AYU1khoDXv0AQVgxtdJySb9gjAn56Q=="
+ },
+ "js-yaml": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
+ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ },
+ "leakage": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/leakage/-/leakage-0.4.0.tgz",
+ "integrity": "sha512-x7gYK5n5dPkHDZWJ2Kh8Ag1hZNzUh+HtXn8Bv1aDdN6o6ONPCJ8sOfFq+kxcULJFp3lXaCjXb3iXOLmQRbBLwA==",
+ "dev": true,
+ "requires": {
+ "@airbnb/node-memwatch": "^1.0.2",
+ "es6-error": "^4.0.2",
+ "left-pad": "^1.1.3",
+ "minimist": "^1.2.0",
+ "pretty-bytes": "^4.0.2"
+ }
+ },
+ "left-pad": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
+ "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==",
+ "dev": true
+ },
+ "make-error": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz",
+ "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==",
+ "dev": true
+ },
+ "math-random": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
+ "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w="
+ },
+ "mime-db": {
+ "version": "1.35.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
+ "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.19",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz",
+ "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==",
+ "dev": true,
+ "requires": {
+ "mime-db": "~1.35.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ }
+ }
+ },
+ "nan": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
+ "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
+ "dev": true
+ },
+ "normalize-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-newline/-/normalize-newline-3.0.0.tgz",
+ "integrity": "sha1-HL6oBKukNgAfg5OKsh7AOdaa6dM="
+ },
+ "object-keys": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
+ "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==",
+ "dev": true
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "pathval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
+ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
+ "dev": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pretty-bytes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
+ "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
+ "randomatic": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
+ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==",
+ "requires": {
+ "is-number": "^4.0.0",
+ "kind-of": "^6.0.0",
+ "math-random": "^1.0.1"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "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"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "replace-ext": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "smartchai": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/smartchai/-/smartchai-2.0.1.tgz",
+ "integrity": "sha512-9M+R56OhAHXScxgr2vzQqxGx0XMS0QXriNZuP7hjlbVbo2FUT+l60iEzbwPt9Ga+5u2cEEjSSoZEQVqlROaddA==",
+ "dev": true,
+ "requires": {
+ "@types/chai": "^4.1.2",
+ "@types/chai-as-promised": "^7.1.0",
+ "@types/chai-string": "^1.4.0",
+ "chai": "^4.1.2",
+ "chai-as-promised": "^7.1.1",
+ "chai-string": "^1.4.0"
+ }
+ },
+ "smartpath": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmjs.org/smartpath/-/smartpath-3.2.8.tgz",
+ "integrity": "sha1-SDS9OouuIpW6rK26I8h6UBlS+UA=",
+ "dev": true,
+ "requires": {
+ "home": "^1.0.1",
+ "typings-global": "^1.0.14"
+ }
+ },
+ "smartq": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/smartq/-/smartq-1.1.8.tgz",
+ "integrity": "sha512-FURlYW/C3bLeZjJcBVyw7bxCyQoCXiXbLCZcDUKznhXHaLu35c8m33/a2H8CA0rtb82lvzN8dRLnBZAcNMzNHQ==",
+ "dev": true,
+ "requires": {
+ "util.promisify": "^1.0.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz",
+ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-bom-buf": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz",
+ "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.1"
+ }
+ },
+ "strip-bom-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz",
+ "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=",
+ "dev": true,
+ "requires": {
+ "first-chunk-stream": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g="
+ },
+ "ts-node": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.0.tgz",
+ "integrity": "sha512-klJsfswHP0FuOLsvBZ/zzCfUvakOSSxds78mVeK7I+qP76YWtxf16hEZsp3U+b0kIo82R5UatGFeblYMqabb2Q==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.0",
+ "buffer-from": "^1.1.0",
+ "diff": "^3.1.0",
+ "make-error": "^1.1.1",
+ "minimist": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.5.6",
+ "yn": "^2.0.0"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "typescript": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
+ "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
+ "dev": true
+ },
+ "typings-global": {
+ "version": "1.0.28",
+ "resolved": "https://registry.npmjs.org/typings-global/-/typings-global-1.0.28.tgz",
+ "integrity": "sha512-6VOwJWEY2971HOMHu/7sURzUXiD4/LiMJPsMAOqkHHAtS3MVpLFE5gzTiHilsH9KY5VE1mBQirWIgWFsDuo90A==",
+ "dev": true
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "vinyl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
+ "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
+ "dev": true,
+ "requires": {
+ "clone": "^2.1.1",
+ "clone-buffer": "^1.0.0",
+ "clone-stats": "^1.0.0",
+ "cloneable-readable": "^1.0.0",
+ "remove-trailing-separator": "^1.0.1",
+ "replace-ext": "^1.0.0"
+ }
+ },
+ "vinyl-file": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz",
+ "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.3.0",
+ "strip-bom-buf": "^1.0.0",
+ "strip-bom-stream": "^2.0.0",
+ "vinyl": "^2.0.1"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "yn": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
+ "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
index 3ffb74f..3f98e95 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,13 @@
{
- "name": "smartstring",
+ "name": "@pushrocks/smartstring",
"version": "2.0.28",
+ "private": false,
"description": "handle strings in smart ways. TypeScript ready.",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"scripts": {
- "test": "(npmts)"
+ "test": "tsrun test/test.base64.ts",
+ "build": "(npmts)"
},
"repository": {
"type": "git",
@@ -22,15 +24,14 @@
},
"homepage": "https://gitlab.com/pushrocks/smartstring#readme",
"devDependencies": {
- "beautylog": "^6.1.10",
- "tapbundle": "^1.1.1"
+ "@gitzone/tsrun": "^1.1.9",
+ "@pushrocks/tapbundle": "^3.0.1"
},
"dependencies": {
"crypto-random-string": "^1.0.0",
- "js-base64": "^2.3.2",
+ "js-base64": "^2.4.8",
"normalize-newline": "^3.0.0",
- "randomatic": "^1.1.7",
- "strip-indent": "^2.0.0",
- "typings-global": "^1.0.20"
+ "randomatic": "^3.0.0",
+ "strip-indent": "^2.0.0"
}
-}
+}
\ No newline at end of file
diff --git a/test/test.base64.ts b/test/test.base64.ts
index f78a1e8..344d031 100644
--- a/test/test.base64.ts
+++ b/test/test.base64.ts
@@ -1,16 +1,16 @@
-import * as smartstring from '../ts/index'
-import { tap, expect } from 'tapbundle'
+import * as smartstring from '../ts/index';
+import { tap, expect } from '@pushrocks/tapbundle';
// Base64
-let testBase64: smartstring.Base64
+let testBase64: smartstring.Base64;
tap.test('expect create a valid instance of Base64', async () => {
- testBase64 = new smartstring.Base64('somestring', 'string')
- expect(testBase64).be.instanceOf(smartstring.Base64)
-})
+ testBase64 = new smartstring.Base64('somestring', 'string');
+ expect(testBase64).be.instanceOf(smartstring.Base64);
+});
tap.test('expect read output a file as base64 and base64uri', async () => {
- expect(testBase64.base64String).not.equal(testBase64.base64UriString)
- let testBase64_2 = new smartstring.Base64(testBase64.base64UriString, 'base64uri')
- expect(testBase64_2.simpleString).equal(testBase64.simpleString)
-})
+ expect(testBase64.base64String).not.equal(testBase64.base64UriString);
+ let testBase64_2 = new smartstring.Base64(testBase64.base64UriString, 'base64uri');
+ expect(testBase64_2.simpleString).equal(testBase64.simpleString);
+});
-tap.start()
+tap.start();
diff --git a/test/test.docker.ts b/test/test.docker.ts
index 1a8e132..6c75eba 100644
--- a/test/test.docker.ts
+++ b/test/test.docker.ts
@@ -1,12 +1,12 @@
-import * as smartstring from '../ts/index'
-import { tap, expect } from 'tapbundle'
+import * as smartstring from '../ts/index';
+import { tap, expect } from '@pushrocks/tapbundle';
// Docker
tap.test('expect create a Env Object', async () => {
- let envStringArray = [ 'VIRTUAL_HOST=sub.domain.tld', 'DEFAULT_HOST=some.domain.com' ]
- let envObject: any = smartstring.docker.makeEnvObject(envStringArray)
- expect(envObject.VIRTUAL_HOST).to.equal('sub.domain.tld')
- expect(envObject.DEFAULT_HOST).to.equal('some.domain.com')
-})
+ let envStringArray = ['VIRTUAL_HOST=sub.domain.tld', 'DEFAULT_HOST=some.domain.com'];
+ let envObject: any = smartstring.docker.makeEnvObject(envStringArray);
+ expect(envObject.VIRTUAL_HOST).to.equal('sub.domain.tld');
+ expect(envObject.DEFAULT_HOST).to.equal('some.domain.com');
+});
-tap.start()
+tap.start();
diff --git a/test/test.domain.ts b/test/test.domain.ts
index d8c75f4..dcca6ef 100644
--- a/test/test.domain.ts
+++ b/test/test.domain.ts
@@ -1,32 +1,32 @@
-import * as smartstring from '../ts/index'
-import { tap, expect } from 'tapbundle'
+import * as smartstring from '../ts/index';
+import { tap, expect } from '@pushrocks/tapbundle';
// Domain
-let testDomain: smartstring.Domain
-let testDomain2: smartstring.Domain
+let testDomain: smartstring.Domain;
+let testDomain2: smartstring.Domain;
tap.test('expect create a new Domain object', async () => {
- testDomain = new smartstring.Domain('https://level3D.level2D.level1D')
- expect(testDomain).be.instanceof(smartstring.Domain)
- console.log(testDomain)
-})
+ testDomain = new smartstring.Domain('https://level3D.level2D.level1D');
+ expect(testDomain).be.instanceof(smartstring.Domain);
+ console.log(testDomain);
+});
tap.test('expect have a .topLevel', async () => {
- expect(testDomain.topLevel).equal('level1D')
-})
+ expect(testDomain.topLevel).equal('level1D');
+});
tap.test('expect have a .level2', async () => {
- expect(testDomain.level2).equal('level2D')
-})
+ expect(testDomain.level2).equal('level2D');
+});
tap.test('expect have a .level3', async () => {
- expect(testDomain.level3).equal('level3D')
-})
+ expect(testDomain.level3).equal('level3D');
+});
tap.test('expect have the correct dns zone name', async () => {
- expect(testDomain.zoneName).equal('level2D.level1D')
-})
+ expect(testDomain.zoneName).equal('level2D.level1D');
+});
tap.test('expect have the correct protocol', async () => {
- expect(testDomain.protocol).equal('https')
-})
+ expect(testDomain.protocol).equal('https');
+});
tap.test('testDomain2 expect be a basic domain', async () => {
- testDomain2 = new smartstring.Domain('bleu.de')
- console.log(testDomain2)
-})
+ testDomain2 = new smartstring.Domain('bleu.de');
+ console.log(testDomain2);
+});
-tap.start()
+tap.start();
diff --git a/test/test.git.ts b/test/test.git.ts
index 0ba3e09..a9c1d77 100644
--- a/test/test.git.ts
+++ b/test/test.git.ts
@@ -1,26 +1,26 @@
-import * as smartstring from '../ts/index'
-import { tap, expect } from 'tapbundle'
+import * as smartstring from '../ts/index';
+import { tap, expect } from '@pushrocks/tapbundle';
// git
-let testGit: smartstring.GitRepo
+let testGit: smartstring.GitRepo;
tap.test('expect create a new Git class GitRepo', async () => {
- testGit = new smartstring.GitRepo('git+https://github.com/pushrocks/smartstring.git')
- expect(testGit).be.instanceof(smartstring.GitRepo)
-})
+ testGit = new smartstring.GitRepo('git+https://github.com/pushrocks/smartstring.git');
+ expect(testGit).be.instanceof(smartstring.GitRepo);
+});
tap.test('expect return a .host', async () => {
- expect(testGit.host).equal('github.com')
-})
+ expect(testGit.host).equal('github.com');
+});
tap.test('expect return a .user', async () => {
- expect(testGit.user).equal('pushrocks')
-})
+ expect(testGit.user).equal('pushrocks');
+});
tap.test('expect return a .repo', async () => {
- expect(testGit.repo).equal('smartstring')
-})
+ expect(testGit.repo).equal('smartstring');
+});
tap.test('expect return a .httpsUrl', async () => {
- expect(testGit.httpsUrl).equal('https://github.com/pushrocks/smartstring.git')
-})
+ expect(testGit.httpsUrl).equal('https://github.com/pushrocks/smartstring.git');
+});
tap.test('expect return a .sshUrl', async () => {
- expect(testGit.sshUrl).equal('git@github.com:pushrocks/smartstring.git')
-})
+ expect(testGit.sshUrl).equal('git@github.com:pushrocks/smartstring.git');
+});
-tap.start()
+tap.start();
diff --git a/test/test.indent.ts b/test/test.indent.ts
index b59b151..11f8b74 100644
--- a/test/test.indent.ts
+++ b/test/test.indent.ts
@@ -1,5 +1,5 @@
-import * as smartstring from '../ts/index'
-import { tap, expect } from 'tapbundle'
+import * as smartstring from '../ts/index';
+import { tap, expect } from '@pushrocks/tapbundle';
// indent
let testString = `
@@ -9,20 +9,20 @@ base
base
indented
-`
+`;
// normalize
tap.test('expect normalize a string', async () => {
- testString = smartstring.indent.normalize(testString)
- console.log(testString)
- let zoneNameArg = 'test1'
- let destinationIpArg = '111'
-})
+ testString = smartstring.indent.normalize(testString);
+ console.log(testString);
+ let zoneNameArg = 'test1';
+ let destinationIpArg = '111';
+});
// indent with prefix
tap.test('expect indent', async () => {
- testString = smartstring.indent.indentWithPrefix(testString, '>> ')
- console.log(testString)
-})
+ testString = smartstring.indent.indentWithPrefix(testString, '>> ');
+ console.log(testString);
+});
-tap.start()
+tap.start();
diff --git a/test/test.typescript.ts b/test/test.typescript.ts
index e0fcafe..8a8c62c 100644
--- a/test/test.typescript.ts
+++ b/test/test.typescript.ts
@@ -1,22 +1,16 @@
-import * as smartstring from '../ts/index'
-import { tap, expect } from 'tapbundle'
+import * as smartstring from '../ts/index';
+import { tap, expect } from '@pushrocks/tapbundle';
// typscript
tap.test('expect match reference paths', async () => {
// tslint:disable-next-line:no-unused-expression
- expect(
- smartstring.typescript.regexReferencePath.test('/// ')
- ).to.be.true
-
- // tslint:disable-next-line:no-unused-expression
- expect(
- smartstring.typescript.regexReferencePath.test("/// ")
- ).to.be.true
-
- // tslint:disable-next-line:no-unused-expression
- expect(
- smartstring.typescript.regexReferencePath.test('/// ')
- ).to.be.false
-})
+ expect(smartstring.typescript.regexReferencePath.test('/// ')).to.be.true;
-tap.start()
+ // tslint:disable-next-line:no-unused-expression
+ expect(smartstring.typescript.regexReferencePath.test("/// ")).to.be.true;
+
+ // tslint:disable-next-line:no-unused-expression
+ expect(smartstring.typescript.regexReferencePath.test('/// ')).to.be.false;
+});
+
+tap.start();
diff --git a/ts/index.ts b/ts/index.ts
index 73d3804..095e614 100644
--- a/ts/index.ts
+++ b/ts/index.ts
@@ -1,17 +1,11 @@
-import * as create from './smartstring.create'
-import * as docker from './smartstring.docker'
-import * as indent from './smartstring.indent'
-import * as normalize from './smartstring.normalize'
-import * as typescript from './smartstring.typescript'
+import * as create from './smartstring.create';
+import * as docker from './smartstring.docker';
+import * as indent from './smartstring.indent';
+import * as normalize from './smartstring.normalize';
+import * as typescript from './smartstring.typescript';
-export {
- create,
- docker,
- typescript,
- normalize,
- indent
-}
+export { create, docker, typescript, normalize, indent };
-export { Base64, base64 } from './smartstring.base64'
-export { Domain } from './smartstring.domain'
-export { GitRepo } from './smartstring.git'
+export { Base64, base64 } from './smartstring.base64';
+export { Domain } from './smartstring.domain';
+export { GitRepo } from './smartstring.git';
diff --git a/ts/smartstring.base64.ts b/ts/smartstring.base64.ts
index 673fa1b..e88597c 100644
--- a/ts/smartstring.base64.ts
+++ b/ts/smartstring.base64.ts
@@ -1,47 +1,47 @@
-import * as plugins from './smartstring.plugins'
+import * as plugins from './smartstring.plugins';
/**
* the type for base 64
*/
-export type TBase64Input = 'string' | 'base64' | 'base64uri'
+export type TBase64Input = 'string' | 'base64' | 'base64uri';
/**
* handle base64 strings
*/
export class Base64 {
- private refString: string
+ private refString: string;
constructor(inputStringArg, typeArg: TBase64Input) {
switch (typeArg) {
case 'string': // easiest case
- this.refString = inputStringArg
- break
+ this.refString = inputStringArg;
+ break;
case 'base64':
- this.refString = base64.decode(inputStringArg)
- break
+ this.refString = base64.decode(inputStringArg);
+ break;
case 'base64uri':
- this.refString = base64.decode(inputStringArg)
+ this.refString = base64.decode(inputStringArg);
}
}
/**
* the simple string (unencoded)
*/
- get simpleString () {
- return this.refString
+ get simpleString() {
+ return this.refString;
}
/**
* the base64 encoded version of the original string
*/
- get base64String () {
- return base64.encode(this.refString)
+ get base64String() {
+ return base64.encode(this.refString);
}
/**
* the base64uri encoded version of the original string
*/
- get base64UriString () {
- return base64.encodeUri(this.refString)
+ get base64UriString() {
+ return base64.encodeUri(this.refString);
}
}
@@ -50,20 +50,20 @@ export let base64 = {
* encodes the string
*/
encode: (stringArg: string) => {
- return plugins.jsBase64.encode(stringArg)
+ return plugins.jsBase64.encode(stringArg);
},
/**
* encodes a stringArg to base64 uri style
*/
encodeUri: (stringArg: string) => {
- return plugins.jsBase64.encodeURI(stringArg)
+ return plugins.jsBase64.encodeURI(stringArg);
},
/**
* decodes a base64 encoded string
*/
decode: (stringArg: string) => {
- return plugins.jsBase64.decode(stringArg)
+ return plugins.jsBase64.decode(stringArg);
}
-}
+};
diff --git a/ts/smartstring.create.ts b/ts/smartstring.create.ts
index b6a0685..c245891 100644
--- a/ts/smartstring.create.ts
+++ b/ts/smartstring.create.ts
@@ -1,13 +1,13 @@
-import * as plugins from './smartstring.plugins'
+import * as plugins from './smartstring.plugins';
export const createRandomString = (
patternArg: string,
lengthArg: number,
optionsArg: any
): string => {
- return plugins.randomatic(patternArg, lengthArg, optionsArg)
-}
+ return plugins.randomatic(patternArg, lengthArg, optionsArg);
+};
export const createCryptoRandomString = (lengthArg): string => {
- return plugins.cryptoRandomString(lengthArg)
-}
+ return plugins.cryptoRandomString(lengthArg);
+};
diff --git a/ts/smartstring.docker.ts b/ts/smartstring.docker.ts
index de1f461..01b636c 100644
--- a/ts/smartstring.docker.ts
+++ b/ts/smartstring.docker.ts
@@ -1,18 +1,18 @@
-import * as plugins from './smartstring.plugins'
+import * as plugins from './smartstring.plugins';
/**
* converts an erray of env strings from docker remote api to an usable object.
* @param envArrayArg
* @returns {}
*/
-export const makeEnvObject = function (envArrayArg: string[]) {
- let returnObject = {}
- let regexString = /(.*)=(.*)/
+export const makeEnvObject = function(envArrayArg: string[]) {
+ let returnObject = {};
+ let regexString = /(.*)=(.*)/;
if (typeof envArrayArg !== 'undefined') {
for (let envKey in envArrayArg) {
- let regexMatches = regexString.exec(envArrayArg[ envKey ])
- returnObject[ regexMatches[ 1 ] ] = regexMatches[ 2 ]
+ let regexMatches = regexString.exec(envArrayArg[envKey]);
+ returnObject[regexMatches[1]] = regexMatches[2];
}
}
- return returnObject
-}
+ return returnObject;
+};
diff --git a/ts/smartstring.domain.ts b/ts/smartstring.domain.ts
index fd2b78a..a0b01d4 100644
--- a/ts/smartstring.domain.ts
+++ b/ts/smartstring.domain.ts
@@ -1,62 +1,61 @@
import * as plugins from './smartstring.plugins';
export class Domain {
- fullName: string
- level1: string
- level2: string
- level3: string
- level4: string
- level5: string
- protocol: string
- zoneName: string
+ fullName: string;
+ level1: string;
+ level2: string;
+ level3: string;
+ level4: string;
+ level5: string;
+ protocol: string;
+ zoneName: string;
// aliases
- topLevel: string
- domainName
- subDomain
- constructor (domainStringArg: string) {
+ topLevel: string;
+ domainName;
+ subDomain;
+ constructor(domainStringArg: string) {
let regexMatches = domainRegex(domainStringArg);
- this.fullName = ''
+ this.fullName = '';
for (let i = 1; i <= 5; i++) {
- if (regexMatches[ i - 1 ]) {
- let localMatch = regexMatches[ i - 1 ]
- this[ 'level' + i.toString() ] = localMatch
+ if (regexMatches[i - 1]) {
+ let localMatch = regexMatches[i - 1];
+ this['level' + i.toString()] = localMatch;
if (this.fullName === '') {
- this.fullName = localMatch
+ this.fullName = localMatch;
} else {
- this.fullName = localMatch + '.' + this.fullName
+ this.fullName = localMatch + '.' + this.fullName;
}
} else {
- this[ 'level' + i.toString() ] = undefined
- };
- };
- this.protocol = protocolRegex(domainStringArg)
- this.zoneName = this.level2 + '.' + this.level1
+ this['level' + i.toString()] = undefined;
+ }
+ }
+ this.protocol = protocolRegex(domainStringArg);
+ this.zoneName = this.level2 + '.' + this.level1;
// aliases
- this.topLevel = this.level1
- this.domainName = this.level2
- this.subDomain = this.level3
+ this.topLevel = this.level1;
+ this.domainName = this.level2;
+ this.subDomain = this.level3;
}
}
-
-let domainRegex = function (stringArg: string) {
- let regexString = /([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}$/
- let regexMatches = regexString.exec(stringArg)
- regexMatches.reverse() //make sure we build the domain from toplevel to subdomain (reversed order)
- regexMatches.pop() // pop the last element, which is, since we reversed the Array, the full String of matched elements
- let regexMatchesFiltered = regexMatches.filter(function (stringArg: string) {
- return (stringArg !== '')
+let domainRegex = function(stringArg: string) {
+ let regexString = /([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}([a-zA-Z0-9\-\_]*)\.{0,1}$/;
+ let regexMatches = regexString.exec(stringArg);
+ regexMatches.reverse(); //make sure we build the domain from toplevel to subdomain (reversed order)
+ regexMatches.pop(); // pop the last element, which is, since we reversed the Array, the full String of matched elements
+ let regexMatchesFiltered = regexMatches.filter(function(stringArg: string) {
+ return stringArg !== '';
});
- return regexMatchesFiltered
+ return regexMatchesFiltered;
};
-let protocolRegex = function (stringArg: string) {
- let regexString = /^([a-zA-Z0-9]*):\/\//
- let regexMatches = regexString.exec(stringArg)
+let protocolRegex = function(stringArg: string) {
+ let regexString = /^([a-zA-Z0-9]*):\/\//;
+ let regexMatches = regexString.exec(stringArg);
if (regexMatches) {
- return regexMatches[ 1 ]
+ return regexMatches[1];
} else {
- return undefined
+ return undefined;
}
-}
+};
diff --git a/ts/smartstring.git.ts b/ts/smartstring.git.ts
index 944d19e..cb97a50 100644
--- a/ts/smartstring.git.ts
+++ b/ts/smartstring.git.ts
@@ -1,52 +1,56 @@
-import * as plugins from './smartstring.plugins'
+import * as plugins from './smartstring.plugins';
/* ---------------------------------------------- *
* ------------------ classes ------------------- *
* ---------------------------------------------- */
export class GitRepo {
- host: string
- user: string
- repo: string
- accessToken: string
- sshUrl: string
- httpsUrl: string
- constructor (stringArg: string, tokenArg?: string) {
- let regexMatches = gitRegex(stringArg)
- this.host = regexMatches[ 1 ]
- this.user = regexMatches[ 2 ]
- this.repo = regexMatches[ 3 ]
- this.accessToken = tokenArg
- this.sshUrl = gitLink(this.host, this.user, this.repo, this.accessToken, 'ssh')
- this.httpsUrl = gitLink(this.host, this.user, this.repo, this.accessToken, 'https')
+ host: string;
+ user: string;
+ repo: string;
+ accessToken: string;
+ sshUrl: string;
+ httpsUrl: string;
+ constructor(stringArg: string, tokenArg?: string) {
+ let regexMatches = gitRegex(stringArg);
+ this.host = regexMatches[1];
+ this.user = regexMatches[2];
+ this.repo = regexMatches[3];
+ this.accessToken = tokenArg;
+ this.sshUrl = gitLink(this.host, this.user, this.repo, this.accessToken, 'ssh');
+ this.httpsUrl = gitLink(this.host, this.user, this.repo, this.accessToken, 'https');
}
}
/* ---------------------------------------------- *
* ------------------ helpers ------------------- *
* ---------------------------------------------- */
-const gitRegex = function (stringArg: string) {
- const regexString = /([a-zA-Z0-9\-\.]*)(?:\/|\:)([a-zA-Z0-9\-\.]*)(?:\/)([a-zA-Z0-9\-\.]*)(?:\.git)/
- let regexMatches = regexString.exec(stringArg)
- return regexMatches
-}
+const gitRegex = function(stringArg: string) {
+ const regexString = /([a-zA-Z0-9\-\.]*)(?:\/|\:)([a-zA-Z0-9\-\.]*)(?:\/)([a-zA-Z0-9\-\.]*)(?:\.git)/;
+ let regexMatches = regexString.exec(stringArg);
+ return regexMatches;
+};
-const gitLink = function (hostArg: string, userArg: string, repoArg: string, tokenArg: string = '', linkTypeArg): string {
- let returnString
+const gitLink = function(
+ hostArg: string,
+ userArg: string,
+ repoArg: string,
+ tokenArg: string = '',
+ linkTypeArg
+): string {
+ let returnString;
if (tokenArg !== '') {
- tokenArg = tokenArg + '@'
+ tokenArg = tokenArg + '@';
}
switch (linkTypeArg) {
case 'https':
- returnString = 'https://' +
- tokenArg + hostArg + '/' + userArg + '/' + repoArg + '.git'
- break
+ returnString = 'https://' + tokenArg + hostArg + '/' + userArg + '/' + repoArg + '.git';
+ break;
case 'ssh':
- returnString = 'git@' +
- hostArg + ':' + userArg + '/' + repoArg + '.git'
- break
+ returnString = 'git@' + hostArg + ':' + userArg + '/' + repoArg + '.git';
+ break;
default:
- console.error('Link Type ' + linkTypeArg + ' not known')
- break
+ console.error('Link Type ' + linkTypeArg + ' not known');
+ break;
}
- return returnString
-}
+ return returnString;
+};
diff --git a/ts/smartstring.indent.ts b/ts/smartstring.indent.ts
index 0a9f59e..eb26946 100644
--- a/ts/smartstring.indent.ts
+++ b/ts/smartstring.indent.ts
@@ -1,40 +1,40 @@
-import * as plugins from './smartstring.plugins'
+import * as plugins from './smartstring.plugins';
/**
* splits a string into an array
* @param stringArg
*/
const splitStringAtLineBreak = (stringArg: string): string[] => {
- let resultArray = stringArg.split('\n')
- return cleanStringArray(resultArray)
-}
+ let resultArray = stringArg.split('\n');
+ return cleanStringArray(resultArray);
+};
/**
* joins a string together again
* @param stringArrayArg
*/
const joinStringWithLineBreaks = (stringArrayArg: string[]): string => {
- let resultString: string = ''
+ let resultString: string = '';
for (let line of stringArrayArg) {
- resultString = resultString + line + '\n' // add new line at end
+ resultString = resultString + line + '\n'; // add new line at end
}
- return resultString
-}
+ return resultString;
+};
/**
* cleans first and last line in case they are empty
* @param stringArrayArg
*/
const cleanStringArray = (stringArrayArg: string[]): string[] => {
- let testRegex = /^[\s]*$/
- if (testRegex.test(stringArrayArg[ 0 ])) {
- stringArrayArg.shift()
+ let testRegex = /^[\s]*$/;
+ if (testRegex.test(stringArrayArg[0])) {
+ stringArrayArg.shift();
}
- if (testRegex.test(stringArrayArg[ stringArrayArg.length - 1 ])) {
- stringArrayArg.pop()
+ if (testRegex.test(stringArrayArg[stringArrayArg.length - 1])) {
+ stringArrayArg.pop();
}
- return stringArrayArg
-}
+ return stringArrayArg;
+};
/**
* indent an array
@@ -42,13 +42,13 @@ const cleanStringArray = (stringArrayArg: string[]): string[] => {
* @param spaceAmount
*/
export const indent = (stringArg: string, spaceAmount: number): string => {
- let localStringArray = splitStringAtLineBreak(stringArg)
+ let localStringArray = splitStringAtLineBreak(stringArg);
for (let stringArg of localStringArray) {
- stringArg = ' '.repeat(spaceAmount) + stringArg
+ stringArg = ' '.repeat(spaceAmount) + stringArg;
}
- let resultString = joinStringWithLineBreaks(localStringArray)
- return resultString
-}
+ let resultString = joinStringWithLineBreaks(localStringArray);
+ return resultString;
+};
/**
* indents a string with prefix
@@ -56,37 +56,37 @@ export const indent = (stringArg: string, spaceAmount: number): string => {
* @param prefixArg
*/
export const indentWithPrefix = (stringArg: string, prefixArg: string): string => {
- let resultString: string
- let stringArray = splitStringAtLineBreak(stringArg)
- let resultArray: string[] = []
+ let resultString: string;
+ let stringArray = splitStringAtLineBreak(stringArg);
+ let resultArray: string[] = [];
for (let stringItem of stringArray) {
- resultArray.push(prefixArg + stringItem)
+ resultArray.push(prefixArg + stringItem);
}
- resultString = joinStringWithLineBreaks(resultArray)
- return resultString
-}
+ resultString = joinStringWithLineBreaks(resultArray);
+ return resultString;
+};
export const normalize = (stringArg: string): string => {
- let resultString: string
- let splitStringArray: string[] = splitStringAtLineBreak(stringArg)
- let minCommonLeftOffset: number
+ let resultString: string;
+ let splitStringArray: string[] = splitStringAtLineBreak(stringArg);
+ let minCommonLeftOffset: number;
- const deIndentRegex = /^(\s*)/
- const emptyLineRegex = /^(\s*)$/
+ const deIndentRegex = /^(\s*)/;
+ const emptyLineRegex = /^(\s*)$/;
for (let stringItem of splitStringArray) {
- let offsetString = deIndentRegex.exec(stringItem)[ 1 ]
+ let offsetString = deIndentRegex.exec(stringItem)[1];
if (
- (typeof minCommonLeftOffset === 'undefined' || offsetString.length < minCommonLeftOffset)
- && !emptyLineRegex.test(stringItem)
+ (typeof minCommonLeftOffset === 'undefined' || offsetString.length < minCommonLeftOffset) &&
+ !emptyLineRegex.test(stringItem)
) {
- minCommonLeftOffset = offsetString.length
+ minCommonLeftOffset = offsetString.length;
}
- };
- let resultSplitStringArray = []
- for (let stringItem of splitStringArray) {
- resultSplitStringArray.push(stringItem.substr(minCommonLeftOffset))
}
- resultString = joinStringWithLineBreaks(resultSplitStringArray)
- return resultString
-}
+ let resultSplitStringArray = [];
+ for (let stringItem of splitStringArray) {
+ resultSplitStringArray.push(stringItem.substr(minCommonLeftOffset));
+ }
+ resultString = joinStringWithLineBreaks(resultSplitStringArray);
+ return resultString;
+};
diff --git a/ts/smartstring.normalize.ts b/ts/smartstring.normalize.ts
index b411400..9a514e1 100644
--- a/ts/smartstring.normalize.ts
+++ b/ts/smartstring.normalize.ts
@@ -1,22 +1,22 @@
-import * as plugins from './smartstring.plugins'
+import * as plugins from './smartstring.plugins';
/**
* replaces all occurences of something in a string
* @param stringArg
- * @param searchRegExp
- * @param replacementString
+ * @param searchRegExp
+ * @param replacementString
*/
export const replaceAll = (stringArg: string, searchRegExp: any, replacementString: string) => {
- return stringArg.replace(new RegExp(searchRegExp, 'g'), replacementString)
-}
+ return stringArg.replace(new RegExp(searchRegExp, 'g'), replacementString);
+};
/**
* normalizes a string
* @param stringArg
*/
export const standard = (stringArg: string): string => {
- let fix1 = plugins.stripIndent(stringArg) // fix indention
- let fix2 = plugins.normalizeNewline(fix1) // fix newlines
- let fix3 = replaceAll(fix2, /\t/, ' ') // fix tabs
- return fix3
-}
+ let fix1 = plugins.stripIndent(stringArg); // fix indention
+ let fix2 = plugins.normalizeNewline(fix1); // fix newlines
+ let fix3 = replaceAll(fix2, /\t/, ' '); // fix tabs
+ return fix3;
+};
diff --git a/ts/smartstring.plugins.ts b/ts/smartstring.plugins.ts
index 5121583..2d52b95 100644
--- a/ts/smartstring.plugins.ts
+++ b/ts/smartstring.plugins.ts
@@ -1,7 +1,7 @@
-import 'typings-global'
-export let jsBase64 = require('js-base64').Base64
+import 'typings-global';
+export let jsBase64 = require('js-base64').Base64;
-export let stripIndent = require('strip-indent')
-export let normalizeNewline = require('normalize-newline')
-export let randomatic = require('randomatic')
-export let cryptoRandomString = require('crypto-random-string')
+export let stripIndent = require('strip-indent');
+export let normalizeNewline = require('normalize-newline');
+export let randomatic = require('randomatic');
+export let cryptoRandomString = require('crypto-random-string');
diff --git a/ts/smartstring.typescript.ts b/ts/smartstring.typescript.ts
index c3fece1..d87a967 100644
--- a/ts/smartstring.typescript.ts
+++ b/ts/smartstring.typescript.ts
@@ -1,3 +1,3 @@
-import * as plugins from './smartstring.plugins'
+import * as plugins from './smartstring.plugins';
-export const regexReferencePath = /\/\/\/\s*\s*[\\n]?/
+export const regexReferencePath = /\/\/\/\s*\s*[\\n]?/;
diff --git a/yarn.lock b/yarn.lock
deleted file mode 100644
index e3d7b50..0000000
--- a/yarn.lock
+++ /dev/null
@@ -1,548 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@types/chai-as-promised@0.0.29":
- version "0.0.29"
- resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-0.0.29.tgz#43d52892aa998e185a3de3e2477edb8573be1d77"
- dependencies:
- "@types/chai" "*"
- "@types/promises-a-plus" "*"
-
-"@types/chai-string@^1.1.30":
- version "1.1.31"
- resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.1.31.tgz#a22f75d713f69da8c5cf34f8bc808a62cd249405"
- dependencies:
- "@types/chai" "*"
-
-"@types/chai@*":
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.4.tgz#fe86315d9a66827feeb16f73bc954688ec950e18"
-
-"@types/chai@^3.4.35":
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.5.2.tgz#c11cd2817d3a401b7ba0f5a420f35c56139b1c1e"
-
-"@types/glob@*":
- version "5.0.33"
- resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.33.tgz#3dff7c6ce09d65abe919c7961dc3dee016f36ad7"
- dependencies:
- "@types/minimatch" "*"
- "@types/node" "*"
-
-"@types/lodash@^4.14.55":
- version "4.14.77"
- resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.77.tgz#0bc699413e84d6ed5d927ca30ea0f0a890b42d75"
-
-"@types/minimatch@*":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.1.tgz#b683eb60be358304ef146f5775db4c0e3696a550"
-
-"@types/node@*":
- version "8.0.32"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.32.tgz#869a716538b6eec65ab3893f183d557be3cda206"
-
-"@types/promises-a-plus@*":
- version "0.0.27"
- resolved "https://registry.yarnpkg.com/@types/promises-a-plus/-/promises-a-plus-0.0.27.tgz#c64651134614c84b8f5d7114ce8901d36a609780"
-
-"@types/shelljs@^0.7.4":
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.4.tgz#137b5f31306eaff4de120ffe5b9d74b297809cfc"
- dependencies:
- "@types/glob" "*"
- "@types/node" "*"
-
-"@types/which@^1.0.28":
- version "1.0.28"
- resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6"
-
-ansi-256-colors@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz#910de50efcc7c09e3d82f2f87abd6b700c18818a"
-
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-
-assertion-error@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
-
-balanced-match@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-
-beautycolor@^1.0.7:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.11.tgz#71c5568d5a7ed5c144d3a54f753ad1b08862aea5"
- dependencies:
- ansi-256-colors "^1.1.0"
- typings-global "^1.0.14"
-
-beautylog@^6.1.10:
- version "6.1.10"
- resolved "https://registry.yarnpkg.com/beautylog/-/beautylog-6.1.10.tgz#9c27e566937684cb689f9372d98cfa5415d50b72"
- dependencies:
- "@types/lodash" "^4.14.55"
- beautycolor "^1.0.7"
- figlet "^1.2.0"
- lodash "^4.17.4"
- ora "^1.1.0"
- smartenv "^2.0.0"
- smartq "^1.1.1"
- typings-global "^1.0.14"
-
-bindings@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
-
-brace-expansion@^1.1.7:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-chai-as-promised@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6"
- dependencies:
- check-error "^1.0.2"
-
-chai-string@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.4.0.tgz#359140c051d36a4e4b1a5fc6b910152f438a8d49"
-
-chai@^3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
- dependencies:
- assertion-error "^1.0.1"
- deep-eql "^0.1.3"
- type-detect "^1.0.0"
-
-chalk@^1.0.0, chalk@^1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-check-error@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
-
-cli-cursor@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
- dependencies:
- restore-cursor "^2.0.0"
-
-cli-spinners@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.1.tgz#2675321c100f195b02877ac499e9911fa34b9783"
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-
-crypto-random-string@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
-
-deep-eql@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
- dependencies:
- type-detect "0.1.1"
-
-define-properties@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
- dependencies:
- foreach "^2.0.5"
- object-keys "^1.0.8"
-
-early@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/early/-/early-2.1.1.tgz#841e23254ea5dc54d8afaeee82f5ab65c00ee23c"
- dependencies:
- beautycolor "^1.0.7"
- smartq "^1.1.1"
- typings-global "^1.0.16"
-
-es-abstract@^1.5.1:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.9.0.tgz#690829a07cae36b222e7fd9b75c0d0573eb25227"
- dependencies:
- es-to-primitive "^1.1.1"
- function-bind "^1.1.1"
- has "^1.0.1"
- is-callable "^1.1.3"
- is-regex "^1.0.4"
-
-es-to-primitive@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
- dependencies:
- is-callable "^1.1.1"
- is-date-object "^1.0.1"
- is-symbol "^1.0.1"
-
-es6-error@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98"
-
-escape-string-regexp@^1.0.2:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-
-figlet@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.0.tgz#6c46537378fab649146b5a6143dda019b430b410"
-
-foreach@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-
-function-bind@^1.0.2, function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-
-glob@^7.0.0:
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- dependencies:
- ansi-regex "^2.0.0"
-
-has@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
- dependencies:
- function-bind "^1.0.2"
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
-interpret@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0"
-
-is-buffer@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
-
-is-callable@^1.1.1, is-callable@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
-
-is-date-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
-
-is-number@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
- dependencies:
- kind-of "^3.0.2"
-
-is-regex@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
- dependencies:
- has "^1.0.1"
-
-is-symbol@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-
-js-base64@^2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.3.2.tgz#a79a923666372b580f8e27f51845c6f7e8fbfbaf"
-
-kind-of@^3.0.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
- dependencies:
- is-buffer "^1.1.5"
-
-leakage@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.3.0.tgz#15d698abdc76bbc6439601f4f3020e77e2d50c39"
- dependencies:
- es6-error "^4.0.2"
- left-pad "^1.1.3"
- memwatch-next "^0.3.0"
- minimist "^1.2.0"
- pretty-bytes "^4.0.2"
-
-left-pad@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a"
-
-lodash@^4.17.4:
- version "4.17.4"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
-
-log-symbols@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
- dependencies:
- chalk "^1.0.0"
-
-memwatch-next@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/memwatch-next/-/memwatch-next-0.3.0.tgz#2111050f9a906e0aa2d72a4ec0f0089c78726f8f"
- dependencies:
- bindings "^1.2.1"
- nan "^2.3.2"
-
-mimic-fn@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
-
-minimatch@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- dependencies:
- brace-expansion "^1.1.7"
-
-minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-
-nan@^2.3.2:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
-
-normalize-newline@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-newline/-/normalize-newline-3.0.0.tgz#1cbea804aba436001f83938ab21ec039d69ae9d3"
-
-object-keys@^1.0.8:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
-
-object.getownpropertydescriptors@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
- dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.5.1"
-
-once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- dependencies:
- wrappy "1"
-
-onetime@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
- dependencies:
- mimic-fn "^1.0.0"
-
-ora@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/ora/-/ora-1.3.0.tgz#80078dd2b92a934af66a3ad72a5b910694ede51a"
- dependencies:
- chalk "^1.1.1"
- cli-cursor "^2.1.0"
- cli-spinners "^1.0.0"
- log-symbols "^1.0.2"
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-
-path-parse@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
-
-pretty-bytes@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
-
-randomatic@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
- dependencies:
- is-number "^3.0.0"
- kind-of "^4.0.0"
-
-rechoir@^0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
- dependencies:
- resolve "^1.1.6"
-
-resolve@^1.1.6:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
- dependencies:
- path-parse "^1.0.5"
-
-restore-cursor@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
- dependencies:
- onetime "^2.0.0"
- signal-exit "^3.0.2"
-
-semver@^5.3.0:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
-
-shelljs@^0.7.8:
- version "0.7.8"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
- dependencies:
- glob "^7.0.0"
- interpret "^1.0.0"
- rechoir "^0.6.2"
-
-signal-exit@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-
-smartchai@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.3.tgz#de6d010bb8b5aef24cb70b31a5f5334e8c41b72f"
- dependencies:
- "@types/chai" "^3.4.35"
- "@types/chai-as-promised" "0.0.29"
- "@types/chai-string" "^1.1.30"
- chai "^3.5.0"
- chai-as-promised "^6.0.0"
- chai-string "^1.3.0"
-
-smartdelay@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.3.tgz#5fd44dad77262d110702f0293efa80c072cfb579"
- dependencies:
- smartq "^1.1.1"
- typings-global "^1.0.16"
-
-smartenv@^2.0.0:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/smartenv/-/smartenv-2.0.6.tgz#b38c679b0c151b9af548f68c3a072c29d1417e8d"
- dependencies:
- lodash "^4.17.4"
- smartq "^1.1.1"
- typings-global "^1.0.14"
-
-smartq@^1.1.1, smartq@^1.1.6:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.6.tgz#0c1ff4336d95e95b4f1fdd8ccd7e2c5a323b8412"
- dependencies:
- typings-global "^1.0.19"
- util.promisify "^1.0.0"
-
-smartshell@^1.0.6:
- version "1.0.18"
- resolved "https://registry.yarnpkg.com/smartshell/-/smartshell-1.0.18.tgz#b84ccc65cedf3a875bf676cec78ee07f4b4aa9e5"
- dependencies:
- "@types/shelljs" "^0.7.4"
- "@types/which" "^1.0.28"
- shelljs "^0.7.8"
- smartq "^1.1.6"
- typings-global "^1.0.20"
- which "^1.3.0"
-
-strip-ansi@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-indent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
-
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-
-tapbundle@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.1.1.tgz#ec4172c0e82a77b1f6133fef2606311ede28a62d"
- dependencies:
- early "^2.1.1"
- leakage "^0.3.0"
- smartchai "^1.0.3"
- smartdelay "^1.0.3"
- smartq "^1.1.1"
- typings-global "^1.0.19"
-
-type-detect@0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
-
-type-detect@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
-
-typings-global@^1.0.14, typings-global@^1.0.16, typings-global@^1.0.19, typings-global@^1.0.20:
- version "1.0.20"
- resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.20.tgz#3da769c54db538247c5d877d1d9e97eb2ec981ff"
- dependencies:
- semver "^5.3.0"
- smartshell "^1.0.6"
-
-util.promisify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
- dependencies:
- define-properties "^1.1.2"
- object.getownpropertydescriptors "^2.0.3"
-
-which@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
- dependencies:
- isexe "^2.0.0"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"