pxt-core 9.2.6 → 9.2.8

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.
package/built/pxt.js CHANGED
@@ -97781,6 +97781,17 @@ var pxt;
97781
97781
  };
97782
97782
  }
97783
97783
  analytics.enable = enable;
97784
+ function trackPerformanceReport() {
97785
+ if (pxt.perf.perfReportLogged)
97786
+ return;
97787
+ const data = pxt.perf.report();
97788
+ if (data) {
97789
+ const { durations, milestones } = data;
97790
+ pxt.tickEvent("performance.milestones", milestones);
97791
+ pxt.tickEvent("performance.durations", durations);
97792
+ }
97793
+ }
97794
+ analytics.trackPerformanceReport = trackPerformanceReport;
97784
97795
  })(analytics = pxt.analytics || (pxt.analytics = {}));
97785
97796
  })(pxt || (pxt = {}));
97786
97797
  var pxt;
@@ -101155,7 +101166,7 @@ var pxt;
101155
101166
  // Sometimes these aren't initialized, for example in tests. We only care about them
101156
101167
  // doing anything in the browser.
101157
101168
  if (!pxt.perf.report)
101158
- pxt.perf.report = () => { };
101169
+ pxt.perf.report = () => undefined;
101159
101170
  if (!pxt.perf.recordMilestone)
101160
101171
  pxt.perf.recordMilestone = () => { };
101161
101172
  if (!pxt.perf.measureStart)
@@ -103121,11 +103132,12 @@ var pxt;
103121
103132
  }
103122
103133
  }
103123
103134
  class IDBWrapper {
103124
- constructor(name, version, upgradeHandler, quotaExceededHandler) {
103135
+ constructor(name, version, upgradeHandler, quotaExceededHandler, skipErrorLog = false) {
103125
103136
  this.name = name;
103126
103137
  this.version = version;
103127
103138
  this.upgradeHandler = upgradeHandler;
103128
103139
  this.quotaExceededHandler = quotaExceededHandler;
103140
+ this.skipErrorLog = skipErrorLog;
103129
103141
  }
103130
103142
  throwIfNotOpened() {
103131
103143
  if (!this._db) {
@@ -103133,6 +103145,10 @@ var pxt;
103133
103145
  }
103134
103146
  }
103135
103147
  errorHandler(err, op, reject) {
103148
+ if (this.skipErrorLog) {
103149
+ reject(err);
103150
+ return;
103151
+ }
103136
103152
  console.error(new Error(`${this.name} IDBWrapper error for ${op}: ${err.message}`));
103137
103153
  reject(err);
103138
103154
  // special case for quota exceeded
@@ -103224,8 +103240,33 @@ var pxt;
103224
103240
  request.onerror = () => this.errorHandler(request.error, "deleteAll", reject);
103225
103241
  });
103226
103242
  }
103243
+ getObjectStoreWrapper(storeName) {
103244
+ return new IDBObjectStoreWrapper(this, storeName);
103245
+ }
103227
103246
  }
103228
103247
  BrowserUtils.IDBWrapper = IDBWrapper;
103248
+ class IDBObjectStoreWrapper {
103249
+ constructor(db, storeName) {
103250
+ this.db = db;
103251
+ this.storeName = storeName;
103252
+ }
103253
+ getAsync(id) {
103254
+ return this.db.getAsync(this.storeName, id);
103255
+ }
103256
+ getAllAsync() {
103257
+ return this.db.getAllAsync(this.storeName);
103258
+ }
103259
+ setAsync(data) {
103260
+ return this.db.setAsync(this.storeName, data);
103261
+ }
103262
+ async deleteAsync(id) {
103263
+ await this.db.deleteAsync(this.storeName, id);
103264
+ }
103265
+ async deleteAllAsync() {
103266
+ await this.db.deleteAllAsync(this.storeName);
103267
+ }
103268
+ }
103269
+ BrowserUtils.IDBObjectStoreWrapper = IDBObjectStoreWrapper;
103229
103270
  class IndexedDbTranslationDb {
103230
103271
  constructor(db) {
103231
103272
  this.db = db;
@@ -155546,6 +155587,7 @@ var pxsim;
155546
155587
  return wrapper;
155547
155588
  }
155548
155589
  preload(aspectRatio, clearRuntime) {
155590
+ this.addEventListeners();
155549
155591
  if (clearRuntime) {
155550
155592
  this._currentRuntime = undefined;
155551
155593
  this.container.textContent = "";
package/built/pxtlib.d.ts CHANGED
@@ -22,6 +22,7 @@ declare namespace pxt.analytics {
22
22
  let consoleTicks: ConsoleTickOptions;
23
23
  function addDefaultProperties(props: Map<string | number>): void;
24
24
  function enable(lang: string): void;
25
+ function trackPerformanceReport(): void;
25
26
  }
26
27
  declare namespace pxt {
27
28
  let appTarget: TargetBundle;
@@ -484,7 +485,14 @@ declare namespace ts.pxtc.jsonPatch.tests {
484
485
  }
485
486
  declare namespace pxt.perf {
486
487
  let perfReportLogged: boolean;
487
- function report(): void;
488
+ function report(): {
489
+ milestones: {
490
+ [index: string]: number;
491
+ };
492
+ durations: {
493
+ [index: string]: number;
494
+ };
495
+ } | undefined;
488
496
  function recordMilestone(msg: string, time?: number): void;
489
497
  function measureStart(name: string): void;
490
498
  function measureEnd(name: string): void;
@@ -803,8 +811,9 @@ declare namespace pxt.BrowserUtils {
803
811
  private version;
804
812
  private upgradeHandler?;
805
813
  private quotaExceededHandler?;
814
+ private skipErrorLog;
806
815
  private _db;
807
- constructor(name: string, version: number, upgradeHandler?: IDBUpgradeHandler, quotaExceededHandler?: () => void);
816
+ constructor(name: string, version: number, upgradeHandler?: IDBUpgradeHandler, quotaExceededHandler?: () => void, skipErrorLog?: boolean);
808
817
  private throwIfNotOpened;
809
818
  private errorHandler;
810
819
  private getObjectStore;
@@ -815,6 +824,17 @@ declare namespace pxt.BrowserUtils {
815
824
  setAsync(storeName: string, data: any): Promise<void>;
816
825
  deleteAsync(storeName: string, id: string): Promise<void>;
817
826
  deleteAllAsync(storeName: string): Promise<void>;
827
+ getObjectStoreWrapper<T>(storeName: string): IDBObjectStoreWrapper<T>;
828
+ }
829
+ export class IDBObjectStoreWrapper<T> {
830
+ protected db: IDBWrapper;
831
+ protected storeName: string;
832
+ constructor(db: IDBWrapper, storeName: string);
833
+ getAsync(id: string): Promise<T>;
834
+ getAllAsync(): Promise<T[]>;
835
+ setAsync(data: T): Promise<void>;
836
+ deleteAsync(id: string): Promise<void>;
837
+ deleteAllAsync(): Promise<void>;
818
838
  }
819
839
  export function translationDbAsync(): Promise<ITranslationDb>;
820
840
  export function clearTranslationDbAsync(): Promise<void>;
package/built/pxtlib.js CHANGED
@@ -95,6 +95,17 @@ var pxt;
95
95
  };
96
96
  }
97
97
  analytics.enable = enable;
98
+ function trackPerformanceReport() {
99
+ if (pxt.perf.perfReportLogged)
100
+ return;
101
+ const data = pxt.perf.report();
102
+ if (data) {
103
+ const { durations, milestones } = data;
104
+ pxt.tickEvent("performance.milestones", milestones);
105
+ pxt.tickEvent("performance.durations", durations);
106
+ }
107
+ }
108
+ analytics.trackPerformanceReport = trackPerformanceReport;
98
109
  })(analytics = pxt.analytics || (pxt.analytics = {}));
99
110
  })(pxt || (pxt = {}));
100
111
  var pxt;
@@ -3469,7 +3480,7 @@ var pxt;
3469
3480
  // Sometimes these aren't initialized, for example in tests. We only care about them
3470
3481
  // doing anything in the browser.
3471
3482
  if (!pxt.perf.report)
3472
- pxt.perf.report = () => { };
3483
+ pxt.perf.report = () => undefined;
3473
3484
  if (!pxt.perf.recordMilestone)
3474
3485
  pxt.perf.recordMilestone = () => { };
3475
3486
  if (!pxt.perf.measureStart)
@@ -5435,11 +5446,12 @@ var pxt;
5435
5446
  }
5436
5447
  }
5437
5448
  class IDBWrapper {
5438
- constructor(name, version, upgradeHandler, quotaExceededHandler) {
5449
+ constructor(name, version, upgradeHandler, quotaExceededHandler, skipErrorLog = false) {
5439
5450
  this.name = name;
5440
5451
  this.version = version;
5441
5452
  this.upgradeHandler = upgradeHandler;
5442
5453
  this.quotaExceededHandler = quotaExceededHandler;
5454
+ this.skipErrorLog = skipErrorLog;
5443
5455
  }
5444
5456
  throwIfNotOpened() {
5445
5457
  if (!this._db) {
@@ -5447,6 +5459,10 @@ var pxt;
5447
5459
  }
5448
5460
  }
5449
5461
  errorHandler(err, op, reject) {
5462
+ if (this.skipErrorLog) {
5463
+ reject(err);
5464
+ return;
5465
+ }
5450
5466
  console.error(new Error(`${this.name} IDBWrapper error for ${op}: ${err.message}`));
5451
5467
  reject(err);
5452
5468
  // special case for quota exceeded
@@ -5538,8 +5554,33 @@ var pxt;
5538
5554
  request.onerror = () => this.errorHandler(request.error, "deleteAll", reject);
5539
5555
  });
5540
5556
  }
5557
+ getObjectStoreWrapper(storeName) {
5558
+ return new IDBObjectStoreWrapper(this, storeName);
5559
+ }
5541
5560
  }
5542
5561
  BrowserUtils.IDBWrapper = IDBWrapper;
5562
+ class IDBObjectStoreWrapper {
5563
+ constructor(db, storeName) {
5564
+ this.db = db;
5565
+ this.storeName = storeName;
5566
+ }
5567
+ getAsync(id) {
5568
+ return this.db.getAsync(this.storeName, id);
5569
+ }
5570
+ getAllAsync() {
5571
+ return this.db.getAllAsync(this.storeName);
5572
+ }
5573
+ setAsync(data) {
5574
+ return this.db.setAsync(this.storeName, data);
5575
+ }
5576
+ async deleteAsync(id) {
5577
+ await this.db.deleteAsync(this.storeName, id);
5578
+ }
5579
+ async deleteAllAsync() {
5580
+ await this.db.deleteAllAsync(this.storeName);
5581
+ }
5582
+ }
5583
+ BrowserUtils.IDBObjectStoreWrapper = IDBObjectStoreWrapper;
5543
5584
  class IndexedDbTranslationDb {
5544
5585
  constructor(db) {
5545
5586
  this.db = db;
package/built/pxtsim.js CHANGED
@@ -6424,6 +6424,7 @@ var pxsim;
6424
6424
  return wrapper;
6425
6425
  }
6426
6426
  preload(aspectRatio, clearRuntime) {
6427
+ this.addEventListeners();
6427
6428
  if (clearRuntime) {
6428
6429
  this._currentRuntime = undefined;
6429
6430
  this.container.textContent = "";