@mlightcad/data-model 1.15.25 → 1.15.26

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.
@@ -6,9 +6,25 @@ import { AcDbChangeContainer, AcDbDatabaseChange } from './AcDbDatabaseChange.js
6
6
  *
7
7
  * Append/remove pairs that cancel within the same transaction are coalesced,
8
8
  * and duplicate modify/sysvar entries for the same target are ignored.
9
+ *
10
+ * Lookups go through indexes rather than scanning {@link getChanges}, so
11
+ * recording stays linear for transactions with hundreds of thousands of
12
+ * changes (for example a large file import).
9
13
  */
10
14
  export declare class AcDbChangeRecorder {
11
15
  private readonly changes;
16
+ /** First modify entry per object ID. */
17
+ private readonly modifyById;
18
+ /** First sysvar entry per normalized variable name. */
19
+ private readonly sysvarByName;
20
+ /** Live structural entries per {@link structuralKey}, oldest first. */
21
+ private readonly structuralByKey;
22
+ /**
23
+ * Entries cancelled since the last compaction. Removing them from
24
+ * {@link changes} one `splice` at a time would be quadratic, so they are
25
+ * dropped in one pass by {@link getChanges}.
26
+ */
27
+ private readonly cancelled;
12
28
  /**
13
29
  * Returns the changes recorded so far in this transaction.
14
30
  *
@@ -89,6 +105,7 @@ export declare class AcDbChangeRecorder {
89
105
  *
90
106
  * When an opposite structural change for the same container and object ID
91
107
  * already exists in this transaction, both entries cancel and neither is kept.
108
+ * The oldest matching entry is the one cancelled.
92
109
  *
93
110
  * @param change - Append or remove entry to merge into the recorder
94
111
  */
@@ -102,15 +119,10 @@ export declare class AcDbChangeRecorder {
102
119
  * @param change - Change copied from a child transaction recorder
103
120
  */
104
121
  private mergeChange;
105
- /**
106
- * Finds the index of a structural change matching kind, container, and object ID.
107
- *
108
- * @param kind - Append or remove kind to search for
109
- * @param container - Container descriptor that must match exactly
110
- * @param objectId - Object identifier of the affected record
111
- * @returns Index in {@link changes}, or `-1` when no match exists
112
- */
113
- private findStructuralChangeIndex;
122
+ private addModify;
123
+ private addSysvar;
124
+ /** Drops cancelled entries from {@link changes}, keeping order. */
125
+ private compact;
114
126
  /**
115
127
  * Reads the current value of a system variable from the database.
116
128
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AcDbChangeRecorder.d.ts","sourceRoot":"","sources":["../../../src/database/transaction/AcDbChangeRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAEL,mBAAmB,EACnB,kBAAkB,EAAC,MAAM,yBAAyB,CAAA;AAEpD;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD;;;;OAIG;IACH,UAAU,IAAI,kBAAkB,EAAE;IAIlC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAM1C;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAetC;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMpC;;;;;;;;OAQG;IACH,YAAY,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAQtE;;;;;;;;OAQG;IACH,YAAY,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAQtE;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAejD;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAatC;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAwBnB;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IAajC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;CAGvB"}
1
+ {"version":3,"file":"AcDbChangeRecorder.d.ts","sourceRoot":"","sources":["../../../src/database/transaction/AcDbChangeRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,yBAAyB,CAAA;AAgChC;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IACrE,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4C;IAC5E;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAE1D;;;;OAIG;IACH,UAAU,IAAI,kBAAkB,EAAE;IAKlC;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAM1C;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAYtC;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIpC;;;;;;;;OAQG;IACH,YAAY,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAQtE;;;;;;;;OAQG;IACH,YAAY,CAAC,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAQtE;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAYjD;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAatC;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,SAAS;IAKjB,mEAAmE;IACnE,OAAO,CAAC,OAAO;IAcf;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;CAGvB"}
@@ -10,16 +10,51 @@ var __values = (this && this.__values) || function(o) {
10
10
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
11
11
  };
12
12
  import { AcDbSysVarManager } from '../AcDbSysVarManager.js';
13
- import { acdbAreChangeContainersEqual } from './AcDbDatabaseChange.js';
13
+ /**
14
+ * Builds a lookup key that is equal for two structural changes exactly when
15
+ * their kind, container (see `acdbAreChangeContainersEqual`) and object ID
16
+ * all match.
17
+ */
18
+ function structuralKey(kind, container, objectId) {
19
+ var location;
20
+ switch (container.type) {
21
+ case 'blockTableRecord':
22
+ location = container.ownerId;
23
+ break;
24
+ case 'symbolTable':
25
+ location = container.tableName;
26
+ break;
27
+ case 'dictionary':
28
+ location = "".concat(container.dictionaryId, "\0").concat(container.key);
29
+ break;
30
+ }
31
+ return "".concat(kind, "\0").concat(container.type, "\0").concat(location, "\0").concat(objectId);
32
+ }
14
33
  /**
15
34
  * Accumulates structured database changes during an active transaction.
16
35
  *
17
36
  * Append/remove pairs that cancel within the same transaction are coalesced,
18
37
  * and duplicate modify/sysvar entries for the same target are ignored.
38
+ *
39
+ * Lookups go through indexes rather than scanning {@link getChanges}, so
40
+ * recording stays linear for transactions with hundreds of thousands of
41
+ * changes (for example a large file import).
19
42
  */
20
43
  var AcDbChangeRecorder = /** @class */ (function () {
21
44
  function AcDbChangeRecorder() {
22
45
  this.changes = [];
46
+ /** First modify entry per object ID. */
47
+ this.modifyById = new Map();
48
+ /** First sysvar entry per normalized variable name. */
49
+ this.sysvarByName = new Map();
50
+ /** Live structural entries per {@link structuralKey}, oldest first. */
51
+ this.structuralByKey = new Map();
52
+ /**
53
+ * Entries cancelled since the last compaction. Removing them from
54
+ * {@link changes} one `splice` at a time would be quadratic, so they are
55
+ * dropped in one pass by {@link getChanges}.
56
+ */
57
+ this.cancelled = new Set();
23
58
  }
24
59
  /**
25
60
  * Returns the changes recorded so far in this transaction.
@@ -27,6 +62,7 @@ var AcDbChangeRecorder = /** @class */ (function () {
27
62
  * The returned array is the internal store; callers should treat it as read-only.
28
63
  */
29
64
  AcDbChangeRecorder.prototype.getChanges = function () {
65
+ this.compact();
30
66
  return this.changes;
31
67
  };
32
68
  /**
@@ -34,6 +70,10 @@ var AcDbChangeRecorder = /** @class */ (function () {
34
70
  */
35
71
  AcDbChangeRecorder.prototype.clear = function () {
36
72
  this.changes.length = 0;
73
+ this.modifyById.clear();
74
+ this.sysvarByName.clear();
75
+ this.structuralByKey.clear();
76
+ this.cancelled.clear();
37
77
  };
38
78
  /**
39
79
  * Merges changes from a nested transaction into this recorder.
@@ -68,11 +108,10 @@ var AcDbChangeRecorder = /** @class */ (function () {
68
108
  */
69
109
  AcDbChangeRecorder.prototype.recordModify = function (object) {
70
110
  var objectId = object.objectId;
71
- var existing = this.changes.find(function (c) { return c.kind === 'modify' && c.objectId === objectId; });
72
- if (existing) {
111
+ if (this.modifyById.has(objectId)) {
73
112
  return;
74
113
  }
75
- this.changes.push({
114
+ this.addModify({
76
115
  kind: 'modify',
77
116
  objectId: objectId,
78
117
  before: object.clonePreservingIdentity()
@@ -88,7 +127,7 @@ var AcDbChangeRecorder = /** @class */ (function () {
88
127
  * @param objectId - Object identifier to look up
89
128
  */
90
129
  AcDbChangeRecorder.prototype.hasModify = function (objectId) {
91
- return this.changes.some(function (c) { return c.kind === 'modify' && c.objectId === objectId; });
130
+ return this.modifyById.has(objectId);
92
131
  };
93
132
  /**
94
133
  * Records insertion of an object into a database container.
@@ -132,11 +171,10 @@ var AcDbChangeRecorder = /** @class */ (function () {
132
171
  */
133
172
  AcDbChangeRecorder.prototype.recordSysvar = function (name, before) {
134
173
  var normalizedName = name.toLowerCase();
135
- var existing = this.changes.find(function (c) { return c.kind === 'sysvar' && c.name === normalizedName; });
136
- if (existing) {
174
+ if (this.sysvarByName.has(normalizedName)) {
137
175
  return;
138
176
  }
139
- this.changes.push({
177
+ this.addSysvar({
140
178
  kind: 'sysvar',
141
179
  name: normalizedName,
142
180
  before: before
@@ -153,7 +191,7 @@ var AcDbChangeRecorder = /** @class */ (function () {
153
191
  AcDbChangeRecorder.prototype.finalize = function (database) {
154
192
  var e_2, _a;
155
193
  try {
156
- for (var _b = __values(this.changes), _c = _b.next(); !_c.done; _c = _b.next()) {
194
+ for (var _b = __values(this.getChanges()), _c = _b.next(); !_c.done; _c = _b.next()) {
157
195
  var change = _c.value;
158
196
  if (change.kind === 'modify') {
159
197
  var object = database.getObjectById(change.objectId);
@@ -179,16 +217,31 @@ var AcDbChangeRecorder = /** @class */ (function () {
179
217
  *
180
218
  * When an opposite structural change for the same container and object ID
181
219
  * already exists in this transaction, both entries cancel and neither is kept.
220
+ * The oldest matching entry is the one cancelled.
182
221
  *
183
222
  * @param change - Append or remove entry to merge into the recorder
184
223
  */
185
224
  AcDbChangeRecorder.prototype.recordStructuralChange = function (change) {
225
+ var objectId = change.object.objectId;
186
226
  var oppositeKind = change.kind === 'append' ? 'remove' : 'append';
187
- var cancelIndex = this.findStructuralChangeIndex(oppositeKind, change.container, change.object.objectId);
188
- if (cancelIndex >= 0) {
189
- this.changes.splice(cancelIndex, 1);
227
+ var oppositeKey = structuralKey(oppositeKind, change.container, objectId);
228
+ var opposites = this.structuralByKey.get(oppositeKey);
229
+ if (opposites && opposites.length > 0) {
230
+ var cancelled = opposites.shift();
231
+ if (opposites.length === 0) {
232
+ this.structuralByKey.delete(oppositeKey);
233
+ }
234
+ this.cancelled.add(cancelled);
190
235
  return;
191
236
  }
237
+ var key = structuralKey(change.kind, change.container, objectId);
238
+ var entries = this.structuralByKey.get(key);
239
+ if (entries) {
240
+ entries.push(change);
241
+ }
242
+ else {
243
+ this.structuralByKey.set(key, [change]);
244
+ }
192
245
  this.changes.push(change);
193
246
  };
194
247
  /**
@@ -201,35 +254,51 @@ var AcDbChangeRecorder = /** @class */ (function () {
201
254
  */
202
255
  AcDbChangeRecorder.prototype.mergeChange = function (change) {
203
256
  if (change.kind === 'modify') {
204
- var existing = this.changes.find(function (c) { return c.kind === 'modify' && c.objectId === change.objectId; });
205
- if (!existing) {
206
- this.changes.push(change);
257
+ if (!this.modifyById.has(change.objectId)) {
258
+ this.addModify(change);
207
259
  }
208
260
  return;
209
261
  }
210
262
  if (change.kind === 'sysvar') {
211
- var existing = this.changes.find(function (c) { return c.kind === 'sysvar' && c.name === change.name; });
212
- if (!existing) {
213
- this.changes.push(change);
263
+ if (!this.sysvarByName.has(change.name)) {
264
+ this.addSysvar(change);
214
265
  }
215
266
  return;
216
267
  }
217
268
  this.recordStructuralChange(change);
218
269
  };
219
- /**
220
- * Finds the index of a structural change matching kind, container, and object ID.
221
- *
222
- * @param kind - Append or remove kind to search for
223
- * @param container - Container descriptor that must match exactly
224
- * @param objectId - Object identifier of the affected record
225
- * @returns Index in {@link changes}, or `-1` when no match exists
226
- */
227
- AcDbChangeRecorder.prototype.findStructuralChangeIndex = function (kind, container, objectId) {
228
- return this.changes.findIndex(function (change) {
229
- return change.kind === kind &&
230
- change.object.objectId === objectId &&
231
- acdbAreChangeContainersEqual(change.container, container);
232
- });
270
+ AcDbChangeRecorder.prototype.addModify = function (change) {
271
+ this.modifyById.set(change.objectId, change);
272
+ this.changes.push(change);
273
+ };
274
+ AcDbChangeRecorder.prototype.addSysvar = function (change) {
275
+ this.sysvarByName.set(change.name, change);
276
+ this.changes.push(change);
277
+ };
278
+ /** Drops cancelled entries from {@link changes}, keeping order. */
279
+ AcDbChangeRecorder.prototype.compact = function () {
280
+ var e_3, _a;
281
+ if (this.cancelled.size === 0) {
282
+ return;
283
+ }
284
+ var write = 0;
285
+ try {
286
+ for (var _b = __values(this.changes), _c = _b.next(); !_c.done; _c = _b.next()) {
287
+ var change = _c.value;
288
+ if (!this.cancelled.has(change)) {
289
+ this.changes[write++] = change;
290
+ }
291
+ }
292
+ }
293
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
294
+ finally {
295
+ try {
296
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
297
+ }
298
+ finally { if (e_3) throw e_3.error; }
299
+ }
300
+ this.changes.length = write;
301
+ this.cancelled.clear();
233
302
  };
234
303
  /**
235
304
  * Reads the current value of a system variable from the database.
@@ -1 +1 @@
1
- {"version":3,"file":"AcDbChangeRecorder.js","sourceRoot":"","sources":["../../../src/database/transaction/AcDbChangeRecorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcDbChangeRecorder.js","sourceRoot":"","sources":["../../../src/database/transaction/AcDbChangeRecorder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mlightcad/data-model",
3
- "version": "1.15.25",
3
+ "version": "1.15.26",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {
@@ -39,10 +39,10 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "uid": "^2.0.2",
42
- "@mlightcad/common": "1.15.25",
43
- "@mlightcad/geometry-engine": "3.15.25",
44
- "@mlightcad/emf-converter": "1.15.25",
45
- "@mlightcad/graphic-interface": "3.15.25"
42
+ "@mlightcad/emf-converter": "1.15.26",
43
+ "@mlightcad/common": "1.15.26",
44
+ "@mlightcad/geometry-engine": "3.15.26",
45
+ "@mlightcad/graphic-interface": "3.15.26"
46
46
  },
47
47
  "scripts": {
48
48
  "analyze": "pnpm run analyze:lib",