diff --git a/package-lock.json b/package-lock.json
index 140dc5a2..6a07b082 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -43,7 +43,7 @@
"dependencies": {
"@heyputer/kv.js": "^0.1.3",
"@heyputer/multest": "^0.0.2",
- "@heyputer/putil": "^1.0.0",
+ "@heyputer/putility": "^1.0.0",
"@opentelemetry/api": "^1.4.1",
"@opentelemetry/auto-instrumentations-node": "^0.43.0",
"@opentelemetry/exporter-trace-otlp-grpc": "^0.40.0",
@@ -195,7 +195,7 @@
"webpack-cli": "^5.1.4"
}
},
- "asdf/putil": {
+ "asdf/putility": {
"version": "1.0.0",
"extraneous": true,
"license": "UNLICENSED"
@@ -2605,8 +2605,8 @@
"resolved": "src/puter-js",
"link": true
},
- "node_modules/@heyputer/putil": {
- "resolved": "src/putil",
+ "node_modules/@heyputer/putility": {
+ "resolved": "src/putility",
"link": true
},
"node_modules/@heyputer/terminal": {
@@ -16446,7 +16446,7 @@
"dependencies": {
"@heyputer/kv.js": "^0.1.3",
"@heyputer/multest": "^0.0.2",
- "@heyputer/putil": "^1.0.0",
+ "@heyputer/putility": "^1.0.0",
"@opentelemetry/api": "^1.4.1",
"@opentelemetry/auto-instrumentations-node": "^0.43.0",
"@opentelemetry/exporter-trace-otlp-grpc": "^0.40.0",
@@ -16621,8 +16621,8 @@
"webpack-cli": "^5.1.4"
}
},
- "packages/putil": {
- "name": "@heyputer/putil",
+ "packages/putility": {
+ "name": "@heyputer/putility",
"version": "1.0.0",
"extraneous": true,
"license": "UNLICENSED"
@@ -16666,7 +16666,7 @@
"@aws-sdk/client-textract": "^3.621.0",
"@heyputer/kv.js": "^0.1.3",
"@heyputer/multest": "^0.0.2",
- "@heyputer/putil": "^1.0.0",
+ "@heyputer/putility": "^1.0.0",
"@mistralai/mistralai": "^1.0.3",
"@opentelemetry/api": "^1.4.1",
"@opentelemetry/auto-instrumentations-node": "^0.43.0",
@@ -16911,10 +16911,10 @@
"version": "1.0.0",
"license": "AGPL-3.0-only"
},
- "src/putil": {
- "name": "@heyputer/putil",
+ "src/putility": {
+ "name": "@heyputer/putility",
"version": "1.0.0",
- "license": "UNLICENSED"
+ "license": "AGPL-3.0-only"
},
"src/strataparse": {
"version": "0.0.0",
diff --git a/src/backend/doc/contributors/index.md b/src/backend/doc/contributors/index.md
index a73a5a40..381aeef0 100644
--- a/src/backend/doc/contributors/index.md
+++ b/src/backend/doc/contributors/index.md
@@ -71,7 +71,7 @@ doing the useless work that reveals what the useful work is.
## Underlying Constructs
-- [putil's README.md](../../packages/putil/README.md)
+- [putility's README.md](../../packages/putility/README.md)
- Whenever you see `AdvancedBase`, that's from here
- Many things in backend extend this. Anything that doesn't only doesn't
because it was written before `AdvancedBase` existed.
diff --git a/src/backend/doc/contributors/modules.md b/src/backend/doc/contributors/modules.md
index c20816c3..c19b49d6 100644
--- a/src/backend/doc/contributors/modules.md
+++ b/src/backend/doc/contributors/modules.md
@@ -35,7 +35,7 @@ To function properly, Puter needs **CoreModule**, a database module,
and a storage module.
A module extends
-[AdvancedBase](../../../putil/README.md)
+[AdvancedBase](../../../putility/README.md)
and implements
an `install` method. The install method has one parameter, a
[Context](../../src/util/context.js)
diff --git a/src/backend/package.json b/src/backend/package.json
index ec2f197d..7794c4ae 100644
--- a/src/backend/package.json
+++ b/src/backend/package.json
@@ -12,7 +12,7 @@
"@aws-sdk/client-textract": "^3.621.0",
"@heyputer/kv.js": "^0.1.3",
"@heyputer/multest": "^0.0.2",
- "@heyputer/putil": "^1.0.0",
+ "@heyputer/putility": "^1.0.0",
"@mistralai/mistralai": "^1.0.3",
"@opentelemetry/api": "^1.4.1",
"@opentelemetry/auto-instrumentations-node": "^0.43.0",
diff --git a/src/backend/src/CoreModule.js b/src/backend/src/CoreModule.js
index f9026030..6f3dc243 100644
--- a/src/backend/src/CoreModule.js
+++ b/src/backend/src/CoreModule.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const Library = require("./definitions/Library");
const { NotificationES } = require("./om/entitystorage/NotificationES");
const { ProtectedAppES } = require("./om/entitystorage/ProtectedAppES");
diff --git a/src/backend/src/DatabaseModule.js b/src/backend/src/DatabaseModule.js
index 1ba54a74..02abeb4e 100644
--- a/src/backend/src/DatabaseModule.js
+++ b/src/backend/src/DatabaseModule.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
class DatabaseModule extends AdvancedBase {
async install (context) {
diff --git a/src/backend/src/Kernel.js b/src/backend/src/Kernel.js
index abcd1630..f3747bb7 100644
--- a/src/backend/src/Kernel.js
+++ b/src/backend/src/Kernel.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { Context } = require('./util/context');
const BaseService = require("./services/BaseService");
const useapi = require('useapi');
diff --git a/src/backend/src/LocalDiskStorageModule.js b/src/backend/src/LocalDiskStorageModule.js
index 65736f9b..56a25b50 100644
--- a/src/backend/src/LocalDiskStorageModule.js
+++ b/src/backend/src/LocalDiskStorageModule.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
class LocalDiskStorageModule extends AdvancedBase {
async install (context) {
diff --git a/src/backend/src/PuterDriversModule.js b/src/backend/src/PuterDriversModule.js
index c828080a..7cb6e55e 100644
--- a/src/backend/src/PuterDriversModule.js
+++ b/src/backend/src/PuterDriversModule.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
class PuterDriversModule extends AdvancedBase {
async install () {}
diff --git a/src/backend/src/ThirdPartyDriversModule.js b/src/backend/src/ThirdPartyDriversModule.js
index 9c0486a8..ed70278b 100644
--- a/src/backend/src/ThirdPartyDriversModule.js
+++ b/src/backend/src/ThirdPartyDriversModule.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
class ThirdPartyDriversModule extends AdvancedBase {
// constructor () {
diff --git a/src/backend/src/boot/RuntimeEnvironment.js b/src/backend/src/boot/RuntimeEnvironment.js
index b602a753..339cca08 100644
--- a/src/backend/src/boot/RuntimeEnvironment.js
+++ b/src/backend/src/boot/RuntimeEnvironment.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { quot } = require("../util/strutil");
const { TechnicalError } = require("../errors/TechnicalError");
const { print_error_help } = require("../errors/error_help_details");
diff --git a/src/backend/src/config/ConfigLoader.js b/src/backend/src/config/ConfigLoader.js
index a9ff1e9d..0bb2bd76 100644
--- a/src/backend/src/config/ConfigLoader.js
+++ b/src/backend/src/config/ConfigLoader.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { quot } = require("../util/strutil");
class ConfigLoader extends AdvancedBase {
diff --git a/src/backend/src/definitions/Driver.js b/src/backend/src/definitions/Driver.js
index 6eaf3f23..ea1e4425 100644
--- a/src/backend/src/definitions/Driver.js
+++ b/src/backend/src/definitions/Driver.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { Context } = require('../util/context')
const APIError = require("../api/APIError");
const { AppUnderUserActorType, UserActorType } = require("../services/auth/Actor");
diff --git a/src/backend/src/filesystem/FilesystemService.js b/src/backend/src/filesystem/FilesystemService.js
index bc47a653..e6de744c 100644
--- a/src/backend/src/filesystem/FilesystemService.js
+++ b/src/backend/src/filesystem/FilesystemService.js
@@ -27,7 +27,7 @@ const SystemFSEntryService = require('./storage/SystemFSEntryService.js');
const PerformanceMonitor = require('../monitor/PerformanceMonitor.js');
const { NodePathSelector, NodeUIDSelector, NodeInternalIDSelector } = require('./node/selectors.js');
const FSNodeContext = require('./FSNodeContext.js');
-const { AdvancedBase } = require('@heyputer/putil');
+const { AdvancedBase } = require('@heyputer/putility');
const { Context } = require('../util/context.js');
const { simple_retry } = require('../util/retryutil.js');
const APIError = require('../api/APIError.js');
diff --git a/src/backend/src/filesystem/batch/BatchExecutor.js b/src/backend/src/filesystem/batch/BatchExecutor.js
index 53f6059f..f7a50ad1 100644
--- a/src/backend/src/filesystem/batch/BatchExecutor.js
+++ b/src/backend/src/filesystem/batch/BatchExecutor.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require('@heyputer/putil');
+const { AdvancedBase } = require('@heyputer/putility');
const PathResolver = require('../../routers/filesystem_api/batch/PathResolver');
const commands = require('./commands').commands;
const { WorkUnit } = require('../../services/runtime-analysis/ExpectationService');
diff --git a/src/backend/src/filesystem/batch/commands.js b/src/backend/src/filesystem/batch/commands.js
index b0ba0c7b..00459b11 100644
--- a/src/backend/src/filesystem/batch/commands.js
+++ b/src/backend/src/filesystem/batch/commands.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { AsyncProviderFeature } = require("../../traits/AsyncProviderFeature");
const { HLMkdir, QuickMkdir } = require("../hl_operations/hl_mkdir");
const { Context } = require("../../util/context");
diff --git a/src/backend/src/filesystem/storage/DatabaseFSEntryService.js b/src/backend/src/filesystem/storage/DatabaseFSEntryService.js
index 88adb0f8..5244857f 100644
--- a/src/backend/src/filesystem/storage/DatabaseFSEntryService.js
+++ b/src/backend/src/filesystem/storage/DatabaseFSEntryService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { id2path } = require("../../helpers");
const { PuterPath } = require("../lib/PuterPath");
diff --git a/src/backend/src/modules/broadcast/BroadcastModule.js b/src/backend/src/modules/broadcast/BroadcastModule.js
index 89dc422f..6b44d715 100644
--- a/src/backend/src/modules/broadcast/BroadcastModule.js
+++ b/src/backend/src/modules/broadcast/BroadcastModule.js
@@ -1,4 +1,4 @@
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
class BroadcastModule extends AdvancedBase {
async install (context) {
diff --git a/src/backend/src/modules/broadcast/BroadcastService.js b/src/backend/src/modules/broadcast/BroadcastService.js
index 1365ab14..4344b103 100644
--- a/src/backend/src/modules/broadcast/BroadcastService.js
+++ b/src/backend/src/modules/broadcast/BroadcastService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const BaseService = require("../../services/BaseService");
const { CLink } = require("./connection/CLink");
const { SLink } = require("./connection/SLink");
diff --git a/src/backend/src/modules/broadcast/connection/BaseLink.js b/src/backend/src/modules/broadcast/connection/BaseLink.js
index e0c4b8a2..7b321c7f 100644
--- a/src/backend/src/modules/broadcast/connection/BaseLink.js
+++ b/src/backend/src/modules/broadcast/connection/BaseLink.js
@@ -1,4 +1,4 @@
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { ChannelFeature } = require("../../../traits/ChannelFeature");
class BaseLink extends AdvancedBase {
diff --git a/src/backend/src/modules/broadcast/connection/KeyPairHelper.js b/src/backend/src/modules/broadcast/connection/KeyPairHelper.js
index 8c24d69f..e9fc1da4 100644
--- a/src/backend/src/modules/broadcast/connection/KeyPairHelper.js
+++ b/src/backend/src/modules/broadcast/connection/KeyPairHelper.js
@@ -1,4 +1,4 @@
-const { AdvancedBase } = require('@heyputer/putil');
+const { AdvancedBase } = require('@heyputer/putility');
class KeyPairHelper extends AdvancedBase {
static MODULES = {
diff --git a/src/backend/src/modules/puterai/PuterAIModule.js b/src/backend/src/modules/puterai/PuterAIModule.js
index 9b6ac6fa..5552b390 100644
--- a/src/backend/src/modules/puterai/PuterAIModule.js
+++ b/src/backend/src/modules/puterai/PuterAIModule.js
@@ -1,4 +1,4 @@
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const config = require("../../config");
class PuterAIModule extends AdvancedBase {
diff --git a/src/backend/src/modules/selfhosted/SelfHostedModule.js b/src/backend/src/modules/selfhosted/SelfHostedModule.js
index 038d6f4c..c35e7f2a 100644
--- a/src/backend/src/modules/selfhosted/SelfHostedModule.js
+++ b/src/backend/src/modules/selfhosted/SelfHostedModule.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const config = require("../../config");
class SelfHostedModule extends AdvancedBase {
@@ -111,6 +111,18 @@ class SelfHostedModule extends AdvancedBase {
'src/puter-js/dist/puter.dev.js'),
route: '/puter.js/v2',
});
+ services.registerService('__serve-putilityjs-new', ServeSingleFileService, {
+ path: path_.resolve(__dirname,
+ RELATIVE_PATH,
+ 'src/putility/dist/putility.dev.js'),
+ route: '/putility.js/v1',
+ });
+ services.registerService('__serve-gui-js', ServeSingleFileService, {
+ path: path_.resolve(__dirname,
+ RELATIVE_PATH,
+ 'src/gui/dist/gui.dev.js'),
+ route: '/putility.js/v1',
+ });
}
}
diff --git a/src/backend/src/modules/test-drivers/TestDriversModule.js b/src/backend/src/modules/test-drivers/TestDriversModule.js
index 3f564ec7..c30756d9 100644
--- a/src/backend/src/modules/test-drivers/TestDriversModule.js
+++ b/src/backend/src/modules/test-drivers/TestDriversModule.js
@@ -1,4 +1,4 @@
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
class TestDriversModule extends AdvancedBase {
async install (context) {
diff --git a/src/backend/src/om/IdentifierUtil.js b/src/backend/src/om/IdentifierUtil.js
index 5eb7eea2..1e1ab9bb 100644
--- a/src/backend/src/om/IdentifierUtil.js
+++ b/src/backend/src/om/IdentifierUtil.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { WeakConstructorFeature } = require("../traits/WeakConstructorFeature");
const { Eq, And } = require("./query/query");
const { Entity } = require("./entitystorage/Entity");
diff --git a/src/backend/src/om/definitions/Mapping.js b/src/backend/src/om/definitions/Mapping.js
index 47a3587b..cae78d14 100644
--- a/src/backend/src/om/definitions/Mapping.js
+++ b/src/backend/src/om/definitions/Mapping.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { instance_ } = require("../../monitor/PerformanceMonitor");
const { WeakConstructorFeature } = require("../../traits/WeakConstructorFeature");
const { Property } = require("./Property");
diff --git a/src/backend/src/om/definitions/PropType.js b/src/backend/src/om/definitions/PropType.js
index 72477819..201d2700 100644
--- a/src/backend/src/om/definitions/PropType.js
+++ b/src/backend/src/om/definitions/PropType.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { WeakConstructorFeature } = require("../../traits/WeakConstructorFeature");
class PropType extends AdvancedBase {
diff --git a/src/backend/src/om/definitions/Property.js b/src/backend/src/om/definitions/Property.js
index 3789da27..dc7c87bf 100644
--- a/src/backend/src/om/definitions/Property.js
+++ b/src/backend/src/om/definitions/Property.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { WeakConstructorFeature } = require("../../traits/WeakConstructorFeature");
class Property extends AdvancedBase {
diff --git a/src/backend/src/om/entitystorage/BaseES.js b/src/backend/src/om/entitystorage/BaseES.js
index ddb49b95..b66f18b0 100644
--- a/src/backend/src/om/entitystorage/BaseES.js
+++ b/src/backend/src/om/entitystorage/BaseES.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { WeakConstructorFeature } = require("../../traits/WeakConstructorFeature");
const { Context } = require("../../util/context");
diff --git a/src/backend/src/om/entitystorage/Entity.js b/src/backend/src/om/entitystorage/Entity.js
index abaedb33..3094f55c 100644
--- a/src/backend/src/om/entitystorage/Entity.js
+++ b/src/backend/src/om/entitystorage/Entity.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { WeakConstructorFeature } = require("../../traits/WeakConstructorFeature");
class Entity extends AdvancedBase {
diff --git a/src/backend/src/om/entitystorage/SQLES.js b/src/backend/src/om/entitystorage/SQLES.js
index 61c901bf..dc81efa1 100644
--- a/src/backend/src/om/entitystorage/SQLES.js
+++ b/src/backend/src/om/entitystorage/SQLES.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { BaseES } = require("./BaseES");
const APIError = require("../../api/APIError");
diff --git a/src/backend/src/om/entitystorage/ValidationES.js b/src/backend/src/om/entitystorage/ValidationES.js
index cfcf01b2..485a9408 100644
--- a/src/backend/src/om/entitystorage/ValidationES.js
+++ b/src/backend/src/om/entitystorage/ValidationES.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { BaseES } = require("./BaseES");
const APIError = require("../../api/APIError");
diff --git a/src/backend/src/om/query/query.js b/src/backend/src/om/query/query.js
index bdde50a3..519d8fce 100644
--- a/src/backend/src/om/query/query.js
+++ b/src/backend/src/om/query/query.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { WeakConstructorFeature } = require("../../traits/WeakConstructorFeature");
class Predicate extends AdvancedBase {
diff --git a/src/backend/src/routers/_default.js b/src/backend/src/routers/_default.js
index 0c843e83..0c764a12 100644
--- a/src/backend/src/routers/_default.js
+++ b/src/backend/src/routers/_default.js
@@ -87,6 +87,13 @@ router.all('*', async function(req, res, next) {
}
});
}
+ if (path === '/putility/v1') {
+ return res.sendFile(_path.join(__dirname, config.defaultjs_asset_path, 'putility.js/v1.js'), function (err) {
+ if (err && err.statusCode) {
+ return res.status(err.statusCode).send('Error /putility.js')
+ }
+ });
+ }
}
const db = Context.get('services').get('database').get(DB_READ, 'default');
diff --git a/src/backend/src/routers/hosting/puter-site.js b/src/backend/src/routers/hosting/puter-site.js
index 251ff8e3..a2680a6b 100644
--- a/src/backend/src/routers/hosting/puter-site.js
+++ b/src/backend/src/routers/hosting/puter-site.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const api_error_handler = require("../../api/api_error_handler");
const config = require("../../config");
const { get_user, get_app, id2path } = require("../../helpers");
diff --git a/src/backend/src/services/BaseService.js b/src/backend/src/services/BaseService.js
index 0455b709..e325d7f0 100644
--- a/src/backend/src/services/BaseService.js
+++ b/src/backend/src/services/BaseService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const NOOP = async () => {};
diff --git a/src/backend/src/services/Container.js b/src/backend/src/services/Container.js
index 0a55f8fd..44878f8f 100644
--- a/src/backend/src/services/Container.js
+++ b/src/backend/src/services/Container.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const config = require("../config");
const { Context } = require("../util/context");
const { CompositeError } = require("../util/errorutil");
diff --git a/src/backend/src/services/EngPortalService.js b/src/backend/src/services/EngPortalService.js
index 7e69363a..ce507568 100644
--- a/src/backend/src/services/EngPortalService.js
+++ b/src/backend/src/services/EngPortalService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
class EngPortalService extends AdvancedBase {
static MODULES = {
diff --git a/src/backend/src/services/OperationTraceService.js b/src/backend/src/services/OperationTraceService.js
index 59c6527b..751efee3 100644
--- a/src/backend/src/services/OperationTraceService.js
+++ b/src/backend/src/services/OperationTraceService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { Context } = require("../util/context");
const { ContextAwareFeature } = require("../traits/ContextAwareFeature");
const { OtelFeature } = require("../traits/OtelFeature");
diff --git a/src/backend/src/services/RegistryService.js b/src/backend/src/services/RegistryService.js
index fe281471..3b1f45a7 100644
--- a/src/backend/src/services/RegistryService.js
+++ b/src/backend/src/services/RegistryService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const BaseService = require("./BaseService");
class MapCollection extends AdvancedBase {
diff --git a/src/backend/src/services/ServicePatch.js b/src/backend/src/services/ServicePatch.js
index 57521585..e34312bd 100644
--- a/src/backend/src/services/ServicePatch.js
+++ b/src/backend/src/services/ServicePatch.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
class ServicePatch extends AdvancedBase {
patch ({ original_service }) {
diff --git a/src/backend/src/services/StorageService.js b/src/backend/src/services/StorageService.js
index f9dfa08b..77b74007 100644
--- a/src/backend/src/services/StorageService.js
+++ b/src/backend/src/services/StorageService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
class StorageService extends AdvancedBase {
constructor ({ services }) {
diff --git a/src/backend/src/services/WSPushService.js b/src/backend/src/services/WSPushService.js
index 669c16dc..0ef17302 100644
--- a/src/backend/src/services/WSPushService.js
+++ b/src/backend/src/services/WSPushService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
class WSPushService extends AdvancedBase {
static MODULES = {
diff --git a/src/backend/src/services/abuse-prevention/IdentificationService.js b/src/backend/src/services/abuse-prevention/IdentificationService.js
index 9de738a9..75005df7 100644
--- a/src/backend/src/services/abuse-prevention/IdentificationService.js
+++ b/src/backend/src/services/abuse-prevention/IdentificationService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const BaseService = require("../BaseService");
const { Context } = require("../../util/context");
const config = require("../../config");
diff --git a/src/backend/src/services/auth/Actor.js b/src/backend/src/services/auth/Actor.js
index 8c929a4e..0c35597f 100644
--- a/src/backend/src/services/auth/Actor.js
+++ b/src/backend/src/services/auth/Actor.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { Context } = require("../../util/context");
const { get_user, get_app } = require("../../helpers");
const config = require("../../config");
diff --git a/src/backend/src/services/database/BaseDatabaseAccessService.js b/src/backend/src/services/database/BaseDatabaseAccessService.js
index 3b6fa0c8..16e5af9c 100644
--- a/src/backend/src/services/database/BaseDatabaseAccessService.js
+++ b/src/backend/src/services/database/BaseDatabaseAccessService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const BaseService = require("../BaseService");
const { DB_WRITE, DB_READ } = require("./consts");
diff --git a/src/backend/src/services/drivers/DriverService.js b/src/backend/src/services/drivers/DriverService.js
index e4f8c176..bca02abe 100644
--- a/src/backend/src/services/drivers/DriverService.js
+++ b/src/backend/src/services/drivers/DriverService.js
@@ -23,7 +23,7 @@ const { TypedValue } = require("./meta/Runtime");
const BaseService = require("../BaseService");
const { Driver } = require("../../definitions/Driver");
const { PermissionUtil } = require("../auth/PermissionService");
-const { Invoker } = require("../../../../putil/src/libs/invoker");
+const { Invoker } = require("../../../../putility/src/libs/invoker");
const { get_user } = require("../../helpers");
/**
diff --git a/src/backend/src/services/drivers/FileFacade.js b/src/backend/src/services/drivers/FileFacade.js
index 3dd65f8b..5fa01fb6 100644
--- a/src/backend/src/services/drivers/FileFacade.js
+++ b/src/backend/src/services/drivers/FileFacade.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { Context } = require("../../util/context");
const { MultiValue } = require("../../util/multivalue");
const { stream_to_buffer } = require("../../util/streamutil");
diff --git a/src/backend/src/services/drivers/meta/Construct.js b/src/backend/src/services/drivers/meta/Construct.js
index 9e344b11..aebbc57e 100644
--- a/src/backend/src/services/drivers/meta/Construct.js
+++ b/src/backend/src/services/drivers/meta/Construct.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { BasicBase } = require("../../../../../putil/src/bases/BasicBase");
+const { BasicBase } = require("../../../../../putility/src/bases/BasicBase");
const types = require("../types");
const { hash_serializable_object, stringify_serializable_object } = require("../../../util/datautil");
diff --git a/src/backend/src/services/drivers/meta/Runtime.js b/src/backend/src/services/drivers/meta/Runtime.js
index 361626fd..a830a602 100644
--- a/src/backend/src/services/drivers/meta/Runtime.js
+++ b/src/backend/src/services/drivers/meta/Runtime.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { BasicBase } = require("../../../../../putil/src/bases/BasicBase");
+const { BasicBase } = require("../../../../../putility/src/bases/BasicBase");
const { TypeSpec } = require("./Construct");
class RuntimeEntity extends BasicBase {
diff --git a/src/backend/src/services/drivers/types.js b/src/backend/src/services/drivers/types.js
index fc0f00c8..0afa8701 100644
--- a/src/backend/src/services/drivers/types.js
+++ b/src/backend/src/services/drivers/types.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { is_valid_path } = require("../../filesystem/validation");
const { is_valid_url, is_valid_uuid4 } = require("../../helpers");
const { FileFacade } = require("./FileFacade");
diff --git a/src/backend/src/services/file-cache/FileCacheService.js b/src/backend/src/services/file-cache/FileCacheService.js
index faefe20d..13378f25 100644
--- a/src/backend/src/services/file-cache/FileCacheService.js
+++ b/src/backend/src/services/file-cache/FileCacheService.js
@@ -17,7 +17,7 @@
* along with this program. If not, see .
*/
const TeePromise = require("@heyputer/multest/src/util/TeePromise");
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const { FileTracker } = require("./FileTracker");
const { pausing_tee } = require("../../util/streamutil");
diff --git a/src/backend/src/services/sla/RateLimitService.js b/src/backend/src/services/sla/RateLimitService.js
index 86d5b77a..344e4599 100644
--- a/src/backend/src/services/sla/RateLimitService.js
+++ b/src/backend/src/services/sla/RateLimitService.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const APIError = require("../../api/APIError");
const { Context } = require("../../util/context");
const BaseService = require("../BaseService");
diff --git a/src/backend/src/services/thumbnails/HTTPThumbnailService.js b/src/backend/src/services/thumbnails/HTTPThumbnailService.js
index 6c133f66..ab75ab71 100644
--- a/src/backend/src/services/thumbnails/HTTPThumbnailService.js
+++ b/src/backend/src/services/thumbnails/HTTPThumbnailService.js
@@ -22,7 +22,7 @@
const axios = require('axios');
const { TeePromise } = require("../../util/promise");
-const { AdvancedBase } = require('@heyputer/putil');
+const { AdvancedBase } = require('@heyputer/putility');
const FormData = require("form-data");
const { stream_to_the_void, buffer_to_stream } = require('../../util/streamutil');
const BaseService = require('../BaseService');
diff --git a/src/backend/src/util/multivalue.js b/src/backend/src/util/multivalue.js
index fdda6630..06950b53 100644
--- a/src/backend/src/util/multivalue.js
+++ b/src/backend/src/util/multivalue.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
/**
* MutliValue represents a subject with multiple values or a value with multiple
diff --git a/src/backend/src/util/pathutil.js b/src/backend/src/util/pathutil.js
index 124bfb3a..004323f9 100644
--- a/src/backend/src/util/pathutil.js
+++ b/src/backend/src/util/pathutil.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
/**
* PathBuilder implements the builder pattern for building paths.
diff --git a/src/backend/tools/test.js b/src/backend/tools/test.js
index 65fbd419..f1f03773 100644
--- a/src/backend/tools/test.js
+++ b/src/backend/tools/test.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-const { AdvancedBase } = require("@heyputer/putil");
+const { AdvancedBase } = require("@heyputer/putility");
const useapi = require("useapi");
const { BaseService } = require("../exports");
const CoreModule = require("../src/CoreModule");
diff --git a/src/git/src/filesystem.js b/src/git/src/filesystem.js
index 6ef6fe0a..58bed4cd 100644
--- a/src/git/src/filesystem.js
+++ b/src/git/src/filesystem.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-import { PosixError } from '@heyputer/putil/src/PosixError.js';
+import { PosixError } from '@heyputer/putility/src/PosixError.js';
import path_ from 'path-browserify';
let debug = false;
diff --git a/src/phoenix/src/platform/node/filesystem.js b/src/phoenix/src/platform/node/filesystem.js
index 7e66a170..c42b2555 100644
--- a/src/phoenix/src/platform/node/filesystem.js
+++ b/src/phoenix/src/platform/node/filesystem.js
@@ -20,7 +20,7 @@ import fs from 'fs';
import path_ from 'path';
import modeString from 'fs-mode-to-string';
-import { ErrorCodes, PosixError } from '@heyputer/putil/src/PosixError.js';
+import { ErrorCodes, PosixError } from '@heyputer/putility/src/PosixError.js';
// DRY: Almost the same as puter/filesystem.js
function wrapAPIs(apis) {
diff --git a/src/phoenix/src/platform/puter/filesystem.js b/src/phoenix/src/platform/puter/filesystem.js
index d1188145..22d939a2 100644
--- a/src/phoenix/src/platform/puter/filesystem.js
+++ b/src/phoenix/src/platform/puter/filesystem.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-import { ErrorCodes, PosixError } from '@heyputer/putil/src/PosixError.js';
+import { ErrorCodes, PosixError } from '@heyputer/putility/src/PosixError.js';
// DRY: Almost the same as node/filesystem.js
function wrapAPIs(apis) {
diff --git a/src/phoenix/src/puter-shell/coreutils/errno.js b/src/phoenix/src/puter-shell/coreutils/errno.js
index 8ffcde10..65d7e6c4 100644
--- a/src/phoenix/src/puter-shell/coreutils/errno.js
+++ b/src/phoenix/src/puter-shell/coreutils/errno.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-import { ErrorCodes, ErrorMetadata, errorFromIntegerCode } from '@heyputer/putil/src/PosixError.js';
+import { ErrorCodes, ErrorMetadata, errorFromIntegerCode } from '@heyputer/putility/src/PosixError.js';
import { Exit } from './coreutil_lib/exit.js';
const maxErrorNameLength = Object.keys(ErrorCodes)
diff --git a/src/phoenix/src/puter-shell/coreutils/touch.js b/src/phoenix/src/puter-shell/coreutils/touch.js
index 8ebb6531..e90fab67 100644
--- a/src/phoenix/src/puter-shell/coreutils/touch.js
+++ b/src/phoenix/src/puter-shell/coreutils/touch.js
@@ -18,7 +18,7 @@
*/
import { Exit } from './coreutil_lib/exit.js';
import { resolveRelativePath } from '../../util/path.js';
-import { ErrorCodes } from '@heyputer/putil/src/PosixError.js';
+import { ErrorCodes } from '@heyputer/putility/src/PosixError.js';
export default {
name: 'touch',
diff --git a/src/phoenix/test/coreutils/errno.js b/src/phoenix/test/coreutils/errno.js
index 036fb8e6..47903689 100644
--- a/src/phoenix/test/coreutils/errno.js
+++ b/src/phoenix/test/coreutils/errno.js
@@ -19,7 +19,7 @@
import assert from 'assert';
import { MakeTestContext } from './harness.js'
import builtins from '../../src/puter-shell/coreutils/__exports__.js';
-import { ErrorCodes, ErrorMetadata } from '@heyputer/putil/src/PosixError.js';
+import { ErrorCodes, ErrorMetadata } from '@heyputer/putility/src/PosixError.js';
export const runErrnoTests = () => {
describe('errno', function () {
diff --git a/src/pty/exports.js b/src/pty/exports.js
index 2dcd3197..ece46629 100644
--- a/src/pty/exports.js
+++ b/src/pty/exports.js
@@ -16,7 +16,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
-import { libs } from '@heyputer/putil';
+import { libs } from '@heyputer/putility';
const { TeePromise, raceCase } = libs.promise;
const encoder = new TextEncoder();
diff --git a/src/putil/package.json b/src/putil/package.json
index cbe89b9a..80a2b584 100644
--- a/src/putil/package.json
+++ b/src/putil/package.json
@@ -1,11 +1,13 @@
{
- "name": "@heyputer/putil",
+ "name": "@heyputer/putility",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "start-webpack": "webpack ./index.js --output-filename putility.js --output-library putility && webpack ./index.js --output-filename putility.dev.js --output-library putility --watch --devtool source-map",
+ "build": "webpack ./index.js --output-filename putility.js --output-library putility && { echo \"// Copyright 2024 Puter Technologies Inc. All rights reserved.\"; echo \"// Generated on $(date '+%Y-%m-%d %H:%M')\n\"; cat ./dist/putility.js; echo \"\"; } > temp && mv temp ./dist/putility.js"
},
"author": "Puter Technologies Inc.",
- "license": "UNLICENSED"
+ "license": "AGPL-3.0-only"
}