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 +44 -2
- package/built/pxtlib.d.ts +22 -2
- package/built/pxtlib.js +43 -2
- package/built/pxtsim.js +1 -0
- package/built/target.js +1 -1
- package/built/web/main.js +1 -1
- package/built/web/pxtapp.js +1 -1
- package/built/web/pxtasseteditor.js +1 -1
- package/built/web/pxtembed.js +2 -2
- package/built/web/pxtlib.js +1 -1
- package/built/web/pxtsim.js +1 -1
- package/built/web/pxtweb.js +1 -1
- package/built/web/pxtworker.js +1 -1
- package/docfiles/pxtweb/cookieCompliance.ts +10 -1
- package/package.json +1 -1
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():
|
|
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;
|