@nymphjs/nymph 1.0.0-beta.13 → 1.0.0-beta.130

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 (123) hide show
  1. package/CHANGELOG.md +644 -0
  2. package/README.md +34 -24
  3. package/dist/Entity.d.ts +304 -15
  4. package/dist/Entity.js +609 -154
  5. package/dist/Entity.js.map +1 -1
  6. package/dist/Entity.test.js +75 -29
  7. package/dist/Entity.test.js.map +1 -1
  8. package/dist/Entity.types.d.ts +275 -28
  9. package/dist/Entity.types.js +1 -2
  10. package/dist/Nymph.d.ts +575 -11
  11. package/dist/Nymph.js +825 -288
  12. package/dist/Nymph.js.map +1 -1
  13. package/dist/Nymph.types.d.ts +117 -7
  14. package/dist/Nymph.types.js +47 -5
  15. package/dist/Nymph.types.js.map +1 -1
  16. package/dist/conf/defaults.d.ts +1 -1
  17. package/dist/conf/defaults.js +26 -3
  18. package/dist/conf/defaults.js.map +1 -1
  19. package/dist/conf/index.d.ts +50 -2
  20. package/dist/conf/index.js +2 -8
  21. package/dist/conf/index.js.map +1 -1
  22. package/dist/decorators/index.d.ts +1 -0
  23. package/dist/decorators/index.js +2 -0
  24. package/dist/decorators/index.js.map +1 -0
  25. package/dist/decorators/transactional.d.ts +12 -0
  26. package/dist/decorators/transactional.js +45 -0
  27. package/dist/decorators/transactional.js.map +1 -0
  28. package/dist/driver/NymphDriver.d.ts +209 -41
  29. package/dist/driver/NymphDriver.js +737 -242
  30. package/dist/driver/NymphDriver.js.map +1 -1
  31. package/dist/driver/index.d.ts +1 -2
  32. package/dist/driver/index.js +2 -23
  33. package/dist/driver/index.js.map +1 -1
  34. package/dist/driver/testArtifacts.d.ts +4 -4
  35. package/dist/driver/testArtifacts.js +2016 -1086
  36. package/dist/driver/testArtifacts.js.map +1 -1
  37. package/dist/errors/ClassNotAvailableError.js +1 -5
  38. package/dist/errors/ClassNotAvailableError.js.map +1 -1
  39. package/dist/errors/EntityConflictError.js +1 -5
  40. package/dist/errors/EntityConflictError.js.map +1 -1
  41. package/dist/errors/EntityInvalidDataError.d.ts +6 -0
  42. package/dist/errors/EntityInvalidDataError.js +8 -6
  43. package/dist/errors/EntityInvalidDataError.js.map +1 -1
  44. package/dist/errors/EntityIsSleepingReferenceError.js +1 -5
  45. package/dist/errors/EntityIsSleepingReferenceError.js.map +1 -1
  46. package/dist/errors/EntityUniqueConstraintError.d.ts +3 -0
  47. package/dist/errors/EntityUniqueConstraintError.js +7 -0
  48. package/dist/errors/EntityUniqueConstraintError.js.map +1 -0
  49. package/dist/errors/HttpError.d.ts +5 -0
  50. package/dist/errors/HttpError.js +11 -0
  51. package/dist/errors/HttpError.js.map +1 -0
  52. package/dist/errors/InvalidParametersError.js +1 -5
  53. package/dist/errors/InvalidParametersError.js.map +1 -1
  54. package/dist/errors/InvalidStateError.d.ts +3 -0
  55. package/dist/errors/InvalidStateError.js +7 -0
  56. package/dist/errors/InvalidStateError.js.map +1 -0
  57. package/dist/errors/MethodFailedError.d.ts +3 -0
  58. package/dist/errors/MethodFailedError.js +7 -0
  59. package/dist/errors/MethodFailedError.js.map +1 -0
  60. package/dist/errors/NotConfiguredError.js +1 -5
  61. package/dist/errors/NotConfiguredError.js.map +1 -1
  62. package/dist/errors/QueryFailedError.d.ts +2 -1
  63. package/dist/errors/QueryFailedError.js +5 -6
  64. package/dist/errors/QueryFailedError.js.map +1 -1
  65. package/dist/errors/UnableToConnectError.js +1 -5
  66. package/dist/errors/UnableToConnectError.js.map +1 -1
  67. package/dist/errors/index.d.ts +12 -8
  68. package/dist/errors/index.js +12 -24
  69. package/dist/errors/index.js.map +1 -1
  70. package/dist/helpers/index.d.ts +1 -0
  71. package/dist/helpers/index.js +2 -0
  72. package/dist/helpers/index.js.map +1 -0
  73. package/dist/helpers/transaction.d.ts +15 -0
  74. package/dist/helpers/transaction.js +47 -0
  75. package/dist/helpers/transaction.js.map +1 -0
  76. package/dist/index.d.ts +13 -11
  77. package/dist/index.js +16 -34
  78. package/dist/index.js.map +1 -1
  79. package/dist/nymphJoiProps.d.ts +1 -1
  80. package/dist/nymphJoiProps.js +10 -15
  81. package/dist/nymphJoiProps.js.map +1 -1
  82. package/dist/testArtifacts.d.ts +21 -6
  83. package/dist/testArtifacts.js +124 -50
  84. package/dist/testArtifacts.js.map +1 -1
  85. package/dist/testMocks.d.ts +27 -12
  86. package/dist/testMocks.js +44 -33
  87. package/dist/testMocks.js.map +1 -1
  88. package/dist/utils.d.ts +5 -5
  89. package/dist/utils.js +106 -68
  90. package/dist/utils.js.map +1 -1
  91. package/jest.config.js +31 -5
  92. package/package.json +43 -24
  93. package/src/Entity.test.ts +73 -23
  94. package/src/Entity.ts +555 -169
  95. package/src/Entity.types.ts +102 -90
  96. package/src/Nymph.ts +930 -517
  97. package/src/Nymph.types.ts +145 -39
  98. package/src/conf/defaults.ts +34 -1
  99. package/src/conf/index.ts +50 -2
  100. package/src/decorators/index.ts +1 -0
  101. package/src/decorators/transactional.ts +63 -0
  102. package/src/driver/NymphDriver.ts +987 -417
  103. package/src/driver/index.ts +1 -3
  104. package/src/driver/testArtifacts.ts +2699 -1628
  105. package/src/errors/EntityUniqueConstraintError.ts +6 -0
  106. package/src/errors/HttpError.ts +12 -0
  107. package/src/errors/InvalidStateError.ts +6 -0
  108. package/src/errors/MethodFailedError.ts +6 -0
  109. package/src/errors/QueryFailedError.ts +3 -1
  110. package/src/errors/index.ts +16 -8
  111. package/src/helpers/index.ts +1 -0
  112. package/src/helpers/transaction.ts +65 -0
  113. package/src/index.ts +13 -11
  114. package/src/nymphJoiProps.ts +2 -2
  115. package/src/testArtifacts.ts +69 -20
  116. package/src/testMocks.ts +107 -41
  117. package/src/utils.ts +102 -67
  118. package/tsconfig.json +6 -3
  119. package/typedoc.json +4 -0
  120. package/dist/conf/d.d.ts +0 -6
  121. package/dist/conf/d.js +0 -3
  122. package/dist/conf/d.js.map +0 -1
  123. package/src/conf/d.ts +0 -24
package/dist/testMocks.js CHANGED
@@ -1,18 +1,14 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MockNymph = exports.MockNymphDriver = void 0;
7
- const guid_1 = require("@nymphjs/guid");
8
- const errors_1 = require("./errors");
9
- const Entity_1 = __importDefault(require("./Entity"));
1
+ import { guid } from '@nymphjs/guid';
2
+ import { ClassNotAvailableError, EntityConflictError } from './errors/index.js';
3
+ import Entity from './Entity.js';
4
+ import { classNamesToEntityConstructors, entitiesToReferences, entityConstructorsToClassNames, referencesToEntities, } from './utils.js';
10
5
  const entities = {};
11
- class MockNymphDriver {
6
+ export class MockNymphDriver {
7
+ nymph;
12
8
  constructor(nymph) {
13
9
  this.nymph = nymph;
14
10
  }
15
- getEntitySync(options = {}, ...selectors) {
11
+ async getEntity(options = {}, ...selectors) {
16
12
  const guid = typeof selectors[0] === 'string' ? selectors[0] : selectors[0].guid;
17
13
  if (!options || !guid || typeof guid !== 'string' || !(guid in entities)) {
18
14
  return null;
@@ -23,56 +19,72 @@ class MockNymphDriver {
23
19
  entity.cdate = entityJson.cdate;
24
20
  entity.mdate = entityJson.mdate;
25
21
  entity.tags = entityJson.tags;
26
- entity.$putData(entityJson.data, {});
22
+ entity.$putData(classNamesToEntityConstructors(this.nymph, referencesToEntities(entityJson.data, this.nymph, !!options.skipAc, false), false), {}, 'server');
27
23
  return entity;
28
24
  }
29
25
  }
30
- exports.MockNymphDriver = MockNymphDriver;
31
- class MockNymph {
26
+ export class MockNymph {
27
+ entityClasses = {};
28
+ driver;
29
+ Tilmeld = undefined;
30
+ Entity;
32
31
  constructor() {
33
- this.entityClasses = {};
34
- this.Tilmeld = undefined;
35
32
  this.driver = new MockNymphDriver(this);
36
- this.Entity = this.addEntityClass(Entity_1.default);
33
+ // class NymphEntity extends Entity {}
34
+ this.Entity = this.addEntityClass(Entity);
37
35
  }
38
- addEntityClass(entityClass) {
36
+ addEntityClass(EntityClass) {
39
37
  const nymph = this;
40
- class NymphEntity extends entityClass {
38
+ this.entityClasses[EntityClass.class] = class extends EntityClass {
39
+ static nymph = nymph;
41
40
  constructor(...args) {
42
41
  super(...args);
43
42
  }
44
- }
45
- NymphEntity.nymph = nymph;
46
- this.entityClasses[entityClass.class] = NymphEntity;
47
- return NymphEntity;
43
+ };
44
+ return this.entityClasses[EntityClass.class];
48
45
  }
49
46
  getEntityClass(className) {
50
- if (className in this.entityClasses) {
51
- return this.entityClasses[className];
47
+ let key = null;
48
+ if (typeof className === 'string') {
49
+ key = className;
50
+ }
51
+ else {
52
+ key = className.class;
53
+ }
54
+ if (key in this.entityClasses) {
55
+ return this.entityClasses[key];
56
+ }
57
+ throw new ClassNotAvailableError(`Tried to use missing class "${key}".`);
58
+ }
59
+ getEntityClassByEtype(etype) {
60
+ for (const EntityClass of Object.values(this.entityClasses)) {
61
+ if (EntityClass.ETYPE === etype) {
62
+ return EntityClass;
63
+ }
52
64
  }
53
- throw new errors_1.ClassNotAvailableError('Tried to use class: ' + className);
65
+ throw new ClassNotAvailableError(`Tried to use missing class by etype "${etype}".`);
54
66
  }
55
67
  async getEntity(options = {}, ...selectors) {
56
- return this.driver.getEntitySync(options, ...selectors);
68
+ // @ts-ignore: The selector type is correct here.
69
+ return await this.driver.getEntity(options, ...selectors);
57
70
  }
58
71
  async saveEntity(entity) {
59
- const className = entity.constructor.class;
60
72
  if (entity.guid == null) {
61
- entity.guid = (0, guid_1.guid)();
73
+ entity.guid = guid();
62
74
  entity.cdate = Date.now();
63
75
  }
64
76
  else if (entity.guid in entities &&
65
77
  (entity.mdate ?? 0) < (entities[entity.guid].mdate ?? 0)) {
66
- return false;
78
+ throw new EntityConflictError("Entity either doesn't exist or is newer in the DB.");
67
79
  }
68
80
  entity.mdate = Date.now();
69
81
  const entityJson = {
70
- class: className,
82
+ class: entity.constructor,
71
83
  guid: entity.guid,
72
84
  cdate: entity.cdate,
73
85
  mdate: entity.mdate,
74
86
  tags: [...entity.tags],
75
- data: JSON.parse(JSON.stringify(entity.$getData(true))),
87
+ data: JSON.parse(JSON.stringify(entityConstructorsToClassNames(entitiesToReferences(entity.$getData(true), true)))),
76
88
  };
77
89
  entities[entity.guid] = entityJson;
78
90
  return true;
@@ -85,5 +97,4 @@ class MockNymph {
85
97
  return false;
86
98
  }
87
99
  }
88
- exports.MockNymph = MockNymph;
89
100
  //# sourceMappingURL=testMocks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testMocks.js","sourceRoot":"","sources":["../src/testMocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testMocks.js","sourceRoot":"","sources":["../src/testMocks.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import Nymph from './Nymph';
2
- import { Selector } from './Nymph.types';
1
+ import Nymph from './Nymph.js';
3
2
  export declare function xor(a: any, b: any): boolean;
4
3
  export declare function uniqueStrings(array: string[]): string[];
5
- export declare function classNamesToEntityConstructors(nymph: Nymph, selectors: Selector[]): Selector[];
6
- export declare function entitiesToReferences(item: any): any;
7
- export declare function referencesToEntities(item: any, nymph: Nymph, useSkipAc?: boolean): any;
4
+ export declare function entityConstructorsToClassNames(item: any): any;
5
+ export declare function classNamesToEntityConstructors<T extends any>(nymph: Nymph, item: T, enforceRestEnabledFlag?: boolean): T;
6
+ export declare function entitiesToReferences(item: any, existingOnly?: boolean): any;
7
+ export declare function referencesToEntities(item: any, nymph: Nymph, useSkipAc?: boolean, enforceRestEnabledFlag?: boolean): any;
8
8
  export declare function sortObj<T extends {
9
9
  [k: string]: any;
10
10
  }>(obj: T): T;
package/dist/utils.js CHANGED
@@ -1,90 +1,115 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.sortObj = exports.referencesToEntities = exports.entitiesToReferences = exports.classNamesToEntityConstructors = exports.uniqueStrings = exports.xor = void 0;
7
- const Entity_1 = __importDefault(require("./Entity"));
8
- function xor(a, b) {
1
+ import Entity from './Entity.js';
2
+ export function xor(a, b) {
9
3
  return !!(a && !b) || (!a && b);
10
4
  }
11
- exports.xor = xor;
12
- function uniqueStrings(array) {
5
+ export function uniqueStrings(array) {
13
6
  const obj = {};
14
7
  for (let i = 0; i < array.length; ++i) {
15
8
  obj[array[i]] = true;
16
9
  }
17
10
  return Object.keys(obj);
18
11
  }
19
- exports.uniqueStrings = uniqueStrings;
20
- function classNamesToEntityConstructors(nymph, selectors) {
21
- const newSelectors = [];
22
- for (const curSelector of selectors) {
23
- const newSelector = { type: curSelector.type };
24
- for (const k in curSelector) {
25
- const key = k;
26
- const value = curSelector[key];
27
- if (key === 'type') {
28
- continue;
29
- }
30
- if (value === undefined) {
31
- continue;
32
- }
33
- if (key === 'qref' || key === '!qref') {
34
- const tmpArr = (Array.isArray((value ?? [])[0])
35
- ? value
36
- : [value]);
37
- for (let i = 0; i < tmpArr.length; i++) {
38
- const name = tmpArr[i][0];
39
- const [qrefOptions, ...selectors] = tmpArr[i][1];
40
- const QrefEntityClass = typeof qrefOptions.class === 'string'
41
- ? nymph.getEntityClass(qrefOptions.class)
42
- : qrefOptions.class ?? nymph.getEntityClass('Entity');
43
- const options = { ...qrefOptions, class: QrefEntityClass };
44
- if (!newSelector[key]) {
45
- newSelector[key] = [];
46
- }
47
- newSelector[key].push([
48
- name,
49
- [options, ...classNamesToEntityConstructors(nymph, selectors)],
50
- ]);
51
- }
52
- }
53
- else if (key === 'selector' || key === '!selector') {
54
- const tmpArr = (Array.isArray(value) ? value : [value]);
55
- newSelector[key] = classNamesToEntityConstructors(nymph, tmpArr);
56
- }
57
- else {
58
- newSelector[key] = value;
59
- }
12
+ export function entityConstructorsToClassNames(item) {
13
+ if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
14
+ return item;
15
+ }
16
+ else if (typeof item === 'function' && item.prototype instanceof Entity) {
17
+ // Convert entity classes to class references.
18
+ return ['nymph_class_reference', item.class];
19
+ }
20
+ else if (item instanceof Entity) {
21
+ // Don't touch entities.
22
+ return item;
23
+ }
24
+ else if (Array.isArray(item)) {
25
+ // Recurse into lower arrays.
26
+ return item.map((entry) => entityConstructorsToClassNames(entry));
27
+ }
28
+ else if (item instanceof Object) {
29
+ let newObj = Object.create(item);
30
+ for (let [key, value] of Object.entries(item)) {
31
+ newObj[key] = entityConstructorsToClassNames(value);
60
32
  }
61
- newSelectors.push(newSelector);
33
+ return newObj;
62
34
  }
63
- return newSelectors;
35
+ // Not an entity or array, just return it.
36
+ return item;
64
37
  }
65
- exports.classNamesToEntityConstructors = classNamesToEntityConstructors;
66
- function entitiesToReferences(item) {
67
- if (item instanceof Entity_1.default && typeof item.$toReference === 'function') {
68
- return item.$toReference();
38
+ export function classNamesToEntityConstructors(nymph, item, enforceRestEnabledFlag = false) {
39
+ if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
40
+ return item;
41
+ }
42
+ else if (Array.isArray(item) &&
43
+ item.length === 2 &&
44
+ item[0] === 'nymph_class_reference' &&
45
+ typeof item[1] === 'string') {
46
+ // Convert class references to entity classes.
47
+ const EntityClass = nymph.getEntityClass(item[1]);
48
+ if (enforceRestEnabledFlag && !EntityClass.restEnabled) {
49
+ throw new Error('Not accessible.');
50
+ }
51
+ return EntityClass;
52
+ }
53
+ else if (item instanceof Entity) {
54
+ // Don't touch entities.
55
+ return item;
56
+ }
57
+ else if (typeof item === 'function' && item.prototype instanceof Entity) {
58
+ // Don't touch Entity classes.
59
+ return item;
69
60
  }
70
61
  else if (Array.isArray(item)) {
71
- return item.map((entry) => entitiesToReferences(entry));
62
+ // Recurse into lower arrays.
63
+ return item.map((entry) => classNamesToEntityConstructors(nymph, entry, enforceRestEnabledFlag));
72
64
  }
73
65
  else if (item instanceof Object) {
74
66
  let newObj = Object.create(item);
75
67
  for (let [key, value] of Object.entries(item)) {
76
- newObj[key] = entitiesToReferences(value);
68
+ newObj[key] = classNamesToEntityConstructors(nymph, value, enforceRestEnabledFlag);
77
69
  }
78
70
  return newObj;
79
71
  }
72
+ // Not an entity or array, just return it.
80
73
  return item;
81
74
  }
82
- exports.entitiesToReferences = entitiesToReferences;
83
- function referencesToEntities(item, nymph, useSkipAc = false) {
84
- if (Array.isArray(item)) {
75
+ export function entitiesToReferences(item, existingOnly) {
76
+ if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
77
+ return item;
78
+ }
79
+ else if (item instanceof Entity) {
80
+ // Convert entities to references.
81
+ return item.$toReference(existingOnly);
82
+ }
83
+ else if (typeof item === 'function' && item.prototype instanceof Entity) {
84
+ // Don't touch Entity classes.
85
+ return item;
86
+ }
87
+ else if (Array.isArray(item)) {
88
+ // Recurse into lower arrays.
89
+ return item.map((entry) => entitiesToReferences(entry, existingOnly));
90
+ }
91
+ else if (item instanceof Object) {
92
+ let newObj = Object.create(item);
93
+ for (let [key, value] of Object.entries(item)) {
94
+ newObj[key] = entitiesToReferences(value, existingOnly);
95
+ }
96
+ return newObj;
97
+ }
98
+ // Not an entity or array, just return it.
99
+ return item;
100
+ }
101
+ export function referencesToEntities(item, nymph, useSkipAc = false, enforceRestEnabledFlag = false) {
102
+ if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
103
+ return item;
104
+ }
105
+ else if (Array.isArray(item)) {
106
+ // Check if it's a reference.
85
107
  if (item[0] === 'nymph_entity_reference') {
86
108
  try {
87
109
  const EntityClass = nymph.getEntityClass(item[2]);
110
+ if (enforceRestEnabledFlag && !EntityClass.restEnabled) {
111
+ throw new Error('Not accessible.');
112
+ }
88
113
  const entity = EntityClass.factoryReference(item);
89
114
  entity.$useSkipAc(useSkipAc);
90
115
  entity.$nymph = nymph;
@@ -95,26 +120,39 @@ function referencesToEntities(item, nymph, useSkipAc = false) {
95
120
  }
96
121
  }
97
122
  else {
98
- return item.map((entry) => referencesToEntities(entry, nymph, useSkipAc));
123
+ // Recurse into lower arrays.
124
+ return item.map((entry) => referencesToEntities(entry, nymph, useSkipAc, enforceRestEnabledFlag));
99
125
  }
100
126
  }
101
- else if (Entity_1.default && item instanceof Object && !(item instanceof Entity_1.default)) {
127
+ else if (item instanceof Entity) {
128
+ // Don't touch entities.
129
+ return item;
130
+ }
131
+ else if (typeof item === 'function' && item.prototype instanceof Entity) {
132
+ // Don't touch Entity classes.
133
+ return item;
134
+ }
135
+ else if (item instanceof Object) {
136
+ let newObj = Object.create(item);
102
137
  for (let [key, value] of Object.entries(item)) {
103
- item[key] = referencesToEntities(value, nymph);
138
+ newObj[key] = referencesToEntities(value, nymph, useSkipAc, enforceRestEnabledFlag);
104
139
  }
140
+ return newObj;
105
141
  }
142
+ // Not an array, just return it.
106
143
  return item;
107
144
  }
108
- exports.referencesToEntities = referencesToEntities;
109
- function sortObj(obj) {
145
+ export function sortObj(obj) {
146
+ // adapted from
147
+ // http://am.aurlien.net/post/1221493460/sorting-javascript-objects
110
148
  const tempArray = Object.keys(obj);
111
149
  tempArray.sort();
112
150
  for (let i = 0; i < tempArray.length; i++) {
113
151
  const temp = obj[tempArray[i]];
114
152
  delete obj[tempArray[i]];
153
+ // @ts-ignore: string can't be used to index type T?? yes, it can.
115
154
  obj[tempArray[i]] = temp;
116
155
  }
117
156
  return obj;
118
157
  }
119
- exports.sortObj = sortObj;
120
158
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/jest.config.js CHANGED
@@ -1,6 +1,32 @@
1
- /** @type {import('ts-jest').JestConfigWithTsJest} */
2
- module.exports = {
3
- preset: 'ts-jest',
4
- testEnvironment: 'node',
5
- rootDir: 'src/',
1
+ const jestConfig = {
2
+ extensionsToTreatAsEsm: ['.ts', '.tsx'],
3
+ testMatch: [
4
+ '<rootDir>/src/**/__tests__/**/*.{js,ts,jsx,tsx,mjs,mts}',
5
+ '<rootDir>/src/**/?(*.)(spec|test).{js,ts,jsx,tsx,mjs,mts}',
6
+ ],
7
+ transform: {
8
+ '^.+\\.(ts|tsx|mts)$': [
9
+ '@swc/jest',
10
+ {
11
+ jsc: {
12
+ parser: {
13
+ syntax: 'typescript',
14
+ tsx: true,
15
+ decorators: true,
16
+ },
17
+ target: 'es2024',
18
+ },
19
+ module: {
20
+ type: 'commonjs',
21
+ },
22
+ },
23
+ ],
24
+ },
25
+ transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$'],
26
+ moduleDirectories: ['node_modules', 'src'],
27
+ moduleNameMapper: {
28
+ '^(\\.|\\.\\.)\\/(.+)\\.js': '$1/$2',
29
+ },
6
30
  };
31
+
32
+ export default jestConfig;
package/package.json CHANGED
@@ -1,51 +1,70 @@
1
1
  {
2
2
  "name": "@nymphjs/nymph",
3
- "version": "1.0.0-beta.13",
4
- "description": "NymphJS - Nymph ORM",
5
- "type": "commonjs",
3
+ "version": "1.0.0-beta.130",
4
+ "description": "Application Data and Access Framework for Node.js and the Browser",
5
+ "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "keywords": [
9
9
  "nymph",
10
+ "nymph.js",
11
+ "application data framework",
12
+ "application data and access framework",
13
+ "object relational mapper",
10
14
  "ORM",
11
- "object relational mapper"
15
+ "user management",
16
+ "group management",
17
+ "application framework",
18
+ "data framework",
19
+ "database abstraction",
20
+ "database abstraction layer"
12
21
  ],
13
22
  "scripts": {
14
23
  "clean": "test -d dist && rm -r dist || true",
15
24
  "build": "tsc",
16
25
  "watch": "tsc --watch",
17
- "prepare": "npm run clean && npm run build",
18
- "test": "jest",
19
- "test:watch": "jest --watch"
26
+ "prepublish": "npm run clean && npm run build",
27
+ "typecheck": "npx tsc --noEmit",
28
+ "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests",
29
+ "test:watch": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests --watch"
20
30
  },
21
31
  "publishConfig": {
22
32
  "access": "public"
23
33
  },
34
+ "homepage": "https://nymph.io",
24
35
  "repository": {
25
36
  "type": "git",
26
- "url": "git+https://github.com/sciactive/nymphjs.git"
37
+ "url": "https://forge.sciactive.com/sciactive/nymphjs.git",
38
+ "directory": "packages/nymph"
27
39
  },
28
- "author": "Hunter Perrin <hperrin@gmail.com>",
40
+ "author": "Hunter Perrin <hperrin@port87.com>",
29
41
  "bugs": {
30
- "url": "https://github.com/sciactive/nymphjs/issues"
42
+ "url": "https://forge.sciactive.com/sciactive/nymphjs/issues"
31
43
  },
32
44
  "license": "Apache-2.0",
33
45
  "dependencies": {
34
- "@nymphjs/guid": "^1.0.0-beta.13",
35
- "joi": "^17.8.3",
36
- "locutus": "^2.0.16",
37
- "lodash": "^4.17.21",
38
- "n-readlines": "^1.0.3"
46
+ "@nymphjs/guid": "^1.0.0-beta.130",
47
+ "@sciactive/tokenizer": "^3.4.0",
48
+ "debug": "^4.4.3",
49
+ "joi": "^18.2.5",
50
+ "locutus": "^3.0.36",
51
+ "lodash-es": "^4.18.1",
52
+ "n-readlines": "^3.4.1"
39
53
  },
40
54
  "devDependencies": {
41
- "@tsconfig/recommended": "^1.0.2",
42
- "@types/jest": "^29.4.0",
43
- "@types/locutus": "^0.0.6",
44
- "@types/lodash": "^4.14.191",
45
- "@types/n-readlines": "^1.0.3",
46
- "jest": "^29.4.3",
47
- "ts-jest": "^29.0.5",
48
- "typescript": "^4.9.5"
55
+ "@swc/core": "^1.16.1",
56
+ "@swc/jest": "^0.2.39",
57
+ "@tsconfig/recommended": "^1.0.13",
58
+ "@types/debug": "^4.1.13",
59
+ "@types/jest": "^30.0.0",
60
+ "@types/locutus": "^0.0.8",
61
+ "@types/lodash-es": "^4.17.12",
62
+ "@types/n-readlines": "^1.0.6",
63
+ "@types/node": "^26.2.0",
64
+ "cross-env": "^10.1.0",
65
+ "jest": "^30.4.2",
66
+ "ts-node": "^10.9.2",
67
+ "typescript": "^7.0.2"
49
68
  },
50
- "gitHead": "fcc750b12db6426cbf9dbd38618280c1ba965491"
69
+ "gitHead": "c6f7f2da04eec397ac1f9c64f1ce2ccc7fd47292"
51
70
  }