@nymphjs/nymph 1.0.0-beta.124 → 1.0.0-beta.125

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.0.0-beta.125](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.124...v1.0.0-beta.125) (2026-09-24)
7
+
8
+ ### Bug Fixes
9
+
10
+ - client translation errors, pubsub qref translation, entities can contain classes in db now ([2902fe3](https://forge.sciactive.com/sciactive/nymphjs/commits/2902fe3166b456cd0d8012c10991f9a16a4a99bb))
11
+
6
12
  # [1.0.0-beta.124](https://forge.sciactive.com/sciactive/nymphjs/compare/v1.0.0-beta.123...v1.0.0-beta.124) (2026-09-24)
7
13
 
8
14
  ### Bug Fixes
package/dist/Entity.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { difference, intersection, isEqual } from 'lodash-es';
2
2
  import { guid } from '@nymphjs/guid';
3
3
  import { EntityConflictError, EntityIsSleepingReferenceError, InvalidParametersError, InvalidStateError, MethodFailedError, } from './errors/index.js';
4
- import { entitiesToReferences, referencesToEntities, uniqueStrings, } from './utils.js';
4
+ import { classNamesToEntityConstructors, entitiesToReferences, entityConstructorsToClassNames, referencesToEntities, uniqueStrings, } from './utils.js';
5
5
  /**
6
6
  * Database abstraction object.
7
7
  *
@@ -222,7 +222,7 @@ export default class Entity {
222
222
  get: (data, name) => {
223
223
  this.$check();
224
224
  if (this.$sdata.hasOwnProperty(name)) {
225
- data[name] = referencesToEntities(JSON.parse(this.$sdata[name]), this.$nymph, this.$skipAc);
225
+ data[name] = referencesToEntities(classNamesToEntityConstructors(this.$nymph, JSON.parse(this.$sdata[name]), false), this.$nymph, this.$skipAc);
226
226
  delete this.$sdata[name];
227
227
  }
228
228
  if (data.hasOwnProperty(name)) {
@@ -259,7 +259,7 @@ export default class Entity {
259
259
  getOwnPropertyDescriptor: (data, name) => {
260
260
  this.$check();
261
261
  if (this.$sdata.hasOwnProperty(name)) {
262
- data[name] = referencesToEntities(JSON.parse(this.$sdata[name]), this.$nymph, this.$skipAc);
262
+ data[name] = referencesToEntities(classNamesToEntityConstructors(this.$nymph, JSON.parse(this.$sdata[name]), false), this.$nymph, this.$skipAc);
263
263
  delete this.$sdata[name];
264
264
  }
265
265
  return Object.getOwnPropertyDescriptor(data, name);
@@ -454,7 +454,7 @@ export default class Entity {
454
454
  return this.$sleepingReference;
455
455
  }
456
456
  const obj = {
457
- class: this.constructor.class,
457
+ class: entityConstructorsToClassNames(this.constructor),
458
458
  guid: this.guid,
459
459
  cdate: this.cdate,
460
460
  mdate: this.mdate,
@@ -466,7 +466,7 @@ export default class Entity {
466
466
  ...Object.keys(this.$sdata),
467
467
  ]) {
468
468
  if (this.$privateData.indexOf(key) === -1) {
469
- obj.data[key] = entitiesToReferences(this.$data[key], true);
469
+ obj.data[key] = entityConstructorsToClassNames(entitiesToReferences(this.$data[key], true));
470
470
  }
471
471
  }
472
472
  return obj;
@@ -485,6 +485,10 @@ export default class Entity {
485
485
  data.$setNymph(nymph);
486
486
  }
487
487
  }
488
+ else if (typeof data === 'function' &&
489
+ data.prototype instanceof Entity) {
490
+ data.nymph = nymph;
491
+ }
488
492
  else if (typeof data === 'object') {
489
493
  for (let name in data) {
490
494
  recurseData(data[name]);
@@ -569,7 +573,7 @@ export default class Entity {
569
573
  const _unused = this[key];
570
574
  }
571
575
  }
572
- return entitiesToReferences({ ...this.$dataStore }, referenceOnlyExisting);
576
+ return entityConstructorsToClassNames(entitiesToReferences({ ...this.$dataStore }, referenceOnlyExisting));
573
577
  }
574
578
  $getSData() {
575
579
  this.$check();
@@ -635,7 +639,7 @@ export default class Entity {
635
639
  cdate: this.cdate,
636
640
  mdate: this.mdate,
637
641
  tags: this.tags,
638
- ...referencesToEntities(this.$dataStore, this.$nymph, this.$skipAc),
642
+ ...referencesToEntities(classNamesToEntityConstructors(this.$nymph, this.$dataStore, false), this.$nymph, this.$skipAc),
639
643
  };
640
644
  }
641
645
  $getTags() {
@@ -754,6 +758,7 @@ export default class Entity {
754
758
  }
755
759
  this.$putData({
756
760
  ...nonAllowlistData,
761
+ // Data has already been dereferenced.
757
762
  ...data,
758
763
  ...protectedData,
759
764
  ...privateData,
@@ -795,7 +800,8 @@ export default class Entity {
795
800
  this.$privateData.indexOf(name) !== -1) {
796
801
  continue;
797
802
  }
798
- this.$data[name] = referencesToEntities(patch.set[name], this.$nymph, this.$skipAc);
803
+ // Data has already been dereferenced.
804
+ this.$data[name] = patch.set[name];
799
805
  }
800
806
  for (const name of patch.unset) {
801
807
  if ((this.$allowlistData != null &&
@@ -833,7 +839,7 @@ export default class Entity {
833
839
  delete this.$dataStore[name];
834
840
  }
835
841
  for (const name in data) {
836
- this.$dataStore[name] = referencesToEntities(data[name], this.$nymph, this.$skipAc);
842
+ this.$dataStore[name] = referencesToEntities(classNamesToEntityConstructors(this.$nymph, data[name], false), this.$nymph, this.$skipAc);
837
843
  }
838
844
  this.$sdata = mySdata;
839
845
  // Set original AC values if not set..
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
@@ -218,7 +218,7 @@ describe('Entity', () => {
218
218
  null: null,
219
219
  uniques: [],
220
220
  },
221
- class: 'TestModel',
221
+ class: ['nymph_class_reference', 'TestModel'],
222
222
  });
223
223
  });
224
224
  it('incoming JSON works', async () => {
@@ -267,7 +267,7 @@ describe('Entity', () => {
267
267
  testEntity.cdate = 13;
268
268
  testEntity.mdate = 14;
269
269
  testEntity.$jsonAcceptPatch({
270
- class: TestModel.class,
270
+ class: TestModel,
271
271
  guid: testEntity.guid,
272
272
  mdate: 15,
273
273
  set: {
@@ -306,7 +306,7 @@ describe('Entity', () => {
306
306
  testEntity.cdate = 13;
307
307
  testEntity.mdate = 14;
308
308
  testEntity.$jsonAcceptPatch({
309
- class: TestModel.class,
309
+ class: TestModel,
310
310
  guid: testEntity.guid,
311
311
  mdate: 15,
312
312
  set: {
@@ -343,7 +343,7 @@ describe('Entity', () => {
343
343
  thrownName = '';
344
344
  try {
345
345
  testEntity.$jsonAcceptPatch({
346
- class: TestModel.class,
346
+ class: TestModel,
347
347
  guid: data.guid,
348
348
  mdate: data.mdate,
349
349
  set: {
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.test.js","sourceRoot":"","sources":["../src/Entity.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Entity.test.js","sourceRoot":"","sources":["../src/Entity.test.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export type ACProperties = {
11
11
  acFull: (string | null)[] | null;
12
12
  };
13
13
  export type EntityReference = ['nymph_entity_reference', string, string];
14
+ export type ClassReference = ['nymph_class_reference', string];
14
15
  export type EntityData = {
15
16
  [k: string]: any;
16
17
  };
@@ -25,7 +26,7 @@ export type EntityObject = {
25
26
  [k: string]: any;
26
27
  };
27
28
  export type EntityJson = {
28
- class: string;
29
+ class: EntityConstructor;
29
30
  guid: string | null;
30
31
  cdate: number | null;
31
32
  mdate: number | null;
@@ -33,7 +34,7 @@ export type EntityJson = {
33
34
  data: EntityData;
34
35
  };
35
36
  export type EntityPatch = {
36
- class: string;
37
+ class: EntityConstructor;
37
38
  guid: string;
38
39
  mdate: number | null;
39
40
  set: EntityData;
@@ -240,6 +241,9 @@ export interface EntityInterface extends DataObjectInterface {
240
241
  /**
241
242
  * Accept JSON data from the client.
242
243
  *
244
+ * The given data must already be dereferenced (class references turned into
245
+ * classes and entity references turned into entities).
246
+ *
243
247
  * This function uses the security protection lists:
244
248
  *
245
249
  * - $protectedTags
@@ -256,6 +260,9 @@ export interface EntityInterface extends DataObjectInterface {
256
260
  /**
257
261
  * Accept JSON patch from the client.
258
262
  *
263
+ * The given data must already be dereferenced (class references turned into
264
+ * classes and entity references turned into entities).
265
+ *
259
266
  * This function uses the security protection lists:
260
267
  *
261
268
  * - $protectedTags
@@ -3,6 +3,7 @@ import { difference } from 'lodash-es';
3
3
  import ReadLines from 'n-readlines';
4
4
  import { strtotime } from 'locutus/php/datetime/index';
5
5
  import { Tokenizer } from '@sciactive/tokenizer';
6
+ import Entity from '../Entity.js';
6
7
  import { ClassNotAvailableError, InvalidParametersError, UnableToConnectError, } from '../errors/index.js';
7
8
  import { xor } from '../utils.js';
8
9
  // from: https://stackoverflow.com/a/6969486/664915
@@ -448,8 +449,15 @@ export default class NymphDriver {
448
449
  guids.indexOf(value[1]) !== -1) {
449
450
  return true;
450
451
  }
452
+ if (value instanceof Entity &&
453
+ value.guid != null &&
454
+ guids.indexOf(value.guid) !== -1) {
455
+ return true;
456
+ }
451
457
  // Search through arrays and objects looking for the reference.
452
- if (value != null && (Array.isArray(value) || typeof value === 'object')) {
458
+ if (value != null &&
459
+ (Array.isArray(value) ||
460
+ (typeof value === 'object' && !(value instanceof Entity)))) {
453
461
  for (const key in value) {
454
462
  if (this.entityReferenceSearch(value[key], guids)) {
455
463
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"NymphDriver.js","sourceRoot":"","sources":["../../src/driver/NymphDriver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NymphDriver.js","sourceRoot":"","sources":["../../src/driver/NymphDriver.ts"],"names":[],"mappings":"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"}
package/dist/testMocks.js CHANGED
@@ -68,7 +68,6 @@ export class MockNymph {
68
68
  return await this.driver.getEntity(options, ...selectors);
69
69
  }
70
70
  async saveEntity(entity) {
71
- const className = entity.constructor.class;
72
71
  if (entity.guid == null) {
73
72
  entity.guid = guid();
74
73
  entity.cdate = Date.now();
@@ -79,7 +78,7 @@ export class MockNymph {
79
78
  }
80
79
  entity.mdate = Date.now();
81
80
  const entityJson = {
82
- class: className,
81
+ class: entity.constructor,
83
82
  guid: entity.guid,
84
83
  cdate: entity.cdate,
85
84
  mdate: entity.mdate,
@@ -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,8 +1,8 @@
1
1
  import Nymph from './Nymph.js';
2
2
  export declare function xor(a: any, b: any): boolean;
3
3
  export declare function uniqueStrings(array: string[]): string[];
4
- export declare function classNamesToEntityConstructors<T extends any>(nymph: Nymph, item: T, enforceRestEnabledFlag?: boolean): T;
5
4
  export declare function entityConstructorsToClassNames(item: any): any;
5
+ export declare function classNamesToEntityConstructors<T extends any>(nymph: Nymph, item: T, enforceRestEnabledFlag?: boolean): T;
6
6
  export declare function entitiesToReferences(item: any, existingOnly?: boolean): any;
7
7
  export declare function referencesToEntities(item: any, nymph: Nymph, useSkipAc?: boolean, enforceRestEnabledFlag?: boolean): any;
8
8
  export declare function sortObj<T extends {
package/dist/utils.js CHANGED
@@ -9,63 +9,63 @@ export function uniqueStrings(array) {
9
9
  }
10
10
  return Object.keys(obj);
11
11
  }
12
- export function classNamesToEntityConstructors(nymph, item, enforceRestEnabledFlag = false) {
12
+ export function entityConstructorsToClassNames(item) {
13
13
  if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
14
14
  return item;
15
15
  }
16
- else if (Array.isArray(item) &&
17
- item.length === 2 &&
18
- item[0] === 'nymph_class_reference' &&
19
- typeof item[1] === 'string') {
20
- // Convert class references to entity classes.
21
- const EntityClass = nymph.getEntityClass(item[1]);
22
- if (enforceRestEnabledFlag && !EntityClass.restEnabled) {
23
- throw new Error('Not accessible.');
24
- }
25
- return EntityClass;
16
+ else if (typeof item === 'function' && item.prototype instanceof Entity) {
17
+ // Convert entity classes to class references.
18
+ return ['nymph_class_reference', item.class];
26
19
  }
27
- else if (item instanceof Entity &&
28
- typeof item.$toReference === 'function') {
20
+ else if (item instanceof Entity) {
29
21
  // Don't touch entities.
30
22
  return item;
31
23
  }
32
24
  else if (Array.isArray(item)) {
33
25
  // Recurse into lower arrays.
34
- return item.map((entry) => classNamesToEntityConstructors(nymph, entry, enforceRestEnabledFlag));
26
+ return item.map((entry) => entityConstructorsToClassNames(entry));
35
27
  }
36
28
  else if (item instanceof Object) {
37
29
  let newObj = Object.create(item);
38
30
  for (let [key, value] of Object.entries(item)) {
39
- newObj[key] = classNamesToEntityConstructors(nymph, value, enforceRestEnabledFlag);
31
+ newObj[key] = entityConstructorsToClassNames(value);
40
32
  }
41
33
  return newObj;
42
34
  }
43
35
  // Not an entity or array, just return it.
44
36
  return item;
45
37
  }
46
- export function entityConstructorsToClassNames(item) {
38
+ export function classNamesToEntityConstructors(nymph, item, enforceRestEnabledFlag = false) {
47
39
  if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
48
40
  return item;
49
41
  }
50
- else if (typeof item === 'function' &&
51
- item.prototype instanceof Entity &&
52
- typeof item.class === 'string') {
53
- // Convert entity classes to class references.
54
- return ['nymph_class_reference', item.class];
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;
55
52
  }
56
- else if (item instanceof Entity &&
57
- typeof item.$toReference === 'function') {
53
+ else if (item instanceof Entity) {
58
54
  // Don't touch entities.
59
55
  return item;
60
56
  }
57
+ else if (typeof item === 'function' && item.prototype instanceof Entity) {
58
+ // Don't touch Entity classes.
59
+ return item;
60
+ }
61
61
  else if (Array.isArray(item)) {
62
62
  // Recurse into lower arrays.
63
- return item.map((entry) => entityConstructorsToClassNames(entry));
63
+ return item.map((entry) => classNamesToEntityConstructors(nymph, entry, enforceRestEnabledFlag));
64
64
  }
65
65
  else if (item instanceof Object) {
66
66
  let newObj = Object.create(item);
67
67
  for (let [key, value] of Object.entries(item)) {
68
- newObj[key] = entityConstructorsToClassNames(value);
68
+ newObj[key] = classNamesToEntityConstructors(nymph, value, enforceRestEnabledFlag);
69
69
  }
70
70
  return newObj;
71
71
  }
@@ -76,14 +76,11 @@ export function entitiesToReferences(item, existingOnly) {
76
76
  if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
77
77
  return item;
78
78
  }
79
- else if (item instanceof Entity &&
80
- typeof item.$toReference === 'function') {
79
+ else if (item instanceof Entity) {
81
80
  // Convert entities to references.
82
81
  return item.$toReference(existingOnly);
83
82
  }
84
- else if (typeof item === 'function' &&
85
- item.prototype instanceof Entity &&
86
- typeof item.class === 'string') {
83
+ else if (typeof item === 'function' && item.prototype instanceof Entity) {
87
84
  // Don't touch Entity classes.
88
85
  return item;
89
86
  }
@@ -124,13 +121,23 @@ export function referencesToEntities(item, nymph, useSkipAc = false, enforceRest
124
121
  }
125
122
  else {
126
123
  // Recurse into lower arrays.
127
- return item.map((entry) => referencesToEntities(entry, nymph, useSkipAc));
124
+ return item.map((entry) => referencesToEntities(entry, nymph, useSkipAc, enforceRestEnabledFlag));
128
125
  }
129
126
  }
130
- else if (Entity && item instanceof Object && !(item instanceof Entity)) {
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);
131
137
  for (let [key, value] of Object.entries(item)) {
132
- item[key] = referencesToEntities(value, nymph);
138
+ newObj[key] = referencesToEntities(value, nymph, useSkipAc, enforceRestEnabledFlag);
133
139
  }
140
+ return newObj;
134
141
  }
135
142
  // Not an array, just return it.
136
143
  return item;
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAKjC,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,CAAM;IAChC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAe;IAC3C,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAY,EACZ,IAAO,EACP,sBAAsB,GAAG,KAAK;IAE9B,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IACL,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,KAAK,uBAAuB;QACnC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC3B,CAAC;QACD,8CAA8C;QAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,sBAAsB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,WAAgB,CAAC;IAC1B,CAAC;SAAM,IACL,IAAI,YAAY,MAAM;QACtB,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EACvC,CAAC;QACD,wBAAwB;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,6BAA6B;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,8BAA8B,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAChE,CAAC;IACT,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,8BAA8B,CAC1C,KAAK,EACL,KAAK,EACL,sBAAsB,CACvB,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,0CAA0C;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAAS;IACtD,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IACL,OAAO,IAAI,KAAK,UAAU;QAC1B,IAAI,CAAC,SAAS,YAAY,MAAM;QAChC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAC9B,CAAC;QACD,8CAA8C;QAC9C,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;SAAM,IACL,IAAI,YAAY,MAAM;QACtB,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EACvC,CAAC;QACD,wBAAwB;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,6BAA6B;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,0CAA0C;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAS,EAAE,YAAsB;IACpE,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IACL,IAAI,YAAY,MAAM;QACtB,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EACvC,CAAC;QACD,kCAAkC;QAClC,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;SAAM,IACL,OAAO,IAAI,KAAK,UAAU;QAC1B,IAAI,CAAC,SAAS,YAAY,MAAM;QAChC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAC9B,CAAC;QACD,8BAA8B;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,6BAA6B;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,0CAA0C;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAS,EACT,KAAY,EACZ,SAAS,GAAG,KAAK,EACjB,sBAAsB,GAAG,KAAK;IAE9B,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,6BAA6B;QAC7B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,wBAAwB,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,sBAAsB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;oBACvD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,IAAuB,CAAC,CAAC;gBACrE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC7B,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;gBACtB,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,IAAI,IAAI,YAAY,MAAM,IAAI,CAAC,CAAC,IAAI,YAAY,MAAM,CAAC,EAAE,CAAC;QACzE,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,gCAAgC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,OAAO,CAAiC,GAAM;IAC5D,eAAe;IACf,mEAAmE;IACnE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,SAAS,CAAC,IAAI,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,kEAAkE;QAClE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAIjC,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,CAAM;IAChC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAe;IAC3C,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACtC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAAS;IACtD,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,YAAY,MAAM,EAAE,CAAC;QAC1E,8CAA8C;QAC9C,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,wBAAwB;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,6BAA6B;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,0CAA0C;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,KAAY,EACZ,IAAO,EACP,sBAAsB,GAAG,KAAK;IAE9B,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IACL,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,KAAK,uBAAuB;QACnC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC3B,CAAC;QACD,8CAA8C;QAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,sBAAsB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,WAAgB,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,wBAAwB;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,YAAY,MAAM,EAAE,CAAC;QAC1E,8BAA8B;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,6BAA6B;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,8BAA8B,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAChE,CAAC;IACT,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,8BAA8B,CAC1C,KAAK,EACL,KAAK,EACL,sBAAsB,CACvB,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,0CAA0C;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAS,EAAE,YAAsB;IACpE,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,kCAAkC;QAClC,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,YAAY,MAAM,EAAE,CAAC;QAC1E,8BAA8B;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,6BAA6B;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IACxE,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,0CAA0C;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAS,EACT,KAAY,EACZ,SAAS,GAAG,KAAK,EACjB,sBAAsB,GAAG,KAAK;IAE9B,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,6BAA6B;QAC7B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,wBAAwB,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,sBAAsB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;oBACvD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,IAAuB,CAAC,CAAC;gBACrE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC7B,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;gBACtB,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,CAAC,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,wBAAwB;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,YAAY,MAAM,EAAE,CAAC;QAC1E,8BAA8B;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAChC,KAAK,EACL,KAAK,EACL,SAAS,EACT,sBAAsB,CACvB,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,gCAAgC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,OAAO,CAAiC,GAAM;IAC5D,eAAe;IACf,mEAAmE;IACnE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,SAAS,CAAC,IAAI,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,kEAAkE;QAClE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nymphjs/nymph",
3
- "version": "1.0.0-beta.124",
3
+ "version": "1.0.0-beta.125",
4
4
  "description": "Application Data and Access Framework for Node.js and the Browser",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "license": "Apache-2.0",
45
45
  "dependencies": {
46
- "@nymphjs/guid": "^1.0.0-beta.124",
46
+ "@nymphjs/guid": "^1.0.0-beta.125",
47
47
  "@sciactive/tokenizer": "^3.4.0",
48
48
  "debug": "^4.4.3",
49
49
  "joi": "^18.2.5",
@@ -66,5 +66,5 @@
66
66
  "ts-node": "^10.9.2",
67
67
  "typescript": "^7.0.2"
68
68
  },
69
- "gitHead": "f0e37f47c5ceeaaa1b389867f7cd24eac05cc5f9"
69
+ "gitHead": "b87bd7ebda690fc8c491835e44fece78dc650b9c"
70
70
  }
@@ -273,7 +273,7 @@ describe('Entity', () => {
273
273
  null: null,
274
274
  uniques: [],
275
275
  },
276
- class: 'TestModel',
276
+ class: ['nymph_class_reference', 'TestModel'],
277
277
  });
278
278
  });
279
279
 
@@ -333,7 +333,7 @@ describe('Entity', () => {
333
333
  testEntity.cdate = 13;
334
334
  testEntity.mdate = 14;
335
335
  testEntity.$jsonAcceptPatch({
336
- class: TestModel.class,
336
+ class: TestModel,
337
337
  guid: testEntity.guid as string,
338
338
  mdate: 15,
339
339
  set: {
@@ -379,7 +379,7 @@ describe('Entity', () => {
379
379
  testEntity.cdate = 13;
380
380
  testEntity.mdate = 14;
381
381
  testEntity.$jsonAcceptPatch({
382
- class: TestModel.class,
382
+ class: TestModel,
383
383
  guid: testEntity.guid as string,
384
384
  mdate: 15,
385
385
  set: {
@@ -424,7 +424,7 @@ describe('Entity', () => {
424
424
 
425
425
  try {
426
426
  testEntity.$jsonAcceptPatch({
427
- class: TestModel.class,
427
+ class: TestModel,
428
428
  guid: data.guid,
429
429
  mdate: data.mdate,
430
430
  set: {
package/src/Entity.ts CHANGED
@@ -22,7 +22,9 @@ import {
22
22
  MethodFailedError,
23
23
  } from './errors/index.js';
24
24
  import {
25
+ classNamesToEntityConstructors,
25
26
  entitiesToReferences,
27
+ entityConstructorsToClassNames,
26
28
  referencesToEntities,
27
29
  uniqueStrings,
28
30
  } from './utils.js';
@@ -272,7 +274,11 @@ export default class Entity<
272
274
 
273
275
  if (this.$sdata.hasOwnProperty(name)) {
274
276
  data[name] = referencesToEntities(
275
- JSON.parse(this.$sdata[name]),
277
+ classNamesToEntityConstructors(
278
+ this.$nymph,
279
+ JSON.parse(this.$sdata[name]),
280
+ false,
281
+ ),
276
282
  this.$nymph,
277
283
  this.$skipAc,
278
284
  );
@@ -325,7 +331,11 @@ export default class Entity<
325
331
 
326
332
  if (this.$sdata.hasOwnProperty(name)) {
327
333
  data[name] = referencesToEntities(
328
- JSON.parse(this.$sdata[name]),
334
+ classNamesToEntityConstructors(
335
+ this.$nymph,
336
+ JSON.parse(this.$sdata[name]),
337
+ false,
338
+ ),
329
339
  this.$nymph,
330
340
  this.$skipAc,
331
341
  );
@@ -587,7 +597,7 @@ export default class Entity<
587
597
  return this.$sleepingReference;
588
598
  }
589
599
  const obj: EntityJson = {
590
- class: (this.constructor as any).class as string,
600
+ class: entityConstructorsToClassNames(this.constructor),
591
601
  guid: this.guid,
592
602
  cdate: this.cdate,
593
603
  mdate: this.mdate,
@@ -599,7 +609,9 @@ export default class Entity<
599
609
  ...Object.keys(this.$sdata),
600
610
  ]) {
601
611
  if (this.$privateData.indexOf(key) === -1) {
602
- obj.data[key] = entitiesToReferences(this.$data[key], true);
612
+ obj.data[key] = entityConstructorsToClassNames(
613
+ entitiesToReferences(this.$data[key], true),
614
+ );
603
615
  }
604
616
  }
605
617
  return obj;
@@ -617,6 +629,11 @@ export default class Entity<
617
629
  if (data.$nymph !== nymph) {
618
630
  data.$setNymph(nymph);
619
631
  }
632
+ } else if (
633
+ typeof data === 'function' &&
634
+ data.prototype instanceof Entity
635
+ ) {
636
+ data.nymph = nymph;
620
637
  } else if (typeof data === 'object') {
621
638
  for (let name in data) {
622
639
  recurseData(data[name]);
@@ -715,7 +732,9 @@ export default class Entity<
715
732
  const _unused: any = (this as any)[key];
716
733
  }
717
734
  }
718
- return entitiesToReferences({ ...this.$dataStore }, referenceOnlyExisting);
735
+ return entityConstructorsToClassNames(
736
+ entitiesToReferences({ ...this.$dataStore }, referenceOnlyExisting),
737
+ );
719
738
  }
720
739
 
721
740
  public $getSData() {
@@ -801,7 +820,11 @@ export default class Entity<
801
820
  cdate: this.cdate,
802
821
  mdate: this.mdate,
803
822
  tags: this.tags,
804
- ...referencesToEntities(this.$dataStore, this.$nymph, this.$skipAc),
823
+ ...referencesToEntities(
824
+ classNamesToEntityConstructors(this.$nymph, this.$dataStore, false),
825
+ this.$nymph,
826
+ this.$skipAc,
827
+ ),
805
828
  };
806
829
  }
807
830
 
@@ -946,6 +969,7 @@ export default class Entity<
946
969
 
947
970
  this.$putData({
948
971
  ...nonAllowlistData,
972
+ // Data has already been dereferenced.
949
973
  ...data,
950
974
  ...protectedData,
951
975
  ...privateData,
@@ -1002,11 +1026,8 @@ export default class Entity<
1002
1026
  ) {
1003
1027
  continue;
1004
1028
  }
1005
- (this.$data as any)[name] = referencesToEntities(
1006
- patch.set[name],
1007
- this.$nymph,
1008
- this.$skipAc,
1009
- );
1029
+ // Data has already been dereferenced.
1030
+ (this.$data as any)[name] = patch.set[name];
1010
1031
  }
1011
1032
 
1012
1033
  for (const name of patch.unset) {
@@ -1060,7 +1081,7 @@ export default class Entity<
1060
1081
  }
1061
1082
  for (const name in data) {
1062
1083
  (this.$dataStore as any)[name] = referencesToEntities(
1063
- data[name],
1084
+ classNamesToEntityConstructors(this.$nymph, data[name], false),
1064
1085
  this.$nymph,
1065
1086
  this.$skipAc,
1066
1087
  );
@@ -13,6 +13,7 @@ export type ACProperties = {
13
13
  };
14
14
 
15
15
  export type EntityReference = ['nymph_entity_reference', string, string];
16
+ export type ClassReference = ['nymph_class_reference', string];
16
17
 
17
18
  export type EntityData = {
18
19
  [k: string]: any;
@@ -31,7 +32,7 @@ export type EntityObject = {
31
32
  };
32
33
 
33
34
  export type EntityJson = {
34
- class: string;
35
+ class: EntityConstructor;
35
36
  guid: string | null;
36
37
  cdate: number | null;
37
38
  mdate: number | null;
@@ -40,7 +41,7 @@ export type EntityJson = {
40
41
  };
41
42
 
42
43
  export type EntityPatch = {
43
- class: string;
44
+ class: EntityConstructor;
44
45
  guid: string;
45
46
  mdate: number | null;
46
47
  set: EntityData;
@@ -249,6 +250,9 @@ export interface EntityInterface extends DataObjectInterface {
249
250
  /**
250
251
  * Accept JSON data from the client.
251
252
  *
253
+ * The given data must already be dereferenced (class references turned into
254
+ * classes and entity references turned into entities).
255
+ *
252
256
  * This function uses the security protection lists:
253
257
  *
254
258
  * - $protectedTags
@@ -265,6 +269,9 @@ export interface EntityInterface extends DataObjectInterface {
265
269
  /**
266
270
  * Accept JSON patch from the client.
267
271
  *
272
+ * The given data must already be dereferenced (class references turned into
273
+ * classes and entity references turned into entities).
274
+ *
268
275
  * This function uses the security protection lists:
269
276
  *
270
277
  * - $protectedTags
@@ -6,6 +6,7 @@ import { Tokenizer } from '@sciactive/tokenizer';
6
6
 
7
7
  import type Nymph from '../Nymph.js';
8
8
  import type { Selector, Options, FormattedSelector } from '../Nymph.types.js';
9
+ import Entity from '../Entity.js';
9
10
  import type { EntityInstanceType, EntityObjectType } from '../Entity.js';
10
11
  import type {
11
12
  EntityConstructor,
@@ -735,8 +736,19 @@ export default abstract class NymphDriver {
735
736
  ) {
736
737
  return true;
737
738
  }
739
+ if (
740
+ value instanceof Entity &&
741
+ value.guid != null &&
742
+ guids.indexOf(value.guid) !== -1
743
+ ) {
744
+ return true;
745
+ }
738
746
  // Search through arrays and objects looking for the reference.
739
- if (value != null && (Array.isArray(value) || typeof value === 'object')) {
747
+ if (
748
+ value != null &&
749
+ (Array.isArray(value) ||
750
+ (typeof value === 'object' && !(value instanceof Entity)))
751
+ ) {
740
752
  for (const key in value) {
741
753
  if (this.entityReferenceSearch(value[key], guids)) {
742
754
  return true;
package/src/testMocks.ts CHANGED
@@ -154,8 +154,6 @@ export class MockNymph {
154
154
  }
155
155
 
156
156
  public async saveEntity(entity: EntityInterface): Promise<boolean> {
157
- const className = (entity.constructor as any).class as string;
158
-
159
157
  if (entity.guid == null) {
160
158
  entity.guid = guid();
161
159
  entity.cdate = Date.now();
@@ -171,7 +169,7 @@ export class MockNymph {
171
169
  entity.mdate = Date.now();
172
170
 
173
171
  const entityJson: EntityJson = {
174
- class: className,
172
+ class: entity.constructor as EntityConstructor,
175
173
  guid: entity.guid,
176
174
  cdate: entity.cdate,
177
175
  mdate: entity.mdate,
package/src/utils.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import Entity from './Entity.js';
2
2
  import { EntityReference } from './Entity.types.js';
3
3
  import Nymph from './Nymph.js';
4
- import { Options, Selector } from './Nymph.types.js';
5
4
 
6
5
  export function xor(a: any, b: any): boolean {
7
6
  return !!(a && !b) || (!a && b);
@@ -15,6 +14,29 @@ export function uniqueStrings(array: string[]) {
15
14
  return Object.keys(obj);
16
15
  }
17
16
 
17
+ export function entityConstructorsToClassNames(item: any): any {
18
+ if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
19
+ return item;
20
+ } else if (typeof item === 'function' && item.prototype instanceof Entity) {
21
+ // Convert entity classes to class references.
22
+ return ['nymph_class_reference', item.class];
23
+ } else if (item instanceof Entity) {
24
+ // Don't touch entities.
25
+ return item;
26
+ } else if (Array.isArray(item)) {
27
+ // Recurse into lower arrays.
28
+ return item.map((entry) => entityConstructorsToClassNames(entry));
29
+ } else if (item instanceof Object) {
30
+ let newObj = Object.create(item);
31
+ for (let [key, value] of Object.entries(item)) {
32
+ newObj[key] = entityConstructorsToClassNames(value);
33
+ }
34
+ return newObj;
35
+ }
36
+ // Not an entity or array, just return it.
37
+ return item;
38
+ }
39
+
18
40
  export function classNamesToEntityConstructors<T extends any>(
19
41
  nymph: Nymph,
20
42
  item: T,
@@ -34,12 +56,12 @@ export function classNamesToEntityConstructors<T extends any>(
34
56
  throw new Error('Not accessible.');
35
57
  }
36
58
  return EntityClass as T;
37
- } else if (
38
- item instanceof Entity &&
39
- typeof item.$toReference === 'function'
40
- ) {
59
+ } else if (item instanceof Entity) {
41
60
  // Don't touch entities.
42
61
  return item;
62
+ } else if (typeof item === 'function' && item.prototype instanceof Entity) {
63
+ // Don't touch Entity classes.
64
+ return item;
43
65
  } else if (Array.isArray(item)) {
44
66
  // Recurse into lower arrays.
45
67
  return item.map((entry) =>
@@ -60,50 +82,13 @@ export function classNamesToEntityConstructors<T extends any>(
60
82
  return item;
61
83
  }
62
84
 
63
- export function entityConstructorsToClassNames(item: any): any {
64
- if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
65
- return item;
66
- } else if (
67
- typeof item === 'function' &&
68
- item.prototype instanceof Entity &&
69
- typeof item.class === 'string'
70
- ) {
71
- // Convert entity classes to class references.
72
- return ['nymph_class_reference', item.class];
73
- } else if (
74
- item instanceof Entity &&
75
- typeof item.$toReference === 'function'
76
- ) {
77
- // Don't touch entities.
78
- return item;
79
- } else if (Array.isArray(item)) {
80
- // Recurse into lower arrays.
81
- return item.map((entry) => entityConstructorsToClassNames(entry));
82
- } else if (item instanceof Object) {
83
- let newObj = Object.create(item);
84
- for (let [key, value] of Object.entries(item)) {
85
- newObj[key] = entityConstructorsToClassNames(value);
86
- }
87
- return newObj;
88
- }
89
- // Not an entity or array, just return it.
90
- return item;
91
- }
92
-
93
85
  export function entitiesToReferences(item: any, existingOnly?: boolean): any {
94
86
  if (item == null || Buffer.isBuffer(item) || ArrayBuffer.isView(item)) {
95
87
  return item;
96
- } else if (
97
- item instanceof Entity &&
98
- typeof item.$toReference === 'function'
99
- ) {
88
+ } else if (item instanceof Entity) {
100
89
  // Convert entities to references.
101
90
  return item.$toReference(existingOnly);
102
- } else if (
103
- typeof item === 'function' &&
104
- item.prototype instanceof Entity &&
105
- typeof item.class === 'string'
106
- ) {
91
+ } else if (typeof item === 'function' && item.prototype instanceof Entity) {
107
92
  // Don't touch Entity classes.
108
93
  return item;
109
94
  } else if (Array.isArray(item)) {
@@ -145,12 +130,27 @@ export function referencesToEntities(
145
130
  }
146
131
  } else {
147
132
  // Recurse into lower arrays.
148
- return item.map((entry) => referencesToEntities(entry, nymph, useSkipAc));
133
+ return item.map((entry) =>
134
+ referencesToEntities(entry, nymph, useSkipAc, enforceRestEnabledFlag),
135
+ );
149
136
  }
150
- } else if (Entity && item instanceof Object && !(item instanceof Entity)) {
137
+ } else if (item instanceof Entity) {
138
+ // Don't touch entities.
139
+ return item;
140
+ } else if (typeof item === 'function' && item.prototype instanceof Entity) {
141
+ // Don't touch Entity classes.
142
+ return item;
143
+ } else if (item instanceof Object) {
144
+ let newObj = Object.create(item);
151
145
  for (let [key, value] of Object.entries(item)) {
152
- item[key] = referencesToEntities(value, nymph);
146
+ newObj[key] = referencesToEntities(
147
+ value,
148
+ nymph,
149
+ useSkipAc,
150
+ enforceRestEnabledFlag,
151
+ );
153
152
  }
153
+ return newObj;
154
154
  }
155
155
  // Not an array, just return it.
156
156
  return item;