@jupiterone/integration-sdk-runtime 10.0.0 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,12 @@
1
1
  import { AxiosInstance } from 'axios';
2
+ import { AlphaOptions } from '@lifeomic/alpha';
2
3
  export type ApiClient = AxiosInstance;
3
4
  interface CreateApiClientInput {
4
5
  apiBaseUrl: string;
5
6
  account: string;
6
7
  accessToken?: string;
7
8
  retryOptions?: RetryOptions;
9
+ alphaOptions?: AlphaOptions;
8
10
  }
9
11
  interface RetryOptions {
10
12
  attempts?: number;
@@ -21,7 +23,7 @@ interface RetryOptions {
21
23
  * In managed environments, this can be configured to
22
24
  * hit public and private JupiterOne APIs.
23
25
  */
24
- export declare function createApiClient({ apiBaseUrl, account, accessToken, retryOptions, }: CreateApiClientInput): ApiClient;
26
+ export declare function createApiClient({ apiBaseUrl, account, accessToken, retryOptions, alphaOptions, }: CreateApiClientInput): ApiClient;
25
27
  interface GetApiBaseUrlInput {
26
28
  dev: boolean;
27
29
  }
@@ -5,11 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getAccountFromEnvironment = exports.getApiKeyFromEnvironment = exports.getApiBaseUrl = exports.JUPITERONE_DEV_API_BASE_URL = exports.JUPITERONE_PROD_API_BASE_URL = exports.createApiClient = void 0;
7
7
  const alpha_1 = require("@lifeomic/alpha");
8
- const url_1 = require("@lifeomic/alpha/src/utils/url");
9
8
  const dotenv_1 = __importDefault(require("dotenv"));
10
9
  const dotenv_expand_1 = __importDefault(require("dotenv-expand"));
11
10
  const error_1 = require("./error");
12
- const credential_provider_node_1 = require("@aws-sdk/credential-provider-node");
13
11
  /**
14
12
  * Configures an api client for hitting JupiterOne APIs.
15
13
  *
@@ -19,7 +17,7 @@ const credential_provider_node_1 = require("@aws-sdk/credential-provider-node");
19
17
  * In managed environments, this can be configured to
20
18
  * hit public and private JupiterOne APIs.
21
19
  */
22
- function createApiClient({ apiBaseUrl, account, accessToken, retryOptions, }) {
20
+ function createApiClient({ apiBaseUrl, account, accessToken, retryOptions, alphaOptions, }) {
23
21
  const headers = {
24
22
  'LifeOmic-Account': account,
25
23
  'Content-Type': 'application/json',
@@ -31,10 +29,8 @@ function createApiClient({ apiBaseUrl, account, accessToken, retryOptions, }) {
31
29
  baseURL: apiBaseUrl,
32
30
  headers,
33
31
  retry: retryOptions ?? {},
32
+ ...alphaOptions,
34
33
  };
35
- if ((0, url_1.isLambdaUrl)(apiBaseUrl)) {
36
- opts.signAwsV4 = { credentials: (0, credential_provider_node_1.defaultProvider)({ maxRetries: 3 }) };
37
- }
38
34
  return new alpha_1.Alpha(opts);
39
35
  }
40
36
  exports.createApiClient = createApiClient;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":";;;;;;AACA,2CAAsD;AACtD,uDAA4D;AAE5D,oDAA4B;AAC5B,kEAAyC;AAEzC,mCAGiB;AACjB,gFAAoE;AAkBpE;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,GACS;IACrB,MAAM,OAAO,GAA2B;QACtC,kBAAkB,EAAE,OAAO;QAC3B,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,OAAO,CAAC,aAAa,GAAG,UAAU,WAAW,EAAE,CAAC;KACjD;IAED,MAAM,IAAI,GAAiB;QACzB,OAAO,EAAE,UAAU;QACnB,OAAO;QACP,KAAK,EAAE,YAAY,IAAI,EAAE;KAC1B,CAAC;IAEF,IAAI,IAAA,iBAAW,EAAC,UAAU,CAAC,EAAE;QAC3B,IAAI,CAAC,SAAS,GAAG,EAAE,WAAW,EAAE,IAAA,0CAAe,EAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACtE;IAED,OAAO,IAAI,aAAK,CAAC,IAAI,CAAc,CAAC;AACtC,CAAC;AA1BD,0CA0BC;AAMY,QAAA,4BAA4B,GAAG,8BAA8B,CAAC;AAC9D,QAAA,2BAA2B,GAAG,+BAA+B,CAAC;AAE3E,SAAgB,aAAa,CAAC,EAAE,GAAG,KAAyB,EAAE,GAAG,EAAE,KAAK,EAAE;IACxE,IAAI,GAAG,EAAE;QACP,OAAO,mCAA2B,CAAC;KACpC;SAAM;QACL,OAAO,oCAA4B,CAAC;KACrC;AACH,CAAC;AAND,sCAMC;AAED,SAAS,UAAU,CACjB,YAAoB,EACpB,YAAwC;IAExC,IAAA,uBAAY,EAAC,gBAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,YAAY,EAAE,CAAC;KAC1B;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,MAAM,wBAAwB,GAAG,GAAG,EAAE,CAC3C,UAAU,CAAC,oBAAoB,EAAE,sCAA8B,CAAC,CAAC;AADtD,QAAA,wBAAwB,4BAC8B;AAE5D,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAC5C,UAAU,CAAC,oBAAoB,EAAE,uCAA+B,CAAC,CAAC;AADvD,QAAA,yBAAyB,6BAC8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":";;;;;;AACA,2CAAsD;AAEtD,oDAA4B;AAC5B,kEAAyC;AAEzC,mCAGiB;AAmBjB;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,GACS;IACrB,MAAM,OAAO,GAA2B;QACtC,kBAAkB,EAAE,OAAO;QAC3B,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,OAAO,CAAC,aAAa,GAAG,UAAU,WAAW,EAAE,CAAC;KACjD;IAED,MAAM,IAAI,GAAiB;QACzB,OAAO,EAAE,UAAU;QACnB,OAAO;QACP,KAAK,EAAE,YAAY,IAAI,EAAE;QACzB,GAAG,YAAY;KAChB,CAAC;IAEF,OAAO,IAAI,aAAK,CAAC,IAAI,CAAc,CAAC;AACtC,CAAC;AAxBD,0CAwBC;AAMY,QAAA,4BAA4B,GAAG,8BAA8B,CAAC;AAC9D,QAAA,2BAA2B,GAAG,+BAA+B,CAAC;AAE3E,SAAgB,aAAa,CAAC,EAAE,GAAG,KAAyB,EAAE,GAAG,EAAE,KAAK,EAAE;IACxE,IAAI,GAAG,EAAE;QACP,OAAO,mCAA2B,CAAC;KACpC;SAAM;QACL,OAAO,oCAA4B,CAAC;KACrC;AACH,CAAC;AAND,sCAMC;AAED,SAAS,UAAU,CACjB,YAAoB,EACpB,YAAwC;IAExC,IAAA,uBAAY,EAAC,gBAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,YAAY,EAAE,CAAC;KAC1B;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,MAAM,wBAAwB,GAAG,GAAG,EAAE,CAC3C,UAAU,CAAC,oBAAoB,EAAE,sCAA8B,CAAC,CAAC;AADtD,QAAA,wBAAwB,4BAC8B;AAE5D,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAC5C,UAAU,CAAC,oBAAoB,EAAE,uCAA+B,CAAC,CAAC;AADvD,QAAA,yBAAyB,6BAC8B"}
@@ -1,14 +1,21 @@
1
1
  import { Entity, GraphObjectFilter, GraphObjectIteratee, Relationship, GraphObjectStore, GraphObjectIndexMetadata, GetIndexMetadataForGraphObjectTypeParams, IntegrationStep } from '@jupiterone/integration-sdk-core';
2
- export declare const DEFAULT_GRAPH_OBJECT_BUFFER_THRESHOLD = 500;
3
2
  export declare const DEFAULT_GRAPH_OBJECT_FILE_SIZE = 500;
3
+ export declare const DEFAULT_GRAPH_OBJECT_BUFFER_THRESHOLD_IN_BYTES = 5000000;
4
+ export declare const MAX_GRAPH_OBJECT_BUFFER_THRESHOLD_IN_BYTES = 1000000000;
4
5
  export interface FileSystemGraphObjectStoreParams {
5
6
  integrationSteps?: IntegrationStep[];
7
+ /**
8
+ * The maximum size in bytes of entities/relationships stored in memory at one time.
9
+ * default: 25_000_000
10
+ */
11
+ graphObjectBufferThresholdInBytes?: number;
6
12
  /**
7
13
  * The maximum number of graph objects that this store can buffer in memory
8
14
  * before writing to disk. Machines with more memory should consider bumping
9
15
  * this value up.
10
16
  *
11
17
  * Default: 500
18
+ * @deprecated this argument is no longer used. Please use `graphObjectBufferThresholdInBytes` instead.
12
19
  */
13
20
  graphObjectBufferThreshold?: number;
14
21
  /**
@@ -23,8 +30,8 @@ export interface FileSystemGraphObjectStoreParams {
23
30
  export declare class FileSystemGraphObjectStore implements GraphObjectStore {
24
31
  private readonly semaphore;
25
32
  private readonly localGraphObjectStore;
26
- private readonly graphObjectBufferThreshold;
27
33
  private readonly graphObjectFileSize;
34
+ private readonly graphObjectBufferThresholdInBytes;
28
35
  private readonly prettifyFiles;
29
36
  private readonly stepIdToGraphObjectIndexMetadataMap;
30
37
  private readonly entityOnDiskLocationMap;
@@ -3,17 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FileSystemGraphObjectStore = exports.DEFAULT_GRAPH_OBJECT_FILE_SIZE = exports.DEFAULT_GRAPH_OBJECT_BUFFER_THRESHOLD = void 0;
6
+ exports.FileSystemGraphObjectStore = exports.MAX_GRAPH_OBJECT_BUFFER_THRESHOLD_IN_BYTES = exports.DEFAULT_GRAPH_OBJECT_BUFFER_THRESHOLD_IN_BYTES = exports.DEFAULT_GRAPH_OBJECT_FILE_SIZE = void 0;
7
7
  const async_sema_1 = require("async-sema");
8
8
  const p_map_1 = __importDefault(require("p-map"));
9
9
  const flushDataToDisk_1 = require("./flushDataToDisk");
10
10
  const indices_1 = require("./indices");
11
- const memory_1 = require("../memory");
12
11
  const fileSystem_1 = require("../../fileSystem");
13
12
  const bigMap_1 = require("../../execution/utils/bigMap");
14
13
  const lodash_1 = require("lodash");
15
- exports.DEFAULT_GRAPH_OBJECT_BUFFER_THRESHOLD = 500;
14
+ const memory_1 = require("../memory");
16
15
  exports.DEFAULT_GRAPH_OBJECT_FILE_SIZE = 500;
16
+ exports.DEFAULT_GRAPH_OBJECT_BUFFER_THRESHOLD_IN_BYTES = 5000000;
17
+ // no more than 10^9 bytes
18
+ exports.MAX_GRAPH_OBJECT_BUFFER_THRESHOLD_IN_BYTES = 1000000000;
17
19
  // it is important that this value is set to 1
18
20
  // to ensure that only one operation can be performed at a time.
19
21
  const BINARY_SEMAPHORE_CONCURRENCY = 1;
@@ -47,11 +49,13 @@ class FileSystemGraphObjectStore {
47
49
  this.localGraphObjectStore = new memory_1.InMemoryGraphObjectStore();
48
50
  this.entityOnDiskLocationMap = new bigMap_1.BigMap(ENTITY_LOCATION_ON_DISK_DEFAULT_MAP_KEY_SPACE);
49
51
  this.semaphore = new async_sema_1.Sema(BINARY_SEMAPHORE_CONCURRENCY);
50
- this.graphObjectBufferThreshold =
51
- params?.graphObjectBufferThreshold ||
52
- exports.DEFAULT_GRAPH_OBJECT_BUFFER_THRESHOLD;
53
52
  this.graphObjectFileSize =
54
53
  params?.graphObjectFileSize || exports.DEFAULT_GRAPH_OBJECT_FILE_SIZE;
54
+ this.graphObjectBufferThresholdInBytes = (0, lodash_1.min)([
55
+ params?.graphObjectBufferThresholdInBytes ||
56
+ exports.DEFAULT_GRAPH_OBJECT_BUFFER_THRESHOLD_IN_BYTES,
57
+ exports.MAX_GRAPH_OBJECT_BUFFER_THRESHOLD_IN_BYTES,
58
+ ]);
55
59
  this.prettifyFiles = params?.prettifyFiles || false;
56
60
  if (params?.integrationSteps) {
57
61
  this.stepIdToGraphObjectIndexMetadataMap =
@@ -60,15 +64,15 @@ class FileSystemGraphObjectStore {
60
64
  }
61
65
  async addEntities(stepId, newEntities, onEntitiesFlushed) {
62
66
  await this.localGraphObjectStore.addEntities(stepId, newEntities);
63
- if (this.localGraphObjectStore.getTotalEntityItemCount() >=
64
- this.graphObjectBufferThreshold) {
67
+ if (this.localGraphObjectStore.getTotalEntitySizeInBytes() >=
68
+ this.graphObjectBufferThresholdInBytes) {
65
69
  await this.flushEntitiesToDisk(onEntitiesFlushed);
66
70
  }
67
71
  }
68
72
  async addRelationships(stepId, newRelationships, onRelationshipsFlushed) {
69
73
  await this.localGraphObjectStore.addRelationships(stepId, newRelationships);
70
- if (this.localGraphObjectStore.getTotalRelationshipItemCount() >=
71
- this.graphObjectBufferThreshold) {
74
+ if (this.localGraphObjectStore.getTotalRelationshipSizeInBytes() >=
75
+ this.graphObjectBufferThresholdInBytes) {
72
76
  await this.flushRelationshipsToDisk(onRelationshipsFlushed);
73
77
  }
74
78
  }
@@ -144,7 +148,7 @@ class FileSystemGraphObjectStore {
144
148
  }
145
149
  }));
146
150
  }
147
- this.localGraphObjectStore.flushEntities(entities);
151
+ this.localGraphObjectStore.flushEntities(entities, stepId);
148
152
  if (onEntitiesFlushed) {
149
153
  await onEntitiesFlushed(entities);
150
154
  }
@@ -173,7 +177,7 @@ class FileSystemGraphObjectStore {
173
177
  });
174
178
  }));
175
179
  }
176
- this.localGraphObjectStore.flushRelationships(relationships);
180
+ this.localGraphObjectStore.flushRelationships(relationships, stepId);
177
181
  if (onRelationshipsFlushed) {
178
182
  await onRelationshipsFlushed(relationships);
179
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileSystemGraphObjectStore.js","sourceRoot":"","sources":["../../../../src/storage/FileSystemGraphObjectStore/FileSystemGraphObjectStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileSystemGraphObjectStore.js","sourceRoot":"","sources":["../../../../src/storage/FileSystemGraphObjectStore/FileSystemGraphObjectStore.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,12 @@ export interface GraphObjectMetadata {
7
7
  * memory before flushing to another datastore (e.g. disk).
8
8
  */
9
9
  export declare class InMemoryGraphObjectStore implements GraphObjectStore {
10
+ /**
11
+ * Store the size in bytes for entities and relationships generated by each step.
12
+ *
13
+ */
14
+ private entitySizeInBytes;
15
+ private relationshipSizeInBytes;
10
16
  /**
11
17
  * Maps to lookup entity/relationship with metadata by _key
12
18
  *
@@ -50,20 +56,26 @@ export declare class InMemoryGraphObjectStore implements GraphObjectStore {
50
56
  * steps have no interdependence. If we cleared it out, it's possible that
51
57
  * two steps could be running in parallel and one of the steps may clear out
52
58
  * the maps while the other is still relying on it.
59
+ * @remarks This should only be used to remove *ALL* the entities from a single step from the store
60
+ * @see {@link https://github.com/JupiterOne/sdk/pull/944#discussion_r1303284408}
53
61
  */
54
- flushEntities(entities: Entity[]): void;
62
+ flushEntities(entities: Entity[], stepId: string): void;
55
63
  /**
56
64
  * Instead of clearing the entire map, we want to delete old data individually.
57
65
  * This will allow us to eventually run steps in parallel without locking when
58
66
  * steps have no interdependence. If we cleared it out, it's possible that
59
67
  * two steps could be running in parallel and one of the steps may clear out
60
68
  * the maps while the other is still relying on it.
69
+ * @remarks This should only be used to remove *ALL* the relationships from a single step from the store
70
+ * @see {@link https://github.com/JupiterOne/sdk/pull/944#discussion_r1303284408}
61
71
  */
62
- flushRelationships(relationships: Relationship[]): void;
72
+ flushRelationships(relationships: Relationship[], stepId: string): void;
63
73
  collectEntities(): Entity[];
64
74
  collectRelationships(): Relationship[];
65
75
  collectEntitiesByStep(): Map<string, Entity[]>;
66
76
  collectRelationshipsByStep(): Map<string, Relationship[]>;
67
77
  getTotalEntityItemCount(): number;
68
78
  getTotalRelationshipItemCount(): number;
79
+ getTotalEntitySizeInBytes(): number;
80
+ getTotalRelationshipSizeInBytes(): number;
69
81
  }
@@ -2,12 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InMemoryGraphObjectStore = void 0;
4
4
  const integration_sdk_core_1 = require("@jupiterone/integration-sdk-core");
5
+ const batchBySize_1 = require("../synchronization/batchBySize");
5
6
  /**
6
7
  * Stores entities and relationships in memory and may be used to buffer data in
7
8
  * memory before flushing to another datastore (e.g. disk).
8
9
  */
9
10
  class InMemoryGraphObjectStore {
10
11
  constructor() {
12
+ /**
13
+ * Store the size in bytes for entities and relationships generated by each step.
14
+ *
15
+ */
16
+ this.entitySizeInBytes = {};
17
+ this.relationshipSizeInBytes = {};
11
18
  /**
12
19
  * Maps to lookup entity/relationship with metadata by _key
13
20
  *
@@ -51,6 +58,9 @@ class InMemoryGraphObjectStore {
51
58
  this.entityTypeToKeysMap.set(entity._type, new Map([[entity._key, true]]));
52
59
  }
53
60
  }
61
+ this.entitySizeInBytes[stepId] = this.entitySizeInBytes[stepId]
62
+ ? this.entitySizeInBytes[stepId] + (0, batchBySize_1.getSizeOfObject)(newEntities)
63
+ : (0, batchBySize_1.getSizeOfObject)(newEntities);
54
64
  return Promise.resolve();
55
65
  }
56
66
  addRelationships(stepId, newRelationships) {
@@ -67,6 +77,9 @@ class InMemoryGraphObjectStore {
67
77
  this.relationshipTypeToKeysMap.set(relationship._type, new Map([[relationship._key, true]]));
68
78
  }
69
79
  }
80
+ this.relationshipSizeInBytes[stepId] = this.relationshipSizeInBytes[stepId]
81
+ ? this.relationshipSizeInBytes[stepId] + (0, batchBySize_1.getSizeOfObject)(newRelationships)
82
+ : (0, batchBySize_1.getSizeOfObject)(newRelationships);
70
83
  return Promise.resolve();
71
84
  }
72
85
  findEntity(_key) {
@@ -120,8 +133,10 @@ class InMemoryGraphObjectStore {
120
133
  * steps have no interdependence. If we cleared it out, it's possible that
121
134
  * two steps could be running in parallel and one of the steps may clear out
122
135
  * the maps while the other is still relying on it.
136
+ * @remarks This should only be used to remove *ALL* the entities from a single step from the store
137
+ * @see {@link https://github.com/JupiterOne/sdk/pull/944#discussion_r1303284408}
123
138
  */
124
- flushEntities(entities) {
139
+ flushEntities(entities, stepId) {
125
140
  for (const entity of entities) {
126
141
  this.entityKeyToEntityMap.delete(entity._key);
127
142
  const entityTypeKeysMap = this.entityTypeToKeysMap.get(entity._type);
@@ -132,6 +147,7 @@ class InMemoryGraphObjectStore {
132
147
  }
133
148
  entityTypeKeysMap.delete(entity._key);
134
149
  }
150
+ delete this.entitySizeInBytes[stepId];
135
151
  }
136
152
  /**
137
153
  * Instead of clearing the entire map, we want to delete old data individually.
@@ -139,8 +155,10 @@ class InMemoryGraphObjectStore {
139
155
  * steps have no interdependence. If we cleared it out, it's possible that
140
156
  * two steps could be running in parallel and one of the steps may clear out
141
157
  * the maps while the other is still relying on it.
158
+ * @remarks This should only be used to remove *ALL* the relationships from a single step from the store
159
+ * @see {@link https://github.com/JupiterOne/sdk/pull/944#discussion_r1303284408}
142
160
  */
143
- flushRelationships(relationships) {
161
+ flushRelationships(relationships, stepId) {
144
162
  for (const relationship of relationships) {
145
163
  this.relationshipKeyToRelationshipMap.delete(relationship._key);
146
164
  const relationshipTypeKeysMap = this.relationshipTypeToKeysMap.get(relationship._type);
@@ -151,6 +169,7 @@ class InMemoryGraphObjectStore {
151
169
  }
152
170
  relationshipTypeKeysMap.delete(relationship._key);
153
171
  }
172
+ delete this.relationshipSizeInBytes[stepId];
154
173
  }
155
174
  collectEntities() {
156
175
  const entities = [];
@@ -202,6 +221,12 @@ class InMemoryGraphObjectStore {
202
221
  getTotalRelationshipItemCount() {
203
222
  return this.relationshipKeyToRelationshipMap.size;
204
223
  }
224
+ getTotalEntitySizeInBytes() {
225
+ return Object.values(this.entitySizeInBytes).reduce((partialSum, stepBytes) => partialSum + stepBytes, 0);
226
+ }
227
+ getTotalRelationshipSizeInBytes() {
228
+ return Object.values(this.relationshipSizeInBytes).reduce((partialSum, stepBytes) => partialSum + stepBytes, 0);
229
+ }
205
230
  }
206
231
  exports.InMemoryGraphObjectStore = InMemoryGraphObjectStore;
207
232
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"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"}