hadron-document 7.11.0 → 8.0.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,8 +1,8 @@
1
1
  import type { Element } from './element';
2
- import { LinkedList } from './element';
2
+ import { ElementList } from './element';
3
3
  import EventEmitter from 'eventemitter3';
4
- import type { ObjectGeneratorOptions } from './object-generator';
5
- import type { BSONObject, BSONValue } from './utils';
4
+ import type { KeyInclusionOptions, ObjectGeneratorOptions } from './object-generator';
5
+ import type { BSONArray, BSONObject, BSONValue } from './utils';
6
6
  import type { HadronEJSONOptions } from './utils';
7
7
  export declare const Events: {
8
8
  Cancel: string;
@@ -12,7 +12,7 @@ export declare class Document extends EventEmitter {
12
12
  doc: BSONObject;
13
13
  cloned: boolean;
14
14
  isUpdatable: boolean;
15
- elements: LinkedList;
15
+ elements: ElementList;
16
16
  type: 'Document';
17
17
  currentType: 'Document';
18
18
  cancel(): void;
@@ -20,31 +20,27 @@ export declare class Document extends EventEmitter {
20
20
  apply(doc: BSONObject | Document): void;
21
21
  generateObject(options?: ObjectGeneratorOptions): BSONObject;
22
22
  generateOriginalObject(options?: ObjectGeneratorOptions): BSONObject;
23
- generateUpdateUnlessChangedInBackgroundQuery(alwaysIncludeKeys?: BSONObject | null): {
23
+ generateUpdateUnlessChangedInBackgroundQuery(opts?: Readonly<KeyInclusionOptions>): {
24
24
  query: BSONObject;
25
25
  updateDoc: {
26
26
  $set?: BSONObject;
27
27
  $unset?: BSONObject;
28
- };
28
+ } | BSONArray;
29
29
  };
30
30
  get(key: string): Element | undefined;
31
31
  getChild(path: (string | number)[]): Element | undefined;
32
32
  getId(): BSONValue;
33
- getOriginalKeysAndValuesForFieldsThatWereUpdated(alwaysIncludeKeys?: BSONObject | null): BSONObject;
34
- getOriginalKeysAndValuesForSpecifiedKeys(keys: BSONObject): BSONObject;
35
- getSetUpdateForDocumentChanges(): BSONObject;
33
+ getQueryForOriginalKeysAndValuesForSpecifiedKeys(opts?: Readonly<KeyInclusionOptions>): BSONObject;
36
34
  getStringId(): null | string;
37
- getUnsetUpdateForDocumentChanges(): BSONObject;
38
35
  insertPlaceholder(): Element;
39
36
  insertBeginning(key: string | number, value: BSONValue): Element;
40
37
  insertEnd(key: string | number, value: BSONValue): Element;
41
- insertAfter(element: Element, key: string | number, value: BSONValue): Element;
38
+ insertAfter(element: Element, key: string | number, value: BSONValue): Element | undefined;
42
39
  isAdded(): boolean;
43
40
  isModified(): boolean;
44
41
  isRemoved(): boolean;
45
42
  isRoot(): this is Document;
46
- next(): void;
47
- _generateElements(): LinkedList;
43
+ _generateElements(): ElementList;
48
44
  static get Events(): typeof Events;
49
45
  static FromEJSON(input: string): Document;
50
46
  static FromEJSONArray(input: string): Document[];
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,UAAU,EAA2B,MAAM,WAAW,CAAC;AAChE,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAKlD,eAAO,MAAM,MAAM;;CAElB,CAAC;AAUF,qBAAa,QAAS,SAAQ,YAAY;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,UAAU,CAAC;IAKxB,MAAM,IAAI,IAAI;gBAeF,GAAG,EAAE,UAAU,EAAE,MAAM,UAAQ;IAW3C,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI;IA6BvC,cAAc,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,UAAU;IAS5D,sBAAsB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,UAAU;IAepE,4CAA4C,CAC1C,iBAAiB,GAAE,UAAU,GAAG,IAAW,GAC1C;QACD,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE;YAAE,IAAI,CAAC,EAAE,UAAU,CAAC;YAAC,MAAM,CAAC,EAAE,UAAU,CAAA;SAAE,CAAC;KACvD;IAqCD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAWrC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,GAAG,SAAS;IAwBxD,KAAK,IAAI,SAAS;IAgBlB,gDAAgD,CAC9C,iBAAiB,GAAE,UAAU,GAAG,IAAW,GAC1C,UAAU;IAmCb,wCAAwC,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU;IAsBtE,8BAA8B,IAAI,UAAU;IA6B5C,WAAW,IAAI,IAAI,GAAG,MAAM;IAmB5B,gCAAgC,IAAI,UAAU;IAsB9C,iBAAiB,IAAI,OAAO;IAY5B,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO;IAchE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO;IAe1D,WAAW,CACT,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,KAAK,EAAE,SAAS,GACf,OAAO;IAiBV,OAAO,IAAI,OAAO;IASlB,UAAU,IAAI,OAAO;IAcrB,SAAS,IAAI,OAAO;IASpB,MAAM,IAAI,IAAI,IAAI,QAAQ;IAO1B,IAAI,IAAI,IAAI;IAmBZ,iBAAiB,IAAI,UAAU;IAO/B,MAAM,KAAK,MAAM,IAAI,OAAO,MAAM,CAEjC;IAKD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAWzC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE;IAUhD,OAAO,CACL,MAAM,GAAE,UAAU,GAAG,SAAqB,EAC1C,OAAO,GAAE,kBAAuB,GAC/B,MAAM;CAOV;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAA2B,MAAM,WAAW,CAAC;AACjE,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAKlD,eAAO,MAAM,MAAM;;CAElB,CAAC;AAUF,qBAAa,QAAS,SAAQ,YAAY;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,UAAU,CAAC;IAKxB,MAAM,IAAI,IAAI;gBAeF,GAAG,EAAE,UAAU,EAAE,MAAM,UAAQ;IAW3C,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI;IA6BvC,cAAc,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,UAAU;IAS5D,sBAAsB,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,UAAU;IAoBpE,4CAA4C,CAC1C,IAAI,GAAE,QAAQ,CAAC,mBAAmB,CAAM,GACvC;QACD,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE;YAAE,IAAI,CAAC,EAAE,UAAU,CAAC;YAAC,MAAM,CAAC,EAAE,UAAU,CAAA;SAAE,GAAG,SAAS,CAAC;KACnE;IA+BD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAWrC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,GAAG,SAAS;IAwBxD,KAAK,IAAI,SAAS;IAgBlB,gDAAgD,CAC9C,IAAI,GAAE,QAAQ,CAAC,mBAAmB,CAAM,GACvC,UAAU;IAab,WAAW,IAAI,IAAI,GAAG,MAAM;IAkB5B,iBAAiB,IAAI,OAAO;IAY5B,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO;IAchE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO;IAe1D,WAAW,CACT,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,KAAK,EAAE,SAAS,GACf,OAAO,GAAG,SAAS;IAWtB,OAAO,IAAI,OAAO;IASlB,UAAU,IAAI,OAAO;IAcrB,SAAS,IAAI,OAAO;IASpB,MAAM,IAAI,IAAI,IAAI,QAAQ;IAS1B,iBAAiB,IAAI,WAAW;IAOhC,MAAM,KAAK,MAAM,IAAI,OAAO,MAAM,CAEjC;IAKD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAWzC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE;IAUhD,OAAO,CACL,MAAM,GAAE,UAAU,GAAG,SAAqB,EAC1C,OAAO,GAAE,kBAAuB,GAC/B,MAAM;CAOV;AAED,eAAe,QAAQ,CAAC"}
package/dist/document.js CHANGED
@@ -20,9 +20,9 @@ class Document extends eventemitter3_1.default {
20
20
  this.doc = doc;
21
21
  this.cloned = cloned || false;
22
22
  this.isUpdatable = true;
23
- this.elements = this._generateElements();
24
23
  this.type = 'Document';
25
24
  this.currentType = 'Document';
25
+ this.elements = this._generateElements();
26
26
  }
27
27
  cancel() {
28
28
  for (const element of Array.from(this.elements)) {
@@ -61,21 +61,13 @@ class Document extends eventemitter3_1.default {
61
61
  generateOriginalObject(options) {
62
62
  return object_generator_1.default.generateOriginal(this.elements, options);
63
63
  }
64
- generateUpdateUnlessChangedInBackgroundQuery(alwaysIncludeKeys = null) {
65
- const originalFieldsThatWillBeUpdated = this.getOriginalKeysAndValuesForFieldsThatWereUpdated(alwaysIncludeKeys);
64
+ generateUpdateUnlessChangedInBackgroundQuery(opts = {}) {
65
+ const originalFieldsThatWillBeUpdated = object_generator_1.default.getQueryForOriginalKeysAndValuesForSpecifiedFields(this, opts, true);
66
66
  const query = {
67
67
  _id: this.getId(),
68
68
  ...originalFieldsThatWillBeUpdated,
69
69
  };
70
- const setUpdateObject = this.getSetUpdateForDocumentChanges();
71
- const unsetUpdateObject = this.getUnsetUpdateForDocumentChanges();
72
- const updateDoc = {};
73
- if (setUpdateObject && Object.keys(setUpdateObject).length > 0) {
74
- updateDoc.$set = setUpdateObject;
75
- }
76
- if (unsetUpdateObject && Object.keys(unsetUpdateObject).length > 0) {
77
- updateDoc.$unset = unsetUpdateObject;
78
- }
70
+ const updateDoc = object_generator_1.default.generateUpdateDoc(this);
79
71
  return {
80
72
  query,
81
73
  updateDoc,
@@ -106,44 +98,8 @@ class Document extends eventemitter3_1.default {
106
98
  const element = this.get(ID);
107
99
  return element ? element.generateObject() : null;
108
100
  }
109
- getOriginalKeysAndValuesForFieldsThatWereUpdated(alwaysIncludeKeys = null) {
110
- const object = {};
111
- if (this.elements) {
112
- for (const element of this.elements) {
113
- if ((element.isModified() && !element.isAdded()) ||
114
- (alwaysIncludeKeys && element.key in alwaysIncludeKeys)) {
115
- object[element.key] = element.generateOriginalObject();
116
- }
117
- if (element.isAdded() && element.currentKey !== '') {
118
- object[element.currentKey] = { $exists: false };
119
- }
120
- }
121
- }
122
- return object;
123
- }
124
- getOriginalKeysAndValuesForSpecifiedKeys(keys) {
125
- const object = {};
126
- if (this.elements) {
127
- for (const element of this.elements) {
128
- if (element.key in keys) {
129
- object[element.key] = element.generateOriginalObject();
130
- }
131
- }
132
- }
133
- return object;
134
- }
135
- getSetUpdateForDocumentChanges() {
136
- const object = {};
137
- if (this.elements) {
138
- for (const element of this.elements) {
139
- if (!element.isRemoved() &&
140
- element.currentKey !== '' &&
141
- element.isModified()) {
142
- object[element.currentKey] = element.generateObject();
143
- }
144
- }
145
- }
146
- return object;
101
+ getQueryForOriginalKeysAndValuesForSpecifiedKeys(opts = {}) {
102
+ return object_generator_1.default.getQueryForOriginalKeysAndValuesForSpecifiedFields(this, opts, false);
147
103
  }
148
104
  getStringId() {
149
105
  const element = this.get(ID);
@@ -156,36 +112,22 @@ class Document extends eventemitter3_1.default {
156
112
  }
157
113
  return String(element.value);
158
114
  }
159
- getUnsetUpdateForDocumentChanges() {
160
- const object = {};
161
- if (this.elements) {
162
- for (const element of this.elements) {
163
- if (!element.isAdded() && element.isRemoved() && element.key !== '') {
164
- object[element.key] = true;
165
- }
166
- if (!element.isAdded() && element.isRenamed() && element.key !== '') {
167
- object[element.key] = true;
168
- }
169
- }
170
- }
171
- return object;
172
- }
173
115
  insertPlaceholder() {
174
116
  return this.insertEnd('', '');
175
117
  }
176
118
  insertBeginning(key, value) {
177
- const newElement = this.elements.insertBeginning(key, value, true, this);
119
+ const newElement = this.elements.insertBeginning(key, value);
178
120
  newElement._bubbleUp(element_1.Events.Added, newElement, this);
179
121
  return newElement;
180
122
  }
181
123
  insertEnd(key, value) {
182
- const newElement = this.elements.insertEnd(key, value, true, this);
124
+ const newElement = this.elements.insertEnd(key, value);
183
125
  newElement._bubbleUp(element_1.Events.Added, newElement, this);
184
126
  return newElement;
185
127
  }
186
128
  insertAfter(element, key, value) {
187
- const newElement = this.elements.insertAfter(element, key, value, true, this);
188
- newElement._bubbleUp(element_1.Events.Added, newElement, this);
129
+ const newElement = this.elements.insertAfter(element, key, value);
130
+ newElement === null || newElement === void 0 ? void 0 : newElement._bubbleUp(element_1.Events.Added, newElement, this);
189
131
  return newElement;
190
132
  }
191
133
  isAdded() {
@@ -205,23 +147,8 @@ class Document extends eventemitter3_1.default {
205
147
  isRoot() {
206
148
  return true;
207
149
  }
208
- next() {
209
- this.elements.flush();
210
- const lastElement = this.elements.lastElement;
211
- if (lastElement && lastElement.isAdded()) {
212
- if (lastElement.isBlank()) {
213
- lastElement.remove();
214
- }
215
- else {
216
- this.insertPlaceholder();
217
- }
218
- }
219
- else {
220
- this.insertPlaceholder();
221
- }
222
- }
223
150
  _generateElements() {
224
- return new element_1.LinkedList(this, this.doc);
151
+ return new element_1.ElementList(this, this.doc);
225
152
  }
226
153
  static get Events() {
227
154
  return exports.Events;
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
package/dist/element.d.ts CHANGED
@@ -16,27 +16,25 @@ export declare class Element extends EventEmitter {
16
16
  currentValue: BSONValue;
17
17
  added: boolean;
18
18
  removed: boolean;
19
- elements?: LinkedList | null;
19
+ elements?: ElementList;
20
20
  originalExpandableValue?: BSONObject | BSONArray;
21
21
  parent: Element | Document | null;
22
- previousElement: Element | null;
23
- nextElement: Element | null;
24
22
  type: TypeCastTypes;
25
23
  currentType: TypeCastTypes;
26
24
  level: number;
27
25
  currentTypeValid?: boolean;
28
26
  invalidTypeMessage?: string;
29
27
  decrypted: boolean;
30
- bulkEdit(value: string): void;
31
28
  cancel(): void;
32
- constructor(key: string | number, value: BSONValue, added?: boolean, parent?: Element | Document | null, previousElement?: Element | null, nextElement?: Element | null);
29
+ constructor(key: string | number, value: BSONValue | number, parent?: Element | Document | null, added?: boolean);
30
+ get nextElement(): Element | undefined;
31
+ get previousElement(): Element | undefined;
33
32
  _getLevel(): number;
34
33
  edit(value: BSONValue): void;
35
34
  changeType(newType: TypeCastTypes): void;
36
35
  getRoot(): Document;
37
36
  get(key: string | number): Element | undefined;
38
37
  at(i: number): Element | undefined;
39
- next(): void;
40
38
  rename(key: string | number): void;
41
39
  generateObject(options?: ObjectGeneratorOptions): BSONValue;
42
40
  generateOriginalObject(options?: ObjectGeneratorOptions): BSONValue;
@@ -55,6 +53,7 @@ export declare class Element extends EventEmitter {
55
53
  _isObjectIdEqual(): boolean;
56
54
  isLast(): boolean;
57
55
  isRenamed(): boolean;
56
+ hasChangedKey(): boolean;
58
57
  isRevertable(): boolean;
59
58
  isRemovable(): boolean;
60
59
  isNotActionable(): boolean;
@@ -67,49 +66,37 @@ export declare class Element extends EventEmitter {
67
66
  isInternalField(): boolean;
68
67
  isModified(): boolean;
69
68
  isRemoved(): boolean;
69
+ hasAnyRemovedChild(): boolean;
70
70
  isRoot(): false;
71
71
  remove(): void;
72
72
  revert(): void;
73
73
  _bubbleUp(evt: typeof Events[keyof typeof Events], ...data: BSONArray): void;
74
74
  _convertToEmptyObject(): void;
75
75
  _convertToEmptyArray(): void;
76
- _isElementEmpty(this: unknown, element: Element | undefined | null): boolean;
77
- _isExpandable(this: unknown, value: BSONValue): value is BSONObject | BSONArray;
78
- _generateElements(object: BSONObject | BSONArray): LinkedList;
79
- _key(key: string, index: number): string | number;
80
- _next(): void;
76
+ _isElementEmpty(element: Element | undefined | null): boolean;
77
+ _isExpandable(value: BSONValue): value is BSONObject | BSONArray;
78
+ _generateElements(object: BSONObject | BSONArray): ElementList;
81
79
  _removeAddedElements(): void;
82
80
  static get Events(): typeof ElementEvents;
83
81
  }
84
- export declare class LinkedList {
85
- firstElement: Element | null;
86
- lastElement: Element | null;
87
- doc: Element | Document;
88
- originalDoc: BSONObject | BSONArray;
89
- keys: string[] | number[];
90
- size: number;
91
- loaded: number;
92
- _map: Record<string, Element>;
82
+ export declare class ElementList implements Iterable<Element> {
83
+ private parent;
84
+ private elements;
85
+ constructor(parent: Document | Element, originalDoc: BSONObject | BSONArray | null | undefined);
86
+ private isArray;
87
+ get size(): number;
93
88
  at(index: number): Element | undefined;
94
89
  get(key: string | number): Element | undefined;
95
- constructor(doc: Document | Element, originalDoc: BSONObject | BSONArray);
96
- insertAfter(element: Element, key: string | number, value: BSONValue, added: boolean, parent: Element | Document): Element;
97
- updateKeys(element: Element, add: number): void;
98
- handleEmptyKeys(element: Element): void;
99
- insertBefore(element: Element, key: string | number, value: BSONValue, added: boolean, parent: Document | Element): Element;
100
- insertBeginning(key: string | number, value: BSONValue, added: boolean, parent: Document | Element): Element;
101
- insertEnd(key: string | number, value: BSONValue, added: boolean, parent: Document | Element): Element;
102
- flush(): void;
90
+ get firstElement(): Element | undefined;
91
+ get lastElement(): Element | undefined;
92
+ insertAfter(afterElement: Element, key: string | number, value: BSONValue, added?: boolean): Element | undefined;
93
+ insertBefore(beforeElement: Element, key: string | number, value: BSONValue, added?: boolean): Element | undefined;
94
+ insertBeginning(key: string | number, value: BSONValue, added?: boolean): Element;
95
+ insertEnd(key: string | number, value: BSONValue, added?: boolean): Element;
96
+ remove(removeElement: Element): this;
97
+ findNext(el: Element): Element | undefined;
98
+ findPrevious(el: Element): Element | undefined;
103
99
  [Symbol.iterator](): Iterator<Element>;
104
- _needsLazyLoad(index: number): boolean;
105
- _needsStandardIteration(index: number): boolean;
106
- _lazyInsertEnd(key: string | number): Element;
107
- _insertEnd(key: string | number, value: BSONValue, added: boolean, parent: Document | Element): Element;
108
- _insertBefore(element: Element, key: string | number, value: BSONValue, added: boolean, parent: Document | Element): Element;
109
- _insertBeginning(key: string | number, value: BSONValue, added: boolean, parent: Document | Element): Element;
110
- _insertAfter(element: Element, key: string | number, value: BSONValue, added: boolean, parent: Document | Element): Element;
111
- remove(element: Element): this;
112
- findIndex(el: Element): number;
113
100
  }
114
101
  export default Element;
115
102
  //# sourceMappingURL=element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}