@nymphjs/nymph 1.0.0-beta.7 → 1.0.0-beta.71

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 (65) hide show
  1. package/CHANGELOG.md +324 -0
  2. package/README.md +13 -21
  3. package/dist/Entity.d.ts +269 -7
  4. package/dist/Entity.js +491 -105
  5. package/dist/Entity.js.map +1 -1
  6. package/dist/Entity.test.js +39 -17
  7. package/dist/Entity.test.js.map +1 -1
  8. package/dist/Entity.types.d.ts +225 -19
  9. package/dist/Nymph.d.ts +423 -11
  10. package/dist/Nymph.js +685 -176
  11. package/dist/Nymph.js.map +1 -1
  12. package/dist/Nymph.types.d.ts +31 -7
  13. package/dist/Nymph.types.js +2 -1
  14. package/dist/Nymph.types.js.map +1 -1
  15. package/dist/conf/d.d.ts +26 -0
  16. package/dist/conf/defaults.js +22 -0
  17. package/dist/conf/defaults.js.map +1 -1
  18. package/dist/driver/NymphDriver.d.ts +129 -38
  19. package/dist/driver/NymphDriver.js +264 -131
  20. package/dist/driver/NymphDriver.js.map +1 -1
  21. package/dist/driver/testArtifacts.d.ts +1 -1
  22. package/dist/driver/testArtifacts.js +336 -42
  23. package/dist/driver/testArtifacts.js.map +1 -1
  24. package/dist/errors/EntityInvalidDataError.d.ts +6 -0
  25. package/dist/errors/EntityInvalidDataError.js +7 -1
  26. package/dist/errors/EntityInvalidDataError.js.map +1 -1
  27. package/dist/errors/EntityUniqueConstraintError.d.ts +3 -0
  28. package/dist/errors/EntityUniqueConstraintError.js +11 -0
  29. package/dist/errors/EntityUniqueConstraintError.js.map +1 -0
  30. package/dist/errors/InvalidStateError.d.ts +3 -0
  31. package/dist/errors/InvalidStateError.js +11 -0
  32. package/dist/errors/InvalidStateError.js.map +1 -0
  33. package/dist/errors/QueryFailedError.js +1 -0
  34. package/dist/errors/QueryFailedError.js.map +1 -1
  35. package/dist/errors/index.d.ts +2 -0
  36. package/dist/errors/index.js +2 -0
  37. package/dist/errors/index.js.map +1 -1
  38. package/dist/testArtifacts.d.ts +17 -5
  39. package/dist/testArtifacts.js +31 -27
  40. package/dist/testArtifacts.js.map +1 -1
  41. package/dist/testMocks.d.ts +15 -10
  42. package/dist/testMocks.js +37 -13
  43. package/dist/testMocks.js.map +1 -1
  44. package/dist/utils.d.ts +1 -1
  45. package/dist/utils.js +21 -5
  46. package/dist/utils.js.map +1 -1
  47. package/package.json +16 -14
  48. package/src/Entity.test.ts +32 -11
  49. package/src/Entity.ts +423 -134
  50. package/src/Entity.types.ts +32 -66
  51. package/src/Nymph.ts +618 -195
  52. package/src/Nymph.types.ts +97 -26
  53. package/src/conf/d.ts +8 -0
  54. package/src/conf/defaults.ts +24 -0
  55. package/src/driver/NymphDriver.ts +281 -311
  56. package/src/driver/testArtifacts.ts +384 -173
  57. package/src/errors/EntityUniqueConstraintError.ts +6 -0
  58. package/src/errors/InvalidStateError.ts +6 -0
  59. package/src/errors/index.ts +4 -0
  60. package/src/nymphJoiProps.ts +2 -2
  61. package/src/testArtifacts.ts +18 -19
  62. package/src/testMocks.ts +64 -32
  63. package/src/utils.ts +22 -8
  64. package/tsconfig.json +3 -3
  65. package/typedoc.json +4 -0
package/dist/Nymph.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Nymph.js","sourceRoot":"","sources":["../src/Nymph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Nymph.js","sourceRoot":"","sources":["../src/Nymph.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,55 @@
1
- import { EntityConstructor, EntityInterface } from './Entity.types';
2
- import Nymph from './Nymph';
3
- export type NymphEventType = 'connect' | 'disconnect' | 'query' | 'beforeGetEntity' | 'beforeGetEntities' | 'beforeSaveEntity' | 'afterSaveEntity' | 'beforeDeleteEntity' | 'afterDeleteEntity' | 'beforeDeleteEntityByID' | 'afterDeleteEntityByID' | 'beforeNewUID' | 'afterNewUID' | 'beforeSetUID' | 'afterSetUID' | 'beforeRenameUID' | 'afterRenameUID' | 'beforeDeleteUID' | 'afterDeleteUID';
1
+ import type { EntityConstructor, EntityInterface } from './Entity.types';
2
+ import type Nymph from './Nymph';
3
+ export type NymphEventType = 'connect' | 'disconnect' | 'query' | 'beforeGetEntity' | 'beforeGetEntities' | 'beforeSaveEntity' | 'afterSaveEntity' | 'failedSaveEntity' | 'beforeDeleteEntity' | 'afterDeleteEntity' | 'failedDeleteEntity' | 'beforeDeleteEntityByID' | 'afterDeleteEntityByID' | 'failedDeleteEntityByID' | 'beforeNewUID' | 'afterNewUID' | 'failedNewUID' | 'beforeSetUID' | 'afterSetUID' | 'failedSetUID' | 'beforeRenameUID' | 'afterRenameUID' | 'failedRenameUID' | 'beforeDeleteUID' | 'afterDeleteUID' | 'failedDeleteUID' | 'beforeStartTransaction' | 'afterStartTransaction' | 'beforeCommitTransaction' | 'afterCommitTransaction' | 'beforeRollbackTransaction' | 'afterRollbackTransaction';
4
4
  export type NymphConnectCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
5
5
  export type NymphDisconnectCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
6
+ /**
7
+ * The NymphQueryCallback will be called on both top level and qref queries.
8
+ *
9
+ * This is the only callback that is not asynchronous.
10
+ *
11
+ * This also isn't necessarily run on every "query". It is run before a database
12
+ * query for an entity, but it is not run during PubSub entity change
13
+ * propagation. Therefore, it shouldn't do anything _entity_ specific, instead
14
+ * it should be _query_ specific. For example, throw an error if the user is not
15
+ * permitted to run the query at all.
16
+ */
6
17
  export type NymphQueryCallback = (nymph: Nymph, options: Options, selectors: FormattedSelector[]) => void;
7
18
  export type NymphBeforeGetEntityCallback = (nymph: Nymph, options: Options, selectors: Selector[]) => Promise<void>;
8
19
  export type NymphBeforeGetEntitiesCallback = (nymph: Nymph, options: Options, selectors: Selector[]) => Promise<void>;
9
20
  export type NymphBeforeSaveEntityCallback = (nymph: Nymph, entity: EntityInterface) => Promise<void>;
10
21
  export type NymphAfterSaveEntityCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
22
+ export type NymphFailedSaveEntityCallback = (nymph: Nymph, error: any) => Promise<void>;
11
23
  export type NymphBeforeDeleteEntityCallback = (nymph: Nymph, entity: EntityInterface) => Promise<void>;
12
24
  export type NymphAfterDeleteEntityCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
25
+ export type NymphFailedDeleteEntityCallback = (nymph: Nymph, error: any) => Promise<void>;
13
26
  export type NymphBeforeDeleteEntityByIDCallback = (nymph: Nymph, guid: string, className?: string) => Promise<void>;
14
27
  export type NymphAfterDeleteEntityByIDCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
28
+ export type NymphFailedDeleteEntityByIDCallback = (nymph: Nymph, error: any) => Promise<void>;
15
29
  export type NymphBeforeNewUIDCallback = (nymph: Nymph, name: string) => Promise<void>;
16
30
  export type NymphAfterNewUIDCallback = (nymph: Nymph, result: Promise<number | null>) => Promise<void>;
31
+ export type NymphFailedNewUIDCallback = (nymph: Nymph, error: any) => Promise<void>;
17
32
  export type NymphBeforeSetUIDCallback = (nymph: Nymph, name: string, value: number) => Promise<void>;
18
33
  export type NymphAfterSetUIDCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
34
+ export type NymphFailedSetUIDCallback = (nymph: Nymph, error: any) => Promise<void>;
19
35
  export type NymphBeforeRenameUIDCallback = (nymph: Nymph, oldName: string, newName: string) => Promise<void>;
20
36
  export type NymphAfterRenameUIDCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
37
+ export type NymphFailedRenameUIDCallback = (nymph: Nymph, error: any) => Promise<void>;
21
38
  export type NymphBeforeDeleteUIDCallback = (nymph: Nymph, name: string) => Promise<void>;
22
39
  export type NymphAfterDeleteUIDCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
40
+ export type NymphFailedDeleteUIDCallback = (nymph: Nymph, error: any) => Promise<void>;
41
+ export type NymphBeforeStartTransactionCallback = (nymph: Nymph, name: string) => Promise<void>;
42
+ export type NymphAfterStartTransactionCallback = (nymph: Nymph, name: string, result: Nymph) => Promise<void>;
43
+ export type NymphBeforeCommitTransactionCallback = (nymph: Nymph, name: string) => Promise<void>;
44
+ export type NymphAfterCommitTransactionCallback = (nymph: Nymph, name: string, result: boolean) => Promise<void>;
45
+ export type NymphBeforeRollbackTransactionCallback = (nymph: Nymph, name: string) => Promise<void>;
46
+ export type NymphAfterRollbackTransactionCallback = (nymph: Nymph, name: string, result: boolean) => Promise<void>;
23
47
  export type Options<T extends EntityConstructor = EntityConstructor> = {
24
48
  class?: T;
25
49
  limit?: number;
26
50
  offset?: number;
27
51
  reverse?: boolean;
28
- sort?: 'cdate' | 'mdate';
52
+ sort?: 'cdate' | 'mdate' | string;
29
53
  return?: 'entity' | 'guid' | 'count';
30
54
  source?: string;
31
55
  skipCache?: boolean;
@@ -156,10 +180,10 @@ export interface TilmeldInterface {
156
180
  init(nymph: Nymph): void;
157
181
  clone(): TilmeldInterface;
158
182
  gatekeeper(ability?: string): boolean;
159
- authenticate(): void;
183
+ authenticate(skipXsrfToken?: boolean, skipRenew?: boolean): Promise<boolean>;
160
184
  clearSession(): void;
161
185
  extractToken(token: string): Promise<any>;
162
- fillSession(user: any): void;
163
- checkClientUIDPermissions(name: string, type?: TilmeldAccessLevels): boolean;
186
+ fillSession(user: any): Promise<void>;
187
+ checkClientUIDPermissions(name: string, type?: TilmeldAccessLevels): Promise<boolean>;
164
188
  }
165
189
  export {};
@@ -6,6 +6,7 @@ var TilmeldAccessLevels;
6
6
  TilmeldAccessLevels[TilmeldAccessLevels["NO_ACCESS"] = 0] = "NO_ACCESS";
7
7
  TilmeldAccessLevels[TilmeldAccessLevels["READ_ACCESS"] = 1] = "READ_ACCESS";
8
8
  TilmeldAccessLevels[TilmeldAccessLevels["WRITE_ACCESS"] = 2] = "WRITE_ACCESS";
9
+ // Keeping 3 open in case we ever need one between write and full.
9
10
  TilmeldAccessLevels[TilmeldAccessLevels["FULL_ACCESS"] = 4] = "FULL_ACCESS";
10
- })(TilmeldAccessLevels = exports.TilmeldAccessLevels || (exports.TilmeldAccessLevels = {}));
11
+ })(TilmeldAccessLevels || (exports.TilmeldAccessLevels = TilmeldAccessLevels = {}));
11
12
  //# sourceMappingURL=Nymph.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Nymph.types.js","sourceRoot":"","sources":["../src/Nymph.types.ts"],"names":[],"mappings":";;;AAwSA,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,uEAAa,CAAA;IACb,2EAAe,CAAA;IACf,6EAAgB,CAAA;IAEhB,2EAAe,CAAA;AACjB,CAAC,EANW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAM9B"}
1
+ {"version":3,"file":"Nymph.types.js","sourceRoot":"","sources":["../src/Nymph.types.ts"],"names":[],"mappings":";;;AA4WA,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,uEAAa,CAAA;IACb,2EAAe,CAAA;IACf,6EAAgB,CAAA;IAChB,kEAAkE;IAClE,2EAAe,CAAA;AACjB,CAAC,EANW,mBAAmB,mCAAnB,mBAAmB,QAM9B"}
package/dist/conf/d.d.ts CHANGED
@@ -1,6 +1,32 @@
1
+ /**
2
+ * Nymph Config
3
+ */
1
4
  export interface Config {
5
+ /**
6
+ * Cache recently retrieved entities to speed up database queries. Uses more
7
+ * memory.
8
+ */
2
9
  cache: boolean;
10
+ /**
11
+ * Cache entities after they're accessed this many times.
12
+ */
3
13
  cacheThreshold: number;
14
+ /**
15
+ * The number of recently retrieved entities to cache. If you're running out
16
+ * of memory, try lowering this value. 0 means unlimited.
17
+ */
4
18
  cacheLimit: number;
19
+ /**
20
+ * When querying for multiple entities with NymphREST, if the list is empty,
21
+ * return a 404 error.
22
+ */
5
23
  emptyListError: boolean;
24
+ /**
25
+ * A function to log debug messages. By default, uses the `debug` package.
26
+ */
27
+ debugLog: (source: string, message: string) => void;
28
+ /**
29
+ * A function to log error messages. By default, uses the `debug` package.
30
+ */
31
+ debugError: (source: string, message: string) => void;
6
32
  }
@@ -1,9 +1,31 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const debug_1 = __importDefault(require("debug"));
7
+ const debuggers = {};
8
+ function getDebuggers(source) {
9
+ if (source in debuggers) {
10
+ return debuggers[source];
11
+ }
12
+ debuggers[source] = {
13
+ log: (0, debug_1.default)(`nymphjs:log:${source}`),
14
+ error: (0, debug_1.default)(`nymphjs:error:${source}`),
15
+ };
16
+ debuggers[source].log.log = console.log.bind(console);
17
+ return debuggers[source];
18
+ }
3
19
  exports.default = {
4
20
  cache: false,
5
21
  cacheThreshold: 4,
6
22
  cacheLimit: 50,
7
23
  emptyListError: false,
24
+ debugLog: (source, message) => {
25
+ getDebuggers(source).log(message);
26
+ },
27
+ debugError: (source, message) => {
28
+ getDebuggers(source).error(message);
29
+ },
8
30
  };
9
31
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/conf/defaults.ts"],"names":[],"mappings":";;AAEA,kBAAe;IACb,KAAK,EAAE,KAAK;IACZ,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,KAAK;CACZ,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/conf/defaults.ts"],"names":[],"mappings":";;;;;AAAA,kDAAmD;AAGnD,MAAM,SAAS,GAAwD,EAAE,CAAC;AAE1E,SAAS,YAAY,CAAC,MAAc;IAClC,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,MAAM,CAAC,GAAG;QAClB,GAAG,EAAE,IAAA,eAAW,EAAC,eAAe,MAAM,EAAE,CAAC;QACzC,KAAK,EAAE,IAAA,eAAW,EAAC,iBAAiB,MAAM,EAAE,CAAC;KAC9C,CAAC;IAEF,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,kBAAe;IACb,KAAK,EAAE,KAAK;IACZ,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,KAAK;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAC5B,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAC9B,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACQ,CAAC"}
@@ -1,8 +1,15 @@
1
1
  import type Nymph from '../Nymph';
2
- import { EntityConstructor, EntityData, EntityInterface, EntityReference, SerializedEntityData } from '../Entity.types';
3
- import { Selector, Options, FormattedSelector } from '../Nymph.types';
2
+ import type { Selector, Options, FormattedSelector } from '../Nymph.types';
3
+ import Entity, { type EntityInstanceType } from '../Entity';
4
+ import type { EntityConstructor, EntityData, EntityInterface, EntityReference, SerializedEntityData } from '../Entity.types';
5
+ /**
6
+ * A Nymph database driver.
7
+ */
4
8
  export default abstract class NymphDriver {
5
9
  protected nymph: Nymph;
10
+ /**
11
+ * A cache to make entity retrieval faster.
12
+ */
6
13
  protected entityCache: {
7
14
  [k: string]: {
8
15
  cdate: number;
@@ -12,13 +19,28 @@ export default abstract class NymphDriver {
12
19
  sdata: SerializedEntityData;
13
20
  };
14
21
  };
22
+ /**
23
+ * A counter for the entity cache to determine the most accessed entities.
24
+ */
15
25
  protected entityCount: {
16
26
  [k: string]: number;
17
27
  };
28
+ /**
29
+ * Protect against infinite loops.
30
+ */
18
31
  private putDataCounter;
32
+ /**
33
+ * This is used internally by Nymph. Don't call it yourself.
34
+ *
35
+ * @returns A clone of this instance.
36
+ */
19
37
  abstract clone(): NymphDriver;
38
+ /**
39
+ * Connect to the data store.
40
+ */
20
41
  abstract connect(): Promise<boolean>;
21
42
  abstract isConnected(): boolean;
43
+ protected abstract internalTransaction(name: string): Promise<any>;
22
44
  abstract startTransaction(name: string): Promise<Nymph>;
23
45
  abstract commit(name: string): Promise<boolean>;
24
46
  abstract rollback(name: string): Promise<boolean>;
@@ -26,61 +48,86 @@ export default abstract class NymphDriver {
26
48
  abstract deleteEntityByID(guid: string, classConstructor: EntityConstructor): Promise<boolean>;
27
49
  abstract deleteEntityByID(guid: string, className?: string): Promise<boolean>;
28
50
  abstract deleteUID(name: string): Promise<boolean>;
51
+ /**
52
+ * Disconnect from the data store.
53
+ */
29
54
  abstract disconnect(): Promise<boolean>;
30
- protected abstract exportEntities(writeLine: (line: string) => void): Promise<void>;
55
+ abstract exportDataIterator(): AsyncGenerator<{
56
+ type: 'comment' | 'uid' | 'entity';
57
+ content: string;
58
+ }, void, undefined | false>;
31
59
  abstract getEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
32
60
  return: 'count';
33
61
  }, ...selectors: Selector[]): Promise<number>;
34
62
  abstract getEntities<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
35
63
  return: 'guid';
36
64
  }, ...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;
65
+ abstract getEntities<T extends EntityConstructor = EntityConstructor>(options?: Options<T>, ...selectors: Selector[]): Promise<EntityInstanceType<T>[]>;
66
+ abstract getEntities<T extends EntityConstructor = EntityConstructor>(options?: Options<T>, ...selectors: Selector[]): Promise<EntityInstanceType<T>[] | string[] | number>;
47
67
  abstract getUID(name: string): Promise<number | null>;
48
- abstract import(filename: string): Promise<boolean>;
68
+ abstract importEntity(entity: {
69
+ guid: string;
70
+ cdate: number;
71
+ mdate: number;
72
+ tags: string[];
73
+ sdata: SerializedEntityData;
74
+ etype: string;
75
+ }): Promise<void>;
76
+ abstract importUID(uid: {
77
+ name: string;
78
+ value: number;
79
+ }): Promise<void>;
49
80
  abstract newUID(name: string): Promise<number | null>;
50
81
  abstract renameUID(oldName: string, newName: string): Promise<boolean>;
51
82
  abstract saveEntity(entity: EntityInterface): Promise<boolean>;
52
83
  abstract setUID(name: string, value: number): Promise<boolean>;
84
+ /**
85
+ * Initialize the Nymph driver.
86
+ *
87
+ * This is meant to be called internally by Nymph. Don't call this directly.
88
+ *
89
+ * @param nymph The Nymph instance.
90
+ */
53
91
  init(nymph: Nymph): void;
54
92
  protected posixRegexMatch(pattern: string, subject: string, caseInsensitive?: boolean): boolean;
55
93
  export(filename: string): Promise<boolean>;
56
94
  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>;
95
+ importDataIterator(lines: Iterable<string>, transaction?: boolean): Promise<boolean>;
96
+ importData(text: string, transaction?: boolean): Promise<boolean>;
97
+ import(filename: string, transaction?: boolean): Promise<boolean>;
58
98
  checkData(data: EntityData, sdata: SerializedEntityData, selectors: Selector[], guid?: string | null, tags?: string[] | null): boolean;
99
+ /**
100
+ * Remove all copies of an entity from the cache.
101
+ *
102
+ * @param guid The GUID of the entity to remove.
103
+ */
59
104
  protected cleanCache(guid: string): void;
60
105
  deleteEntity(entity: EntityInterface): Promise<boolean>;
106
+ /**
107
+ * Search through a value for an entity reference.
108
+ *
109
+ * @param value Any value to search.
110
+ * @param entity An entity, GUID, or array of either to search for.
111
+ * @returns True if the reference is found, false otherwise.
112
+ */
61
113
  protected entityReferenceSearch(value: any, entity: EntityInterface | EntityReference | string | (EntityInterface | EntityReference | string)[]): boolean;
62
114
  formatSelectors(selectors: Selector[], options?: Options): {
63
115
  selectors: FormattedSelector[];
64
116
  qrefs: [Options, ...FormattedSelector[]][];
65
117
  };
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> & {
118
+ protected iterateSelectorsForQuery(selectors: FormattedSelector[], callback: (data: {
119
+ key: string;
120
+ value: any;
121
+ typeIsOr: boolean;
122
+ typeIsNot: boolean;
123
+ }) => string): string[];
124
+ protected getEntitiesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
75
125
  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> & {
82
- return: 'count';
83
- }, selectors: Selector[], performQueryCallback: (options: Options<T>, formattedSelectors: FormattedSelector[], etype: string) => {
126
+ }, selectors: Selector[], performQueryCallback: (data: {
127
+ options: Options<T>;
128
+ selectors: FormattedSelector[];
129
+ etype: string;
130
+ }) => {
84
131
  result: any;
85
132
  }, rowFetchCallback: () => any, freeResultCallback: () => void, getCountCallback: (row: any) => number, getGUIDCallback: (row: any) => string, getTagsAndDatesCallback: (row: any) => {
86
133
  tags: string[];
@@ -93,9 +140,13 @@ export default abstract class NymphDriver {
93
140
  result: any;
94
141
  process: () => number | Error;
95
142
  };
96
- protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
143
+ protected getEntitiesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
97
144
  return: 'guid';
98
- }, selectors: Selector[], performQueryCallback: (options: Options<T>, formattedSelectors: FormattedSelector[], etype: string) => {
145
+ }, selectors: Selector[], performQueryCallback: (data: {
146
+ options: Options<T>;
147
+ selectors: FormattedSelector[];
148
+ etype: string;
149
+ }) => {
99
150
  result: any;
100
151
  }, rowFetchCallback: () => any, freeResultCallback: () => void, getCountCallback: (row: any) => number, getGUIDCallback: (row: any) => string, getTagsAndDatesCallback: (row: any) => {
101
152
  tags: string[];
@@ -108,7 +159,11 @@ export default abstract class NymphDriver {
108
159
  result: any;
109
160
  process: () => string[] | Error;
110
161
  };
111
- protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T>, selectors: Selector[], performQueryCallback: (options: Options<T>, formattedSelectors: FormattedSelector[], etype: string) => {
162
+ protected getEntitiesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T>, selectors: Selector[], performQueryCallback: (data: {
163
+ options: Options<T>;
164
+ selectors: FormattedSelector[];
165
+ etype: string;
166
+ }) => {
112
167
  result: any;
113
168
  }, rowFetchCallback: () => any, freeResultCallback: () => void, getCountCallback: (row: any) => number, getGUIDCallback: (row: any) => string, getTagsAndDatesCallback: (row: any) => {
114
169
  tags: string[];
@@ -119,10 +174,46 @@ export default abstract class NymphDriver {
119
174
  svalue: string;
120
175
  }): {
121
176
  result: any;
122
- process: () => ReturnType<T['factorySync']>[] | Error;
177
+ process: () => EntityInstanceType<T>[] | Error;
123
178
  };
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;
179
+ protected saveEntityRowLike(entity: EntityInterface, saveNewEntityCallback: (data: {
180
+ entity: EntityInterface;
181
+ guid: string;
182
+ tags: string[];
183
+ data: EntityData;
184
+ sdata: SerializedEntityData;
185
+ uniques: string[];
186
+ cdate: number;
187
+ etype: string;
188
+ }) => Promise<boolean>, saveExistingEntityCallback: (data: {
189
+ entity: EntityInterface;
190
+ guid: string;
191
+ tags: string[];
192
+ data: EntityData;
193
+ sdata: SerializedEntityData;
194
+ uniques: string[];
195
+ mdate: number;
196
+ etype: string;
197
+ }) => Promise<boolean>, startTransactionCallback?: (() => Promise<void>) | null, commitTransactionCallback?: ((success: boolean) => Promise<boolean>) | null): Promise<boolean>;
198
+ /**
199
+ * Pull an entity from the cache.
200
+ *
201
+ * @param guid The entity's GUID.
202
+ * @param className The entity's class.
203
+ * @param useSkipAc Whether to tell the entity to use skip_ac.
204
+ * @returns The entity or null if it's not cached.
205
+ */
206
+ protected pullCache<T extends Entity>(guid: string, className: string, useSkipAc?: boolean): T | null;
207
+ /**
208
+ * Push an entity onto the cache.
209
+ *
210
+ * @param guid The entity's GUID.
211
+ * @param cdate The entity's cdate.
212
+ * @param mdate The entity's mdate.
213
+ * @param tags The entity's tags.
214
+ * @param data The entity's data.
215
+ * @param sdata The entity's sdata.
216
+ */
126
217
  protected pushCache(guid: string, cdate: number, mdate: number, tags: string[], data: EntityData, sdata: SerializedEntityData): void;
127
218
  protected findReferences(svalue: string): string[];
128
219
  }