diff --git a/package-lock.json b/package-lock.json index 0b1c2824..2a73bfe0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10789,7 +10789,7 @@ }, "packages/backend": { "name": "@heyputer/backend", - "version": "1.0.0", + "version": "2.0.2", "license": "AGPL-3.0-only", "workspaces": [ "packages/*" diff --git a/packages/backend/src/CoreModule.js b/packages/backend/src/CoreModule.js index 5357b3e8..317c4e1d 100644 --- a/packages/backend/src/CoreModule.js +++ b/packages/backend/src/CoreModule.js @@ -43,6 +43,11 @@ module.exports = CoreModule; const install = async ({ services, app }) => { const config = require('./config'); + // /!\ IMPORTANT /!\ + // For new services, put the import immediate above the + // call to services.registerService. We'll clean this up + // in a future PR. + const { LogService } = require('./services/runtime-analysis/LogService'); const { PagerService } = require('./services/runtime-analysis/PagerService'); const { AlarmService } = require('./services/runtime-analysis/AlarmService'); @@ -182,6 +187,8 @@ const install = async ({ services, app }) => { const { EventService } = require('./services/EventService'); services.registerService('event', EventService); + const { PuterVersionService } = require('./services/PuterVersionService'); + services.registerService('puter-version', PuterVersionService); } const install_legacy = async ({ services }) => { @@ -192,7 +199,6 @@ const install_legacy = async ({ services }) => { const PerformanceMonitor = require('./monitor/PerformanceMonitor'); const { OperationTraceService } = require('./services/OperationTraceService'); const { WSPushService } = require('./services/WSPushService'); - const { PuterVersionService } = require('./services/PuterVersionService'); const { ReferralCodeService } = require('./services/ReferralCodeService'); const { Emailservice } = require('./services/EmailService'); const { ClientOperationService } = require('./services/ClientOperationService'); @@ -207,7 +213,6 @@ const install_legacy = async ({ services }) => { services.registerService('filesystem', FilesystemService); services.registerService('operationTrace', OperationTraceService); services.registerService('__event-push-ws', WSPushService); - services.registerService('puter-version', PuterVersionService); services.registerService('referral-code', ReferralCodeService); services.registerService('email', Emailservice); services.registerService('file-cache', FileCacheService); diff --git a/packages/backend/src/services/PuterAPIService.js b/packages/backend/src/services/PuterAPIService.js index a285ef94..d8d33f82 100644 --- a/packages/backend/src/services/PuterAPIService.js +++ b/packages/backend/src/services/PuterAPIService.js @@ -22,7 +22,6 @@ class PuterAPIService extends BaseService { async ['__on_install.routes'] () { const { app } = this.services.get('web-server'); - app.use(require('../routers/version')) app.use(require('../routers/apps')) app.use(require('../routers/query/app')) app.use(require('../routers/change_username')) diff --git a/packages/backend/src/services/PuterVersionService.js b/packages/backend/src/services/PuterVersionService.js index 3977902d..108cf2f5 100644 --- a/packages/backend/src/services/PuterVersionService.js +++ b/packages/backend/src/services/PuterVersionService.js @@ -16,66 +16,26 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -const { AdvancedBase } = require("puter-js-common"); -const { NodeUIDSelector } = require("../filesystem/node/selectors"); -const { get_user } = require("../helpers"); -const { TeePromise } = require("../util/promise"); -const { StreamBuffer } = require("../util/streamutil"); +const BaseService = require("./BaseService"); -class PuterVersionService extends AdvancedBase { - static MODULES = { - _path: require('path'), - fs: require('fs'), - _exec: require('child_process').execSync, - axios: require('axios'), +class PuterVersionService extends BaseService { + async _init () { + this.boot_time = Date.now(); } - constructor ({ services, config }) { - super(); - this.fs = services.get('filesystem'); - this.config = config; - - this._init({ config }); - this.ready_ = new TeePromise(); - } - - async _init ({ config }) { - // this.node = await this.fs.node(new NodeUIDSelector(config.puter_hosted_data.puter_versions)); - // this.user = await get_user({ username: 'puter' }); - - // await this._poll_versions({ config }); - - // setInterval(async () => { - // await this._poll_versions({ config }); - // }, 60 * 1000); - } - - // not used anymore - this was for getting version numbers from a file hosted on puter - async _poll_versions ({ config }) { - const resp = await this.modules.axios.get( - config.puter_hosted_data.puter_versions - ); - this.versions_ = resp.data.versions; - this.ready_.resolve(); + async ['__on_install.routes'] () { + const { app } = this.services.get('web-server'); + app.use(require('../routers/version')); } get_version () { - let deploy_timestamp; - if ( this.config.env === 'dev' ) { - deploy_timestamp = Date.now(); - } else { - deploy_timestamp = Number.parseInt((this.modules.fs.readFileSync( - this.modules._path.join(__dirname, '../../deploy_timestamp'), - 'utf8' - )).trim()); - } const version = process.env.npm_package_version || require('../../package.json').version; return { version, - environment: this.config.env, - location: this.config.server_id, - deploy_timestamp, + environment: this.global_config.env, + location: this.global_config.server_id, + deploy_timestamp: this.boot_time, }; } }