소스 검색

feat: add settings package

Karol Sójko 3 년 전
부모
커밋
e7e34f3e16
29개의 변경된 파일384개의 추가작업 그리고 16개의 파일을 삭제
  1. 14 6
      .pnp.cjs
  2. BIN
      .yarn/cache/@standardnotes-settings-npm-1.15.0-bfec86ee49-4397d453a1.zip
  3. 1 1
      packages/auth/package.json
  4. 1 0
      packages/settings/.eslintignore
  5. 6 0
      packages/settings/.eslintrc
  6. 202 0
      packages/settings/CHANGELOG.md
  7. 11 0
      packages/settings/jest.config.js
  8. 4 0
      packages/settings/linter.tsconfig.json
  9. 34 0
      packages/settings/package.json
  10. 5 0
      packages/settings/src/Domain/CloudProvider/CloudProvider.ts
  11. 5 0
      packages/settings/src/Domain/DropboxBackupFrequency/DropboxBackupFrequency.ts
  12. 5 0
      packages/settings/src/Domain/EmailBackupFrequency/EmailBackupFrequency.ts
  13. 5 0
      packages/settings/src/Domain/GoogleDriveBackupFrequency/GoogleDriveBackupFrequency.ts
  14. 1 0
      packages/settings/src/Domain/ListedAuthorSecretsData/ListedAuthorSecretsData.ts
  15. 4 0
      packages/settings/src/Domain/LogSessionUserAgent/LogSessionUserAgentOption.ts
  16. 4 0
      packages/settings/src/Domain/MuteFailedBackupsEmails/MuteFailedBackupsEmailsOption.ts
  17. 4 0
      packages/settings/src/Domain/MuteFailedCloudBackupsEmails/MuteFailedCloudBackupsEmailsOption.ts
  18. 4 0
      packages/settings/src/Domain/MuteMarketingEmails/MuteMarketingEmailsOption.ts
  19. 4 0
      packages/settings/src/Domain/MuteSignInEmails/MuteSignInEmailsOption.ts
  20. 5 0
      packages/settings/src/Domain/OneDriveBackupFrequency/OneDriveBackupFrequency.ts
  21. 3 0
      packages/settings/src/Domain/Setting/SensitiveSettingName.ts
  22. 17 0
      packages/settings/src/Domain/Setting/SettingName.ts
  23. 4 0
      packages/settings/src/Domain/Setting/SubscriptionSettingName.ts
  24. 14 0
      packages/settings/src/Domain/index.ts
  25. 1 0
      packages/settings/src/index.ts
  26. 11 0
      packages/settings/tsconfig.json
  27. 1 1
      packages/syncing-server/package.json
  28. 3 0
      tsconfig.json
  29. 11 8
      yarn.lock

+ 14 - 6
.pnp.cjs

@@ -60,6 +60,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         "name": "@standardnotes/security",\
         "reference": "workspace:packages/security"\
       },\
+      {\
+        "name": "@standardnotes/settings",\
+        "reference": "workspace:packages/settings"\
+      },\
       {\
         "name": "@standardnotes/syncing-server",\
         "reference": "workspace:packages/syncing-server"\
@@ -83,6 +87,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
       ["@standardnotes/scheduler-server", ["workspace:packages/scheduler"]],\
       ["@standardnotes/security", ["workspace:packages/security"]],\
       ["@standardnotes/server-monorepo", ["workspace:."]],\
+      ["@standardnotes/settings", ["workspace:packages/settings"]],\
       ["@standardnotes/syncing-server", ["workspace:packages/syncing-server"]],\
       ["@standardnotes/time", ["workspace:packages/time"]]\
     ],\
@@ -2752,7 +2757,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
             ["@standardnotes/predicates", "workspace:packages/predicates"],\
             ["@standardnotes/responses", "npm:1.6.39"],\
             ["@standardnotes/security", "workspace:packages/security"],\
-            ["@standardnotes/settings", "npm:1.15.0"],\
+            ["@standardnotes/settings", "workspace:packages/settings"],\
             ["@standardnotes/sncrypto-common", "npm:1.9.0"],\
             ["@standardnotes/sncrypto-node", "npm:1.8.3"],\
             ["@standardnotes/time", "workspace:packages/time"],\
@@ -3100,12 +3105,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         }]\
       ]],\
       ["@standardnotes/settings", [\
-        ["npm:1.15.0", {\
-          "packageLocation": "./.yarn/cache/@standardnotes-settings-npm-1.15.0-bfec86ee49-4397d453a1.zip/node_modules/@standardnotes/settings/",\
+        ["workspace:packages/settings", {\
+          "packageLocation": "./packages/settings/",\
           "packageDependencies": [\
-            ["@standardnotes/settings", "npm:1.15.0"]\
+            ["@standardnotes/settings", "workspace:packages/settings"],\
+            ["@typescript-eslint/eslint-plugin", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:5.30.5"],\
+            ["eslint-plugin-prettier", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.2.1"],\
+            ["reflect-metadata", "npm:0.1.13"]\
           ],\
-          "linkType": "HARD"\
+          "linkType": "SOFT"\
         }]\
       ]],\
       ["@standardnotes/sncrypto-common", [\
@@ -3141,7 +3149,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
             ["@standardnotes/payloads", "npm:1.5.1"],\
             ["@standardnotes/responses", "npm:1.6.39"],\
             ["@standardnotes/security", "workspace:packages/security"],\
-            ["@standardnotes/settings", "npm:1.15.0"],\
+            ["@standardnotes/settings", "workspace:packages/settings"],\
             ["@standardnotes/time", "workspace:packages/time"],\
             ["@types/cors", "npm:2.8.12"],\
             ["@types/dotenv", "npm:8.2.0"],\

BIN
.yarn/cache/@standardnotes-settings-npm-1.15.0-bfec86ee49-4397d453a1.zip


+ 1 - 1
packages/auth/package.json

@@ -42,7 +42,7 @@
     "@standardnotes/predicates": "workspace:*",
     "@standardnotes/responses": "^1.6.39",
     "@standardnotes/security": "workspace:*",
-    "@standardnotes/settings": "^1.15.0",
+    "@standardnotes/settings": "workspace:*",
     "@standardnotes/sncrypto-common": "^1.9.0",
     "@standardnotes/sncrypto-node": "^1.8.3",
     "@standardnotes/time": "workspace:*",

+ 1 - 0
packages/settings/.eslintignore

@@ -0,0 +1 @@
+dist

+ 6 - 0
packages/settings/.eslintrc

@@ -0,0 +1,6 @@
+{
+  "extends": "../../.eslintrc",
+  "parserOptions": {
+    "project": "./linter.tsconfig.json"
+  }
+}

+ 202 - 0
packages/settings/CHANGELOG.md

@@ -0,0 +1,202 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+## [1.15.1](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.15.0...@standardnotes/settings@1.15.1) (2022-07-04)
+
+### Bug Fixes
+
+* add missing reflect-metadata package to all packages ([ce3a5bb](https://github.com/standardnotes/snjs/commit/ce3a5bbf3f1d2276ac4abc3eec3c6a44c8c3ba9b))
+
+# [1.15.0](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.14.3...@standardnotes/settings@1.15.0) (2022-06-24)
+
+### Features
+
+* add muting marketing emails setting ([4d811e3](https://github.com/standardnotes/snjs/commit/4d811e3adab30fa2f1abde2ed3ebcc399e933d9c))
+
+## [1.14.3](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.14.1...@standardnotes/settings@1.14.3) (2022-05-04)
+
+**Note:** Version bump only for package @standardnotes/settings
+
+## [1.14.2](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.14.1...@standardnotes/settings@1.14.2) (2022-05-04)
+
+**Note:** Version bump only for package @standardnotes/settings
+
+## [1.14.1](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.14.0...@standardnotes/settings@1.14.1) (2022-04-22)
+
+**Note:** Version bump only for package @standardnotes/settings
+
+# [1.14.0](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.13.4...@standardnotes/settings@1.14.0) (2022-04-19)
+
+### Features
+
+* add subscription setting name ([66c739b](https://github.com/standardnotes/snjs/commit/66c739b9ee00d27d2cd3176224d884aed7e2b9f8))
+
+## [1.13.4](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.13.3...@standardnotes/settings@1.13.4) (2022-04-15)
+
+**Note:** Version bump only for package @standardnotes/settings
+
+## [1.13.3](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.13.2...@standardnotes/settings@1.13.3) (2022-04-11)
+
+**Note:** Version bump only for package @standardnotes/settings
+
+## [1.13.2](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.13.1...@standardnotes/settings@1.13.2) (2022-03-31)
+
+**Note:** Version bump only for package @standardnotes/settings
+
+## [1.13.1](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.13.0...@standardnotes/settings@1.13.1) (2022-03-17)
+
+**Note:** Version bump only for package @standardnotes/settings
+
+# [1.13.0](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.12.0...@standardnotes/settings@1.13.0) (2022-03-16)
+
+### Features
+
+* add log session user agent setting ([3937f97](https://github.com/standardnotes/snjs/commit/3937f97826f1d6ee7f6fab14e8cccf5a6c829d69))
+
+# [1.12.0](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.11.5...@standardnotes/settings@1.12.0) (2022-03-07)
+
+### Bug Fixes
+
+* naming of email mute option ([c7c1747](https://github.com/standardnotes/snjs/commit/c7c174733bfd96e71d3146e49601eb0564a306a8))
+
+### Features
+
+* add mute sign in emails ([366bc06](https://github.com/standardnotes/snjs/commit/366bc06a210bbb099b42fd9f780491fc3f21ee06))
+
+## [1.11.5](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.11.3...@standardnotes/settings@1.11.5) (2022-02-28)
+
+### Bug Fixes
+
+* add pseudo change to get lerna to trigger ([41e6817](https://github.com/standardnotes/snjs/commit/41e6817bbf726b0932cdf16f58622328b9e42803))
+
+## [1.11.4](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.11.3...@standardnotes/settings@1.11.4) (2022-02-28)
+
+### Bug Fixes
+
+* add pseudo change to get lerna to trigger ([41e6817](https://github.com/standardnotes/snjs/commit/41e6817bbf726b0932cdf16f58622328b9e42803))
+
+## [1.11.3](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.11.2...@standardnotes/settings@1.11.3) (2022-02-02)
+
+### Bug Fixes
+
+* listed author secrets flatten ([91bdbf4](https://github.com/standardnotes/snjs/commit/91bdbf4d9f052cd55130edca89f99c5d04c996e0))
+
+## [1.11.2](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.11.1...@standardnotes/settings@1.11.2) (2022-02-01)
+
+### Bug Fixes
+
+* listed authors secret data type to include author id ([d9a27da](https://github.com/standardnotes/snjs/commit/d9a27dab48f7b444bd07f27dee9ca7aad77c6bc9))
+
+## [1.11.1](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.11.0...@standardnotes/settings@1.11.1) (2022-01-31)
+
+### Bug Fixes
+
+* add listed author secrets data type ([a780672](https://github.com/standardnotes/snjs/commit/a78067242b011148aa40b16e1a2536fa88c44f8f))
+
+# [1.11.0](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.10.0...@standardnotes/settings@1.11.0) (2022-01-28)
+
+### Features
+
+* add listed author secrets as a setting ([fb47efb](https://github.com/standardnotes/snjs/commit/fb47efb9e1decbc60ea310390cc99aba45a4b7c3))
+
+# [1.10.0](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.9.0...@standardnotes/settings@1.10.0) (2022-01-18)
+
+### Features
+
+* add file upload settings ([e2b8575](https://github.com/standardnotes/snjs/commit/e2b85752ada2d32d0c3deaedf7014d5293de4315))
+
+# [1.9.0](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.8.1...@standardnotes/settings@1.9.0) (2022-01-06)
+
+### Features
+
+* expose urls needed for cloud backup integration ([#537](https://github.com/standardnotes/snjs/issues/537)) ([efa492f](https://github.com/standardnotes/snjs/commit/efa492f6ddd26e23b590150c00263ac14267f572))
+
+## [1.8.1](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.8.0...@standardnotes/settings@1.8.1) (2021-12-30)
+
+### Bug Fixes
+
+* cloud backups token setting name ([#533](https://github.com/standardnotes/snjs/issues/533)) ([59545f0](https://github.com/standardnotes/snjs/commit/59545f05cfb90f39f072d48bf6b4bf62ac81b877))
+* correct gitignore paths ([cefc0cf](https://github.com/standardnotes/snjs/commit/cefc0cfcf98e3e5378e055b8c46931b53b23195e))
+* include dist in static components ([d17ce0f](https://github.com/standardnotes/snjs/commit/d17ce0f67045c6e4c97bf4577709aa58794e72e6))
+
+# [1.8.0](https://github.com/standardnotes/snjs/compare/@standardnotes/settings@1.7.0...@standardnotes/settings@1.8.0) (2021-12-23)
+
+### Features
+
+* add cloud backup settings names ([#524](https://github.com/standardnotes/snjs/issues/524)) ([942352b](https://github.com/standardnotes/snjs/commit/942352bb68623c6b718d854b26d645bac97be6ee))
+
+# 1.7.0 (2021-12-23)
+
+### Features
+
+* rename email backup setting to email backup frequency ([25e7b46](https://github.com/standardnotes/snjs/commit/25e7b4620834711ac7f513ae893898c5eab1af53))
+
+## 1.6.3 (2021-12-23)
+
+### Bug Fixes
+
+* lock package versions ([8aa2ce6](https://github.com/standardnotes/snjs/commit/8aa2ce676b57598ab72840adf851869d8e769022))
+
+## 1.6.2 (2021-12-23)
+
+### Bug Fixes
+
+* add publishing from package version by lerna ([80433d0](https://github.com/standardnotes/snjs/commit/80433d044f258095753482b8322d73aba3d9a9e4))
+
+## 1.6.1 (2021-12-23)
+
+### Bug Fixes
+
+* remove the ammend commit from lerna versioning ([f0400d9](https://github.com/standardnotes/snjs/commit/f0400d9a2f5a04eaece2e4c16da71166a2ddb251))
+
+# 1.6.0 (2021-12-23)
+
+### Features
+
+* add one drive backup frequency setting ([#522](https://github.com/standardnotes/snjs/issues/522)) ([c27827f](https://github.com/standardnotes/snjs/commit/c27827f8c7969dd32511c9c75122ece372132c83))
+
+## 1.5.4 (2021-12-23)
+
+### Bug Fixes
+
+* remove running tests upon deployment - ensured on PR status checks ([#523](https://github.com/standardnotes/snjs/issues/523)) ([5c795d1](https://github.com/standardnotes/snjs/commit/5c795d17b583d02955773576384e622c3ef7f418))
+
+## 1.5.3 (2021-12-23)
+
+### Bug Fixes
+
+* pr template ([#518](https://github.com/standardnotes/snjs/issues/518)) ([b445bb6](https://github.com/standardnotes/snjs/commit/b445bb64841217ae27c2514887629235be95d2a3))
+
+## 1.5.2 (2021-12-23)
+
+### Bug Fixes
+
+* checkout with personal access token ([773c1ef](https://github.com/standardnotes/snjs/commit/773c1ef91c4452ad411e928342060dcb59428e3c))
+
+## 1.5.1 (2021-12-22)
+
+### Bug Fixes
+
+* gpg signing with CI StandardNotes user ([d72f61c](https://github.com/standardnotes/snjs/commit/d72f61c23cd15b31d37340cc756d16526634b9ee))
+
+# 1.5.0 (2021-12-22)
+
+### Bug Fixes
+
+* mute email options to string types ([8767a17](https://github.com/standardnotes/snjs/commit/8767a17541d02f3511756ba9cd2f7deaed8d453b))
+* rename mute failed email backup settings ([a40f25a](https://github.com/standardnotes/snjs/commit/a40f25ae11b32e900435ed1afcab3783a46ea7ff))
+* versioning and package dependencies ([#509](https://github.com/standardnotes/snjs/issues/509)) ([fe1df94](https://github.com/standardnotes/snjs/commit/fe1df94eff3e90bcf9ba0cf45bdc44ac49204c71))
+
+### Features
+
+* add "Disabled" option to email backup frequency ([#499](https://github.com/standardnotes/snjs/issues/499)) ([90a56ac](https://github.com/standardnotes/snjs/commit/90a56aca2b64556dc98bc0b9eeef1982c88411cd))
+* add email backup frequency setting values ([5f5c2ea](https://github.com/standardnotes/snjs/commit/5f5c2ea44f85e246e7a7f50cc0b6356bfc65e554))
+* add email backup requested event and mute emails setting ([4e4c904](https://github.com/standardnotes/snjs/commit/4e4c9043739f0bd68cbebdc344652d2b5d1edecd))
+* add email backup setting name ([8a4118a](https://github.com/standardnotes/snjs/commit/8a4118a534b7aa921e2f5576a49d898b0784386c))
+* add extension key setting name ([efd6c8c](https://github.com/standardnotes/snjs/commit/efd6c8c8fa974910bbb36281ba3639e033b5b1b6))
+* add settings payload domain definition ([#377](https://github.com/standardnotes/snjs/issues/377)) ([22d9533](https://github.com/standardnotes/snjs/commit/22d9533cc9b72271778124a52d83cc6b9da6edcc))
+* extract settings and common package ([#372](https://github.com/standardnotes/snjs/issues/372)) ([4f89688](https://github.com/standardnotes/snjs/commit/4f89688054cdae88c001287c9fb3431debd0136c))
+* settings service  ([#384](https://github.com/standardnotes/snjs/issues/384)) ([c9c976f](https://github.com/standardnotes/snjs/commit/c9c976f15f158ce121f53341dc74f91beb27e6a2))
+* upgrade node engine versions to latest active LTS ([#462](https://github.com/standardnotes/snjs/issues/462)) ([686fc15](https://github.com/standardnotes/snjs/commit/686fc15030d302b474ebb7ef1cd4dcc48ec42359))

+ 11 - 0
packages/settings/jest.config.js

@@ -0,0 +1,11 @@
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const base = require('../../jest.config');
+
+module.exports = {
+  ...base,
+  globals: {
+    'ts-jest': {
+      tsconfig: 'tsconfig.json',
+    },
+  }
+};

+ 4 - 0
packages/settings/linter.tsconfig.json

@@ -0,0 +1,4 @@
+{
+  "extends": "./tsconfig.json",
+  "exclude": ["dist"]
+}

+ 34 - 0
packages/settings/package.json

@@ -0,0 +1,34 @@
+{
+  "name": "@standardnotes/settings",
+  "version": "1.16.0",
+  "engines": {
+    "node": ">=16.0.0 <17.0.0"
+  },
+  "description": "Settings SDK for Standard Notes projects",
+  "main": "dist/src/index.js",
+  "author": "Standard Notes",
+  "types": "dist/src/index.d.ts",
+  "files": [
+    "dist/src/**/*.js",
+    "dist/src/**/*.d.ts"
+  ],
+  "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"
+  },
+  "devDependencies": {
+    "@typescript-eslint/eslint-plugin": "^5.30.0",
+    "eslint-plugin-prettier": "^4.2.1"
+  },
+  "dependencies": {
+    "reflect-metadata": "^0.1.13"
+  }
+}

+ 5 - 0
packages/settings/src/Domain/CloudProvider/CloudProvider.ts

@@ -0,0 +1,5 @@
+export enum CloudProvider {
+  Dropbox = 'Dropbox',
+  Google = 'Google Drive',
+  OneDrive = 'OneDrive',
+}

+ 5 - 0
packages/settings/src/Domain/DropboxBackupFrequency/DropboxBackupFrequency.ts

@@ -0,0 +1,5 @@
+export enum DropboxBackupFrequency {
+  Disabled = 'disabled',
+  Daily = 'daily',
+  Weekly = 'weekly',
+}

+ 5 - 0
packages/settings/src/Domain/EmailBackupFrequency/EmailBackupFrequency.ts

@@ -0,0 +1,5 @@
+export enum EmailBackupFrequency {
+  Disabled = 'disabled',
+  Daily = 'daily',
+  Weekly = 'weekly',
+}

+ 5 - 0
packages/settings/src/Domain/GoogleDriveBackupFrequency/GoogleDriveBackupFrequency.ts

@@ -0,0 +1,5 @@
+export enum GoogleDriveBackupFrequency {
+  Disabled = 'disabled',
+  Daily = 'daily',
+  Weekly = 'weekly',
+}

+ 1 - 0
packages/settings/src/Domain/ListedAuthorSecretsData/ListedAuthorSecretsData.ts

@@ -0,0 +1 @@
+export type ListedAuthorSecretsData = Array<{ authorId: number; secret: string; hostUrl: string }>

+ 4 - 0
packages/settings/src/Domain/LogSessionUserAgent/LogSessionUserAgentOption.ts

@@ -0,0 +1,4 @@
+export enum LogSessionUserAgentOption {
+  Disabled = 'disabled',
+  Enabled = 'enabled',
+}

+ 4 - 0
packages/settings/src/Domain/MuteFailedBackupsEmails/MuteFailedBackupsEmailsOption.ts

@@ -0,0 +1,4 @@
+export enum MuteFailedBackupsEmailsOption {
+  Muted = 'muted',
+  NotMuted = 'not_muted',
+}

+ 4 - 0
packages/settings/src/Domain/MuteFailedCloudBackupsEmails/MuteFailedCloudBackupsEmailsOption.ts

@@ -0,0 +1,4 @@
+export enum MuteFailedCloudBackupsEmailsOption {
+  Muted = 'muted',
+  NotMuted = 'not_muted',
+}

+ 4 - 0
packages/settings/src/Domain/MuteMarketingEmails/MuteMarketingEmailsOption.ts

@@ -0,0 +1,4 @@
+export enum MuteMarketingEmailsOption {
+  Muted = 'muted',
+  NotMuted = 'not_muted',
+}

+ 4 - 0
packages/settings/src/Domain/MuteSignInEmails/MuteSignInEmailsOption.ts

@@ -0,0 +1,4 @@
+export enum MuteSignInEmailsOption {
+  Muted = 'muted',
+  NotMuted = 'not_muted',
+}

+ 5 - 0
packages/settings/src/Domain/OneDriveBackupFrequency/OneDriveBackupFrequency.ts

@@ -0,0 +1,5 @@
+export enum OneDriveBackupFrequency {
+  Disabled = 'disabled',
+  Daily = 'daily',
+  Weekly = 'weekly',
+}

+ 3 - 0
packages/settings/src/Domain/Setting/SensitiveSettingName.ts

@@ -0,0 +1,3 @@
+import { SettingName } from './SettingName'
+
+export type SensitiveSettingName = SettingName.MfaSecret | SettingName.ExtensionKey

+ 17 - 0
packages/settings/src/Domain/Setting/SettingName.ts

@@ -0,0 +1,17 @@
+export enum SettingName {
+  MfaSecret = 'MFA_SECRET',
+  ExtensionKey = 'EXTENSION_KEY',
+  EmailBackupFrequency = 'EMAIL_BACKUP_FREQUENCY',
+  DropboxBackupFrequency = 'DROPBOX_BACKUP_FREQUENCY',
+  DropboxBackupToken = 'DROPBOX_BACKUP_TOKEN',
+  OneDriveBackupFrequency = 'ONE_DRIVE_BACKUP_FREQUENCY',
+  OneDriveBackupToken = 'ONE_DRIVE_BACKUP_TOKEN',
+  GoogleDriveBackupFrequency = 'GOOGLE_DRIVE_BACKUP_FREQUENCY',
+  GoogleDriveBackupToken = 'GOOGLE_DRIVE_BACKUP_TOKEN',
+  MuteFailedBackupsEmails = 'MUTE_FAILED_BACKUPS_EMAILS',
+  MuteFailedCloudBackupsEmails = 'MUTE_FAILED_CLOUD_BACKUPS_EMAILS',
+  MuteSignInEmails = 'MUTE_SIGN_IN_EMAILS',
+  MuteMarketingEmails = 'MUTE_MARKETING_EMAILS',
+  ListedAuthorSecrets = 'LISTED_AUTHOR_SECRETS',
+  LogSessionUserAgent = 'LOG_SESSION_USER_AGENT',
+}

+ 4 - 0
packages/settings/src/Domain/Setting/SubscriptionSettingName.ts

@@ -0,0 +1,4 @@
+export enum SubscriptionSettingName {
+  FileUploadBytesLimit = 'FILE_UPLOAD_BYTES_LIMIT',
+  FileUploadBytesUsed = 'FILE_UPLOAD_BYTES_USED',
+}

+ 14 - 0
packages/settings/src/Domain/index.ts

@@ -0,0 +1,14 @@
+export * from './CloudProvider/CloudProvider'
+export * from './DropboxBackupFrequency/DropboxBackupFrequency'
+export * from './EmailBackupFrequency/EmailBackupFrequency'
+export * from './GoogleDriveBackupFrequency/GoogleDriveBackupFrequency'
+export * from './ListedAuthorSecretsData/ListedAuthorSecretsData'
+export * from './LogSessionUserAgent/LogSessionUserAgentOption'
+export * from './MuteFailedBackupsEmails/MuteFailedBackupsEmailsOption'
+export * from './MuteFailedCloudBackupsEmails/MuteFailedCloudBackupsEmailsOption'
+export * from './MuteMarketingEmails/MuteMarketingEmailsOption'
+export * from './MuteSignInEmails/MuteSignInEmailsOption'
+export * from './OneDriveBackupFrequency/OneDriveBackupFrequency'
+export * from './Setting/SensitiveSettingName'
+export * from './Setting/SettingName'
+export * from './Setting/SubscriptionSettingName'

+ 1 - 0
packages/settings/src/index.ts

@@ -0,0 +1 @@
+export * from './Domain'

+ 11 - 0
packages/settings/tsconfig.json

@@ -0,0 +1,11 @@
+{
+  "extends": "../../tsconfig.json",
+  "compilerOptions": {
+    "composite": true,
+    "outDir": "./dist",
+  },
+  "include": [
+    "src/**/*"
+  ],
+  "references": []
+}

+ 1 - 1
packages/syncing-server/package.json

@@ -33,7 +33,7 @@
     "@standardnotes/payloads": "^1.5.1",
     "@standardnotes/responses": "^1.6.39",
     "@standardnotes/security": "workspace:*",
-    "@standardnotes/settings": "1.15.0",
+    "@standardnotes/settings": "workspace:*",
     "@standardnotes/time": "workspace:*",
     "aws-sdk": "^2.1159.0",
     "axios": "0.24.0",

+ 3 - 0
tsconfig.json

@@ -52,6 +52,9 @@
     {
       "path": "./packages/security"
     },
+    {
+      "path": "./packages/settings"
+    },
     {
       "path": "./packages/syncing-server"
     },

+ 11 - 8
yarn.lock

@@ -2025,7 +2025,7 @@ __metadata:
     "@standardnotes/predicates": "workspace:*"
     "@standardnotes/responses": ^1.6.39
     "@standardnotes/security": "workspace:*"
-    "@standardnotes/settings": ^1.15.0
+    "@standardnotes/settings": "workspace:*"
     "@standardnotes/sncrypto-common": ^1.9.0
     "@standardnotes/sncrypto-node": ^1.8.3
     "@standardnotes/time": "workspace:*"
@@ -2358,12 +2358,15 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@standardnotes/settings@npm:1.15.0, @standardnotes/settings@npm:^1.15.0":
-  version: 1.15.0
-  resolution: "@standardnotes/settings@npm:1.15.0"
-  checksum: 4397d453a1a0cd5554012a5bf5ee2025c102ffc6d742841eecd2ab9cd46b0fbfe78da61b401451646274887d92801cafcef4c283bbfc6074b4d152103e15f861
-  languageName: node
-  linkType: hard
+"@standardnotes/settings@workspace:*, @standardnotes/settings@workspace:packages/settings":
+  version: 0.0.0-use.local
+  resolution: "@standardnotes/settings@workspace:packages/settings"
+  dependencies:
+    "@typescript-eslint/eslint-plugin": ^5.30.0
+    eslint-plugin-prettier: ^4.2.1
+    reflect-metadata: ^0.1.13
+  languageName: unknown
+  linkType: soft
 
 "@standardnotes/sncrypto-common@npm:^1.9.0":
   version: 1.9.0
@@ -2394,7 +2397,7 @@ __metadata:
     "@standardnotes/payloads": ^1.5.1
     "@standardnotes/responses": ^1.6.39
     "@standardnotes/security": "workspace:*"
-    "@standardnotes/settings": 1.15.0
+    "@standardnotes/settings": "workspace:*"
     "@standardnotes/time": "workspace:*"
     "@types/cors": ^2.8.9
     "@types/dotenv": ^8.2.0