diff --git a/.gitignore b/.gitignore index cc8873c68..cc2cae7bc 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ packages/models/dist packages/services/dist packages/utils/dist packages/api/dist +packages/responses/dist **/.pnp.* **/.yarn/* diff --git a/.yarn/cache/@standardnotes-responses-npm-1.6.39-395f4c2d65-0ea1d4d5b8.zip b/.yarn/cache/@standardnotes-responses-npm-1.6.39-395f4c2d65-0ea1d4d5b8.zip deleted file mode 100644 index 8545e72c7..000000000 Binary files a/.yarn/cache/@standardnotes-responses-npm-1.6.39-395f4c2d65-0ea1d4d5b8.zip and /dev/null differ diff --git a/packages/api/package.json b/packages/api/package.json index a9328c5c1..fee1dcb2c 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -5,11 +5,11 @@ "node": ">=16.0.0 <17.0.0" }, "description": "Interfaces for dealing with SN server-side API", - "main": "dist/src/index.js", + "main": "dist/index.js", "author": "Standard Notes", - "types": "dist/src/index.d.ts", + "types": "dist/index.d.ts", "files": [ - "dist/src" + "dist" ], "publishConfig": { "access": "public" diff --git a/packages/filepicker/example/package.json b/packages/filepicker/example/package.json index db1889629..91ccfb538 100644 --- a/packages/filepicker/example/package.json +++ b/packages/filepicker/example/package.json @@ -1,9 +1,9 @@ { "name": "files-demo", - "main": "dist/src/index.js", - "types": "dist/src/index.d.ts", + "main": "dist/index.js", + "types": "dist/index.d.ts", "files": [ - "dist/src" + "dist" ], "publishConfig": { "access": "public" diff --git a/packages/responses/.eslintignore b/packages/responses/.eslintignore new file mode 100644 index 000000000..f06235c46 --- /dev/null +++ b/packages/responses/.eslintignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/packages/responses/.eslintrc b/packages/responses/.eslintrc new file mode 100644 index 000000000..cb7136174 --- /dev/null +++ b/packages/responses/.eslintrc @@ -0,0 +1,6 @@ +{ + "extends": "../../.eslintrc", + "parserOptions": { + "project": "./linter.tsconfig.json" + } +} diff --git a/packages/responses/CHANGELOG.md b/packages/responses/CHANGELOG.md new file mode 100644 index 000000000..3eddd0d63 --- /dev/null +++ b/packages/responses/CHANGELOG.md @@ -0,0 +1,352 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [1.7.0](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.40...@standardnotes/responses@1.7.0) (2022-07-05) + +### Features + +* remove features package in favor of standardnotes/app repository ([bb8226b](https://github.com/standardnotes/snjs/commit/bb8226b77550707c2a981778a78fe3dccf1aaa03)) + +## [1.6.40](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.39...@standardnotes/responses@1.6.40) (2022-07-04) + +### Bug Fixes + +* add missing reflect-metadata package to all packages ([ce3a5bb](https://github.com/standardnotes/snjs/commit/ce3a5bbf3f1d2276ac4abc3eec3c6a44c8c3ba9b)) + +## [1.6.39](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.38...@standardnotes/responses@1.6.39) (2022-06-29) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.38](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.37...@standardnotes/responses@1.6.38) (2022-06-27) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.37](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.36...@standardnotes/responses@1.6.37) (2022-06-27) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.36](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.35...@standardnotes/responses@1.6.36) (2022-06-16) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.35](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.34...@standardnotes/responses@1.6.35) (2022-06-16) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.34](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.33...@standardnotes/responses@1.6.34) (2022-06-15) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.33](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.32...@standardnotes/responses@1.6.33) (2022-06-10) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.32](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.31...@standardnotes/responses@1.6.32) (2022-06-09) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.31](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.30...@standardnotes/responses@1.6.31) (2022-06-09) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.30](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.29...@standardnotes/responses@1.6.30) (2022-06-03) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.29](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.28...@standardnotes/responses@1.6.29) (2022-05-30) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.28](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.27...@standardnotes/responses@1.6.28) (2022-05-27) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.27](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.26...@standardnotes/responses@1.6.27) (2022-05-24) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.26](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.25...@standardnotes/responses@1.6.26) (2022-05-24) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.25](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.24...@standardnotes/responses@1.6.25) (2022-05-22) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.24](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.23...@standardnotes/responses@1.6.24) (2022-05-20) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.23](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.22...@standardnotes/responses@1.6.23) (2022-05-17) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.22](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.21...@standardnotes/responses@1.6.22) (2022-05-17) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.21](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.20...@standardnotes/responses@1.6.21) (2022-05-16) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.20](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.19...@standardnotes/responses@1.6.20) (2022-05-16) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.19](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.18...@standardnotes/responses@1.6.19) (2022-05-12) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.18](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.17...@standardnotes/responses@1.6.18) (2022-05-09) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.17](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.16...@standardnotes/responses@1.6.17) (2022-05-05) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.16](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.14...@standardnotes/responses@1.6.16) (2022-05-04) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.15](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.14...@standardnotes/responses@1.6.15) (2022-05-04) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.14](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.13...@standardnotes/responses@1.6.14) (2022-05-03) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.13](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.12...@standardnotes/responses@1.6.13) (2022-05-02) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.12](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.11...@standardnotes/responses@1.6.12) (2022-04-27) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.11](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.10...@standardnotes/responses@1.6.11) (2022-04-25) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.10](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.9...@standardnotes/responses@1.6.10) (2022-04-22) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.9](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.8...@standardnotes/responses@1.6.9) (2022-04-21) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.8](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.7...@standardnotes/responses@1.6.8) (2022-04-20) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.7](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.6...@standardnotes/responses@1.6.7) (2022-04-20) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.6](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.5...@standardnotes/responses@1.6.6) (2022-04-18) + +### Bug Fixes + +* make timestamps required in payload construction ([#695](https://github.com/standardnotes/snjs/issues/695)) ([b3326c0](https://github.com/standardnotes/snjs/commit/b3326c0a998cd9d44a76afc377f182885ef48275)) + +## [1.6.5](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.4...@standardnotes/responses@1.6.5) (2022-04-15) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.4](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.3...@standardnotes/responses@1.6.4) (2022-04-15) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.3](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.2...@standardnotes/responses@1.6.3) (2022-04-12) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.2](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.1...@standardnotes/responses@1.6.2) (2022-04-11) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.6.1](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.6.0...@standardnotes/responses@1.6.1) (2022-04-01) + +**Note:** Version bump only for package @standardnotes/responses + +# [1.6.0](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.5.1...@standardnotes/responses@1.6.0) (2022-04-01) + +### Features + +* content interfaces and model type strictness ([#685](https://github.com/standardnotes/snjs/issues/685)) ([e2450c5](https://github.com/standardnotes/snjs/commit/e2450c59e8309d7080efaa03905b2abc728d9403)) + +## [1.5.1](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.5.0...@standardnotes/responses@1.5.1) (2022-03-31) + +**Note:** Version bump only for package @standardnotes/responses + +# [1.5.0](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.4.3...@standardnotes/responses@1.5.0) (2022-03-31) + +### Features + +* encryption and models packages ([#679](https://github.com/standardnotes/snjs/issues/679)) ([5e03d48](https://github.com/standardnotes/snjs/commit/5e03d48aba7e3dd266117201139ab869b1f70cc9)) + +## [1.4.3](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.4.2...@standardnotes/responses@1.4.3) (2022-03-31) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.4.2](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.4.1...@standardnotes/responses@1.4.2) (2022-03-30) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.4.1](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.4.0...@standardnotes/responses@1.4.1) (2022-03-25) + +### Bug Fixes + +* add uuid and sync error types ([239faaf](https://github.com/standardnotes/snjs/commit/239faaf00be8739c9a0b03f9fdb9dad0705b1019)) + +# [1.4.0](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.21...@standardnotes/responses@1.4.0) (2022-03-24) + +### Features + +* handle sync readonly errors ([65c4f52](https://github.com/standardnotes/snjs/commit/65c4f521c31417601cb647a8f9031e914ad4bbc8)) + +## [1.3.21](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.20...@standardnotes/responses@1.3.21) (2022-03-23) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.20](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.19...@standardnotes/responses@1.3.20) (2022-03-23) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.19](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.18...@standardnotes/responses@1.3.19) (2022-03-22) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.18](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.17...@standardnotes/responses@1.3.18) (2022-03-21) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.17](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.16...@standardnotes/responses@1.3.17) (2022-03-21) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.16](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.15...@standardnotes/responses@1.3.16) (2022-03-21) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.15](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.14...@standardnotes/responses@1.3.15) (2022-03-18) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.14](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.13...@standardnotes/responses@1.3.14) (2022-03-16) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.13](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.11...@standardnotes/responses@1.3.13) (2022-03-16) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.12](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.11...@standardnotes/responses@1.3.12) (2022-03-16) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.11](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.10...@standardnotes/responses@1.3.11) (2022-03-14) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.10](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.9...@standardnotes/responses@1.3.10) (2022-03-11) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.9](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.8...@standardnotes/responses@1.3.9) (2022-03-11) + +### Bug Fixes + +* add invalid parameters to create valet token response data ([#649](https://github.com/standardnotes/snjs/issues/649)) ([6156f56](https://github.com/standardnotes/snjs/commit/6156f5637abc6f54fa062123ec54ea0c01ce4520)) + +## [1.3.8](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.7...@standardnotes/responses@1.3.8) (2022-03-11) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.7](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.6...@standardnotes/responses@1.3.7) (2022-03-10) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.6](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.5...@standardnotes/responses@1.3.6) (2022-03-10) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.5](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.4...@standardnotes/responses@1.3.5) (2022-03-10) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.4](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.3...@standardnotes/responses@1.3.4) (2022-03-09) + +### Bug Fixes + +* add missing legacy email field on key params data ([#642](https://github.com/standardnotes/snjs/issues/642)) ([fa43779](https://github.com/standardnotes/snjs/commit/fa4377979730c907c05dbddf68b5215282a19016)) + +## [1.3.3](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.2...@standardnotes/responses@1.3.3) (2022-03-09) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.2](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.1...@standardnotes/responses@1.3.2) (2022-03-08) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.3.1](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.3.0...@standardnotes/responses@1.3.1) (2022-03-08) + +**Note:** Version bump only for package @standardnotes/responses + +# [1.3.0](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.2.1...@standardnotes/responses@1.3.0) (2022-03-08) + +### Features + +* determine files host dynamically ([#637](https://github.com/standardnotes/snjs/issues/637)) ([8ae8d32](https://github.com/standardnotes/snjs/commit/8ae8d32a2469cc6b5b42bfc68ec63200d6bc49ed)) + +## [1.2.1](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.2.0...@standardnotes/responses@1.2.1) (2022-03-07) + +**Note:** Version bump only for package @standardnotes/responses + +# [1.2.0](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.1.7...@standardnotes/responses@1.2.0) (2022-03-07) + +### Features + +* integrity service ([#626](https://github.com/standardnotes/snjs/issues/626)) ([c5854fb](https://github.com/standardnotes/snjs/commit/c5854fb912dbe585516eeac3dde73573586c4e67)) + +## [1.1.7](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.1.6...@standardnotes/responses@1.1.7) (2022-03-04) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.1.6](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.1.5...@standardnotes/responses@1.1.6) (2022-03-04) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.1.5](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.1.4...@standardnotes/responses@1.1.5) (2022-03-03) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.1.4](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.1.3...@standardnotes/responses@1.1.4) (2022-03-01) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.1.3](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.1.2...@standardnotes/responses@1.1.3) (2022-02-28) + +**Note:** Version bump only for package @standardnotes/responses + +## [1.1.2](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.1.0...@standardnotes/responses@1.1.2) (2022-02-28) + +### Bug Fixes + +* add pseudo change to get lerna to trigger ([41e6817](https://github.com/standardnotes/snjs/commit/41e6817bbf726b0932cdf16f58622328b9e42803)) + +## [1.1.1](https://github.com/standardnotes/snjs/compare/@standardnotes/responses@1.1.0...@standardnotes/responses@1.1.1) (2022-02-28) + +### Bug Fixes + +* add pseudo change to get lerna to trigger ([41e6817](https://github.com/standardnotes/snjs/commit/41e6817bbf726b0932cdf16f58622328b9e42803)) + +# 1.1.0 (2022-02-28) + +### Features + +* extract responses package ([#617](https://github.com/standardnotes/snjs/issues/617)) ([1169747](https://github.com/standardnotes/snjs/commit/11697471052f94b37202df7fb560a79c5d65d573)) diff --git a/packages/responses/jest.config.js b/packages/responses/jest.config.js new file mode 100644 index 000000000..ad1ceabb0 --- /dev/null +++ b/packages/responses/jest.config.js @@ -0,0 +1,11 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const base = require('../../node_modules/@standardnotes/config/src/jest.json'); + +module.exports = { + ...base, + globals: { + 'ts-jest': { + tsconfig: 'tsconfig.json', + }, + } +}; diff --git a/packages/responses/linter.tsconfig.json b/packages/responses/linter.tsconfig.json new file mode 100644 index 000000000..c1a7d22c5 --- /dev/null +++ b/packages/responses/linter.tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["dist"] +} diff --git a/packages/responses/package.json b/packages/responses/package.json new file mode 100644 index 000000000..39993e6e9 --- /dev/null +++ b/packages/responses/package.json @@ -0,0 +1,39 @@ +{ + "name": "@standardnotes/responses", + "version": "1.8.0", + "engines": { + "node": ">=16.0.0 <17.0.0" + }, + "description": "Common http responses used between Standard Notes clients and servers", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "license": "AGPL-3.0-or-later", + "scripts": { + "clean": "rm -fr dist", + "prestart": "yarn clean", + "start": "tsc -p tsconfig.json --watch", + "prebuild": "yarn clean", + "build": "tsc -p tsconfig.json", + "lint": "eslint . --ext .ts", + "test:unit": "jest spec --coverage --passWithNoTests" + }, + "devDependencies": { + "@types/jest": "^27.4.1", + "@typescript-eslint/eslint-plugin": "^5.30.0", + "eslint-plugin-prettier": "^4.2.1", + "jest": "^27.5.1", + "ts-jest": "^27.1.3" + }, + "dependencies": { + "@standardnotes/common": "^1.23.1", + "@standardnotes/features": "workspace:*", + "@standardnotes/security": "^1.1.0", + "reflect-metadata": "^0.1.13" + } +} diff --git a/packages/responses/src/Domain/Auth/ChangeCredentialsData.ts b/packages/responses/src/Domain/Auth/ChangeCredentialsData.ts new file mode 100644 index 000000000..358717c6c --- /dev/null +++ b/packages/responses/src/Domain/Auth/ChangeCredentialsData.ts @@ -0,0 +1,11 @@ +import { AnyKeyParamsContent } from '@standardnotes/common' +import { SessionBody } from './SessionBody' +import { User } from './User' + +export type ChangeCredentialsData = { + session?: SessionBody + /** Represents legacy JWT token */ + token?: string + user?: User + key_params?: AnyKeyParamsContent +} diff --git a/packages/responses/src/Domain/Auth/ChangeCredentialsResponse.ts b/packages/responses/src/Domain/Auth/ChangeCredentialsResponse.ts new file mode 100644 index 000000000..4b451f1a5 --- /dev/null +++ b/packages/responses/src/Domain/Auth/ChangeCredentialsResponse.ts @@ -0,0 +1,6 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { ChangeCredentialsData } from './ChangeCredentialsData' + +export type ChangeCredentialsResponse = HttpResponse & { + data: ChangeCredentialsData +} diff --git a/packages/responses/src/Domain/Auth/KeyParamsData.ts b/packages/responses/src/Domain/Auth/KeyParamsData.ts new file mode 100644 index 000000000..ed1491172 --- /dev/null +++ b/packages/responses/src/Domain/Auth/KeyParamsData.ts @@ -0,0 +1,17 @@ +import { KeyParamsOrigination, ProtocolVersion } from '@standardnotes/common' + +export type KeyParamsData = { + identifier?: string + pw_cost?: number + pw_nonce?: string + version?: ProtocolVersion + /** Legacy V002 */ + pw_salt?: string + email?: string + /** Legacy V001 */ + pw_func?: string + pw_alg?: string + pw_key_size?: number + origination?: KeyParamsOrigination + created?: string +} diff --git a/packages/responses/src/Domain/Auth/KeyParamsResponse.ts b/packages/responses/src/Domain/Auth/KeyParamsResponse.ts new file mode 100644 index 000000000..23a7bb562 --- /dev/null +++ b/packages/responses/src/Domain/Auth/KeyParamsResponse.ts @@ -0,0 +1,6 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { KeyParamsData } from './KeyParamsData' + +export type KeyParamsResponse = HttpResponse & { + data: KeyParamsData +} diff --git a/packages/responses/src/Domain/Auth/RegistrationData.ts b/packages/responses/src/Domain/Auth/RegistrationData.ts new file mode 100644 index 000000000..bd23807fb --- /dev/null +++ b/packages/responses/src/Domain/Auth/RegistrationData.ts @@ -0,0 +1,9 @@ +import { SessionBody } from './SessionBody' +import { User } from './User' + +export type RegistrationData = { + session?: SessionBody + /** Represents legacy JWT token */ + token?: string + user?: User +} diff --git a/packages/responses/src/Domain/Auth/RegistrationResponse.ts b/packages/responses/src/Domain/Auth/RegistrationResponse.ts new file mode 100644 index 000000000..4ca7d30ee --- /dev/null +++ b/packages/responses/src/Domain/Auth/RegistrationResponse.ts @@ -0,0 +1,6 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { RegistrationData } from './RegistrationData' + +export type RegistrationResponse = HttpResponse & { + data: RegistrationData +} diff --git a/packages/responses/src/Domain/Auth/SessionBody.ts b/packages/responses/src/Domain/Auth/SessionBody.ts new file mode 100644 index 000000000..4c734fe9c --- /dev/null +++ b/packages/responses/src/Domain/Auth/SessionBody.ts @@ -0,0 +1,7 @@ +export type SessionBody = { + access_token: string + refresh_token: string + access_expiration: number + refresh_expiration: number + readonly_access: boolean +} diff --git a/packages/responses/src/Domain/Auth/SessionListEntry.ts b/packages/responses/src/Domain/Auth/SessionListEntry.ts new file mode 100644 index 000000000..374873582 --- /dev/null +++ b/packages/responses/src/Domain/Auth/SessionListEntry.ts @@ -0,0 +1,8 @@ +export type SessionListEntry = { + uuid: string + current: boolean + api_version: string + created_at: string + updated_at: string + device_info: string +} diff --git a/packages/responses/src/Domain/Auth/SessionListResponse.ts b/packages/responses/src/Domain/Auth/SessionListResponse.ts new file mode 100644 index 000000000..f35eb6fe6 --- /dev/null +++ b/packages/responses/src/Domain/Auth/SessionListResponse.ts @@ -0,0 +1,4 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { SessionListEntry } from './SessionListEntry' + +export type SessionListResponse = HttpResponse & { data: SessionListEntry[] } diff --git a/packages/responses/src/Domain/Auth/SessionRenewalData.ts b/packages/responses/src/Domain/Auth/SessionRenewalData.ts new file mode 100644 index 000000000..3c37fd876 --- /dev/null +++ b/packages/responses/src/Domain/Auth/SessionRenewalData.ts @@ -0,0 +1,5 @@ +import { SessionBody } from './SessionBody' + +export type SessionRenewalData = { + session?: SessionBody +} diff --git a/packages/responses/src/Domain/Auth/SessionRenewalResponse.ts b/packages/responses/src/Domain/Auth/SessionRenewalResponse.ts new file mode 100644 index 000000000..46740600d --- /dev/null +++ b/packages/responses/src/Domain/Auth/SessionRenewalResponse.ts @@ -0,0 +1,6 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { SessionRenewalData } from './SessionRenewalData' + +export type SessionRenewalResponse = HttpResponse & { + data: SessionRenewalData +} diff --git a/packages/responses/src/Domain/Auth/SignInData.ts b/packages/responses/src/Domain/Auth/SignInData.ts new file mode 100644 index 000000000..a7fb55f3d --- /dev/null +++ b/packages/responses/src/Domain/Auth/SignInData.ts @@ -0,0 +1,11 @@ +import { AnyKeyParamsContent } from '@standardnotes/common' +import { SessionBody } from './SessionBody' +import { User } from './User' + +export type SignInData = { + session?: SessionBody + /** Represents legacy JWT token */ + token?: string + user?: User + key_params?: AnyKeyParamsContent +} diff --git a/packages/responses/src/Domain/Auth/SignInResponse.ts b/packages/responses/src/Domain/Auth/SignInResponse.ts new file mode 100644 index 000000000..44efa2bff --- /dev/null +++ b/packages/responses/src/Domain/Auth/SignInResponse.ts @@ -0,0 +1,6 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { SignInData } from './SignInData' + +export type SignInResponse = HttpResponse & { + data: SignInData +} diff --git a/packages/responses/src/Domain/Auth/SignOutResponse.ts b/packages/responses/src/Domain/Auth/SignOutResponse.ts new file mode 100644 index 000000000..9141940cd --- /dev/null +++ b/packages/responses/src/Domain/Auth/SignOutResponse.ts @@ -0,0 +1,3 @@ +import { HttpResponse } from '../Http/HttpResponse' + +export type SignOutResponse = HttpResponse & Record diff --git a/packages/responses/src/Domain/Auth/User.ts b/packages/responses/src/Domain/Auth/User.ts new file mode 100644 index 000000000..e5c711558 --- /dev/null +++ b/packages/responses/src/Domain/Auth/User.ts @@ -0,0 +1,4 @@ +export type User = { + uuid: string + email: string +} diff --git a/packages/responses/src/Domain/Error/ClientError.ts b/packages/responses/src/Domain/Error/ClientError.ts new file mode 100644 index 000000000..1693b71ab --- /dev/null +++ b/packages/responses/src/Domain/Error/ClientError.ts @@ -0,0 +1,11 @@ +import { Error } from '../Http/Error' + +export class ClientDisplayableError { + constructor(public text: string, public title?: string, public tag?: string) { + console.error('Client Displayable Error:', text, title || '', tag || '') + } + + static FromError(error: Error) { + return new ClientDisplayableError(error.message, undefined, error.tag) + } +} diff --git a/packages/responses/src/Domain/Files/CloseUploadSessionResponse.ts b/packages/responses/src/Domain/Files/CloseUploadSessionResponse.ts new file mode 100644 index 000000000..3e3890233 --- /dev/null +++ b/packages/responses/src/Domain/Files/CloseUploadSessionResponse.ts @@ -0,0 +1,6 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' + +export type CloseUploadSessionResponse = MinimalHttpResponse & { + success: boolean + message: string +} diff --git a/packages/responses/src/Domain/Files/CreateValetTokenPayload.ts b/packages/responses/src/Domain/Files/CreateValetTokenPayload.ts new file mode 100644 index 000000000..c2ad37a19 --- /dev/null +++ b/packages/responses/src/Domain/Files/CreateValetTokenPayload.ts @@ -0,0 +1,7 @@ +export type CreateValetTokenPayload = { + operation: 'read' | 'write' | 'delete' + resources: Array<{ + remoteIdentifier: string + unencryptedFileSize?: number + }> +} diff --git a/packages/responses/src/Domain/Files/CreateValetTokenResponse.ts b/packages/responses/src/Domain/Files/CreateValetTokenResponse.ts new file mode 100644 index 000000000..859eb34d3 --- /dev/null +++ b/packages/responses/src/Domain/Files/CreateValetTokenResponse.ts @@ -0,0 +1,6 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' +import { CreateValetTokenResponseData } from './CreateValetTokenResponseData' + +export type CreateValetTokenResponse = MinimalHttpResponse & { + data: CreateValetTokenResponseData +} diff --git a/packages/responses/src/Domain/Files/CreateValetTokenResponseData.ts b/packages/responses/src/Domain/Files/CreateValetTokenResponseData.ts new file mode 100644 index 000000000..901bd0803 --- /dev/null +++ b/packages/responses/src/Domain/Files/CreateValetTokenResponseData.ts @@ -0,0 +1,9 @@ +export type CreateValetTokenResponseData = + | { + success: true + valetToken: string + } + | { + success: false + reason: 'no-subscription' | 'expired-subscription' | 'invalid-parameters' + } diff --git a/packages/responses/src/Domain/Files/DownloadFileChunkResponse.ts b/packages/responses/src/Domain/Files/DownloadFileChunkResponse.ts new file mode 100644 index 000000000..d563f3b67 --- /dev/null +++ b/packages/responses/src/Domain/Files/DownloadFileChunkResponse.ts @@ -0,0 +1,5 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' + +export type DownloadFileChunkResponse = MinimalHttpResponse & { + data: ArrayBuffer +} diff --git a/packages/responses/src/Domain/Files/StartUploadSessionResponse.ts b/packages/responses/src/Domain/Files/StartUploadSessionResponse.ts new file mode 100644 index 000000000..97d6392cf --- /dev/null +++ b/packages/responses/src/Domain/Files/StartUploadSessionResponse.ts @@ -0,0 +1,6 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' + +export type StartUploadSessionResponse = MinimalHttpResponse & { + success: boolean + uploadId: string +} diff --git a/packages/responses/src/Domain/Files/UploadFileChunkResponse.ts b/packages/responses/src/Domain/Files/UploadFileChunkResponse.ts new file mode 100644 index 000000000..ed63813f0 --- /dev/null +++ b/packages/responses/src/Domain/Files/UploadFileChunkResponse.ts @@ -0,0 +1,5 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' + +export type UploadFileChunkResponse = MinimalHttpResponse & { + success: boolean +} diff --git a/packages/responses/src/Domain/Http/Error.ts b/packages/responses/src/Domain/Http/Error.ts new file mode 100644 index 000000000..e62d465f0 --- /dev/null +++ b/packages/responses/src/Domain/Http/Error.ts @@ -0,0 +1,10 @@ +export type Error = { + message: string + status: number + tag?: string + /** In the case of MFA required responses, + * the required prompt is returned as part of the error */ + payload?: { + mfa_key?: string + } +} diff --git a/packages/responses/src/Domain/Http/Functions.ts b/packages/responses/src/Domain/Http/Functions.ts new file mode 100644 index 000000000..4fc2de34e --- /dev/null +++ b/packages/responses/src/Domain/Http/Functions.ts @@ -0,0 +1,6 @@ +import { HttpResponse } from './HttpResponse' +import { StatusCode } from './StatusCode' + +export function isErrorResponseExpiredToken(errorResponse: HttpResponse): boolean { + return errorResponse.status === StatusCode.HttpStatusExpiredAccessToken +} diff --git a/packages/responses/src/Domain/Http/HttpResponse.ts b/packages/responses/src/Domain/Http/HttpResponse.ts new file mode 100644 index 000000000..a9c8a556f --- /dev/null +++ b/packages/responses/src/Domain/Http/HttpResponse.ts @@ -0,0 +1,13 @@ +import { StatusCode } from './StatusCode' +import { Error } from './Error' +import { ResponseMeta } from './ResponseMeta' + +export type HttpResponse = { + status?: StatusCode + error?: Error + data?: { + error?: Error + } + meta?: ResponseMeta + headers?: Map +} diff --git a/packages/responses/src/Domain/Http/MinimalHttpResponses.ts b/packages/responses/src/Domain/Http/MinimalHttpResponses.ts new file mode 100644 index 000000000..d80cd1c9a --- /dev/null +++ b/packages/responses/src/Domain/Http/MinimalHttpResponses.ts @@ -0,0 +1,8 @@ +import { StatusCode } from './StatusCode' +import { Error } from './Error' + +export type MinimalHttpResponse = { + status?: StatusCode + error?: Error + headers?: Map +} diff --git a/packages/responses/src/Domain/Http/ResponseMeta.ts b/packages/responses/src/Domain/Http/ResponseMeta.ts new file mode 100644 index 000000000..61edb11f4 --- /dev/null +++ b/packages/responses/src/Domain/Http/ResponseMeta.ts @@ -0,0 +1,12 @@ +import { Role } from '@standardnotes/security' +import { Uuid } from '@standardnotes/common' + +export type ResponseMeta = { + auth: { + userUuid?: Uuid + roles?: Role[] + } + server: { + filesServerUrl?: string + } +} diff --git a/packages/responses/src/Domain/Http/StatusCode.ts b/packages/responses/src/Domain/Http/StatusCode.ts new file mode 100644 index 000000000..da009f76e --- /dev/null +++ b/packages/responses/src/Domain/Http/StatusCode.ts @@ -0,0 +1,16 @@ +export enum StatusCode { + LocalValidationError = 10, + CanceledMfa = 11, + UnknownError = 12, + + HttpStatusMinSuccess = 200, + HttpStatusNoContent = 204, + HttpStatusMaxSuccess = 299, + /** The session's access token is expired, but the refresh token is valid */ + HttpStatusExpiredAccessToken = 498, + /** The session's access token and refresh token are expired, user must reauthenticate */ + HttpStatusInvalidSession = 401, + /** User's IP is rate-limited. */ + HttpStatusForbidden = 403, + HttpBadRequest = 400, +} diff --git a/packages/responses/src/Domain/Item/ApiEndpointParam.ts b/packages/responses/src/Domain/Item/ApiEndpointParam.ts new file mode 100644 index 000000000..007ded326 --- /dev/null +++ b/packages/responses/src/Domain/Item/ApiEndpointParam.ts @@ -0,0 +1,7 @@ +export enum ApiEndpointParam { + LastSyncToken = 'sync_token', + PaginationToken = 'cursor_token', + SyncDlLimit = 'limit', + SyncPayloads = 'items', + ApiVersion = 'api', +} diff --git a/packages/responses/src/Domain/Item/CheckIntegrityResponse.ts b/packages/responses/src/Domain/Item/CheckIntegrityResponse.ts new file mode 100644 index 000000000..691b4838e --- /dev/null +++ b/packages/responses/src/Domain/Item/CheckIntegrityResponse.ts @@ -0,0 +1,8 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' +import { IntegrityPayload } from './IntegrityPayload' + +export type CheckIntegrityResponse = MinimalHttpResponse & { + data: { + mismatches: IntegrityPayload[] + } +} diff --git a/packages/responses/src/Domain/Item/ConflictParams.ts b/packages/responses/src/Domain/Item/ConflictParams.ts new file mode 100644 index 000000000..9530f8595 --- /dev/null +++ b/packages/responses/src/Domain/Item/ConflictParams.ts @@ -0,0 +1,11 @@ +import { ConflictType } from './ConflictType' +import { ServerItemResponse } from './ServerItemResponse' + +export type ConflictParams = { + type: ConflictType + server_item?: ServerItemResponse + unsaved_item?: ServerItemResponse + + /** @legacay */ + item?: ServerItemResponse +} diff --git a/packages/responses/src/Domain/Item/ConflictType.ts b/packages/responses/src/Domain/Item/ConflictType.ts new file mode 100644 index 000000000..3618a24a1 --- /dev/null +++ b/packages/responses/src/Domain/Item/ConflictType.ts @@ -0,0 +1,9 @@ +export enum ConflictType { + ConflictingData = 'sync_conflict', + UuidConflict = 'uuid_conflict', + ContentTypeError = 'content_type_error', + ContentError = 'content_error', + ReadOnlyError = 'readonly_error', + UuidError = 'uuid_error', + SyncError = 'sync_error', +} diff --git a/packages/responses/src/Domain/Item/GetSingleItemResponse.ts b/packages/responses/src/Domain/Item/GetSingleItemResponse.ts new file mode 100644 index 000000000..7cb334400 --- /dev/null +++ b/packages/responses/src/Domain/Item/GetSingleItemResponse.ts @@ -0,0 +1,14 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' +import { ServerItemResponse } from './ServerItemResponse' + +export type GetSingleItemResponse = MinimalHttpResponse & { + data: + | { + success: true + item: ServerItemResponse + } + | { + success: false + message: string + } +} diff --git a/packages/responses/src/Domain/Item/IntegrityPayload.ts b/packages/responses/src/Domain/Item/IntegrityPayload.ts new file mode 100644 index 000000000..c7f173471 --- /dev/null +++ b/packages/responses/src/Domain/Item/IntegrityPayload.ts @@ -0,0 +1,6 @@ +import { MicrosecondsTimestamp, Uuid } from '@standardnotes/common' + +export type IntegrityPayload = { + uuid: Uuid + updated_at_timestamp: MicrosecondsTimestamp +} diff --git a/packages/responses/src/Domain/Item/RawSyncData.ts b/packages/responses/src/Domain/Item/RawSyncData.ts new file mode 100644 index 000000000..9db1004d9 --- /dev/null +++ b/packages/responses/src/Domain/Item/RawSyncData.ts @@ -0,0 +1,14 @@ +import { ApiEndpointParam } from './ApiEndpointParam' +import { ConflictParams } from './ConflictParams' +import { ServerItemResponse } from './ServerItemResponse' + +export type RawSyncData = { + error?: unknown + [ApiEndpointParam.LastSyncToken]?: string + [ApiEndpointParam.PaginationToken]?: string + retrieved_items?: ServerItemResponse[] + saved_items?: ServerItemResponse[] + conflicts?: ConflictParams[] + unsaved?: ConflictParams[] + status?: number +} diff --git a/packages/responses/src/Domain/Item/RawSyncResponse.ts b/packages/responses/src/Domain/Item/RawSyncResponse.ts new file mode 100644 index 000000000..7308ee6d1 --- /dev/null +++ b/packages/responses/src/Domain/Item/RawSyncResponse.ts @@ -0,0 +1,4 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { RawSyncData } from './RawSyncData' + +export type RawSyncResponse = HttpResponse & { data: RawSyncData } diff --git a/packages/responses/src/Domain/Item/RevisionListEntry.ts b/packages/responses/src/Domain/Item/RevisionListEntry.ts new file mode 100644 index 000000000..2ca4e7222 --- /dev/null +++ b/packages/responses/src/Domain/Item/RevisionListEntry.ts @@ -0,0 +1,10 @@ +import { RoleName } from '@standardnotes/common' + +export type RevisionListEntry = { + content_type: string + created_at: string + updated_at: string + /** The uuid of the revision */ + uuid: string + required_role: RoleName +} diff --git a/packages/responses/src/Domain/Item/RevisionListResponse.ts b/packages/responses/src/Domain/Item/RevisionListResponse.ts new file mode 100644 index 000000000..a00f4f221 --- /dev/null +++ b/packages/responses/src/Domain/Item/RevisionListResponse.ts @@ -0,0 +1,4 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { RevisionListEntry } from './RevisionListEntry' + +export type RevisionListResponse = HttpResponse & { data: RevisionListEntry[] } diff --git a/packages/responses/src/Domain/Item/ServerItemResponse.ts b/packages/responses/src/Domain/Item/ServerItemResponse.ts new file mode 100644 index 000000000..14ee3b7f1 --- /dev/null +++ b/packages/responses/src/Domain/Item/ServerItemResponse.ts @@ -0,0 +1,15 @@ +import { ContentType, Uuid } from '@standardnotes/common' + +export interface ServerItemResponse { + content_type: ContentType + content: string | undefined + created_at_timestamp: number + created_at: Date + deleted: boolean + duplicate_of?: Uuid + enc_item_key: string + items_key_id?: string + updated_at_timestamp: number + updated_at: Date + uuid: string +} diff --git a/packages/responses/src/Domain/Item/SingleRevision.ts b/packages/responses/src/Domain/Item/SingleRevision.ts new file mode 100644 index 000000000..b5e725a17 --- /dev/null +++ b/packages/responses/src/Domain/Item/SingleRevision.ts @@ -0,0 +1,15 @@ +import { ContentType, Uuid } from '@standardnotes/common' + +export type SingleRevision = { + auth_hash?: string + content_type: ContentType + content: string + created_at: string + enc_item_key: string + /** The uuid of the item this revision was created with */ + item_uuid: string + items_key_id: string + updated_at: string + /** The uuid of the revision */ + uuid: Uuid +} diff --git a/packages/responses/src/Domain/Item/SingleRevisionResponse.ts b/packages/responses/src/Domain/Item/SingleRevisionResponse.ts new file mode 100644 index 000000000..3fdbc1634 --- /dev/null +++ b/packages/responses/src/Domain/Item/SingleRevisionResponse.ts @@ -0,0 +1,6 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { SingleRevision } from './SingleRevision' + +export type SingleRevisionResponse = HttpResponse & { + data: SingleRevision +} diff --git a/packages/responses/src/Domain/Listed/ActionResponse.ts b/packages/responses/src/Domain/Listed/ActionResponse.ts new file mode 100644 index 000000000..1c931d8f9 --- /dev/null +++ b/packages/responses/src/Domain/Listed/ActionResponse.ts @@ -0,0 +1,13 @@ +import { AnyKeyParamsContent, ContentType } from '@standardnotes/common' +import { HttpResponse } from '../Http/HttpResponse' +import { ServerItemResponse } from '../Item/ServerItemResponse' + +export type ActionResponse = HttpResponse & { + description: string + supported_types: ContentType[] + deprecation?: string + actions: unknown[] + item?: ServerItemResponse + keyParams?: AnyKeyParamsContent + auth_params?: AnyKeyParamsContent +} diff --git a/packages/responses/src/Domain/Listed/ListedAccount.ts b/packages/responses/src/Domain/Listed/ListedAccount.ts new file mode 100644 index 000000000..8ec583148 --- /dev/null +++ b/packages/responses/src/Domain/Listed/ListedAccount.ts @@ -0,0 +1,5 @@ +export type ListedAccount = { + secret: string + authorId: string + hostUrl: string +} diff --git a/packages/responses/src/Domain/Listed/ListedAccountInfo.ts b/packages/responses/src/Domain/Listed/ListedAccountInfo.ts new file mode 100644 index 000000000..ecc306146 --- /dev/null +++ b/packages/responses/src/Domain/Listed/ListedAccountInfo.ts @@ -0,0 +1,7 @@ +import { ActionResponse } from './ActionResponse' + +export type ListedAccountInfo = ActionResponse & { + display_name: string + author_url: string + settings_url: string +} diff --git a/packages/responses/src/Domain/Listed/ListedAccountInfoResponse.ts b/packages/responses/src/Domain/Listed/ListedAccountInfoResponse.ts new file mode 100644 index 000000000..13e415466 --- /dev/null +++ b/packages/responses/src/Domain/Listed/ListedAccountInfoResponse.ts @@ -0,0 +1,6 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { ListedAccountInfo } from './ListedAccountInfo' + +export type ListedAccountInfoResponse = HttpResponse & { + data: ListedAccountInfo +} diff --git a/packages/responses/src/Domain/Listed/ListedRegistrationResponse.ts b/packages/responses/src/Domain/Listed/ListedRegistrationResponse.ts new file mode 100644 index 000000000..977d4be39 --- /dev/null +++ b/packages/responses/src/Domain/Listed/ListedRegistrationResponse.ts @@ -0,0 +1,5 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' + +export type ListedRegistrationResponse = MinimalHttpResponse & { + data?: unknown +} diff --git a/packages/responses/src/Domain/User/AvailableSubscriptions.ts b/packages/responses/src/Domain/User/AvailableSubscriptions.ts new file mode 100644 index 000000000..1595ac063 --- /dev/null +++ b/packages/responses/src/Domain/User/AvailableSubscriptions.ts @@ -0,0 +1,13 @@ +import { FeatureDescription } from '@standardnotes/features' +import { SubscriptionName } from '@standardnotes/common' + +export type AvailableSubscriptions = { + [key in SubscriptionName]: { + name: string + pricing: { + price: number + period: string + }[] + features: FeatureDescription[] + } +} diff --git a/packages/responses/src/Domain/User/DeleteSettingResponse.ts b/packages/responses/src/Domain/User/DeleteSettingResponse.ts new file mode 100644 index 000000000..cf2b77cda --- /dev/null +++ b/packages/responses/src/Domain/User/DeleteSettingResponse.ts @@ -0,0 +1,3 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' + +export type DeleteSettingResponse = MinimalHttpResponse diff --git a/packages/responses/src/Domain/User/GetAvailableSubscriptionsResponse.ts b/packages/responses/src/Domain/User/GetAvailableSubscriptionsResponse.ts new file mode 100644 index 000000000..aed440c18 --- /dev/null +++ b/packages/responses/src/Domain/User/GetAvailableSubscriptionsResponse.ts @@ -0,0 +1,6 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' +import { AvailableSubscriptions } from './AvailableSubscriptions' + +export type GetAvailableSubscriptionsResponse = MinimalHttpResponse & { + data?: AvailableSubscriptions +} diff --git a/packages/responses/src/Domain/User/GetOfflineFeaturesResponse.ts b/packages/responses/src/Domain/User/GetOfflineFeaturesResponse.ts new file mode 100644 index 000000000..ec5edb54a --- /dev/null +++ b/packages/responses/src/Domain/User/GetOfflineFeaturesResponse.ts @@ -0,0 +1,8 @@ +import { FeatureDescription } from '@standardnotes/features' +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' + +export type GetOfflineFeaturesResponse = MinimalHttpResponse & { + data?: { + features: FeatureDescription[] + } +} diff --git a/packages/responses/src/Domain/User/GetSettingResponse.ts b/packages/responses/src/Domain/User/GetSettingResponse.ts new file mode 100644 index 000000000..ccda9aea2 --- /dev/null +++ b/packages/responses/src/Domain/User/GetSettingResponse.ts @@ -0,0 +1,9 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' +import { SettingData } from './SettingData' + +export type GetSettingResponse = MinimalHttpResponse & { + data?: { + success?: boolean + setting?: SettingData + } +} diff --git a/packages/responses/src/Domain/User/GetSubscriptionResponse.ts b/packages/responses/src/Domain/User/GetSubscriptionResponse.ts new file mode 100644 index 000000000..d926b31b1 --- /dev/null +++ b/packages/responses/src/Domain/User/GetSubscriptionResponse.ts @@ -0,0 +1,8 @@ +import { Subscription } from '@standardnotes/security' +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' + +export type GetSubscriptionResponse = MinimalHttpResponse & { + data?: { + subscription?: Subscription + } +} diff --git a/packages/responses/src/Domain/User/ListSettingsResponse.ts b/packages/responses/src/Domain/User/ListSettingsResponse.ts new file mode 100644 index 000000000..48d649097 --- /dev/null +++ b/packages/responses/src/Domain/User/ListSettingsResponse.ts @@ -0,0 +1,8 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' +import { SettingData } from './SettingData' + +export type ListSettingsResponse = MinimalHttpResponse & { + data?: { + settings?: SettingData[] + } +} diff --git a/packages/responses/src/Domain/User/PostSubscriptionTokensResponse.ts b/packages/responses/src/Domain/User/PostSubscriptionTokensResponse.ts new file mode 100644 index 000000000..3d0c250e0 --- /dev/null +++ b/packages/responses/src/Domain/User/PostSubscriptionTokensResponse.ts @@ -0,0 +1,7 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' + +export type PostSubscriptionTokensResponse = MinimalHttpResponse & { + data?: { + token: string + } +} diff --git a/packages/responses/src/Domain/User/SettingData.ts b/packages/responses/src/Domain/User/SettingData.ts new file mode 100644 index 000000000..8df2ac530 --- /dev/null +++ b/packages/responses/src/Domain/User/SettingData.ts @@ -0,0 +1,6 @@ +export type SettingData = { + uuid: string + name: string + value: string + sensitive?: boolean +} diff --git a/packages/responses/src/Domain/User/UpdateSettingResponse.ts b/packages/responses/src/Domain/User/UpdateSettingResponse.ts new file mode 100644 index 000000000..69de90098 --- /dev/null +++ b/packages/responses/src/Domain/User/UpdateSettingResponse.ts @@ -0,0 +1,3 @@ +import { MinimalHttpResponse } from '../Http/MinimalHttpResponses' + +export type UpdateSettingResponse = MinimalHttpResponse diff --git a/packages/responses/src/Domain/User/UserFeaturesData.ts b/packages/responses/src/Domain/User/UserFeaturesData.ts new file mode 100644 index 000000000..f12558061 --- /dev/null +++ b/packages/responses/src/Domain/User/UserFeaturesData.ts @@ -0,0 +1,5 @@ +import { FeatureDescription } from '@standardnotes/features' + +export type UserFeaturesData = { + features: FeatureDescription[] +} diff --git a/packages/responses/src/Domain/User/UserFeaturesResponse.ts b/packages/responses/src/Domain/User/UserFeaturesResponse.ts new file mode 100644 index 000000000..60dd075fc --- /dev/null +++ b/packages/responses/src/Domain/User/UserFeaturesResponse.ts @@ -0,0 +1,6 @@ +import { HttpResponse } from '../Http/HttpResponse' +import { UserFeaturesData } from './UserFeaturesData' + +export type UserFeaturesResponse = HttpResponse & { + data: UserFeaturesData +} diff --git a/packages/responses/src/Domain/index.ts b/packages/responses/src/Domain/index.ts new file mode 100644 index 000000000..c73ebd032 --- /dev/null +++ b/packages/responses/src/Domain/index.ts @@ -0,0 +1,59 @@ +export * from './Auth/ChangeCredentialsData' +export * from './Auth/ChangeCredentialsResponse' +export * from './Auth/KeyParamsData' +export * from './Auth/KeyParamsResponse' +export * from './Auth/RegistrationData' +export * from './Auth/RegistrationResponse' +export * from './Auth/SessionBody' +export * from './Auth/SessionListEntry' +export * from './Auth/SessionListResponse' +export * from './Auth/SessionRenewalData' +export * from './Auth/SessionRenewalResponse' +export * from './Auth/SignInData' +export * from './Auth/SignInResponse' +export * from './Auth/SignOutResponse' +export * from './Auth/User' +export * from './Error/ClientError' +export * from './Files/CloseUploadSessionResponse' +export * from './Files/CreateValetTokenPayload' +export * from './Files/CreateValetTokenResponse' +export * from './Files/CreateValetTokenResponseData' +export * from './Files/DownloadFileChunkResponse' +export * from './Files/StartUploadSessionResponse' +export * from './Files/UploadFileChunkResponse' +export * from './Http/Error' +export * from './Http/Functions' +export * from './Http/HttpResponse' +export * from './Http/MinimalHttpResponses' +export * from './Http/ResponseMeta' +export * from './Http/StatusCode' +export * from './Item/ApiEndpointParam' +export * from './Item/CheckIntegrityResponse' +export * from './Item/ConflictParams' +export * from './Item/ConflictType' +export * from './Item/GetSingleItemResponse' +export * from './Item/RawSyncData' +export * from './Item/RawSyncResponse' +export * from './Item/RevisionListEntry' +export * from './Item/RevisionListResponse' +export * from './Item/ServerItemResponse' +export * from './Item/SingleRevision' +export * from './Item/SingleRevisionResponse' +export * from './Item/IntegrityPayload' +export * from './Listed/ActionResponse' +export * from './Listed/ListedAccount' +export * from './Listed/ListedAccountInfo' +export * from './Listed/ListedAccountInfoResponse' +export * from './Listed/ListedRegistrationResponse' +export * from './User/AvailableSubscriptions' +export * from './User/DeleteSettingResponse' +export * from './User/GetAvailableSubscriptionsResponse' +export * from './User/GetOfflineFeaturesResponse' +export * from './User/GetSettingResponse' +export * from './User/GetSubscriptionResponse' +export * from './User/ListSettingsResponse' +export * from './User/PostSubscriptionTokensResponse' +export * from './User/SettingData' +export * from './User/UpdateSettingResponse' +export * from './User/UserFeaturesData' +export * from './User/UserFeaturesResponse' diff --git a/packages/responses/src/index.ts b/packages/responses/src/index.ts new file mode 100644 index 000000000..920deacdb --- /dev/null +++ b/packages/responses/src/index.ts @@ -0,0 +1 @@ +export * from './Domain' diff --git a/packages/responses/tsconfig.json b/packages/responses/tsconfig.json new file mode 100644 index 000000000..f3dac14ef --- /dev/null +++ b/packages/responses/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../node_modules/@standardnotes/config/src/tsconfig.json", + "compilerOptions": { + "skipLibCheck": true, + "rootDir": "./src", + "outDir": "./dist", + }, + "include": [ + "src/**/*" + ], + "references": [], + "exclude": ["**/*.spec.ts", "dist", "node_modules"] +} diff --git a/yarn.lock b/yarn.lock index 6b9b2d58b..6804568ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7038,16 +7038,21 @@ __metadata: languageName: unknown linkType: soft -"@standardnotes/responses@npm:^1.6.39": - version: 1.6.39 - resolution: "@standardnotes/responses@npm:1.6.39" +"@standardnotes/responses@^1.6.39, @standardnotes/responses@workspace:packages/responses": + version: 0.0.0-use.local + resolution: "@standardnotes/responses@workspace:packages/responses" dependencies: - "@standardnotes/auth": ^3.19.4 "@standardnotes/common": ^1.23.1 - "@standardnotes/features": ^1.47.0 - checksum: 0ea1d4d5b88f51e6b1b0b6d1ba3b0226f53969ed2be2985b4d2e42914a2ba29121be950f9fccfc590778a7765dcb729eeea75f10cf35237e15d46e4413b83672 - languageName: node - linkType: hard + "@standardnotes/features": "workspace:*" + "@standardnotes/security": ^1.1.0 + "@types/jest": ^27.4.1 + "@typescript-eslint/eslint-plugin": ^5.30.0 + eslint-plugin-prettier: ^4.2.1 + jest: ^27.5.1 + reflect-metadata: ^0.1.13 + ts-jest: ^27.1.3 + languageName: unknown + linkType: soft "@standardnotes/rich-text@workspace:packages/components/src/Packages/Editors/org.standardnotes.plus-editor": version: 0.0.0-use.local