pxt-core 9.3.3 → 9.3.5

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.
@@ -115,7 +115,7 @@ var pxtc = ts.pxtc;
115
115
  // First two are valid crowdin\makecode locale code,
116
116
  // Last all lowercase one is just for the backup when reading user defined extensions & tutorials.
117
117
  function normalizeLanguageCode(code) {
118
- const langParts = /^(\w{2})-(\w{2}$)/i.exec(code);
118
+ const langParts = /^(\w{2,3})-(\w{2,4}$)/i.exec(code);
119
119
  if (langParts && langParts[1] && langParts[2]) {
120
120
  return [`${langParts[1].toLowerCase()}-${langParts[2].toUpperCase()}`, langParts[1].toLowerCase(),
121
121
  `${langParts[1].toLowerCase()}-${langParts[2].toLowerCase()}`];
package/built/pxt.js CHANGED
@@ -98669,7 +98669,7 @@ var pxtc = ts.pxtc;
98669
98669
  // First two are valid crowdin\makecode locale code,
98670
98670
  // Last all lowercase one is just for the backup when reading user defined extensions & tutorials.
98671
98671
  function normalizeLanguageCode(code) {
98672
- const langParts = /^(\w{2})-(\w{2}$)/i.exec(code);
98672
+ const langParts = /^(\w{2,3})-(\w{2,4}$)/i.exec(code);
98673
98673
  if (langParts && langParts[1] && langParts[2]) {
98674
98674
  return [`${langParts[1].toLowerCase()}-${langParts[2].toUpperCase()}`, langParts[1].toLowerCase(),
98675
98675
  `${langParts[1].toLowerCase()}-${langParts[2].toLowerCase()}`];
@@ -100033,6 +100033,7 @@ var ts;
100033
100033
  "ar": { englishName: "Arabic", localizedName: "العربية" },
100034
100034
  "az": { englishName: "Azerbaijani", localizedName: "آذربایجان دیلی" },
100035
100035
  "bg": { englishName: "Bulgarian", localizedName: "български" },
100036
+ "bi": { englishName: "Bislama", localizedName: "Bislama" },
100036
100037
  "bn": { englishName: "Bengali", localizedName: "বাংলা" },
100037
100038
  "ca": { englishName: "Catalan", localizedName: "Català" },
100038
100039
  "cs": { englishName: "Czech", localizedName: "Čeština" },
@@ -100047,9 +100048,14 @@ var ts;
100047
100048
  "eu": { englishName: "Basque", localizedName: "Euskara" },
100048
100049
  "fa": { englishName: "Persian", localizedName: "فارسی" },
100049
100050
  "fi": { englishName: "Finnish", localizedName: "Suomi" },
100051
+ "fil": { englishName: "Filipino", localizedName: "Filipino" },
100052
+ "fo": { englishName: "Faroese", localizedName: "føroyskt" },
100050
100053
  "fr": { englishName: "French", localizedName: "Français" },
100051
100054
  "fr-CA": { englishName: "French (Canada)", localizedName: "Français (Canada)" },
100055
+ "gl": { englishName: "Galician", localizedName: "galego" },
100052
100056
  "gu-IN": { englishName: "Gujarati", localizedName: "ગુજરાતી" },
100057
+ "haw": { englishName: "Hawaiian", localizedName: "ʻŌlelo Hawaiʻi" },
100058
+ "hi": { englishName: "Hindi", localizedName: "हिन्दी" },
100053
100059
  "he": { englishName: "Hebrew", localizedName: "עברית" },
100054
100060
  "hr": { englishName: "Croatian", localizedName: "Hrvatski" },
100055
100061
  "hu": { englishName: "Hungarian", localizedName: "Magyar" },
@@ -100058,30 +100064,40 @@ var ts;
100058
100064
  "is": { englishName: "Icelandic", localizedName: "Íslenska" },
100059
100065
  "it": { englishName: "Italian", localizedName: "Italiano" },
100060
100066
  "ja": { englishName: "Japanese", localizedName: "日本語" },
100067
+ "ja-HIRA": { englishName: "Hiragana", localizedName: "にほんご" },
100068
+ "ka": { englishName: "Georgian", localizedName: "ქართული" },
100061
100069
  "kab": { englishName: "Kabyle", localizedName: "شئعم" },
100062
- "ko": { englishName: "Korean", localizedName: "한국어" },
100070
+ "kk": { englishName: "Kazakh", localizedName: "қазақ тілі" },
100071
+ "km": { englishName: "Khmer", localizedName: "ខ្មែរ" },
100063
100072
  "kmr": { englishName: "Kurmanji (Kurdish)", localizedName: "کورمانجی‎" },
100064
100073
  "kn": { englishName: "Kannada", localizedName: "ಕನ್ನಡ" },
100074
+ "ko": { englishName: "Korean", localizedName: "한국어" },
100065
100075
  "lt": { englishName: "Lithuanian", localizedName: "Lietuvių" },
100066
100076
  "lv": { englishName: "Latvian", localizedName: "Latviešu" },
100067
100077
  "ml-IN": { englishName: "Malayalam", localizedName: "മലയാളം" },
100068
100078
  "mr": { englishName: "Marathi", localizedName: "मराठी" },
100079
+ "ms": { englishName: "Malay", localizedName: "Melayu" },
100069
100080
  "nl": { englishName: "Dutch", localizedName: "Nederlands" },
100070
100081
  "no": { englishName: "Norwegian", localizedName: "Norsk" },
100071
100082
  "nb": { englishName: "Norwegian Bokmal", localizedName: "Norsk bokmål" },
100072
100083
  "nn-NO": { englishName: "Norwegian Nynorsk", localizedName: "Norsk nynorsk" },
100073
100084
  "pa-IN": { englishName: "Punjabi", localizedName: "ਪੰਜਾਬੀ" },
100074
100085
  "pl": { englishName: "Polish", localizedName: "Polski" },
100086
+ "ps": { englishName: "Pashto", localizedName: "پښتو" },
100075
100087
  "pt-BR": { englishName: "Portuguese (Brazil)", localizedName: "Português (Brasil)" },
100076
100088
  "pt-PT": { englishName: "Portuguese (Portugal)", localizedName: "Português (Portugal)" },
100077
100089
  "ro": { englishName: "Romanian", localizedName: "Română" },
100078
100090
  "ru": { englishName: "Russian", localizedName: "Русский" },
100091
+ "sat": { englishName: "Santali", localizedName: "ᱥᱚᱸᱴᱚᱞᱤ" },
100079
100092
  "si-LK": { englishName: "Sinhala", localizedName: "සිංහල" },
100080
100093
  "sk": { englishName: "Slovak", localizedName: "Slovenčina" },
100081
100094
  "sl": { englishName: "Slovenian", localizedName: "Slovenski" },
100095
+ "sq": { englishName: "Albanian", localizedName: "shqip" },
100082
100096
  "sr": { englishName: "Serbian (Latin)", localizedName: "Srpski" },
100083
100097
  "su": { englishName: "Sundanese", localizedName: "ᮘᮞ ᮞᮥᮔ᮪ᮓ" },
100084
100098
  "sv-SE": { englishName: "Swedish", localizedName: "Svenska" },
100099
+ "sw": { englishName: "Swahili", localizedName: "Kiswahili" },
100100
+ "sw-TZ": { englishName: "Swahili (Tanzania)", localizedName: "Kiswahili (Tanzania)" },
100085
100101
  "ta": { englishName: "Tamil", localizedName: "தமிழ்" },
100086
100102
  "te": { englishName: "Telugu", localizedName: "తెలుగు" },
100087
100103
  "th": { englishName: "Thai", localizedName: "ภาษาไทย" },
@@ -114388,6 +114404,17 @@ var pxt;
114388
114404
  const patches = pxt.appTarget.compile ? pxt.appTarget.compile.patches : undefined;
114389
114405
  if (!patches)
114390
114406
  return undefined;
114407
+ return parsePatches(version, patches, kind);
114408
+ }
114409
+ patching.computePatches = computePatches;
114410
+ function computePyPatches(version, kind) {
114411
+ const patches = pxt.appTarget.compile ? pxt.appTarget.compile.pyPatches : undefined;
114412
+ if (!patches)
114413
+ return undefined;
114414
+ return parsePatches(version, patches, kind);
114415
+ }
114416
+ patching.computePyPatches = computePyPatches;
114417
+ function parsePatches(version, patches, kind) {
114391
114418
  const v = pxt.semver.tryParse(version || "0.0.0") || pxt.semver.tryParse("0.0.0");
114392
114419
  let r = [];
114393
114420
  Object.keys(patches)
@@ -114397,7 +114424,6 @@ var pxt;
114397
114424
  r = r.filter(p => p.type == kind);
114398
114425
  return r.length ? r : undefined;
114399
114426
  }
114400
- patching.computePatches = computePatches;
114401
114427
  function upgradePackageReference(pkgTargetVersion, pkg, val) {
114402
114428
  if (val != "*")
114403
114429
  return pkg;
@@ -114417,6 +114443,15 @@ var pxt;
114417
114443
  patching.upgradePackageReference = upgradePackageReference;
114418
114444
  function patchJavaScript(pkgTargetVersion, fileContents) {
114419
114445
  const upgrades = pxt.patching.computePatches(pkgTargetVersion);
114446
+ return patchTextCode(pkgTargetVersion, fileContents, upgrades);
114447
+ }
114448
+ patching.patchJavaScript = patchJavaScript;
114449
+ function patchPython(pkgTargetVersion, fileContents) {
114450
+ const upgrades = pxt.patching.computePyPatches(pkgTargetVersion);
114451
+ return patchTextCode(pkgTargetVersion, fileContents, upgrades);
114452
+ }
114453
+ patching.patchPython = patchPython;
114454
+ function patchTextCode(pkgTargetVersion, fileContents, upgrades) {
114420
114455
  let updatedContents = fileContents;
114421
114456
  if (upgrades) {
114422
114457
  upgrades.filter(u => u.type === "api").forEach(rule => {
@@ -114436,7 +114471,6 @@ var pxt;
114436
114471
  }
114437
114472
  return updatedContents;
114438
114473
  }
114439
- patching.patchJavaScript = patchJavaScript;
114440
114474
  })(patching = pxt.patching || (pxt.patching = {}));
114441
114475
  })(pxt || (pxt = {}));
114442
114476
  var pxt;
@@ -123210,6 +123244,9 @@ var pxt;
123210
123244
  return mainPkg.getCompileOptionsAsync(target);
123211
123245
  }).then(opts => {
123212
123246
  patchTS(mainPkg.targetVersion(), opts);
123247
+ if (mainPkg.getPreferredEditor() === pxt.PYTHON_PROJECT_NAME) {
123248
+ patchPY(mainPkg.targetVersion(), opts);
123249
+ }
123213
123250
  prepPythonOptions(opts);
123214
123251
  return opts;
123215
123252
  });
@@ -123243,6 +123280,22 @@ var pxt;
123243
123280
  }
123244
123281
  }
123245
123282
  pxt.patchTS = patchTS;
123283
+ function patchPY(version, opts) {
123284
+ if (!version)
123285
+ return;
123286
+ pxt.debug(`applying PY patches relative to ${version}`);
123287
+ for (let fn of Object.keys(opts.fileSystem)) {
123288
+ if (fn.indexOf("/") == -1 && pxt.U.endsWith(fn, ".py")) {
123289
+ const initial = opts.fileSystem[fn];
123290
+ const patched = pxt.patching.patchPython(version, initial);
123291
+ if (initial != patched) {
123292
+ pxt.debug(`applying PY patch to ${fn}`);
123293
+ opts.fileSystem[fn] = patched;
123294
+ }
123295
+ }
123296
+ }
123297
+ }
123298
+ pxt.patchPY = patchPY;
123246
123299
  function setupSimpleCompile(cfg) {
123247
123300
  if (typeof global != "undefined" && !global.btoa) {
123248
123301
  global.btoa = function (str) { return Buffer.from(str, "binary").toString("base64"); };
@@ -31,6 +31,7 @@ declare namespace pxt {
31
31
  function simpleGetCompileOptionsAsync(files: pxt.Map<string>, simpleOptions: SimpleCompileOptions): Promise<pxtc.CompileOptions>;
32
32
  function simpleCompileAsync(files: pxt.Map<string>, optionsOrNative?: SimpleCompileOptions | boolean): Promise<CompileResultWithErrors>;
33
33
  function patchTS(version: string, opts: pxtc.CompileOptions): void;
34
+ function patchPY(version: string, opts: pxtc.CompileOptions): void;
34
35
  function setupSimpleCompile(cfg?: SimpleDriverCallbacks): void;
35
36
  }
36
37
  declare namespace pxt {
@@ -141,6 +141,9 @@ var pxt;
141
141
  return mainPkg.getCompileOptionsAsync(target);
142
142
  }).then(opts => {
143
143
  patchTS(mainPkg.targetVersion(), opts);
144
+ if (mainPkg.getPreferredEditor() === pxt.PYTHON_PROJECT_NAME) {
145
+ patchPY(mainPkg.targetVersion(), opts);
146
+ }
144
147
  prepPythonOptions(opts);
145
148
  return opts;
146
149
  });
@@ -174,6 +177,22 @@ var pxt;
174
177
  }
175
178
  }
176
179
  pxt.patchTS = patchTS;
180
+ function patchPY(version, opts) {
181
+ if (!version)
182
+ return;
183
+ pxt.debug(`applying PY patches relative to ${version}`);
184
+ for (let fn of Object.keys(opts.fileSystem)) {
185
+ if (fn.indexOf("/") == -1 && pxt.U.endsWith(fn, ".py")) {
186
+ const initial = opts.fileSystem[fn];
187
+ const patched = pxt.patching.patchPython(version, initial);
188
+ if (initial != patched) {
189
+ pxt.debug(`applying PY patch to ${fn}`);
190
+ opts.fileSystem[fn] = patched;
191
+ }
192
+ }
193
+ }
194
+ }
195
+ pxt.patchPY = patchPY;
177
196
  function setupSimpleCompile(cfg) {
178
197
  if (typeof global != "undefined" && !global.btoa) {
179
198
  global.btoa = function (str) { return Buffer.from(str, "binary").toString("base64"); };
package/built/pxtlib.d.ts CHANGED
@@ -1986,8 +1986,10 @@ declare namespace pxt.packetio {
1986
1986
  }
1987
1987
  declare namespace pxt.patching {
1988
1988
  function computePatches(version: string, kind?: string): ts.pxtc.UpgradePolicy[];
1989
+ function computePyPatches(version: string, kind?: string): ts.pxtc.UpgradePolicy[];
1989
1990
  function upgradePackageReference(pkgTargetVersion: string, pkg: string, val: string): string;
1990
1991
  function patchJavaScript(pkgTargetVersion: string, fileContents: string): string;
1992
+ function patchPython(pkgTargetVersion: string, fileContents: string): string;
1991
1993
  }
1992
1994
  declare namespace pxt.react {
1993
1995
  interface FieldEditorView<U> {
package/built/pxtlib.js CHANGED
@@ -983,7 +983,7 @@ var pxtc = ts.pxtc;
983
983
  // First two are valid crowdin\makecode locale code,
984
984
  // Last all lowercase one is just for the backup when reading user defined extensions & tutorials.
985
985
  function normalizeLanguageCode(code) {
986
- const langParts = /^(\w{2})-(\w{2}$)/i.exec(code);
986
+ const langParts = /^(\w{2,3})-(\w{2,4}$)/i.exec(code);
987
987
  if (langParts && langParts[1] && langParts[2]) {
988
988
  return [`${langParts[1].toLowerCase()}-${langParts[2].toUpperCase()}`, langParts[1].toLowerCase(),
989
989
  `${langParts[1].toLowerCase()}-${langParts[2].toLowerCase()}`];
@@ -2347,6 +2347,7 @@ var ts;
2347
2347
  "ar": { englishName: "Arabic", localizedName: "العربية" },
2348
2348
  "az": { englishName: "Azerbaijani", localizedName: "آذربایجان دیلی" },
2349
2349
  "bg": { englishName: "Bulgarian", localizedName: "български" },
2350
+ "bi": { englishName: "Bislama", localizedName: "Bislama" },
2350
2351
  "bn": { englishName: "Bengali", localizedName: "বাংলা" },
2351
2352
  "ca": { englishName: "Catalan", localizedName: "Català" },
2352
2353
  "cs": { englishName: "Czech", localizedName: "Čeština" },
@@ -2361,9 +2362,14 @@ var ts;
2361
2362
  "eu": { englishName: "Basque", localizedName: "Euskara" },
2362
2363
  "fa": { englishName: "Persian", localizedName: "فارسی" },
2363
2364
  "fi": { englishName: "Finnish", localizedName: "Suomi" },
2365
+ "fil": { englishName: "Filipino", localizedName: "Filipino" },
2366
+ "fo": { englishName: "Faroese", localizedName: "føroyskt" },
2364
2367
  "fr": { englishName: "French", localizedName: "Français" },
2365
2368
  "fr-CA": { englishName: "French (Canada)", localizedName: "Français (Canada)" },
2369
+ "gl": { englishName: "Galician", localizedName: "galego" },
2366
2370
  "gu-IN": { englishName: "Gujarati", localizedName: "ગુજરાતી" },
2371
+ "haw": { englishName: "Hawaiian", localizedName: "ʻŌlelo Hawaiʻi" },
2372
+ "hi": { englishName: "Hindi", localizedName: "हिन्दी" },
2367
2373
  "he": { englishName: "Hebrew", localizedName: "עברית" },
2368
2374
  "hr": { englishName: "Croatian", localizedName: "Hrvatski" },
2369
2375
  "hu": { englishName: "Hungarian", localizedName: "Magyar" },
@@ -2372,30 +2378,40 @@ var ts;
2372
2378
  "is": { englishName: "Icelandic", localizedName: "Íslenska" },
2373
2379
  "it": { englishName: "Italian", localizedName: "Italiano" },
2374
2380
  "ja": { englishName: "Japanese", localizedName: "日本語" },
2381
+ "ja-HIRA": { englishName: "Hiragana", localizedName: "にほんご" },
2382
+ "ka": { englishName: "Georgian", localizedName: "ქართული" },
2375
2383
  "kab": { englishName: "Kabyle", localizedName: "شئعم" },
2376
- "ko": { englishName: "Korean", localizedName: "한국어" },
2384
+ "kk": { englishName: "Kazakh", localizedName: "қазақ тілі" },
2385
+ "km": { englishName: "Khmer", localizedName: "ខ្មែរ" },
2377
2386
  "kmr": { englishName: "Kurmanji (Kurdish)", localizedName: "کورمانجی‎" },
2378
2387
  "kn": { englishName: "Kannada", localizedName: "ಕನ್ನಡ" },
2388
+ "ko": { englishName: "Korean", localizedName: "한국어" },
2379
2389
  "lt": { englishName: "Lithuanian", localizedName: "Lietuvių" },
2380
2390
  "lv": { englishName: "Latvian", localizedName: "Latviešu" },
2381
2391
  "ml-IN": { englishName: "Malayalam", localizedName: "മലയാളം" },
2382
2392
  "mr": { englishName: "Marathi", localizedName: "मराठी" },
2393
+ "ms": { englishName: "Malay", localizedName: "Melayu" },
2383
2394
  "nl": { englishName: "Dutch", localizedName: "Nederlands" },
2384
2395
  "no": { englishName: "Norwegian", localizedName: "Norsk" },
2385
2396
  "nb": { englishName: "Norwegian Bokmal", localizedName: "Norsk bokmål" },
2386
2397
  "nn-NO": { englishName: "Norwegian Nynorsk", localizedName: "Norsk nynorsk" },
2387
2398
  "pa-IN": { englishName: "Punjabi", localizedName: "ਪੰਜਾਬੀ" },
2388
2399
  "pl": { englishName: "Polish", localizedName: "Polski" },
2400
+ "ps": { englishName: "Pashto", localizedName: "پښتو" },
2389
2401
  "pt-BR": { englishName: "Portuguese (Brazil)", localizedName: "Português (Brasil)" },
2390
2402
  "pt-PT": { englishName: "Portuguese (Portugal)", localizedName: "Português (Portugal)" },
2391
2403
  "ro": { englishName: "Romanian", localizedName: "Română" },
2392
2404
  "ru": { englishName: "Russian", localizedName: "Русский" },
2405
+ "sat": { englishName: "Santali", localizedName: "ᱥᱚᱸᱴᱚᱞᱤ" },
2393
2406
  "si-LK": { englishName: "Sinhala", localizedName: "සිංහල" },
2394
2407
  "sk": { englishName: "Slovak", localizedName: "Slovenčina" },
2395
2408
  "sl": { englishName: "Slovenian", localizedName: "Slovenski" },
2409
+ "sq": { englishName: "Albanian", localizedName: "shqip" },
2396
2410
  "sr": { englishName: "Serbian (Latin)", localizedName: "Srpski" },
2397
2411
  "su": { englishName: "Sundanese", localizedName: "ᮘᮞ ᮞᮥᮔ᮪ᮓ" },
2398
2412
  "sv-SE": { englishName: "Swedish", localizedName: "Svenska" },
2413
+ "sw": { englishName: "Swahili", localizedName: "Kiswahili" },
2414
+ "sw-TZ": { englishName: "Swahili (Tanzania)", localizedName: "Kiswahili (Tanzania)" },
2399
2415
  "ta": { englishName: "Tamil", localizedName: "தமிழ்" },
2400
2416
  "te": { englishName: "Telugu", localizedName: "తెలుగు" },
2401
2417
  "th": { englishName: "Thai", localizedName: "ภาษาไทย" },
@@ -16702,6 +16718,17 @@ var pxt;
16702
16718
  const patches = pxt.appTarget.compile ? pxt.appTarget.compile.patches : undefined;
16703
16719
  if (!patches)
16704
16720
  return undefined;
16721
+ return parsePatches(version, patches, kind);
16722
+ }
16723
+ patching.computePatches = computePatches;
16724
+ function computePyPatches(version, kind) {
16725
+ const patches = pxt.appTarget.compile ? pxt.appTarget.compile.pyPatches : undefined;
16726
+ if (!patches)
16727
+ return undefined;
16728
+ return parsePatches(version, patches, kind);
16729
+ }
16730
+ patching.computePyPatches = computePyPatches;
16731
+ function parsePatches(version, patches, kind) {
16705
16732
  const v = pxt.semver.tryParse(version || "0.0.0") || pxt.semver.tryParse("0.0.0");
16706
16733
  let r = [];
16707
16734
  Object.keys(patches)
@@ -16711,7 +16738,6 @@ var pxt;
16711
16738
  r = r.filter(p => p.type == kind);
16712
16739
  return r.length ? r : undefined;
16713
16740
  }
16714
- patching.computePatches = computePatches;
16715
16741
  function upgradePackageReference(pkgTargetVersion, pkg, val) {
16716
16742
  if (val != "*")
16717
16743
  return pkg;
@@ -16731,6 +16757,15 @@ var pxt;
16731
16757
  patching.upgradePackageReference = upgradePackageReference;
16732
16758
  function patchJavaScript(pkgTargetVersion, fileContents) {
16733
16759
  const upgrades = pxt.patching.computePatches(pkgTargetVersion);
16760
+ return patchTextCode(pkgTargetVersion, fileContents, upgrades);
16761
+ }
16762
+ patching.patchJavaScript = patchJavaScript;
16763
+ function patchPython(pkgTargetVersion, fileContents) {
16764
+ const upgrades = pxt.patching.computePyPatches(pkgTargetVersion);
16765
+ return patchTextCode(pkgTargetVersion, fileContents, upgrades);
16766
+ }
16767
+ patching.patchPython = patchPython;
16768
+ function patchTextCode(pkgTargetVersion, fileContents, upgrades) {
16734
16769
  let updatedContents = fileContents;
16735
16770
  if (upgrades) {
16736
16771
  upgrades.filter(u => u.type === "api").forEach(rule => {
@@ -16750,7 +16785,6 @@ var pxt;
16750
16785
  }
16751
16786
  return updatedContents;
16752
16787
  }
16753
- patching.patchJavaScript = patchJavaScript;
16754
16788
  })(patching = pxt.patching || (pxt.patching = {}));
16755
16789
  })(pxt || (pxt = {}));
16756
16790
  var pxt;