Skip to content

Commit 831935b

Browse files
committed
deploy: 84352e3
1 parent 348f169 commit 831935b

File tree

29 files changed

+358
-44
lines changed

29 files changed

+358
-44
lines changed

appConfig.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ window.AppConfig = {
2424
"app_notification_url": "assets/notifications/dev/",
2525
"app_update_url": "https://updates.phcode.io/tauri/update-latest-experimental-build.json",
2626
"linting.enabled_by_default": true,
27-
"build_timestamp": "2024-03-21T09:55:50.538Z",
27+
"build_timestamp": "2024-03-23T05:30:58.578Z",
2828
"googleAnalyticsID": "G-P4HJFPDB76",
2929
"googleAnalyticsIDDesktop": "G-VE5BXWJ0HF",
3030
"mixPanelID": "49c4d164b592be2350fc7af06a259bf3",
@@ -36,8 +36,8 @@ window.AppConfig = {
3636
"bugsnagEnv": "development"
3737
},
3838
"name": "Phoenix Code",
39-
"version": "3.4.9-20040",
40-
"apiVersion": "3.4.9",
39+
"version": "3.5.2-20051",
40+
"apiVersion": "3.5.2",
4141
"homepage": "https://core.ai",
4242
"issues": {
4343
"url": "https://github.com/phcode-dev/phoenix/issues"

assets/default-project/en.zip

0 Bytes
Binary file not shown.

assets/sample-projects/HTML5.zip

0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

assets/sample-projects/explore.zip

0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

brackets-min.js

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39050,6 +39050,8 @@ define("extensionsIntegrated/RemoteFileAdapter/main", function (require, exports
3905039050
define("extensionsIntegrated/appUpdater/main", function (require, exports, module) {
3905139051
const AppInit = require("utils/AppInit"),
3905239052
Metrics = require("utils/Metrics"),
39053+
FileSystem = require("filesystem/FileSystem"),
39054+
FileUtils = require("file/FileUtils"),
3905339055
Commands = require("command/Commands"),
3905439056
CommandManager = require("command/CommandManager"),
3905539057
Menus = require("command/Menus"),
@@ -39358,13 +39360,56 @@ define("extensionsIntegrated/appUpdater/main", function (require, exports, modul
3935839360
return null;
3935939361
}
3936039362

39363+
async function _extractMacInstaller() {
39364+
const appdataDir = window._tauriBootVars.appLocalDir;
39365+
let extractPlatformPath = path.join(appdataDir, 'installer', "extracted");
39366+
// extract the .app file
39367+
const extractCommand = new window.__TAURI__.shell
39368+
.Command(`tar-unix`, ['-xzf', installerLocation, "-C", extractPlatformPath]);
39369+
let result = await extractCommand.execute();
39370+
if(result.code !== 0){
39371+
console.error("Could not extract installer at", installerLocation, "to", extractPlatformPath);
39372+
throw new Error("Could not extract installer at " + installerLocation + " to " + extractPlatformPath);
39373+
}
39374+
// remove the quarantine flag
39375+
const removeAttrCommand = new window.__TAURI__.shell
39376+
.Command(`mac-remove-quarantine`, ["-rd", "com.apple.quarantine", extractPlatformPath]);
39377+
result = await removeAttrCommand.execute();
39378+
if(result.code !== 0){
39379+
console.error("Could not remove quarantine attribute for", extractPlatformPath, "ignoring...");
39380+
// we can ignore this failure as the user will be asked for permission by os on clicking anyway.
39381+
}
39382+
// now get the .app path from extracted path
39383+
const extractedVirtualPath = window.fs.getTauriVirtualPath(extractPlatformPath);
39384+
let directory = FileSystem.getDirectoryForPath(extractedVirtualPath);
39385+
const {entries} = await directory.getContentsAsync();
39386+
if(entries.length !== 1 || !entries[0].fullPath.includes(".app")){
39387+
throw new Error("Could not resolve .app to update from extracted folder" + extractedVirtualPath);
39388+
}
39389+
installerLocation = FileUtils.stripTrailingSlash(
39390+
window.fs.getTauriPlatformPath(entries[0].fullPath));
39391+
}
39392+
39393+
function _cleanExtractedFolderSilent() {
39394+
return new Promise(resolve=>{
39395+
const appdataDir = window._tauriBootVars.appLocalDir;
39396+
let extractPlatformPath = path.join(appdataDir, 'installer', "extracted");
39397+
const extractedVirtualPath = window.fs.getTauriVirtualPath(extractPlatformPath);
39398+
let directory = FileSystem.getDirectoryForPath(extractedVirtualPath);
39399+
directory.unlinkAsync()
39400+
.catch(console.error)
39401+
.finally(resolve);
39402+
});
39403+
}
39404+
3936139405
async function doMacUpdate() {
39406+
await _extractMacInstaller();
3936239407
const currentAppPath = await getCurrentMacAppPath();
3936339408
if(!currentAppPath || !installerLocation || !currentAppPath.endsWith(".app") ||
3936439409
!installerLocation.endsWith(".app")){
3936539410
throw new Error("Cannot resolve .app location to copy.");
3936639411
}
39367-
const removeCommand = new window.__TAURI__.shell
39412+
let removeCommand = new window.__TAURI__.shell
3936839413
.Command(`recursive-rm-unix`, ['-r', currentAppPath]);
3936939414
let result = await removeCommand.execute();
3937039415
if(result.code !== 0){
@@ -39377,13 +39422,19 @@ define("extensionsIntegrated/appUpdater/main", function (require, exports, modul
3937739422
if(result.code !== 0){
3937839423
throw new Error("Update script exit with non-0 exit code: " + result.code);
3937939424
}
39425+
// now remove the original .app
39426+
await _cleanExtractedFolderSilent();
3938039427
}
3938139428

3938239429
let installerLocation;
3938339430
async function quitTimeAppUpdateHandler() {
3938439431
if(!installerLocation){
3938539432
return;
3938639433
}
39434+
// at this time, the node process have exited and we need to force use tauri apis. This would
39435+
// normally happen as node responds as terminated, but for updates, this is at quit time and we
39436+
// cant wait any longer.
39437+
window.fs.forceUseNodeWSEndpoint(false);
3938739438
console.log("Installing update from: ", installerLocation);
3938839439
return new Promise(resolve=>{
3938939440
// this should never reject as it happens in app quit. rejecting wont affect quit, but its unnecessary.
@@ -39437,6 +39488,19 @@ define("extensionsIntegrated/appUpdater/main", function (require, exports, modul
3943739488
// app updates are only for desktop builds
3943839489
return;
3943939490
}
39491+
if (brackets.platform === "mac") {
39492+
// in mac, the `update.app.tar.gz` is downloaded, and only extracted on app quit.
39493+
// we do this only in mac as the `.app` file is extracted only at app quit and deleted
39494+
// and if we see the `extracted file` at app boot, it means the update was broken,and we clear
39495+
// the updated folder. if not, the extracted app may be corrupt, or mac will show that app
39496+
// too in the finder `open with` section.
39497+
// in windows, the `setup.exe.zip` is downloaded and extracted to `setup.exe`. The exe is executed
39498+
// only on app quit. so if we do this in windows, the extracted installer.exe will be
39499+
// deleted on new widow create and the final update will fail if other windows were opened
39500+
// after the installer was downloaded and extracted.
39501+
// in Linux, it is an online installer, nothing is downloaded.
39502+
_cleanExtractedFolderSilent();
39503+
}
3944039504
updaterWindow = window.__TAURI__.window.WebviewWindow.getByLabel(TAURI_UPDATER_WINDOW_LABEL);
3944139505
window.__TAURI__.event.listen("updater-event", (receivedEvent)=> {
3944239506
console.log("received Event updater-event", receivedEvent);

cacheManifest.json

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"appConfig.js": "1563889d09d19cfbc8f1e18f5fce8325e3b1292f238b292691cc308c48365589",
3-
"assets/default-project/en.zip": "4668db031a74e382acbc455eac9062bd9b9f583711d828f8e7b62c32925bb304",
2+
"appConfig.js": "6dc53606ef3c8011755b102fd2508940780f6ceca0e11cf8d4a13cdc6e4e6c63",
3+
"assets/default-project/en.zip": "90d9072bb7b3f1da4eb01f72f2f01c86278f89a9e852015ef61874e5de9265e7",
44
"assets/default-project/en/images/cloud1.svg": "527399dadfa3357c3ee1a63d6c1c7dda81ecebb832f7383db26f1aaeaf722a8d",
55
"assets/default-project/en/images/cloud2.svg": "8127c63c0987bc674e2d25f7d24ead017853326c1e43d07706fec46091904418",
66
"assets/default-project/en/images/cloud3.svg": "15de53aa41dea3b0f685292814563f97213a9736c3cec2f8e17b5d9d45b3ae3d",
@@ -124,7 +124,7 @@
124124
"assets/pwa/32x32.png": "4f8f75bfcdb6efbbed1732f49edab4e292274cdeb1841e285ccc8194f4c9d8ac",
125125
"assets/pwa/phoenix.png": "d292bf76d6d61fdece2f97fb4cd71b8b0060d1058e9c1d02c94bfb20da8b7f0d",
126126
"assets/pwa/Square284x284Logo.png": "9887c2967039b4fae1214817925f1fb4f9227cba12d37612457c1c8ee1110c67",
127-
"assets/sample-projects/bootstrap-blog.zip": "57948ba242b4131f73bc8921cdf8066f3b022ee9c5e3ba71618d4722b70ce89f",
127+
"assets/sample-projects/bootstrap-blog.zip": "c53ca5c6cdc4f0814a52f3e81ead3796a979aac3f0ee0bcfd2360aa9a6d426ac",
128128
"assets/sample-projects/bootstrap-blog/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf",
129129
"assets/sample-projects/bootstrap-blog/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2",
130130
"assets/sample-projects/bootstrap-blog/assets/dist/css/bootstrap.min.css": "fb1763b59f9f5764294b5af9fa5250835ae608282fe6f2f2213a5952aacf1fbf",
@@ -134,7 +134,7 @@
134134
"assets/sample-projects/bootstrap-blog/blog.rtl.css": "33f49d02bbcb2e78f019b7582408fad2b5a76a2ecf79fe09d5b3c08c6ee3872b",
135135
"assets/sample-projects/bootstrap-blog/index-rtl.html": "c582278884060098ff51b9d350b0739e1a0396debdc76772c62b6ec375b6efcb",
136136
"assets/sample-projects/bootstrap-blog/index.html": "f4716c2affa299a27ab6f8c74c22fe67564f1b1d36ff2f0b322672bf0479d739",
137-
"assets/sample-projects/dashboard.zip": "383a5df9eac5324c51e3eaee5e3c1cdeb586a6cf2b15813ca854262133ca5525",
137+
"assets/sample-projects/dashboard.zip": "09ab5de2d79434b90f96b9ab4193d6826b2e09dd54473bf08bdf4bcfb7edc657",
138138
"assets/sample-projects/dashboard/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf",
139139
"assets/sample-projects/dashboard/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2",
140140
"assets/sample-projects/dashboard/assets/dist/css/bootstrap.min.css": "fb1763b59f9f5764294b5af9fa5250835ae608282fe6f2f2213a5952aacf1fbf",
@@ -146,7 +146,7 @@
146146
"assets/sample-projects/dashboard/index.html": "1fb0c934f816d728cad85e180f78369679dc9edb1eca2d5c625b9360e6264235",
147147
"assets/sample-projects/dashboard/signin.css": "083bef710a6170a5112ce257c2ecf8580ca97ce19136d770f10460e5b85862de",
148148
"assets/sample-projects/dashboard/signin.html": "8c602e656631aeee624673397c0dc00c339498914ed930ab177478c4662a8d26",
149-
"assets/sample-projects/explore.zip": "c9f9060ec6c780c24b7265bfc35ec2574c0e5b42673f450c27378548f0895883",
149+
"assets/sample-projects/explore.zip": "da08c71d0d80046ad7ffbdff9f97cade77e9784890d64ab401dedfea4c9b535a",
150150
"assets/sample-projects/explore/A-tribute-page.html": "bd510c60f444058b7fcb71d83841f32b1cb5193c1a39421d7739bd6af9fef248",
151151
"assets/sample-projects/explore/adjustable-fireworks.html": "11e69bb2dd8708ed8fbf1acc62b0aaaf88c7ffec859ee958dc1ae51cd53ddac8",
152152
"assets/sample-projects/explore/ant_colony.html": "bc9435ed1b9868f2fbc7212d526f7532c533a5fdf45da988fa5e575bc5f363b7",
@@ -236,7 +236,7 @@
236236
"assets/sample-projects/explore/watermelon-pixel.html": "765a3fbffb5db97910512fbabaa7c55c0b52dc8eedfcc630811be39d0af98663",
237237
"assets/sample-projects/explore/webmine.html": "6b808f52812dc03db28483411500c04daf8ee0226f535c600a36999d6b7837c0",
238238
"assets/sample-projects/explore/whack-a-mole.html": "25be94a3640553b4801f80edd49998bae3a360988e8a26ff3bdfdc2a76b77191",
239-
"assets/sample-projects/home-pages.zip": "d6576ad73d3875a4d6255c9f5c53a12d8c2b16be9f30cf3dd427b87097b945f2",
239+
"assets/sample-projects/home-pages.zip": "0b887e99e210f6eca38b00ce90fa2f6d9f3509646fe19c71da192fa33b3721b3",
240240
"assets/sample-projects/home-pages/album/index.html": "e29a1e96644bc17bab1a7e3724e822d65a479e10df182725ee1afa916efbfdc1",
241241
"assets/sample-projects/home-pages/assets/brand/bootstrap-logo-white.svg": "203d56e7e5e15d8203e596d4a711cec986f6380064591de21850f4563fb840bf",
242242
"assets/sample-projects/home-pages/assets/brand/bootstrap-logo.svg": "df11d37a123e36a768f2a6064973c4c6ab17d1e3c6501c8bf434ca5c0134c9a2",
@@ -248,19 +248,19 @@
248248
"assets/sample-projects/home-pages/carousel/index.html": "235d650043a09f2954f24e4659f64d99ef3988858567fb2221fb1cf34df057e6",
249249
"assets/sample-projects/home-pages/cover/cover.css": "2fbb596077c570cad7ee9e98fb88f5665e0ecfc11e7085c3e04639ad03f7bc10",
250250
"assets/sample-projects/home-pages/cover/index.html": "759214701ff759432711b3421d80aca692c7a2b4c978c516a0bcd0c81a43f381",
251-
"assets/sample-projects/HTML5.zip": "708a4341579aed9e788bb78f5f7915237bf9f65d0f2c95768b762bbaf66f817a",
251+
"assets/sample-projects/HTML5.zip": "c8256ac39817ddcc381aa9e44cfe9e3436838679cb48d0705d3ae5e202b92726",
252252
"assets/sample-projects/HTML5/index.html": "2dc94c7d3e33aeeb44ec4f75bc7df86a5fd19f3121f2fd3638636fbf7c476c6a",
253253
"assets/sample-projects/HTML5/script.js": "c49e4b01cded4defbc21f5d5d0102719ce4cccbe1b9cb19f9232c5a05df658da",
254254
"assets/sample-projects/HTML5/styles.css": "744b85a9c31affbb00976694c4b9c9149b31e575ed9efdec386231d062ae93f2",
255255
"assets/sample-projects/new-project-list.json": "be1c907279163610779b000aa9ea6e4b035e07429203f16445a914c7045f2d64",
256256
"assets/sample-projects/zips/bootstrap.zip": "6f10407c00ce5d598e77f890528743dc645bc28014335483992b481e63fd7b97",
257257
"base-config/keyboard.json": "fc032682675e1f7d576374b080b97aaaa48a69ab47f15dab1c7f112853024f3d",
258258
"base-config/readme-keyboard.md": "27e98128176dbd060e93b1f321a4ddcd609571b7b8eb8c9112588f4767d08a03",
259-
"brackets-min.js": "55c7b87690b74fd21474ea186384e36c31261a6f6ed0b574fec099cdd1898bce",
259+
"brackets-min.js": "9fe22d0a3ab45b59ff6f3bb3b527928a840997b30ea1e44437c2c097082f9148",
260260
"brackets.config.dist.json": "8faa5c0a82bb4f49784e93d1225dbd5e1fd8ec6ab07b95f5f874c7c7bd7bb234",
261261
"brackets.config.staging.json": "c0e1f22c772c80f4f5756ab947e40538bcaf7fb7f8925834cfd4ef57c55e477a",
262262
"brackets.js": "5cfda5788870e89d590dd6b080e5a48f913eb29aaebbeef4a2a0db7a87870d4d",
263-
"cacheManifest.json": "101169b476002009785cd8256cb35a0107b1b2796d73d13c90aa81567776f231",
263+
"cacheManifest.json": "bc869c8cc8e9ddc4d85ba4be5fd7c390b3b46fb87de1d1d9c93da0d1787e2a5b",
264264
"command/ChangeShortcutTemplate.html": "345d682d8bde29380822824778cf09acc79affae6e82b9db00c6205b2b3dd2ee",
265265
"command/CommandManager.js": "0600518322584495bbbfae76ed2bb39e416de3735ee65b12c63a2b3e6b3423ca",
266266
"command/Commands.js": "46217a4558df267cb6a4ac8d1bd528158c9301ca0c2b8c070b83ebcafcdba8c6",
@@ -269,7 +269,7 @@
269269
"command/KeyboardOverlayMode.js": "330c879131057b24b340cf29f16aa39845c104e2ec866c5b580d9d619f33fafe",
270270
"command/Keys.js": "31cd87a01ce41de28e56ccbdd4fa14866cccc2b7bcde61c5134095adaa5cb674",
271271
"command/Menus.js": "c31266bdd68f4c83e2aed71a6a89551d51bc63b3ed66e67dec94e1d9ae77859f",
272-
"config.json": "87506f9484e9ee735fd3809e53bcfa24f500e1cfc82a0cbd93dfe0cd6f553cf9",
272+
"config.json": "e68de7984b18880397192b7a60e548667228838a1fcd9198b41ec485ebbf9547",
273273
"desktop-metrics.html": "ca46d36aec85f715746d1b90af09664c98e17b8262e5b141eee69bdb9d2b1c89",
274274
"devEnable.html": "44aa1a496a8be413299f651e6b0c3e62ac50cd5d40126ad1bb6b70b9b2b818c4",
275275
"document/ChangedDocumentTracker.js": "03b0eaf0995fee6d27c782a8028a1314f61214e383f5f5e198320b2faac4cf40",
@@ -278,6 +278,7 @@
278278
"document/DocumentManager.js": "d010497d0e190b21fd0c66092e3997331ba58485992d32fd6a913632be8050eb",
279279
"document/InMemoryFile.js": "7ae9dbae506e8cfd8d6db74c3c65bf07e93779e8a5a503cb0031841209c15fda",
280280
"document/TextRange.js": "6e5312ca03ed80864092da7347de08a5db17b659ab08fab72cb4786c07abe157",
281+
"download/index.html": "15bb74a61d9d2146f1e511dabef0d5d259517310d50eba4115ca6fa507e788b1",
281282
"editor/CodeHintList.js": "6096c899dadeefe3ea832a30eaad4237748cf21d3847c680085b6bbd39958c31",
282283
"editor/CodeHintManager.js": "265143b195925dbff8e34ccee321530c0bd491d3185e0cbf707bbdd1cef5e070",
283284
"editor/CSSInlineEditor.js": "20329138aea67b56f34a8d0772caab6a9a944db6ef7ac491a4be4cd8ed89c4cd",
@@ -534,7 +535,7 @@
534535
"extensions/samples/LocalizationExample/strings.js": "8f409ada5111ea813452b73247e602ad05acff05788a8bb67c051389ca4c66d9",
535536
"extensions/samples/README.md": "381c6647cc6f90bd8c609b5896cfcdf78bcae2b3a9660c204d8b744a21436df6",
536537
"extensions/samples/TypingSpeedLogger/main.js": "87327584d6ebaa4e69ee7a8b4972951baeb01869f22b7c971736524cecd3137f",
537-
"extensionsIntegrated/appUpdater/main.js": "56283f9cd32bfcfdae506ce7995f0443550b955ea0ea97bdac4b4127470fb184",
538+
"extensionsIntegrated/appUpdater/main.js": "f369995f790dbce55779cae3bd739ebc2e8ba2f20caffe353dc3103748972310",
538539
"extensionsIntegrated/DisplayShortcuts/main.js": "7e1da43b8bb17a8de1372c0df54a968190231eacc1ac9274b8da174c0082f4ce",
539540
"extensionsIntegrated/DisplayShortcuts/package.json": "385efa285cafdd7695557c66ac1d7a925aab824362a2a8f6e60dbf195d3239dd",
540541
"extensionsIntegrated/DisplayShortcuts/templates/bottom-panel.html": "bcb54e703c4153122500df098190afaaf885d03524eb52f8e0d57513641985de",
@@ -627,7 +628,7 @@
627628
"htmlContent/update-dialog.html": "1439bdbf5e74d28edac7fb5ca95eb5d78b7062f2a9f32ac29b47260d43e07fdd",
628629
"htmlContent/update-list.html": "e4e0179e5e5c667e7adc3d5628bfc0f14409c45c935040d0639410de33ed75ad",
629630
"htmlContent/working-set.html": "98b44358fcc4165f464e3f6b8c5ca1b48f9f80c231b05b1174a53428ebc8a2f3",
630-
"index.html": "d4676b76f18e4fe8564cee3b62c96abd03c7ae04a19d5c954f50b5cfaae03b49",
631+
"index.html": "fc7bdb5353735a5028273514669ea268f4b6703289b6186b01bbcae8934ccaa7",
631632
"JSUtils/HintUtils.js": "22066319a80e889b524eb8b102063c0114c06b28a1787e8d87755dd1100e0cfc",
632633
"JSUtils/MessageIds.json": "b6245e8da247f0ad6d29cea3a8564a4d0e8099f5aba3a6999322f5407c6ac210",
633634
"JSUtils/package.json": "43b37b698223d0c641d9d6b4705f08cd5fd8cf007d8bf746578e0f3d70b90c68",
@@ -903,7 +904,7 @@
903904
"search/SearchModel.js": "307d9f70686f7cb90104c60b1b7dd27096449a7bda15b1148206ffceff5fc28c",
904905
"search/SearchResultsView.js": "82c0b38b6913beec1d5aae185a3c34472b13dd4a2833838c867c23bba989d2b1",
905906
"search/worker/search.js": "00d7411e197d8efe7bda77df31e2a141f7c7e5b4d4ab325c24a7a958ef100af1",
906-
"sitemap-phcode.xml": "55f37ed9b049d486733679b2dd5826076e9cb040f50599919094a7a282a12a66",
907+
"sitemap-phcode.xml": "9a4c5fa804a34fa09075f8d817eb861f7794466fa81c323d2532560466adb60a",
907908
"storage.js": "980f39b4a7ffb772205629feb0c356fb9d962459f367d2b0db4ecd9bf912b7fd",
908909
"strings.js": "cfd950f720d6b65c4125f98432f323a2ce42b2d73158ac54dbc009ca96f7a3b4",
909910
"styles/bootstrap/accordion.less": "3a6c3293afe861b75fd205f7c7a22e4e1607a15f63b9b2ef1cec1de2192a15f9",

config.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"app_notification_url": "assets/notifications/dev/",
2424
"app_update_url": "https://updates.phcode.io/tauri/update-latest-experimental-build.json",
2525
"linting.enabled_by_default": true,
26-
"build_timestamp": "2024-03-21T09:55:50.538Z",
26+
"build_timestamp": "2024-03-23T05:30:58.578Z",
2727
"googleAnalyticsID": "G-P4HJFPDB76",
2828
"googleAnalyticsIDDesktop": "G-VE5BXWJ0HF",
2929
"mixPanelID": "49c4d164b592be2350fc7af06a259bf3",
@@ -35,8 +35,8 @@
3535
"bugsnagEnv": "development"
3636
},
3737
"name": "Phoenix Code",
38-
"version": "3.4.9-20040",
39-
"apiVersion": "3.4.9",
38+
"version": "3.5.2-20051",
39+
"apiVersion": "3.5.2",
4040
"homepage": "https://core.ai",
4141
"issues": {
4242
"url": "https://github.com/phcode-dev/phoenix/issues"

0 commit comments

Comments
 (0)