diff --git a/packages/files-client/.eslintrc.json b/packages/files-client/.eslintrc.json deleted file mode 100644 index 9d9c0db..0000000 --- a/packages/files-client/.eslintrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": ["../../.eslintrc.json"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { - "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], - "rules": {} - }, - { - "files": ["*.ts", "*.tsx"], - "rules": {} - }, - { - "files": ["*.js", "*.jsx"], - "rules": {} - } - ] -} diff --git a/packages/files-client/CHANGELOG.md b/packages/files-client/CHANGELOG.md deleted file mode 100644 index b1ce847..0000000 --- a/packages/files-client/CHANGELOG.md +++ /dev/null @@ -1,37 +0,0 @@ -# Changelog - -This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). - -### [0.1.1](https://github.com/Crate-Network/crate/compare/@crate/files-client-0.1.0...@crate/files-client-0.1.1) (2022-08-14) - -### [0.1.1](https://github.com/Crate-Network/crate/compare/@crate/files-client-0.1.0...@crate/files-client-0.1.1) (2022-08-14) - -## [0.1.0](https://github.com/Crate-Network/crate/compare/@crate/files-client-0.0.1...@crate/files-client-0.1.0) (2022-08-01) - -### Features - -- added mkdir, create file ([ef1ab19](https://github.com/Crate-Network/crate/commit/ef1ab19a614b0bc1242376aa0a0d2124adc85322)) -- implemented directory deletion ([a801b32](https://github.com/Crate-Network/crate/commit/a801b3203b285fb3db3f3b3dc12bccf67e034fba)) -- refactored file client structure, pin status ([bfc2d18](https://github.com/Crate-Network/crate/commit/bfc2d18814bca2bf43bc7bef1013cac40ed744ce)) - -### Bug Fixes - -- batch uploads now happen sequentially ([1971a2d](https://github.com/Crate-Network/crate/commit/1971a2d0e732aea0a329f777d77c2d597698c2d0)) -- made add file singular ([c3509c3](https://github.com/Crate-Network/crate/commit/c3509c3d795f360cec5847ad16c30914ec759fbc)) -- renamed file in server file-client ([91ff7d2](https://github.com/Crate-Network/crate/commit/91ff7d2f5ee52914bb0959fab4f219c51e7e3301)) -- the same dir CID was being updated for all files, now fixed to propagate changes incrementally ([fbf9ec3](https://github.com/Crate-Network/crate/commit/fbf9ec36a65924c0c4d0eec72cda3c689706cf52)) - -## [0.1.0](https://github.com/Crate-Network/crate/compare/@crate/files-client-0.0.1...@crate/files-client-0.1.0) (2022-08-01) - -### Features - -- added mkdir, create file ([ef1ab19](https://github.com/Crate-Network/crate/commit/ef1ab19a614b0bc1242376aa0a0d2124adc85322)) -- implemented directory deletion ([a801b32](https://github.com/Crate-Network/crate/commit/a801b3203b285fb3db3f3b3dc12bccf67e034fba)) -- refactored file client structure, pin status ([bfc2d18](https://github.com/Crate-Network/crate/commit/bfc2d18814bca2bf43bc7bef1013cac40ed744ce)) - -### Bug Fixes - -- batch uploads now happen sequentially ([1971a2d](https://github.com/Crate-Network/crate/commit/1971a2d0e732aea0a329f777d77c2d597698c2d0)) -- made add file singular ([c3509c3](https://github.com/Crate-Network/crate/commit/c3509c3d795f360cec5847ad16c30914ec759fbc)) -- renamed file in server file-client ([91ff7d2](https://github.com/Crate-Network/crate/commit/91ff7d2f5ee52914bb0959fab4f219c51e7e3301)) -- the same dir CID was being updated for all files, now fixed to propagate changes incrementally ([fbf9ec3](https://github.com/Crate-Network/crate/commit/fbf9ec36a65924c0c4d0eec72cda3c689706cf52)) diff --git a/packages/files-client/README.md b/packages/files-client/README.md deleted file mode 100644 index 516056d..0000000 --- a/packages/files-client/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# server-files-client - -This library was generated with [Nx](https://nx.dev). - -## Building - -Run `nx build server-files-client` to build the library. - -## Running unit tests - -Run `nx test server-files-client` to execute the unit tests via [Jest](https://jestjs.io). diff --git a/packages/files-client/jest.config.ts b/packages/files-client/jest.config.ts deleted file mode 100644 index db49143..0000000 --- a/packages/files-client/jest.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* eslint-disable */ -export default { - displayName: "server-files-client", - preset: "../../jest.preset.js", - globals: { - "ts-jest": { - tsconfig: "/tsconfig.spec.json", - }, - }, - transform: { - "^.+\\.[tj]s$": "ts-jest", - }, - moduleFileExtensions: ["ts", "js", "html"], - coverageDirectory: "../../coverage/packages/files-client", -} diff --git a/packages/files-client/package.json b/packages/files-client/package.json deleted file mode 100644 index 2406337..0000000 --- a/packages/files-client/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "@crate/files-client", - "version": "0.1.1", - "type": "commonjs", - "dependencies": { - "@crate/utils": "*", - "@crate/types": "*" - } -} diff --git a/packages/files-client/project.json b/packages/files-client/project.json deleted file mode 100644 index c4b6be0..0000000 --- a/packages/files-client/project.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "packages/files-client/src", - "name": "@crate/files-client", - "projectType": "library", - "targets": { - "build": { - "executor": "@nrwl/js:tsc", - "outputs": ["{options.outputPath}"], - "options": { - "outputPath": "dist/packages/files-client", - "main": "packages/files-client/src/index.ts", - "tsConfig": "packages/files-client/tsconfig.lib.json", - "assets": ["packages/files-client/*.md"] - } - }, - "lint": { - "executor": "@nrwl/linter:eslint", - "outputs": ["{options.outputFile}"], - "options": { - "lintFilePatterns": ["packages/files-client/**/*.ts"] - } - }, - "test": { - "executor": "@nrwl/jest:jest", - "outputs": ["coverage/packages/files-client"], - "options": { - "jestConfig": "packages/files-client/jest.config.ts", - "passWithNoTests": true - } - }, - "version": { - "executor": "@jscutlery/semver:version", - "options": { - "preset": "conventional" - } - } - }, - "tags": [] -} diff --git a/packages/files-client/src/index.ts b/packages/files-client/src/index.ts deleted file mode 100644 index c045509..0000000 --- a/packages/files-client/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { default as create } from "./client/ipfs-client" -export * from "./user/firebase-client" -export * from "./user/user-client" diff --git a/packages/files-client/tsconfig.json b/packages/files-client/tsconfig.json deleted file mode 100644 index f5b8565..0000000 --- a/packages/files-client/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "module": "commonjs", - "forceConsistentCasingInFileNames": true, - "strict": true, - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true - }, - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.lib.json" - }, - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/packages/files-client/tsconfig.lib.json b/packages/files-client/tsconfig.lib.json deleted file mode 100644 index e85ef50..0000000 --- a/packages/files-client/tsconfig.lib.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "declaration": true, - "types": [] - }, - "include": ["**/*.ts"], - "exclude": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts"] -} diff --git a/packages/files-client/tsconfig.spec.json b/packages/files-client/tsconfig.spec.json deleted file mode 100644 index 546f128..0000000 --- a/packages/files-client/tsconfig.spec.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "module": "commonjs", - "types": ["jest", "node"] - }, - "include": ["jest.config.ts", "**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"] -} diff --git a/packages/server/src/app.ts b/packages/server/src/app.ts index 8cdbd8e..cad69f4 100644 --- a/packages/server/src/app.ts +++ b/packages/server/src/app.ts @@ -1,5 +1,5 @@ import express from "express" -import { auth } from "@crate/files-client" +import { auth } from "./user/firebase" import files from "./routes/files-route" import dirs from "./routes/dir-route" import fileUpload from "express-fileupload" diff --git a/packages/server/src/clients/files.ts b/packages/server/src/clients/files.ts index aa0c79a..3ffb0ce 100644 --- a/packages/server/src/clients/files.ts +++ b/packages/server/src/clients/files.ts @@ -1,4 +1,4 @@ -import { create } from "@crate/files-client" +import create from "../ipfs-client" import logger from "../logger" const client = create({ diff --git a/packages/files-client/src/client/dir-add.ts b/packages/server/src/ipfs-client/dir-add.ts similarity index 96% rename from packages/files-client/src/client/dir-add.ts rename to packages/server/src/ipfs-client/dir-add.ts index 7bb7d1a..0643737 100644 --- a/packages/files-client/src/client/dir-add.ts +++ b/packages/server/src/ipfs-client/dir-add.ts @@ -1,5 +1,5 @@ import { CID, joinPath, splitPath } from "@crate/utils" -import { getRootCID, setRootCID } from "../user/user-client" +import { getRootCID, setRootCID } from "../user/user-model" import { IPFSHTTPClient } from "ipfs-http-client" import { addToDir } from "../lib/directories" import { pin } from "../lib/pinning" diff --git a/packages/files-client/src/client/dir-create.ts b/packages/server/src/ipfs-client/dir-create.ts similarity index 100% rename from packages/files-client/src/client/dir-create.ts rename to packages/server/src/ipfs-client/dir-create.ts diff --git a/packages/files-client/src/client/file-add.ts b/packages/server/src/ipfs-client/file-add.ts similarity index 98% rename from packages/files-client/src/client/file-add.ts rename to packages/server/src/ipfs-client/file-add.ts index bed7242..69ea53b 100644 --- a/packages/files-client/src/client/file-add.ts +++ b/packages/server/src/ipfs-client/file-add.ts @@ -3,7 +3,7 @@ import { CID, splitPath, UnixFS } from "@crate/utils" import { fetchFModel } from "../lib/resolution" import { FileModel } from "@crate/types" import dirAdd from "./dir-add" -import { setRootCID } from "../user/user-client" +import { setRootCID } from "../user/user-model" import { pin } from "../lib/pinning" export type FileAddOptions = { diff --git a/packages/files-client/src/client/file-delete.ts b/packages/server/src/ipfs-client/file-delete.ts similarity index 95% rename from packages/files-client/src/client/file-delete.ts rename to packages/server/src/ipfs-client/file-delete.ts index 96d3828..6a34c37 100644 --- a/packages/files-client/src/client/file-delete.ts +++ b/packages/server/src/ipfs-client/file-delete.ts @@ -5,7 +5,7 @@ import { joinPath, splitPath, } from "@crate/utils" -import { getRootCID, setRootCID } from "../user/user-client" +import { getRootCID, setRootCID } from "../user/user-model" import { IPFSHTTPClient } from "ipfs-http-client" import { removeFromDir } from "../lib/directories" import { pin } from "../lib/pinning" diff --git a/packages/files-client/src/client/file-retrieve.ts b/packages/server/src/ipfs-client/file-retrieve.ts similarity index 100% rename from packages/files-client/src/client/file-retrieve.ts rename to packages/server/src/ipfs-client/file-retrieve.ts diff --git a/packages/files-client/src/client/ipfs-client.ts b/packages/server/src/ipfs-client/index.ts similarity index 100% rename from packages/files-client/src/client/ipfs-client.ts rename to packages/server/src/ipfs-client/index.ts diff --git a/packages/files-client/src/lib/directories.ts b/packages/server/src/lib/directories.ts similarity index 100% rename from packages/files-client/src/lib/directories.ts rename to packages/server/src/lib/directories.ts diff --git a/packages/files-client/src/lib/pinning.ts b/packages/server/src/lib/pinning.ts similarity index 100% rename from packages/files-client/src/lib/pinning.ts rename to packages/server/src/lib/pinning.ts diff --git a/packages/files-client/src/lib/resolution.ts b/packages/server/src/lib/resolution.ts similarity index 100% rename from packages/files-client/src/lib/resolution.ts rename to packages/server/src/lib/resolution.ts diff --git a/packages/files-client/src/lib/update-path.ts b/packages/server/src/lib/update-path.ts similarity index 100% rename from packages/files-client/src/lib/update-path.ts rename to packages/server/src/lib/update-path.ts diff --git a/packages/server/src/routes/pinning-route.ts b/packages/server/src/routes/pinning-route.ts index b850f78..d279cd4 100644 --- a/packages/server/src/routes/pinning-route.ts +++ b/packages/server/src/routes/pinning-route.ts @@ -1,3 +1,4 @@ +import { Pin, PinStatus, Status } from "@crate/types" import { Router } from "express" import { uuid } from "uuidv4" @@ -8,13 +9,35 @@ router.get("/", (req, res) => { res.send(fcRes) }) +function checkPin(obj: unknown): obj is Pin { + const objCast: Pin = obj as Pin + if ( + objCast.status && + objCast.cid && + typeof objCast.status === "string" && + typeof objCast.cid === "string" + ) { + return true + } + return false +} + router.post("/", (req, res) => { - res.send({ + const pin = req.body as unknown + if (!checkPin(pin)) { + res.sendStatus(400) + return + } + + const pinStatus: PinStatus = { requestid: uuid(), - status: "queued", + status: Status.Queued, created: new Date().toISOString(), - pin: {}, - }) + delegates: [], + pin, + } + + res.send(pinStatus) }) router.get(/\/(.+)$/, (req, res) => { diff --git a/packages/server/src/routes/utils.ts b/packages/server/src/routes/utils.ts index df6247e..a47dd98 100644 --- a/packages/server/src/routes/utils.ts +++ b/packages/server/src/routes/utils.ts @@ -1,9 +1,10 @@ -import { getRootCID } from "@crate/files-client" +import { getRootCID } from "../user/user-model" import { RequestHandler, Request, Response, NextFunction } from "express" import logger from "../logger" export const asyncHandler = - (fn: RequestHandler) => (req: Request, res: Response, next: NextFunction) => { + (fn: RequestHandler) => + async (req: Request, res: Response, next: NextFunction) => { return Promise.resolve(fn(req, res, next)).catch((err) => { logger.error(err) next(err) diff --git a/packages/files-client/src/user/firebase-client.ts b/packages/server/src/user/firebase.ts similarity index 100% rename from packages/files-client/src/user/firebase-client.ts rename to packages/server/src/user/firebase.ts diff --git a/packages/files-client/src/user/user-client.ts b/packages/server/src/user/user-model.ts similarity index 87% rename from packages/files-client/src/user/user-client.ts rename to packages/server/src/user/user-model.ts index 3dfeeab..b9979ee 100644 --- a/packages/files-client/src/user/user-client.ts +++ b/packages/server/src/user/user-model.ts @@ -1,9 +1,9 @@ import { CID } from "@crate/utils" import { UserModel } from "@crate/types" -import { firestore } from "./firebase-client" +import { firestore } from "./firebase" export const getDocRef = async (uid: string) => - await firestore.collection("users").doc(uid) + firestore.collection("users").doc(uid) export const getUserDoc = async (uid: string) => { const docRef = await getDocRef(uid) diff --git a/tsconfig.base.json b/tsconfig.base.json index 7354ed6..16f1ff7 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -17,7 +17,6 @@ "resolveJsonModule": true, "paths": { "@crate/content/*": ["packages/content/src/*"], - "@crate/files-client": ["packages/files-client/src/index.ts"], "@crate/types": ["packages/types/src/index.ts"], "@crate/utils": ["packages/utils/src/index.ts"], "@crate/web": ["packages/web/src"]