diff --git a/package.json b/package.json
index 5fff49d..486a8ad 100644
--- a/package.json
+++ b/package.json
@@ -2,12 +2,12 @@
"name": "kredens",
"version": "0.1.0",
"description": "Where I keep my spoons",
- "main": "src/index.ts",
+ "main": "src/server/index.ts",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"tsc": "tsc --incremental ",
- "dev": "ts-node-dev -r dotenv/config --watch src/**/*.sql -r tsconfig-paths/register --respawn --transpile-only ./src/index.ts",
- "prod": "tsc --incremental && node ./dist/src/index.js",
+ "dev": "ts-node-dev -r dotenv/config --watch src/**/*.sql -r tsconfig-paths/register --respawn --transpile-only ./src/server/index.ts",
+ "prod": "tsc --incremental && node ./dist/src/server/index.js",
"tslint-check": "tslint-config-prettier-check ./tslint.json",
"migrate": "tsc --incremental && node ./dist/src/scripts/migrate.js"
},
diff --git a/src/auth.ts b/src/server/auth.ts
similarity index 93%
rename from src/auth.ts
rename to src/server/auth.ts
index 9dad48b..cdecb5a 100644
--- a/src/auth.ts
+++ b/src/server/auth.ts
@@ -13,8 +13,8 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-import { db } from "@kredens/db";
-import { User } from "@kredens/db/models";
+import { db } from "@kredens/server/db";
+import { User } from "@kredens/server/db/models";
import express from "express";
import createHttpError from "http-errors";
import { None } from "monet";
diff --git a/src/crypto.ts b/src/server/crypto.ts
similarity index 100%
rename from src/crypto.ts
rename to src/server/crypto.ts
diff --git a/src/custom.d.ts b/src/server/custom.d.ts
similarity index 95%
rename from src/custom.d.ts
rename to src/server/custom.d.ts
index 15c4caa..1333275 100644
--- a/src/custom.d.ts
+++ b/src/server/custom.d.ts
@@ -13,7 +13,7 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-import { User } from "@kredens/db/models";
+import { User } from "@kredens/server/db/models";
import { Cookie } from "@holdyourwaffle/express-session";
declare global {
diff --git a/src/db/index.ts b/src/server/db/index.ts
similarity index 98%
rename from src/db/index.ts
rename to src/server/db/index.ts
index 4e0e267..f564f7a 100644
--- a/src/db/index.ts
+++ b/src/server/db/index.ts
@@ -19,7 +19,7 @@ import {
SessionRepository,
TaskRepository,
UserRepository
-} from "@kredens/db/repos";
+} from "@kredens/server/db/repos";
import { DateTime } from "luxon";
import pg from "pg";
import pgPromise, { IDatabase, IInitOptions } from "pg-promise";
diff --git a/src/db/models.ts b/src/server/db/models.ts
similarity index 100%
rename from src/db/models.ts
rename to src/server/db/models.ts
diff --git a/src/db/repos/index.ts b/src/server/db/repos/index.ts
similarity index 77%
rename from src/db/repos/index.ts
rename to src/server/db/repos/index.ts
index d70efb2..407c2db 100644
--- a/src/db/repos/index.ts
+++ b/src/server/db/repos/index.ts
@@ -13,10 +13,10 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-import { MigrationRepository } from "@kredens/db/repos/migrations";
-import { SessionRepository } from "@kredens/db/repos/sessions";
-import { TaskRepository } from "@kredens/db/repos/tasks";
-import { UserRepository } from "@kredens/db/repos/users";
+import { MigrationRepository } from "@kredens/server/db/repos/migrations";
+import { SessionRepository } from "@kredens/server/db/repos/sessions";
+import { TaskRepository } from "@kredens/server/db/repos/tasks";
+import { UserRepository } from "@kredens/server/db/repos/users";
export interface Extensions {
migrations: MigrationRepository;
diff --git a/src/db/repos/migrations.ts b/src/server/db/repos/migrations.ts
similarity index 92%
rename from src/db/repos/migrations.ts
rename to src/server/db/repos/migrations.ts
index 7558573..9d521e2 100644
--- a/src/db/repos/migrations.ts
+++ b/src/server/db/repos/migrations.ts
@@ -13,9 +13,9 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-import { Migration } from "@kredens/db/models";
-import { migrations as sql } from "@kredens/db/sql";
-import logger from "@kredens/logger";
+import { Migration } from "@kredens/server/db/models";
+import { migrations as sql } from "@kredens/server/db/sql";
+import logger from "@kredens/server/logger";
import { DateTime } from "luxon";
import { IDatabase, IMain } from "pg-promise";
diff --git a/src/db/repos/sessions.ts b/src/server/db/repos/sessions.ts
similarity index 94%
rename from src/db/repos/sessions.ts
rename to src/server/db/repos/sessions.ts
index 51e1872..7667664 100644
--- a/src/db/repos/sessions.ts
+++ b/src/server/db/repos/sessions.ts
@@ -13,8 +13,8 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-import { Session } from "@kredens/db/models";
-import { sessions as sql } from "@kredens/db/sql";
+import { Session } from "@kredens/server/db/models";
+import { sessions as sql } from "@kredens/server/db/sql";
import { DateTime } from "luxon";
import { Maybe } from "monet";
import { IDatabase, IMain } from "pg-promise";
diff --git a/src/db/repos/tasks.ts b/src/server/db/repos/tasks.ts
similarity index 94%
rename from src/db/repos/tasks.ts
rename to src/server/db/repos/tasks.ts
index 0d72c62..2587efb 100644
--- a/src/db/repos/tasks.ts
+++ b/src/server/db/repos/tasks.ts
@@ -13,8 +13,8 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-import { ScheduleType, Task } from "@kredens/db/models";
-import { tasks as sql } from "@kredens/db/sql";
+import { ScheduleType, Task } from "@kredens/server/db/models";
+import { tasks as sql } from "@kredens/server/db/sql";
import { IDatabase, IMain } from "pg-promise";
function rowToTask(row: any): Task {
diff --git a/src/db/repos/users.ts b/src/server/db/repos/users.ts
similarity index 94%
rename from src/db/repos/users.ts
rename to src/server/db/repos/users.ts
index 829e9b7..768e568 100644
--- a/src/db/repos/users.ts
+++ b/src/server/db/repos/users.ts
@@ -13,8 +13,8 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-import { User } from "@kredens/db/models";
-import { users as sql } from "@kredens/db/sql";
+import { User } from "@kredens/server/db/models";
+import { users as sql } from "@kredens/server/db/sql";
import argon2 from "argon2";
import { Maybe, None, Some } from "monet";
import { IDatabase, IMain } from "pg-promise";
diff --git a/src/db/sql/index.ts b/src/server/db/sql/index.ts
similarity index 100%
rename from src/db/sql/index.ts
rename to src/server/db/sql/index.ts
diff --git a/src/index.ts b/src/server/index.ts
similarity index 87%
rename from src/index.ts
rename to src/server/index.ts
index 31daaf1..998cca3 100644
--- a/src/index.ts
+++ b/src/server/index.ts
@@ -14,12 +14,12 @@
// along with this program. If not, see .
import session, { SessionOptions } from "@holdyourwaffle/express-session";
-import { authMiddleware } from "@kredens/auth";
-import { db } from "@kredens/db";
-import logger from "@kredens/logger";
-import indexRouter from "@kredens/routes/";
-import bootstrapRouter from "@kredens/routes/bootstrap";
-import { PgStore } from "@kredens/sessions";
+import { authMiddleware } from "@kredens/server/auth";
+import { db } from "@kredens/server/db";
+import logger from "@kredens/server/logger";
+import indexRouter from "@kredens/server/routes";
+import bootstrapRouter from "@kredens/server/routes/bootstrap";
+import { PgStore } from "@kredens/server/sessions";
import cookieParser from "cookie-parser";
import csrf from "csurf";
import express from "express";
@@ -44,7 +44,7 @@ async function main() {
const webpackDevMiddleware = await import("webpack-dev-middleware").then(
p => p.default
);
- const config = await import("../webpack.config").then(p => p.default);
+ const config = await import("../../webpack.config").then(p => p.default);
const compiler = webpack(config);
app.use(
diff --git a/src/logger.ts b/src/server/logger.ts
similarity index 100%
rename from src/logger.ts
rename to src/server/logger.ts
diff --git a/src/routes/auth.ts b/src/server/routes/auth.ts
similarity index 96%
rename from src/routes/auth.ts
rename to src/server/routes/auth.ts
index 3495419..7825a4d 100644
--- a/src/routes/auth.ts
+++ b/src/server/routes/auth.ts
@@ -13,7 +13,7 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-import { db } from "@kredens/db";
+import { db } from "@kredens/server/db";
import express from "express";
const router = express.Router();
diff --git a/src/routes/bootstrap.ts b/src/server/routes/bootstrap.ts
similarity index 94%
rename from src/routes/bootstrap.ts
rename to src/server/routes/bootstrap.ts
index 96a1b07..307f6a3 100644
--- a/src/routes/bootstrap.ts
+++ b/src/server/routes/bootstrap.ts
@@ -13,8 +13,8 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-import { box, unbox } from "@kredens/crypto";
-import { db } from "@kredens/db";
+import { box, unbox } from "@kredens/server/crypto";
+import { db } from "@kredens/server/db";
import express from "express";
import createHttpError from "http-errors";
import { DateTime } from "luxon";
diff --git a/src/routes/home.ts b/src/server/routes/home.ts
similarity index 100%
rename from src/routes/home.ts
rename to src/server/routes/home.ts
diff --git a/src/routes/index.ts b/src/server/routes/index.ts
similarity index 100%
rename from src/routes/index.ts
rename to src/server/routes/index.ts
diff --git a/src/sessions.ts b/src/server/sessions.ts
similarity index 98%
rename from src/sessions.ts
rename to src/server/sessions.ts
index 97cfe6e..61ea4dc 100644
--- a/src/sessions.ts
+++ b/src/server/sessions.ts
@@ -14,7 +14,7 @@
// along with this program. If not, see .
import { Store } from "@holdyourwaffle/express-session";
-import { db } from "@kredens/db";
+import { db } from "@kredens/server/db";
import { DateTime, Duration } from "luxon";
export class PgStore extends Store {
diff --git a/src/server/tslint.json b/src/server/tslint.json
new file mode 100644
index 0000000..8e66533
--- /dev/null
+++ b/src/server/tslint.json
@@ -0,0 +1,13 @@
+{
+ "extends": "../../tslint.json",
+ "rules": {
+ "no-implicit-dependencies": [
+ true,
+ ["@kredens/server"]
+ ],
+ "no-submodule-imports": [
+ true,
+ "@kredens/server"
+ ]
+ }
+}
diff --git a/tslint.json b/tslint.json
index eaed67f..cb17e93 100644
--- a/tslint.json
+++ b/tslint.json
@@ -4,14 +4,7 @@
"jsRules": {},
"rules": {
"interface-name": [true, "never-prefix"],
- "no-submodule-imports": [
- true,
- "graphql/language",
- "graphql/type",
- "vue-loader/lib/plugin",
- "@kredens"
- ],
- "no-implicit-dependencies": [true, ["@kredens", "@kredens/frontend"]],
+ "no-implicit-dependencies": [true, ["@kredens"]],
"object-literal-sort-keys": [
true,
"match-declaration-order-only",