@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
@@ -1,8 +1,17 @@
1
- import type Nymph from '../Nymph';
2
- import { EntityConstructor, EntityData, EntityInterface, EntityReference, SerializedEntityData } from '../Entity.types';
3
- import { Selector, Options, FormattedSelector } from '../Nymph.types';
1
+ import { Tokenizer } from '@sciactive/tokenizer';
2
+ import type Nymph from '../Nymph.js';
3
+ import type { Selector, Options, FormattedSelector } from '../Nymph.types.js';
4
+ import type { EntityInstanceType, EntityObjectType } from '../Entity.js';
5
+ import type { EntityConstructor, EntityData, EntityInterface, EntityReference, SerializedEntityData } from '../Entity.types.js';
6
+ /**
7
+ * A Nymph database driver.
8
+ */
4
9
  export default abstract class NymphDriver {
5
10
  protected nymph: Nymph;
11
+ protected tokenizer: Tokenizer;
12
+ /**
13
+ * A cache to make entity retrieval faster.
14
+ */
6
15
  protected entityCache: {
7
16
  [k: string]: {
8
17
  cdate: number;
@@ -12,13 +21,28 @@ export default abstract class NymphDriver {
12
21
  sdata: SerializedEntityData;
13
22
  };
14
23
  };
24
+ /**
25
+ * A counter for the entity cache to determine the most accessed entities.
26
+ */
15
27
  protected entityCount: {
16
28
  [k: string]: number;
17
29
  };
30
+ /**
31
+ * Protect against infinite loops.
32
+ */
18
33
  private putDataCounter;
34
+ /**
35
+ * This is used internally by Nymph. Don't call it yourself.
36
+ *
37
+ * @returns A clone of this instance.
38
+ */
19
39
  abstract clone(): NymphDriver;
40
+ /**
41
+ * Connect to the data store.
42
+ */
20
43
  abstract connect(): Promise<boolean>;
21
44
  abstract isConnected(): boolean;
45
+ protected abstract internalTransaction(name: string): Promise<any>;
22
46
  abstract startTransaction(name: string): Promise<Nymph>;
23
47
  abstract commit(name: string): Promise<boolean>;
24
48
  abstract rollback(name: string): Promise<boolean>;
@@ -26,61 +50,137 @@ export default abstract class NymphDriver {
26
50
  abstract deleteEntityByID(guid: string, classConstructor: EntityConstructor): Promise<boolean>;
27
51
  abstract deleteEntityByID(guid: string, className?: string): Promise<boolean>;
28
52
  abstract deleteUID(name: string): Promise<boolean>;
53
+ /**
54
+ * Disconnect from the data store.
55
+ */
29
56
  abstract disconnect(): Promise<boolean>;
30
- protected abstract exportEntities(writeLine: (line: string) => void): Promise<void>;
57
+ abstract needsMigration(): Promise<'json' | 'tokens' | 'tilmeldColumns' | false>;
58
+ abstract liveMigration(migrationType: 'tokenTables' | 'tilmeldColumns' | 'tilmeldRemoveOldRows'): Promise<void>;
59
+ abstract getEtypes(): Promise<string[]>;
60
+ abstract getIndexes(etype: string): Promise<{
61
+ scope: 'data' | 'references' | 'tokens';
62
+ name: string;
63
+ property: string;
64
+ }[]>;
65
+ abstract addIndex(etype: string, definition: {
66
+ scope: 'data' | 'references' | 'tokens';
67
+ name: string;
68
+ property: string;
69
+ }): Promise<boolean>;
70
+ abstract deleteIndex(etype: string, scope: 'data' | 'references' | 'tokens', name: string): Promise<boolean>;
71
+ abstract exportDataIterator(): AsyncGenerator<{
72
+ type: 'comment' | 'uid' | 'entity';
73
+ content: string;
74
+ }, void, undefined | false>;
75
+ abstract exportEntity(etype: string, guid: string): Promise<string>;
31
76
  abstract getEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
32
77
  return: 'count';
33
78
  }, ...selectors: Selector[]): Promise<number>;
34
79
  abstract getEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
35
80
  return: 'guid';
36
81
  }, ...selectors: Selector[]): Promise<string[]>;
37
- abstract getEntities<T extends EntityConstructor = EntityConstructor>(options?: Options<T>, ...selectors: Selector[]): Promise<ReturnType<T['factorySync']>[]>;
38
- abstract getEntities<T extends EntityConstructor = EntityConstructor>(options?: Options<T>, ...selectors: Selector[]): Promise<ReturnType<T['factorySync']>[] | string[] | number>;
39
- protected abstract getEntitiesSync<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
40
- return: 'count';
41
- }, ...selectors: Selector[]): number;
42
- protected abstract getEntitiesSync<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
43
- return: 'guid';
44
- }, ...selectors: Selector[]): string[];
45
- protected abstract getEntitiesSync<T extends EntityConstructor = EntityConstructor>(options?: Options<T>, ...selectors: Selector[]): ReturnType<T['factorySync']>[];
46
- protected abstract getEntitiesSync<T extends EntityConstructor = EntityConstructor>(options?: Options<T>, ...selectors: Selector[]): ReturnType<T['factorySync']>[] | string[] | number;
82
+ abstract getEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
83
+ return: 'object';
84
+ }, ...selectors: Selector[]): Promise<EntityObjectType<T>[]>;
85
+ abstract getEntities<T extends EntityConstructor = EntityConstructor>(options?: Options<T>, ...selectors: Selector[]): Promise<EntityInstanceType<T>[]>;
86
+ abstract getEntities<T extends EntityConstructor = EntityConstructor>(options?: Options<T>, ...selectors: Selector[]): Promise<EntityInstanceType<T>[] | EntityObjectType<T>[] | string[] | number>;
47
87
  abstract getUID(name: string): Promise<number | null>;
48
- abstract import(filename: string): Promise<boolean>;
88
+ abstract importEntity(entity: {
89
+ guid: string;
90
+ cdate: number;
91
+ mdate: number;
92
+ tags: string[];
93
+ sdata: SerializedEntityData;
94
+ etype: string;
95
+ }): Promise<void>;
96
+ abstract importEntityTokens(entity: {
97
+ guid: string;
98
+ cdate: number;
99
+ mdate: number;
100
+ tags: string[];
101
+ sdata: SerializedEntityData;
102
+ etype: string;
103
+ }): Promise<void>;
104
+ abstract importEntityTilmeldAC(entity: {
105
+ guid: string;
106
+ cdate: number;
107
+ mdate: number;
108
+ tags: string[];
109
+ sdata: SerializedEntityData;
110
+ etype: string;
111
+ }): Promise<void>;
112
+ abstract importUID(uid: {
113
+ name: string;
114
+ value: number;
115
+ }): Promise<void>;
49
116
  abstract newUID(name: string): Promise<number | null>;
50
117
  abstract renameUID(oldName: string, newName: string): Promise<boolean>;
51
- abstract saveEntity(entity: EntityInterface): Promise<boolean>;
52
118
  abstract setUID(name: string, value: number): Promise<boolean>;
119
+ abstract saveEntity(entity: EntityInterface): Promise<boolean>;
120
+ /**
121
+ * Initialize the Nymph driver.
122
+ *
123
+ * This is meant to be called internally by Nymph. Don't call this directly.
124
+ *
125
+ * @param nymph The Nymph instance.
126
+ */
53
127
  init(nymph: Nymph): void;
54
128
  protected posixRegexMatch(pattern: string, subject: string, caseInsensitive?: boolean): boolean;
129
+ checkIndexName(name: string): void;
55
130
  export(filename: string): Promise<boolean>;
56
131
  exportPrint(): Promise<boolean>;
57
- protected importFromFile(filename: string, saveEntityCallback: (guid: string, tags: string[], sdata: SerializedEntityData, etype: string) => Promise<void>, saveUIDCallback: (name: string, value: number) => Promise<void>, startTransactionCallback?: (() => Promise<void>) | null, commitTransactionCallback?: (() => Promise<void>) | null): Promise<boolean>;
58
- checkData(data: EntityData, sdata: SerializedEntityData, selectors: Selector[], guid?: string | null, tags?: string[] | null): boolean;
132
+ importDataIterator(lines: Iterable<string>, options?: {
133
+ ignoreUnknownETypes?: boolean;
134
+ }, transaction?: boolean): Promise<boolean>;
135
+ importData(text: string, transaction?: boolean): Promise<boolean>;
136
+ import(filename: string, options?: {
137
+ ignoreUnknownETypes?: boolean;
138
+ }, transaction?: boolean): Promise<boolean>;
139
+ checkData(etype: string, data: EntityData, sdata: SerializedEntityData, selectors: Selector[], guid?: string | null, tags?: string[] | null): boolean;
140
+ /**
141
+ * Remove all copies of an entity from the cache.
142
+ *
143
+ * @param guid The GUID of the entity to remove.
144
+ */
59
145
  protected cleanCache(guid: string): void;
60
146
  deleteEntity(entity: EntityInterface): Promise<boolean>;
147
+ /**
148
+ * Search through a value for an entity reference.
149
+ *
150
+ * @param value Any value to search.
151
+ * @param entity An entity, GUID, or array of either to search for.
152
+ * @returns True if the reference is found, false otherwise.
153
+ */
61
154
  protected entityReferenceSearch(value: any, entity: EntityInterface | EntityReference | string | (EntityInterface | EntityReference | string)[]): boolean;
155
+ protected removeAndReturnACValues(etype: string, data: EntityData, sdata: SerializedEntityData): {
156
+ data: EntityData;
157
+ sdata: SerializedEntityData;
158
+ user: string | null;
159
+ group: string | null;
160
+ acUser: number | null;
161
+ acGroup: number | null;
162
+ acOther: number | null;
163
+ acRead: string[] | null;
164
+ acWrite: string[] | null;
165
+ acFull: string[] | null;
166
+ };
62
167
  formatSelectors(selectors: Selector[], options?: Options): {
63
168
  selectors: FormattedSelector[];
64
169
  qrefs: [Options, ...FormattedSelector[]][];
65
170
  };
66
- protected iterateSelectorsForQuery(selectors: FormattedSelector[], callback: (key: string, value: any, typeIsOr: boolean, typeIsNot: boolean) => string): string[];
67
- getEntitySync<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
68
- return: 'count';
69
- }, ...selectors: Selector[]): number;
70
- getEntitySync<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
71
- return: 'guid';
72
- }, ...selectors: Selector[]): string | null;
73
- getEntitySync<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): ReturnType<T['factorySync']> | null;
74
- getEntitySync<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
75
- return: 'count';
76
- }, guid: string): number;
77
- getEntitySync<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
78
- return: 'guid';
79
- }, guid: string): string | null;
80
- getEntitySync<T extends EntityConstructor = EntityConstructor>(options: Options<T>, guid: string): ReturnType<T['factorySync']> | null;
81
- protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
171
+ protected iterateSelectorsForQuery(selectors: FormattedSelector[], callback: (data: {
172
+ key: string;
173
+ value: any;
174
+ typeIsOr: boolean;
175
+ typeIsNot: boolean;
176
+ }) => string): string[];
177
+ protected getEntitiesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
82
178
  return: 'count';
83
- }, selectors: Selector[], performQueryCallback: (options: Options<T>, formattedSelectors: FormattedSelector[], etype: string) => {
179
+ }, selectors: Selector[], performQueryCallback: (data: {
180
+ options: Options<T>;
181
+ selectors: FormattedSelector[];
182
+ etype: string;
183
+ }) => {
84
184
  result: any;
85
185
  }, rowFetchCallback: () => any, freeResultCallback: () => void, getCountCallback: (row: any) => number, getGUIDCallback: (row: any) => string, getTagsAndDatesCallback: (row: any) => {
86
186
  tags: string[];
@@ -93,9 +193,13 @@ export default abstract class NymphDriver {
93
193
  result: any;
94
194
  process: () => number | Error;
95
195
  };
96
- protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
196
+ protected getEntitiesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
97
197
  return: 'guid';
98
- }, selectors: Selector[], performQueryCallback: (options: Options<T>, formattedSelectors: FormattedSelector[], etype: string) => {
198
+ }, selectors: Selector[], performQueryCallback: (data: {
199
+ options: Options<T>;
200
+ selectors: FormattedSelector[];
201
+ etype: string;
202
+ }) => {
99
203
  result: any;
100
204
  }, rowFetchCallback: () => any, freeResultCallback: () => void, getCountCallback: (row: any) => number, getGUIDCallback: (row: any) => string, getTagsAndDatesCallback: (row: any) => {
101
205
  tags: string[];
@@ -108,7 +212,30 @@ export default abstract class NymphDriver {
108
212
  result: any;
109
213
  process: () => string[] | Error;
110
214
  };
111
- protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T>, selectors: Selector[], performQueryCallback: (options: Options<T>, formattedSelectors: FormattedSelector[], etype: string) => {
215
+ protected getEntitiesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
216
+ return: 'object';
217
+ }, selectors: Selector[], performQueryCallback: (data: {
218
+ options: Options<T>;
219
+ selectors: FormattedSelector[];
220
+ etype: string;
221
+ }) => {
222
+ result: any;
223
+ }, rowFetchCallback: () => any, freeResultCallback: () => void, getCountCallback: (row: any) => number, getGUIDCallback: (row: any) => string, getTagsAndDatesCallback: (row: any) => {
224
+ tags: string[];
225
+ cdate: number;
226
+ mdate: number;
227
+ }, getDataNameAndSValueCallback: (row: any) => {
228
+ name: string;
229
+ svalue: string;
230
+ }): {
231
+ result: any;
232
+ process: () => EntityObjectType<T>[] | Error;
233
+ };
234
+ protected getEntitiesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T>, selectors: Selector[], performQueryCallback: (data: {
235
+ options: Options<T>;
236
+ selectors: FormattedSelector[];
237
+ etype: string;
238
+ }) => {
112
239
  result: any;
113
240
  }, rowFetchCallback: () => any, freeResultCallback: () => void, getCountCallback: (row: any) => number, getGUIDCallback: (row: any) => string, getTagsAndDatesCallback: (row: any) => {
114
241
  tags: string[];
@@ -119,10 +246,51 @@ export default abstract class NymphDriver {
119
246
  svalue: string;
120
247
  }): {
121
248
  result: any;
122
- process: () => ReturnType<T['factorySync']>[] | Error;
249
+ process: () => EntityInstanceType<T>[] | Error;
123
250
  };
124
- protected saveEntityRowLike(entity: EntityInterface, saveNewEntityCallback: (entity: EntityInterface, guid: string, tags: string[], data: EntityData, sdata: SerializedEntityData, cdate: number, etype: string) => Promise<boolean>, saveExistingEntityCallback: (entity: EntityInterface, guid: string, tags: string[], data: EntityData, sdata: SerializedEntityData, mdate: number, etype: string) => Promise<boolean>, startTransactionCallback?: (() => Promise<void>) | null, commitTransactionCallback?: ((success: boolean) => Promise<boolean>) | null): Promise<boolean>;
125
- protected pullCache<T extends EntityInterface = EntityInterface>(guid: string, className: string, useSkipAc?: boolean): T | null;
251
+ protected saveEntityRowLike(entity: EntityInterface, saveNewEntityCallback: (data: {
252
+ entity: EntityInterface;
253
+ guid: string;
254
+ tags: string[];
255
+ data: EntityData;
256
+ sdata: SerializedEntityData;
257
+ uniques: string[];
258
+ cdate: number;
259
+ etype: string;
260
+ }) => Promise<boolean>, saveExistingEntityCallback: (data: {
261
+ entity: EntityInterface;
262
+ guid: string;
263
+ tags: string[];
264
+ data: EntityData;
265
+ sdata: SerializedEntityData;
266
+ uniques: string[];
267
+ mdate: number;
268
+ etype: string;
269
+ }) => Promise<boolean>, startTransactionCallback?: (() => Promise<void>) | null, commitTransactionCallback?: ((success: boolean) => Promise<boolean>) | null): Promise<boolean>;
270
+ /**
271
+ * Pull an entity from the cache.
272
+ *
273
+ * @param guid The entity's GUID.
274
+ * @returns The entity's data or null if it's not cached.
275
+ */
276
+ protected pullCache(guid: string): {
277
+ guid: string;
278
+ cdate: number;
279
+ mdate: number;
280
+ tags: string[];
281
+ data: EntityData;
282
+ sdata: SerializedEntityData;
283
+ } | null;
284
+ /**
285
+ * Push an entity onto the cache.
286
+ *
287
+ * @param guid The entity's GUID.
288
+ * @param cdate The entity's cdate.
289
+ * @param mdate The entity's mdate.
290
+ * @param tags The entity's tags.
291
+ * @param data The entity's data.
292
+ * @param sdata The entity's sdata.
293
+ */
126
294
  protected pushCache(guid: string, cdate: number, mdate: number, tags: string[], data: EntityData, sdata: SerializedEntityData): void;
127
295
  protected findReferences(svalue: string): string[];
128
296
  }