typeomatica 0.3.39 → 0.3.57

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.
@@ -1,50 +1,50 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.primitives = void 0;
4
- const errors_1 = require('../errors');
4
+ const errors_1 = require("../errors");
5
5
  const primitives = (initialValue) => {
6
- let value = Object(initialValue);
7
- const initialType = typeof initialValue;
8
- return {
9
- get() {
10
- const proxyAsValue = new Proxy(value, {
11
- get(_, prop) {
12
- if (prop === Symbol.toPrimitive) {
13
- return function (hint) {
14
- if (hint !== initialType) {
15
- throw new ReferenceError(errors_1.ErrorsNames.ACCESS_DENIED);
16
- }
17
- return value.valueOf();
18
- };
19
- }
20
- if (prop === 'valueOf') {
21
- return function () {
22
- return value.valueOf();
23
- };
24
- }
25
- if (value[prop] instanceof Function) {
26
- return value[prop].bind(value);
27
- }
28
- const answer = value[prop];
29
- return answer;
30
- }
31
- });
32
- return proxyAsValue;
33
- },
34
- set(replacementValue) {
35
- if (replacementValue instanceof value.constructor) {
36
- value = replacementValue;
37
- return value;
38
- }
39
- const prevalue = Object(replacementValue);
40
- if (prevalue instanceof value.constructor) {
41
- value = prevalue;
42
- return value;
43
- }
44
- const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
45
- throw error;
46
- }
47
- };
6
+ let value = Object(initialValue);
7
+ const initialType = typeof initialValue;
8
+ return {
9
+ get() {
10
+ const proxyAsValue = new Proxy(value, {
11
+ get(_, prop) {
12
+ if (prop === Symbol.toPrimitive) {
13
+ return function (hint) {
14
+ if (hint !== initialType) {
15
+ throw new ReferenceError(errors_1.ErrorsNames.ACCESS_DENIED);
16
+ }
17
+ return value.valueOf();
18
+ };
19
+ }
20
+ if (prop === 'valueOf') {
21
+ return function () {
22
+ return value.valueOf();
23
+ };
24
+ }
25
+ if (value[prop] instanceof Function) {
26
+ return value[prop].bind(value);
27
+ }
28
+ const answer = value[prop];
29
+ return answer;
30
+ }
31
+ });
32
+ return proxyAsValue;
33
+ },
34
+ set(replacementValue) {
35
+ if (replacementValue instanceof value.constructor) {
36
+ value = replacementValue;
37
+ return value;
38
+ }
39
+ const prevalue = Object(replacementValue);
40
+ if (prevalue instanceof value.constructor) {
41
+ value = prevalue;
42
+ return value;
43
+ }
44
+ const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
45
+ throw error;
46
+ }
47
+ };
48
48
  };
49
49
  exports.primitives = primitives;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9wcmltaXRpdmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sVUFBVSxHQUFHLENBQUMsWUFBb0IsRUFBRSxFQUFFO0lBQ2xELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqQyxNQUFNLFdBQVcsR0FBRyxPQUFPLFlBQVksQ0FBQztJQUV4QyxPQUFPO1FBQ04sR0FBRztZQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFFckMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJO29CQUNWLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDakMsT0FBTyxVQUFVLElBQVk7NEJBQzVCLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dDQUMxQixNQUFNLElBQUksY0FBYyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7NEJBQ3JELENBQUM7NEJBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQ3hCLENBQUMsQ0FBQTtvQkFDRixDQUFDO29CQUVELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO3dCQUN4QixPQUFPOzRCQUNOLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUN4QixDQUFDLENBQUE7b0JBQ0YsQ0FBQztvQkFHRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxRQUFRLEVBQUUsQ0FBQzt3QkFDckMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoQyxDQUFDO29CQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxNQUFNLENBQUM7Z0JBQ2YsQ0FBQzthQUNELENBQUMsQ0FBQztZQUNILE9BQU8sWUFBWSxDQUFDO1FBQ3JCLENBQUM7UUFhRCxHQUFHLENBQUMsZ0JBQXlCO1lBQzVCLElBQUksZ0JBQWdCLFlBQVksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuRCxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTFDLElBQUksUUFBUSxZQUFZLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0MsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQkFDakIsT0FBTyxLQUFLLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsb0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RCxNQUFNLEtBQUssQ0FBQztRQUNiLENBQUM7S0FDRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBaEVXLFFBQUEsVUFBVSxjQWdFckIifQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9wcmltaXRpdmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sVUFBVSxHQUFHLENBQUMsWUFBb0IsRUFBRSxFQUFFO0lBQ2xELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqQyxNQUFNLFdBQVcsR0FBRyxPQUFPLFlBQVksQ0FBQztJQUV4QyxPQUFPO1FBQ04sR0FBRztZQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFFckMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJO29CQUNWLElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDakMsT0FBTyxVQUFVLElBQVk7NEJBQzVCLElBQUksSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dDQUMxQixNQUFNLElBQUksY0FBYyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7NEJBQ3JELENBQUM7NEJBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQ3hCLENBQUMsQ0FBQztvQkFDSCxDQUFDO29CQUVELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO3dCQUN4QixPQUFPOzRCQUNOLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUN4QixDQUFDLENBQUM7b0JBQ0gsQ0FBQztvQkFHRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxRQUFRLEVBQUUsQ0FBQzt3QkFDckMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoQyxDQUFDO29CQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxNQUFNLENBQUM7Z0JBQ2YsQ0FBQzthQUNELENBQUMsQ0FBQztZQUNILE9BQU8sWUFBWSxDQUFDO1FBQ3JCLENBQUM7UUFhRCxHQUFHLENBQUMsZ0JBQXlCO1lBQzVCLElBQUksZ0JBQWdCLFlBQVksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuRCxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTFDLElBQUksUUFBUSxZQUFZLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0MsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQkFDakIsT0FBTyxLQUFLLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsb0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RCxNQUFNLEtBQUssQ0FBQztRQUNiLENBQUM7S0FDRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBaEVXLFFBQUEsVUFBVSxjQWdFckIiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCB7IEVycm9yc05hbWVzIH0gZnJvbSAnLi4vZXJyb3JzJztcblxuZXhwb3J0IGNvbnN0IHByaW1pdGl2ZXMgPSAoaW5pdGlhbFZhbHVlOiBvYmplY3QpID0+IHtcblx0bGV0IHZhbHVlID0gT2JqZWN0KGluaXRpYWxWYWx1ZSk7XG5cdGNvbnN0IGluaXRpYWxUeXBlID0gdHlwZW9mIGluaXRpYWxWYWx1ZTtcblxuXHRyZXR1cm4ge1xuXHRcdGdldCgpIHtcblx0XHRcdGNvbnN0IHByb3h5QXNWYWx1ZSA9IG5ldyBQcm94eSh2YWx1ZSwge1xuXHRcdFx0XHQvLyBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuXHRcdFx0XHRnZXQoXywgcHJvcCkge1xuXHRcdFx0XHRcdGlmIChwcm9wID09PSBTeW1ib2wudG9QcmltaXRpdmUpIHtcblx0XHRcdFx0XHRcdHJldHVybiBmdW5jdGlvbiAoaGludDogc3RyaW5nKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChoaW50ICE9PSBpbml0aWFsVHlwZSkge1xuXHRcdFx0XHRcdFx0XHRcdHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihFcnJvcnNOYW1lcy5BQ0NFU1NfREVOSUVEKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWUudmFsdWVPZigpO1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAocHJvcCA9PT0gJ3ZhbHVlT2YnKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWUudmFsdWVPZigpO1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRcdFx0aWYgKHZhbHVlW3Byb3BdIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcblx0XHRcdFx0XHRcdHJldHVybiB2YWx1ZVtwcm9wXS5iaW5kKHZhbHVlKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRjb25zdCBhbnN3ZXIgPSB2YWx1ZVtwcm9wXTtcblx0XHRcdFx0XHRyZXR1cm4gYW5zd2VyO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBwcm94eUFzVmFsdWU7XG5cdFx0fSxcblx0XHQvLyBnZXQoKSB7XG5cdFx0Ly8gXHRjb25zdCBwcmVwYXJlZFZhbHVlID0ge1xuXHRcdC8vIFx0XHRbU3ltYm9sLnRvUHJpbWl0aXZlXSgpIHtcblx0XHQvLyBcdFx0XHRyZXR1cm4gZnVuY3Rpb24gKCkge1xuXHRcdC8vIFx0XHRcdFx0dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKEVycm9yc05hbWVzLkFDQ0VTU19ERU5JRUQpO1xuXHRcdC8vIFx0XHRcdH07XG5cdFx0Ly8gXHRcdH1cblx0XHQvLyBcdH07XG5cdFx0Ly8gXHRSZWZsZWN0LnNldFByb3RvdHlwZU9mKHByZXBhcmVkVmFsdWUsIHZhbHVlKTtcblx0XHQvLyBcdGRlYnVnZ2VyO1xuXHRcdC8vIFx0cmV0dXJuIHByZXBhcmVkVmFsdWU7XG5cdFx0Ly8gfSxcblx0XHRzZXQocmVwbGFjZW1lbnRWYWx1ZTogdW5rbm93bikge1xuXHRcdFx0aWYgKHJlcGxhY2VtZW50VmFsdWUgaW5zdGFuY2VvZiB2YWx1ZS5jb25zdHJ1Y3Rvcikge1xuXHRcdFx0XHR2YWx1ZSA9IHJlcGxhY2VtZW50VmFsdWU7XG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgcHJldmFsdWUgPSBPYmplY3QocmVwbGFjZW1lbnRWYWx1ZSk7XG5cblx0XHRcdGlmIChwcmV2YWx1ZSBpbnN0YW5jZW9mIHZhbHVlLmNvbnN0cnVjdG9yKSB7XG5cdFx0XHRcdHZhbHVlID0gcHJldmFsdWU7XG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZXJyb3IgPSBuZXcgVHlwZUVycm9yKEVycm9yc05hbWVzLlRZUEVfTUlTTUFUQ0gpO1xuXHRcdFx0dGhyb3cgZXJyb3I7XG5cdFx0fVxuXHR9O1xufTsiXX0=
@@ -1,21 +1,21 @@
1
1
  'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.special = void 0;
4
- const errors_1 = require('../errors');
4
+ const errors_1 = require("../errors");
5
5
  const special = (value) => {
6
- return {
7
- get() {
8
- return value;
9
- },
10
- set(replacementValue) {
11
- if (typeof replacementValue === typeof value) {
12
- value = replacementValue;
13
- return value;
14
- }
15
- const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
16
- throw error;
17
- }
18
- };
6
+ return {
7
+ get() {
8
+ return value;
9
+ },
10
+ set(replacementValue) {
11
+ if (typeof replacementValue === typeof value) {
12
+ value = replacementValue;
13
+ return value;
14
+ }
15
+ const error = new TypeError(errors_1.ErrorsNames.TYPE_MISMATCH);
16
+ throw error;
17
+ }
18
+ };
19
19
  };
20
20
  exports.special = special;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9zcGVjaWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDeEMsT0FBTztRQUNOLEdBQUc7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7UUFDRCxHQUFHLENBQUMsZ0JBQXdCO1lBQzNCLElBQUksT0FBTyxnQkFBZ0IsS0FBSyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUM5QyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUNELE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkQsTUFBTSxLQUFLLENBQUM7UUFDYixDQUFDO0tBQ0QsQ0FBQTtBQUNGLENBQUMsQ0FBQztBQWRXLFFBQUEsT0FBTyxXQWNsQiJ9
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9zcGVjaWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7O0FBRWIsc0NBQXdDO0FBRWpDLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDeEMsT0FBTztRQUNOLEdBQUc7WUFDRixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7UUFDRCxHQUFHLENBQUMsZ0JBQXdCO1lBQzNCLElBQUksT0FBTyxnQkFBZ0IsS0FBSyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUM5QyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUNELE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdkQsTUFBTSxLQUFLLENBQUM7UUFDYixDQUFDO0tBQ0QsQ0FBQztBQUNILENBQUMsQ0FBQztBQWRXLFFBQUEsT0FBTyxXQWNsQiIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgRXJyb3JzTmFtZXMgfSBmcm9tICcuLi9lcnJvcnMnO1xuXG5leHBvcnQgY29uc3Qgc3BlY2lhbCA9ICh2YWx1ZTogb2JqZWN0KSA9PiB7XG5cdHJldHVybiB7XG5cdFx0Z2V0KCkge1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH0sXG5cdFx0c2V0KHJlcGxhY2VtZW50VmFsdWU6IG9iamVjdCkge1xuXHRcdFx0aWYgKHR5cGVvZiByZXBsYWNlbWVudFZhbHVlID09PSB0eXBlb2YgdmFsdWUpIHtcblx0XHRcdFx0dmFsdWUgPSByZXBsYWNlbWVudFZhbHVlO1xuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBlcnJvciA9IG5ldyBUeXBlRXJyb3IoRXJyb3JzTmFtZXMuVFlQRV9NSVNNQVRDSCk7XG5cdFx0XHR0aHJvdyBlcnJvcjtcblx0XHR9XG5cdH07XG59OyJdfQ==
package/package.json CHANGED
@@ -1,18 +1,35 @@
1
1
  {
2
2
  "name": "typeomatica",
3
- "version": "0.3.39",
3
+ "version": "0.3.57",
4
4
  "description": "type logic against javascript metaprogramming",
5
5
  "engines": {
6
6
  "node": ">=16"
7
7
  },
8
8
  "main": "lib/index.js",
9
+ "exports": {
10
+ ".": "./lib/index.js",
11
+ "./module": {
12
+ "import": "./lib/index.js",
13
+ "browser": "./lib/index.js",
14
+ "require": "./lib/index.js",
15
+ "default": "./lib/index.js"
16
+ }
17
+ },
18
+ "files": [
19
+ "README.md",
20
+ "LICENSE",
21
+ "lib"
22
+ ],
23
+ "directories": {
24
+ "build": "lib/"
25
+ },
9
26
  "scripts": {
10
- "build": "rm -rf ./lib && npx tsc --pretty",
27
+ "build": "rm -rf ./lib && npx tsc --target esnext --pretty",
11
28
  "lint:lib": "npx eslint --fix ./lib",
12
29
  "lint:src": "npx eslint --fix ./src",
13
30
  "test": "npx jest",
14
31
  "test:cov": "npx jest --collectCoverage",
15
- "test:addition": "npm run build && node --test --experimental-test-coverage ./test/addition.js",
32
+ "test:addition": "node --test --experimental-test-coverage ./test/noJest.ts",
16
33
  "debug:on-issues": "echo 'if debugger; command is not working try other Node.JS version'",
17
34
  "debug": "node --inspect-brk --nolazy node_modules/.bin/jest --runInBand --detectOpenHandles",
18
35
  "debug:jest": "node --nolazy --inspect-brk ./node_modules/jest/bin/jest.js --runInBand --colors --verbose",
@@ -33,19 +50,20 @@
33
50
  "url": "git+https://github.com/wentout/typeomatica.git"
34
51
  },
35
52
  "devDependencies": {
36
- "@types/jest": "^29.5.14",
37
- "@types/node": "^18.19.112",
38
- "@typescript-eslint/eslint-plugin": "^6.21.0",
39
- "@typescript-eslint/parser": "^6.21.0",
40
- "eslint": "^8.57.1",
41
- "globals": "^16.2.0",
42
- "husky": "^8.0.3",
43
- "jest": "^29.7.0",
53
+ "@eslint/eslintrc": "^3.3.3",
54
+ "@eslint/js": "^9.39.2",
55
+ "@types/jest": "^30.0.0",
56
+ "@types/node": "^25.0.9",
57
+ "@typescript-eslint/eslint-plugin": "^8.53.0",
58
+ "@typescript-eslint/parser": "^8.53.0",
59
+ "eslint": "^9.39.2",
60
+ "globals": "^17.0.0",
61
+ "husky": "^9.1.7",
62
+ "jest": "^30.2.0",
44
63
  "json5": "^2.2.3",
45
- "lint-staged": "^13.3.0",
64
+ "lint-staged": "^16.2.7",
46
65
  "set-value": "^4.1.0",
47
- "ts-jest": "^29.4.0",
48
- "ts-node": "^10.9.2",
49
- "typescript": "^5.8.3"
66
+ "ts-jest": "^29.4.6",
67
+ "typescript": "^5.9.3"
50
68
  }
51
69
  }
package/.editorconfig DELETED
@@ -1,11 +0,0 @@
1
- root = true
2
-
3
- [*]
4
- trim_trailing_whitespace = false
5
- indent_style = tab
6
- end_of_line = lf
7
- insert_final_newline = true
8
-
9
- [{package*.json,*.yml}]
10
- indent_style = space
11
- indent_size = 2
package/.eslintignore DELETED
File without changes
package/.eslintrc.js DELETED
@@ -1,72 +0,0 @@
1
- module.exports = {
2
- parser: '@typescript-eslint/parser',
3
- env: {
4
- node: true,
5
- es6: true,
6
- },
7
- extends: [
8
- 'eslint:recommended',
9
- 'plugin:@typescript-eslint/eslint-recommended'
10
- ],
11
- parserOptions: {
12
- ecmaVersion: 2018,
13
- sourceType: 'module'
14
- },
15
- rules: {
16
- indent: ['error', 'tab'],
17
- 'linebreak-style': ['error', 'unix'],
18
- quotes: ['error', 'single'],
19
- semi: ['error', 'always'],
20
- 'no-unused-vars': 'warn',
21
- 'no-shadow': [
22
- 'error',
23
- {
24
- builtinGlobals: true,
25
- hoist: 'all',
26
- allow: [],
27
- },
28
- ],
29
- // 'space-before-function-paren': [
30
- // 'warn', {
31
- // 'anonymous': 'always',
32
- // 'named': 'always',
33
- // 'asyncArrow': 'always'
34
- // }
35
- // ],
36
- 'prefer-template': 'warn',
37
- 'prefer-spread': 'warn',
38
- 'no-useless-concat': 'warn',
39
- 'prefer-rest-params': 'warn',
40
- 'prefer-destructuring': 'warn',
41
- 'no-useless-computed-key': 'warn',
42
- 'no-useless-constructor': 'warn',
43
- 'no-useless-rename': 'warn',
44
- 'no-this-before-super': 'warn',
45
- 'no-new-symbol': 'warn',
46
- 'no-duplicate-imports': 'warn',
47
- 'no-confusing-arrow': 'warn',
48
- 'no-multi-assign': 'warn',
49
- 'no-lonely-if': 'warn',
50
- 'newline-per-chained-call': 'warn',
51
- 'new-cap': 'warn',
52
- 'func-name-matching': 'error',
53
- // 'consistent-this' : 'error',
54
- 'line-comment-position': [
55
- 'warn',
56
- {
57
- position: 'above',
58
- },
59
- ],
60
- yoda: 'warn',
61
- },
62
- 'overrides': [
63
- {
64
- 'files': ['lib/**/*.js'],
65
- 'rules': {
66
- 'prefer-rest-params': 0,
67
- 'no-redeclare': 0
68
- }
69
- }
70
- ]
71
-
72
- };
package/.gitattributes DELETED
@@ -1,22 +0,0 @@
1
-
2
- # Automatically normalize line endings for all text-based files
3
- # http://git-scm.com/docs/gitattributes#_end_of_line_conversion
4
-
5
- # For the following file types, normalize line endings to LF on
6
- # checkin and prevent conversion to CRLF when they are checked out
7
- # (this is required in order to prevent newline related issues like,
8
- # for example, after the build script is run)
9
- *.html text eol=lf
10
- *.css text eol=lf
11
- *.less text eol=lf
12
- *.scss text eol=lf
13
- *.sss text eol=lf
14
- *.sass text eol=lf
15
- *.js text eol=lf
16
- *.json text eol=lf
17
- *.yml text eol=lf
18
- *.yaml text eol=lf
19
- *.md text eol=lf
20
- *.sh text eol=lf
21
- *.txt text eol=lf
22
- *.xml text eol=lf
@@ -1,62 +0,0 @@
1
- # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
2
- # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3
-
4
- name: Node.js CI
5
-
6
- on:
7
- push:
8
- branches: [ main ]
9
- pull_request:
10
- branches: [ main ]
11
-
12
- jobs:
13
- build:
14
-
15
- runs-on: ubuntu-latest
16
-
17
- strategy:
18
- matrix:
19
- node-version: [18.x, 20.x]
20
-
21
- steps:
22
- - uses: actions/checkout@v2
23
- - name: Use Node.js ${{ matrix.node-version }}
24
- uses: actions/setup-node@v1
25
- with:
26
- node-version: ${{ matrix.node-version }}
27
- - run: npm ci
28
- - run: npm run build --if-present
29
- - run: npm test
30
-
31
-
32
- test:
33
- runs-on: ubuntu-latest
34
-
35
- steps:
36
- - uses: actions/checkout@master
37
- - name: Use Node.js 18.x
38
- uses: actions/setup-node@master
39
- with:
40
- node-version: 18.x
41
-
42
- - name: npm install
43
- run: npm install
44
-
45
- - name: Test
46
- run: npm run test:cov
47
-
48
- - name: Coveralls Parallel
49
- uses: coverallsapp/github-action@master
50
- with:
51
- github-token: ${{ secrets.github_token }}
52
- parallel: true
53
-
54
- finish:
55
- needs: test
56
- runs-on: ubuntu-latest
57
- steps:
58
- - name: Coveralls Finished
59
- uses: coverallsapp/github-action@master
60
- with:
61
- github-token: ${{ secrets.github_token }}
62
- parallel-finished: true
package/.husky/pre-commit DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env sh
2
- . "$(dirname -- "$0")/_/husky.sh"
3
-
4
- npm test
package/jest.config.js DELETED
@@ -1,12 +0,0 @@
1
- module.exports = {
2
- preset: 'ts-jest',
3
- testEnvironment: 'node',
4
- testMatch: ['**/test/**/index.ts'],
5
- // testMatch: ['**/test/**/index.ts', '**/test/**/addition.js'],
6
- transform : {
7
- '\\./test/*.ts$': ['ts-jest', {
8
- tsconfig : './tsconfig.jest.json'
9
- }]
10
- },
11
- // workerThreads: true
12
- };
package/src/errors.ts DELETED
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- export const ErrorsNames = {
4
- TYPE_MISMATCH: 'Type Mismatch',
5
- ACCESS_DENIED: 'Value Access Denied',
6
- MISSING_PROP: 'Attempt to Access to Undefined Prop',
7
- RIP_FUNCTIONS: 'Functions are Restricted',
8
- FORBIDDEN_RE: 'Re-Assirnment is Forbidden'
9
- };
package/src/fields.ts DELETED
@@ -1,76 +0,0 @@
1
- 'use strict';
2
-
3
- import { ErrorsNames } from './errors';
4
-
5
- const SymbolInitialValue = Symbol('Initial Value');
6
-
7
- interface FieldDefinition {
8
- [SymbolInitialValue]: unknown
9
- // get?: unknown
10
- // set?: unknown
11
- // configurable: boolean,
12
- // enumerable: boolean,
13
- // writable: boolean
14
- }
15
-
16
- // export const FieldConstructor = function (this: FieldDefinition, value: unknown) {
17
- // this[SymbolInitialValue] = value;
18
- // } as ObjectConstructor;
19
-
20
- export class FieldConstructor implements FieldDefinition {
21
- [SymbolInitialValue]: unknown;
22
- public get get () {
23
- const self = this;
24
- return function (/* this: FieldDefinition */) {
25
- return self[SymbolInitialValue];
26
- };
27
- }
28
- public get set () {
29
- return function () {
30
- throw new TypeError(ErrorsNames.FORBIDDEN_RE);
31
- };
32
- }
33
- constructor (value: unknown) {
34
- this[SymbolInitialValue] = value;
35
- }
36
- static get SymbolInitialValue () {
37
- return SymbolInitialValue;
38
- }
39
- }
40
-
41
- // Object.assign(FieldConstructor.prototype, {
42
- // configurable: false,
43
- // enumerable: false,
44
- // // writable: false
45
- // })
46
-
47
- // Object.defineProperty(FieldConstructor.prototype, 'get', {
48
- // get() {
49
- // return this[symbolValue];
50
- // },
51
- // // @ts-ignore
52
- // set(value: unknown) {
53
- // throw new Error('broken behaviour: assignment to getter');
54
- // },
55
- // configurable: false,
56
- // enumerable: true,
57
- // // writable: false
58
- // });
59
-
60
- // Object.defineProperty(FieldConstructor.prototype, 'set', {
61
- // get() {
62
- // return function (this: FieldDefinition, value: unknown) {
63
- // this[symbolValue] = value;
64
- // }
65
- // },
66
- // // @ts-ignore
67
- // set(value: unknown) {
68
- // throw new Error('broken behaviour: assignment to setter');
69
- // },
70
- // configurable: false,
71
- // enumerable: true,
72
- // // writable: false
73
- // });
74
-
75
- Object.freeze(FieldConstructor.prototype);
76
- Object.seal(FieldConstructor.prototype);