diff --git a/package-lock.json b/package-lock.json
index 6a07b082..56e501e5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2606,7 +2606,7 @@
"link": true
},
"node_modules/@heyputer/putility": {
- "resolved": "src/putility",
+ "resolved": "src/putil",
"link": true
},
"node_modules/@heyputer/terminal": {
@@ -16911,9 +16911,15 @@
"version": "1.0.0",
"license": "AGPL-3.0-only"
},
+ "src/putil": {
+ "name": "@heyputer/putility",
+ "version": "1.0.0",
+ "license": "AGPL-3.0-only"
+ },
"src/putility": {
"name": "@heyputer/putility",
"version": "1.0.0",
+ "extraneous": true,
"license": "AGPL-3.0-only"
},
"src/strataparse": {
diff --git a/src/backend/src/services/BaseService.js b/src/backend/src/services/BaseService.js
index e325d7f0..83ba918a 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/putility");
+const { AdvancedBase } = require("../../../putility");
const NOOP = async () => {};
diff --git a/src/backend/src/services/OperationTraceService.js b/src/backend/src/services/OperationTraceService.js
index 751efee3..7ade53f4 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/putility");
+const { AdvancedBase } = require("../../../putility");
const { Context } = require("../util/context");
const { ContextAwareFeature } = require("../traits/ContextAwareFeature");
const { OtelFeature } = require("../traits/OtelFeature");
diff --git a/src/backend/src/services/auth/Actor.js b/src/backend/src/services/auth/Actor.js
index 0c35597f..b1dde3b0 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/putility");
+const { AdvancedBase } = require("../../../../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 16e5af9c..ebac058b 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/putility");
+const { AdvancedBase } = require("../../../../putility");
const BaseService = require("../BaseService");
const { DB_WRITE, DB_READ } = require("./consts");
diff --git a/src/backend/src/services/drivers/FileFacade.js b/src/backend/src/services/drivers/FileFacade.js
index 5fa01fb6..8b3aa355 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/putility");
+const { AdvancedBase } = require("../../../../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/types.js b/src/backend/src/services/drivers/types.js
index 0afa8701..031d867e 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/putility");
+const { AdvancedBase } = require("../../../../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/util/multivalue.js b/src/backend/src/util/multivalue.js
index 06950b53..0e696d57 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/putility");
+const { AdvancedBase } = require("../../../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 004323f9..6fd0e134 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/putility");
+const { AdvancedBase } = require("../../../putility");
/**
* PathBuilder implements the builder pattern for building paths.
diff --git a/src/putil/README.md b/src/putility/README.md
similarity index 100%
rename from src/putil/README.md
rename to src/putility/README.md
diff --git a/src/putil/index.js b/src/putility/index.js
similarity index 100%
rename from src/putil/index.js
rename to src/putility/index.js
diff --git a/src/putil/package.json b/src/putility/package.json
similarity index 100%
rename from src/putil/package.json
rename to src/putility/package.json
diff --git a/src/putil/src/AdvancedBase.js b/src/putility/src/AdvancedBase.js
similarity index 100%
rename from src/putil/src/AdvancedBase.js
rename to src/putility/src/AdvancedBase.js
diff --git a/src/putil/src/PosixError.js b/src/putility/src/PosixError.js
similarity index 100%
rename from src/putil/src/PosixError.js
rename to src/putility/src/PosixError.js
diff --git a/src/putil/src/bases/BasicBase.js b/src/putility/src/bases/BasicBase.js
similarity index 100%
rename from src/putil/src/bases/BasicBase.js
rename to src/putility/src/bases/BasicBase.js
diff --git a/src/putil/src/bases/FeatureBase.js b/src/putility/src/bases/FeatureBase.js
similarity index 100%
rename from src/putil/src/bases/FeatureBase.js
rename to src/putility/src/bases/FeatureBase.js
diff --git a/src/putil/src/features/NodeModuleDIFeature.js b/src/putility/src/features/NodeModuleDIFeature.js
similarity index 100%
rename from src/putil/src/features/NodeModuleDIFeature.js
rename to src/putility/src/features/NodeModuleDIFeature.js
diff --git a/src/putil/src/features/PropertiesFeature.js b/src/putility/src/features/PropertiesFeature.js
similarity index 100%
rename from src/putil/src/features/PropertiesFeature.js
rename to src/putility/src/features/PropertiesFeature.js
diff --git a/src/putil/src/features/TraitsFeature.js b/src/putility/src/features/TraitsFeature.js
similarity index 100%
rename from src/putil/src/features/TraitsFeature.js
rename to src/putility/src/features/TraitsFeature.js
diff --git a/src/putil/src/libs/invoker.js b/src/putility/src/libs/invoker.js
similarity index 100%
rename from src/putil/src/libs/invoker.js
rename to src/putility/src/libs/invoker.js
diff --git a/src/putil/src/libs/promise.js b/src/putility/src/libs/promise.js
similarity index 100%
rename from src/putil/src/libs/promise.js
rename to src/putility/src/libs/promise.js
diff --git a/src/putil/test/test.js b/src/putility/test/test.js
similarity index 100%
rename from src/putil/test/test.js
rename to src/putility/test/test.js