@coderzz/mocker-data-generator 3.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +561 -0
  2. package/LICENSE +21 -0
  3. package/README.md +550 -0
  4. package/build/main/array-includes.d.ts +0 -0
  5. package/build/main/array-includes.js +45 -0
  6. package/build/main/index.d.ts +7 -0
  7. package/build/main/index.js +12 -0
  8. package/build/main/index.spec.d.ts +1 -0
  9. package/build/main/index.spec.js +16 -0
  10. package/build/main/lib/Generator.d.ts +61 -0
  11. package/build/main/lib/Generator.js +134 -0
  12. package/build/main/lib/Mocker.d.ts +22 -0
  13. package/build/main/lib/Mocker.js +76 -0
  14. package/build/main/lib/Schema.d.ts +9 -0
  15. package/build/main/lib/Schema.js +210 -0
  16. package/build/main/lib/types.d.ts +8 -0
  17. package/build/main/lib/types.js +2 -0
  18. package/build/main/lib/utils.d.ts +10 -0
  19. package/build/main/lib/utils.js +222 -0
  20. package/build/main/tests/Generator.db.spec.d.ts +1 -0
  21. package/build/main/tests/Generator.db.spec.js +33 -0
  22. package/build/main/tests/Generator.eval.spec.d.ts +1 -0
  23. package/build/main/tests/Generator.eval.spec.js +21 -0
  24. package/build/main/tests/Generator.function.spec.d.ts +1 -0
  25. package/build/main/tests/Generator.function.spec.js +48 -0
  26. package/build/main/tests/Generator.generator.spec.d.ts +1 -0
  27. package/build/main/tests/Generator.generator.spec.js +187 -0
  28. package/build/main/tests/Generator.hasMany.spec.d.ts +1 -0
  29. package/build/main/tests/Generator.hasMany.spec.js +115 -0
  30. package/build/main/tests/Generator.hasOne.spec.d.ts +1 -0
  31. package/build/main/tests/Generator.hasOne.spec.js +146 -0
  32. package/build/main/tests/Generator.incrementalId.spec.d.ts +1 -0
  33. package/build/main/tests/Generator.incrementalId.spec.js +26 -0
  34. package/build/main/tests/Generator.self.spec.d.ts +1 -0
  35. package/build/main/tests/Generator.self.spec.js +24 -0
  36. package/build/main/tests/Generator.static.spec.d.ts +1 -0
  37. package/build/main/tests/Generator.static.spec.js +15 -0
  38. package/build/main/tests/Generator.values.spec.d.ts +1 -0
  39. package/build/main/tests/Generator.values.spec.js +16 -0
  40. package/build/main/tests/Mocker.build.spec.d.ts +1 -0
  41. package/build/main/tests/Mocker.build.spec.js +196 -0
  42. package/build/main/tests/Mocker.reset.spec.d.ts +1 -0
  43. package/build/main/tests/Mocker.reset.spec.js +17 -0
  44. package/build/main/tests/Mocker.restart.spec.d.ts +1 -0
  45. package/build/main/tests/Mocker.restart.spec.js +24 -0
  46. package/build/main/tests/Mocker.schema.spec.d.ts +1 -0
  47. package/build/main/tests/Mocker.schema.spec.js +18 -0
  48. package/build/main/tests/Mocker.seed.spec.d.ts +1 -0
  49. package/build/main/tests/Mocker.seed.spec.js +42 -0
  50. package/build/main/tests/Schema.Array.spec.d.ts +1 -0
  51. package/build/main/tests/Schema.Array.spec.js +332 -0
  52. package/build/main/tests/Schema.BuildSingle.spec.d.ts +1 -0
  53. package/build/main/tests/Schema.BuildSingle.spec.js +13 -0
  54. package/build/main/tests/mocker.spec.d.ts +1 -0
  55. package/build/main/tests/mocker.spec.js +405 -0
  56. package/build/module/array-includes.js +45 -0
  57. package/build/module/index.js +7 -0
  58. package/build/module/lib/Generator.js +131 -0
  59. package/build/module/lib/Mocker.js +73 -0
  60. package/build/module/lib/Schema.js +207 -0
  61. package/build/module/lib/types.js +1 -0
  62. package/build/module/lib/utils.js +209 -0
  63. package/package.json +130 -0
@@ -0,0 +1,207 @@
1
+ import { __assign, __extends, __spreadArray } from "tslib";
2
+ import { Generator } from './Generator';
3
+ import { evalWithContextData, fieldArrayCalcLength, iamLastParent, isArray, isConditional, isObject } from './utils';
4
+ var iterate = function (obj, res, currentPath) {
5
+ var _this = this;
6
+ if (!currentPath) {
7
+ currentPath = [];
8
+ }
9
+ Object.keys(obj).map(function (k) {
10
+ var value = obj[k];
11
+ var path = currentPath.slice(0);
12
+ path.push(k);
13
+ if (iamLastParent(value)) {
14
+ if (path) {
15
+ if (isArray(value)) {
16
+ if (value[0] && value[0].virtual) {
17
+ _this.virtualPaths.push(path.toString());
18
+ }
19
+ }
20
+ else {
21
+ if (value.virtual) {
22
+ _this.virtualPaths.push(path.toString());
23
+ }
24
+ }
25
+ }
26
+ var key = '';
27
+ if (!isConditional(k)) {
28
+ key = k;
29
+ }
30
+ else {
31
+ var keykey = k.split(',');
32
+ if (evalWithContextData(keykey[0], _this.object, _this.DB, _this.generators)) {
33
+ key = keykey[1];
34
+ }
35
+ }
36
+ if (key !== '') {
37
+ res[key] = _this.proccessLeaf(value, key);
38
+ }
39
+ }
40
+ else {
41
+ res[k] = {};
42
+ iterate.call(_this, value, res[k], path);
43
+ }
44
+ });
45
+ };
46
+ var Schema = /** @class */ (function (_super) {
47
+ __extends(Schema, _super);
48
+ function Schema(name, cfg, options, generators) {
49
+ if (generators === void 0) { generators = {}; }
50
+ var _this = _super.call(this) || this;
51
+ _this.schema = cfg;
52
+ _this.name = name;
53
+ _this.options = options;
54
+ _this.generators = generators;
55
+ // Temp fields
56
+ _this.DB = {};
57
+ _this.object = {};
58
+ _this.virtualPaths = [];
59
+ return _this;
60
+ }
61
+ Schema.prototype.proccessLeaf = function (field, fieldName) {
62
+ var _this = this;
63
+ if (isArray(field)) {
64
+ var fieldConfig_1 = field[0];
65
+ if (field.length > 1) {
66
+ fieldConfig_1 = { values: field };
67
+ }
68
+ var na = Array();
69
+ if (fieldConfig_1.concat) {
70
+ na = evalWithContextData(fieldConfig_1.concat, this.object, this.DB, this.generators);
71
+ // Strict Mode
72
+ na = fieldConfig_1.concatStrict
73
+ ? __spreadArray([], Array.from(new Set(na)), true) : na;
74
+ }
75
+ var length_1 = fieldArrayCalcLength(field.length > 1 ? fieldConfig_1.values : fieldConfig_1, na.length, this);
76
+ var array = Array.from(new Array(length_1)).reduce(function (acc, el, index) {
77
+ var self = acc.slice(0);
78
+ acc.push(_this.generateField(fieldName, fieldConfig_1, index, length_1, self));
79
+ return acc;
80
+ }, []);
81
+ return array.concat(na);
82
+ }
83
+ else {
84
+ return this.generateField(fieldName, field);
85
+ }
86
+ };
87
+ Schema.prototype.generateField = function (fieldName, cfg) {
88
+ var _a, _b;
89
+ var args = [];
90
+ for (var _i = 2; _i < arguments.length; _i++) {
91
+ args[_i - 2] = arguments[_i];
92
+ }
93
+ var result = {};
94
+ var customGenerators = Object.keys(this.generators);
95
+ var ownedByMocker = [
96
+ 'self',
97
+ 'db',
98
+ 'hasOne',
99
+ 'hasMany',
100
+ 'static',
101
+ 'function',
102
+ 'values',
103
+ 'incrementalId'
104
+ ];
105
+ var generators = __spreadArray(__spreadArray([], ownedByMocker, true), customGenerators, true);
106
+ var keys = Object.keys(cfg);
107
+ var key = keys.reduce(function (acc, val) {
108
+ if (generators.includes(val)) {
109
+ acc = val;
110
+ }
111
+ return acc;
112
+ }, 'noKey');
113
+ if (key === 'noKey' && !keys.includes('eval')) {
114
+ throw "Error: Invalid or missing generator".concat(fieldName !== 'root' ? " on field ".concat(fieldName) : '', ". Please use one of this generators [").concat(generators.join(','), "], note that if your generator doesnt appear in the list maybe you forgot to add it.");
115
+ }
116
+ if (keys.includes('eval') && keys.length === 1) {
117
+ key = 'eval';
118
+ }
119
+ try {
120
+ result = customGenerators.includes(key)
121
+ ? this.custom({
122
+ generator: (_a = this.generators[key]) === null || _a === void 0 ? void 0 : _a.library,
123
+ run: (_b = this.generators[key]) === null || _b === void 0 ? void 0 : _b.run,
124
+ input: cfg[key],
125
+ eval: cfg.eval
126
+ })
127
+ : this[key].apply(this, __spreadArray([__assign(__assign({}, cfg), { generators: this.generators })], args, false));
128
+ }
129
+ catch (e) {
130
+ throw 'Error: "' + key + '" ' + e;
131
+ }
132
+ return result;
133
+ };
134
+ Schema.prototype.buildSingle = function (schema) {
135
+ if (iamLastParent(schema)) {
136
+ this.object = this.proccessLeaf(schema, 'root');
137
+ }
138
+ else {
139
+ iterate.call(this, schema, this.object);
140
+ }
141
+ };
142
+ Schema.prototype.build = function (generators, db) {
143
+ var _this = this;
144
+ if (generators === void 0) { generators = {}; }
145
+ if (db === void 0) { db = {}; }
146
+ this.generators = generators;
147
+ this.object = {};
148
+ this.DB = db ? db : {};
149
+ this.DB[this.name] = this.DB[this.name] ? this.DB[this.name] : [];
150
+ if (Number.isInteger(this.options)) {
151
+ Array.from(new Array(this.options)).map(function () {
152
+ _this.buildSingle(_this.schema);
153
+ _this.DB[_this.name].push(_this.object);
154
+ _this.object = {};
155
+ });
156
+ }
157
+ else if (isObject(this.options) && this.options.max) {
158
+ var max = this.options.max;
159
+ var min = this.options.min ? this.options.min : 0;
160
+ var length = Math.floor(Math.random() * (max - min + 1) + min);
161
+ Array.from(new Array(length)).map(function () {
162
+ _this.buildSingle(_this.schema);
163
+ _this.DB[_this.name].push(_this.object);
164
+ _this.object = {};
165
+ });
166
+ }
167
+ else if (isObject(this.options) && this.options.uniqueField) {
168
+ var f_1 = this.options.uniqueField;
169
+ var entityConfig_1 = this.schema;
170
+ var possibleValues = void 0;
171
+ if (f_1 === '.') {
172
+ possibleValues = this.schema.values;
173
+ }
174
+ else {
175
+ if (this.schema[f_1]) {
176
+ if (isArray(this.schema[f_1].values)) {
177
+ possibleValues = this.schema[f_1].values;
178
+ }
179
+ else {
180
+ possibleValues = this.schema[f_1];
181
+ }
182
+ }
183
+ else {
184
+ throw "The field \"".concat(f_1, "\" not exists.");
185
+ }
186
+ }
187
+ if (!isArray(possibleValues)) {
188
+ throw "The posible values value is not an Array";
189
+ }
190
+ possibleValues.map(function (value) {
191
+ if (f_1 === '.') {
192
+ return;
193
+ }
194
+ entityConfig_1[f_1] = { static: value };
195
+ _this.buildSingle(entityConfig_1);
196
+ _this.DB[_this.name].push(_this.object);
197
+ _this.object = {};
198
+ });
199
+ }
200
+ else {
201
+ throw "An string \"".concat(this.options, "\" is not recognized as a parameter.");
202
+ }
203
+ return this.DB[this.name];
204
+ };
205
+ return Schema;
206
+ }(Generator));
207
+ export { Schema };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,209 @@
1
+ import { __generator, __spreadArray, __values } from "tslib";
2
+ export var isArray = function (arg) {
3
+ return Object.prototype.toString.call(arg) === '[object Array]';
4
+ };
5
+ export var isObject = function (arg) {
6
+ return Object.prototype.toString.call(arg) === '[object Object]';
7
+ };
8
+ export var evalWithContextData = function (key, object, db, generators) {
9
+ // In this (way, we can pass object and use inside the eval string
10
+ return eval(key);
11
+ };
12
+ export var fieldArrayCalcLength = function (config, fixedArrayLength, schema) {
13
+ var length;
14
+ if (typeof config.length === 'function') {
15
+ length = config.length.call(schema);
16
+ }
17
+ else if (config.fixedLength) {
18
+ length = config.length - fixedArrayLength;
19
+ }
20
+ else {
21
+ length = Math.floor(Math.random() * config.length + 1);
22
+ }
23
+ return length;
24
+ };
25
+ export var iamLastChild = function (parent, k) {
26
+ if (isArray(parent[k])) {
27
+ var last = false;
28
+ if (parent[k].length === 0) {
29
+ return true;
30
+ }
31
+ for (var i = 0; i < parent[k].length; i++) {
32
+ var el = parent[k][i];
33
+ last = !isObject(el);
34
+ if (last) {
35
+ break;
36
+ }
37
+ }
38
+ return last;
39
+ }
40
+ else {
41
+ return !isObject(parent[k]);
42
+ }
43
+ };
44
+ export var iamLastParent = function (obj) {
45
+ var last = false;
46
+ if (isObject(obj)) {
47
+ var ks = Object.keys(obj);
48
+ for (var i = 0; i < ks.length; i++) {
49
+ var k = ks[i];
50
+ last = iamLastChild(obj, k);
51
+ if (!last) {
52
+ break;
53
+ }
54
+ }
55
+ }
56
+ else {
57
+ last = true;
58
+ }
59
+ return last;
60
+ };
61
+ export var isConditional = function (str) {
62
+ var arr = str.split(',');
63
+ return arr.length > 1;
64
+ };
65
+ export var cleanVirtuals = function (paths, object, options) {
66
+ // clean specific paths
67
+ var objectCleaner = function (path, obj, options) {
68
+ var lvls, dest, i, field;
69
+ return __generator(this, function (_a) {
70
+ switch (_a.label) {
71
+ case 0:
72
+ lvls = path.split(options.symbol);
73
+ dest = obj;
74
+ if (!lvls || lvls.length === 0) {
75
+ return [2 /*return*/];
76
+ }
77
+ if (!obj) {
78
+ return [2 /*return*/];
79
+ }
80
+ for (i = 0; i < lvls.length; i++) {
81
+ field = lvls[i];
82
+ if (i === lvls.length - 1 && dest[field]) {
83
+ if (Object.getOwnPropertyNames(dest[field]).length < 1) {
84
+ delete dest[field];
85
+ break;
86
+ }
87
+ }
88
+ else {
89
+ dest = dest[field];
90
+ }
91
+ }
92
+ lvls.pop();
93
+ if (!(lvls.length > 0)) return [3 /*break*/, 2];
94
+ return [5 /*yield**/, __values(objectCleaner(lvls.join(options.symbol), obj, options))];
95
+ case 1:
96
+ _a.sent();
97
+ return [3 /*break*/, 3];
98
+ case 2: return [2 /*return*/];
99
+ case 3: return [2 /*return*/];
100
+ }
101
+ });
102
+ };
103
+ var forEachPath = function (path, object, options) {
104
+ var lvls, dest, i, field;
105
+ return __generator(this, function (_a) {
106
+ switch (_a.label) {
107
+ case 0:
108
+ lvls = path.split(options.symbol);
109
+ dest = object;
110
+ i = 0;
111
+ _a.label = 1;
112
+ case 1:
113
+ if (!(i < lvls.length)) return [3 /*break*/, 5];
114
+ field = lvls[i];
115
+ if (!(i === lvls.length - 1)) return [3 /*break*/, 3];
116
+ // delete specific path
117
+ delete dest[field];
118
+ // clean specific path
119
+ return [5 /*yield**/, __values(objectCleaner(path, object, options))];
120
+ case 2:
121
+ // clean specific path
122
+ _a.sent();
123
+ return [3 /*break*/, 4];
124
+ case 3:
125
+ dest = dest[field];
126
+ _a.label = 4;
127
+ case 4:
128
+ i++;
129
+ return [3 /*break*/, 1];
130
+ case 5: return [2 /*return*/];
131
+ }
132
+ });
133
+ };
134
+ var forPaths = function (paths, object, options) {
135
+ var i, path;
136
+ return __generator(this, function (_a) {
137
+ switch (_a.label) {
138
+ case 0:
139
+ i = 0;
140
+ _a.label = 1;
141
+ case 1:
142
+ if (!(i < paths.length)) return [3 /*break*/, 4];
143
+ path = paths[i];
144
+ return [5 /*yield**/, __values(Array.from(forEachPath(path, object, options)))];
145
+ case 2:
146
+ _a.sent();
147
+ _a.label = 3;
148
+ case 3:
149
+ i++;
150
+ return [3 /*break*/, 1];
151
+ case 4: return [2 /*return*/];
152
+ }
153
+ });
154
+ };
155
+ for (var _i = 0, _a = Array.from(forPaths(paths, object, options)); _i < _a.length; _i++) {
156
+ var res = _a[_i];
157
+ }
158
+ return object;
159
+ };
160
+ export var stringToPathOrCall = function (name, fn, cfg) {
161
+ var _a = cfg.split('('), body = _a[0], args = _a[1];
162
+ body = body.split('.');
163
+ var func = body.reduce(function (acc, val) {
164
+ if (!acc[val]) {
165
+ throw "This ".concat(name, " method doesnt exists '").concat(cfg, "'.");
166
+ }
167
+ return acc[val];
168
+ }, fn);
169
+ if (!args) {
170
+ if (typeof func === 'function') {
171
+ return func.call(this);
172
+ }
173
+ else {
174
+ return func;
175
+ }
176
+ }
177
+ var _b = args.split(')'), args2 = _b[0], mods = _b[1];
178
+ args = args2
179
+ ? args2[0] === '{'
180
+ ? [JSON.parse(args2)]
181
+ : args2
182
+ .split(',')
183
+ .map(function (e) { return (/^\d+$/.test(e) ? Number.parseInt(e) : e); })
184
+ : [];
185
+ var result = func.call.apply(func, __spreadArray([this], args, false));
186
+ if (!mods || mods === '') {
187
+ return result;
188
+ }
189
+ mods = mods
190
+ .split('[')
191
+ .filter(function (i) { return i !== ''; })
192
+ .map(function (i) { return i.slice(0, -1); })
193
+ .map(function (i) { return (i[0] === '"' ? i.slice(1, -1) : parseInt(i, 10)); });
194
+ return mods.reduce(function (acc, val) {
195
+ if (!acc[val]) {
196
+ throw "'".concat(acc, "' doesnt have key '").concat(val, "'.");
197
+ }
198
+ return acc[val];
199
+ }, result);
200
+ };
201
+ export var loopInside = function (object, path) {
202
+ var p = path.split('.');
203
+ return p.reduce(function (acc, val) {
204
+ if (acc[val] === null) {
205
+ throw "'".concat(acc, "' doesnt have key '").concat(val, "'.");
206
+ }
207
+ return acc[val];
208
+ }, object);
209
+ };
package/package.json ADDED
@@ -0,0 +1,130 @@
1
+ {
2
+ "name": "@coderzz/mocker-data-generator",
3
+ "version": "3.0.5",
4
+ "description": "A simplified way to generate mock data, builds using a simple schema and with the FakerJs",
5
+ "main": "build/main/index.js",
6
+ "typings": "build/main/index.d.ts",
7
+ "module": "build/module/index.js",
8
+ "repository": "https://github.com/anyideaz/mocker-data-generator",
9
+ "keywords": [
10
+ "mock",
11
+ "data",
12
+ "faker",
13
+ "fakerjs",
14
+ "chance",
15
+ "chancejs",
16
+ "casual",
17
+ "randexp",
18
+ "json",
19
+ "fake",
20
+ "mocks",
21
+ "massive",
22
+ "generator"
23
+ ],
24
+ "author": {
25
+ "name": "Daniel Biedma Ramos",
26
+ "email": "info@dbr.io",
27
+ "url": "https://dbr.io"
28
+ },
29
+ "files": [
30
+ "build/main/**/*",
31
+ "build/module/**/*",
32
+ "build/browser/**/*",
33
+ "package.json",
34
+ "README.md",
35
+ "CHANGELOG.md",
36
+ "LICENSE"
37
+ ],
38
+ "license": "MIT",
39
+ "bugs": {
40
+ "url": "https://github.com/anyideaz/mocker-data-generator/issues"
41
+ },
42
+ "scripts": {
43
+ "info": "npm-scripts-info",
44
+ "build": "trash build && tsc -p tsconfig.json && tsc -p config/tsconfig.module.json",
45
+ "build:tests": "trash test && node config/exports/build-tests.js",
46
+ "lint": "tslint src/**/*.ts",
47
+ "unit": "npm run build && nyc ava",
48
+ "check-coverage": "nyc check-coverage --lines 80 --functions 80 --branches 80",
49
+ "test": "npm run unit && npm run check-coverage",
50
+ "watch": "trash build && multiview [yarn watch:build] [yarn watch:unit]",
51
+ "watch:build": "tsc -p tsconfig.json -w",
52
+ "watch:unit": "tsc -p tsconfig.json && ava --watch --verbose",
53
+ "cov": "npm run unit && npm run html-coverage && opn coverage/index.html",
54
+ "html-coverage": "nyc report --reporter=html",
55
+ "send-coverage": "nyc report --reporter=lcov > coverage.lcov && codecov",
56
+ "docs": "typedoc src/index.ts --excludePrivate --mode file --theme minimal --out build/docs && opn build/docs/index.html",
57
+ "docs:json": "typedoc --mode file --json build/docs/typedoc.json src/index.ts",
58
+ "release": "standard-version",
59
+ "release:patch": "standard-version --release-as patch",
60
+ "release:minor": "standard-version --release-as minor",
61
+ "release:major": "standard-version --release-as major",
62
+ "release-github": "source .env.sh && conventional-github-releaser -p angular -r 1",
63
+ "prett": "prettier 'src/**/*.ts' --write",
64
+ "docs:dev": "cd _docs_website && next",
65
+ "docs:serve:dev": "npm run run docs:build && npm run docs:start",
66
+ "docs:build": "cd _docs_website && next build",
67
+ "docs:start": "cd _docs_website && next start",
68
+ "docs:examples": "node _docs_website/generateExamples.js",
69
+ "docs:export:dev": "trash _docs_website/.next && trash _docs_website/out && npm run docs:examples && cd _docs_website && NODE_ENV=development next build && NODE_ENV=development next export && npm run docs:serve:prod",
70
+ "docs:export": "trash _docs_website/.next && trash _docs_website/out && npm run docs:examples && cd _docs_website && NODE_ENV=production next build && NODE_ENV=production next export && touch out/.nojekyll",
71
+ "docs:serve:prod": "http-server _docs_website/out",
72
+ "docs:deploy:gh-pages": "gh-pages -d _docs_website/out -b gh-pages -t"
73
+ },
74
+ "scripts-info": {
75
+ "info": "Display information about the scripts",
76
+ "build": "(Trash and re)build the library",
77
+ "lint": "Lint all typescript source files",
78
+ "unit": "Run unit tests",
79
+ "test": "Lint and test the library",
80
+ "watch": "Watch source files, rebuild library on changes, rerun relevant tests",
81
+ "watch:build": "Watch source files, rebuild library on changes",
82
+ "watch:unit": "Watch the build, rerun relevant tests on changes",
83
+ "cov": "Run tests, generate the HTML coverage report, and open it in a browser",
84
+ "html-coverage": "Output HTML test coverage report",
85
+ "send-coverage": "Output lcov test coverage report and send it to codecov",
86
+ "docs": "Generate API documentation and open it in a browser",
87
+ "docs:json": "Generate API documentation in typedoc JSON format",
88
+ "release": "Bump package.json version, update CHANGELOG.md, tag a release"
89
+ },
90
+ "devDependencies": {
91
+ "@faker-js/faker": "^8.4.1",
92
+ "@types/node": "^18.15.13",
93
+ "ava": "^5.1.0",
94
+ "casual-browserify": "^1.5.19",
95
+ "chance": "^1.1.7",
96
+ "codecov": "^3.8.2",
97
+ "conventional-github-releaser": "^3.1.5",
98
+ "gh-pages": "^4.0.0",
99
+ "http-server": "^14.1.1",
100
+ "multiview": "^3.0.1",
101
+ "npm-scripts-info": "^0.3.9",
102
+ "nyc": "^15.1.0",
103
+ "opn-cli": "^5.0.0",
104
+ "prettier": "^2.8.1",
105
+ "randexp": "^0.5.3",
106
+ "standard-version": "^9.5.0",
107
+ "trash-cli": "^5.0.0",
108
+ "ts-node": "^10.9.1",
109
+ "tslib": "^2.4.1",
110
+ "tslint": "^6.1.3",
111
+ "tslint-config-standard": "^9.0.0",
112
+ "typedoc": "^0.23.23",
113
+ "typescript": "^4.9.4"
114
+ },
115
+ "nyc": {
116
+ "exclude": [
117
+ "**/*.spec.js",
118
+ "**/array-includes.js"
119
+ ]
120
+ },
121
+ "ava": {
122
+ "files": [
123
+ "build/main/**/*.spec.js",
124
+ "!**/array-includes.js"
125
+ ],
126
+ "source": [
127
+ "build/main/**/*"
128
+ ]
129
+ }
130
+ }