From 3fb3cf0e60a40e486a320935628b24dca288ff4e Mon Sep 17 00:00:00 2001 From: Daniel Salazar Date: Fri, 24 Oct 2025 12:52:58 -0700 Subject: [PATCH] fix: simplify export import typedef (#1818) * fix: simplify export import typedef * feat: expose kvstore methods in the service too * chore: update versioning --- extensions/api.d.ts | 14 +++++--------- package-lock.json | 2 +- .../src/services/repositories/DBKVStore/index.mjs | 4 ++++ src/puter-js/package-lock.json | 4 ++-- src/puter-js/package.json | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/extensions/api.d.ts b/extensions/api.d.ts index 48024d90..2a4ab696 100644 --- a/extensions/api.d.ts +++ b/extensions/api.d.ts @@ -1,10 +1,10 @@ import type { Actor } from '@heyputer/backend/src/services/auth/Actor.js'; import type { MeteringService } from '@heyputer/backend/src/services/MeteringService/MeteringService.ts'; +import type { MeteringServiceWrapper } from '@heyputer/backend/src/services/MeteringService/MeteringServiceWrapper.mjs'; import type { DBKVStore } from '@heyputer/backend/src/services/repositories/DBKVStore/DBKVStore.ts'; import type { SUService } from '@heyputer/backend/src/services/SUService.js'; import type { RequestHandler } from 'express'; import type helpers from '../src/backend/src/helpers.js'; - declare global { namespace Express { interface Request { @@ -37,20 +37,16 @@ interface CoreRuntimeModule { } } -type StripPrefix = T extends `${TPrefix}.${infer R}` ? R : never; -// TODO DS: define this globally in core to use it there too interface ServiceNameMap { - 'meteringService': { meteringService: MeteringService } & MeteringService // TODO DS: squash into a single class without wrapper + 'meteringService': Pick & MeteringService // TODO DS: squash into a single class without wrapper 'puter-kv': DBKVStore 'su': SUService - } interface Extension extends RouterMethods { - import(module: T): T extends `service:${infer R extends keyof ServiceNameMap}` + import(module:'core'): CoreRuntimeModule, + import(module: T): T extends `service:${infer R extends keyof ServiceNameMap}` ? ServiceNameMap[R] - : T extends 'core' - ? CoreRuntimeModule - : unknown; + : unknown; } declare global { diff --git a/package-lock.json b/package-lock.json index ff5f8de0..d258d3f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20075,7 +20075,7 @@ }, "src/puter-js": { "name": "@heyputer/puter.js", - "version": "2.1.1", + "version": "2.1.2", "license": "Apache-2.0", "dependencies": { "@heyputer/kv.js": "^0.2.1", diff --git a/src/backend/src/services/repositories/DBKVStore/index.mjs b/src/backend/src/services/repositories/DBKVStore/index.mjs index 0aa8845d..7a693418 100644 --- a/src/backend/src/services/repositories/DBKVStore/index.mjs +++ b/src/backend/src/services/repositories/DBKVStore/index.mjs @@ -11,6 +11,10 @@ export class DBKVServiceWrapper extends BaseService { meteringService: this.services.get('meteringService').meteringService, globalConfig: this.global_config, }); + Object.getOwnPropertyNames(DBKVStore.prototype).forEach(fn => { + if ( fn === 'constructor' ) return; + this[fn] = (...args) => this.kvStore[fn](args); + }); } static IMPLEMENTS = { ['puter-kvstore']: Object.getOwnPropertyNames(DBKVStore.prototype) diff --git a/src/puter-js/package-lock.json b/src/puter-js/package-lock.json index 94bb2ce8..ba37f102 100644 --- a/src/puter-js/package-lock.json +++ b/src/puter-js/package-lock.json @@ -1,12 +1,12 @@ { "name": "puter", - "version": "2.1.1", + "version": "2.1.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "puter", - "version": "2.1.1", + "version": "2.1.2", "license": "Apache-2.0", "dependencies": { "@heyputer/kv.js": "^0.1.92", diff --git a/src/puter-js/package.json b/src/puter-js/package.json index e1625970..0a00e836 100644 --- a/src/puter-js/package.json +++ b/src/puter-js/package.json @@ -1,6 +1,6 @@ { "name": "@heyputer/puter.js", - "version": "2.1.1", + "version": "2.1.2", "description": "Puter.js - A JavaScript library for interacting with Puter services.", "main": "src/index.js", "types": "index.d.ts",