diff --git a/.pnp.cjs b/.pnp.cjs index 0c7d3e892..8060f03d3 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -44,6 +44,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "name": "@standardnotes/files-server",\ "reference": "workspace:packages/files"\ },\ + {\ + "name": "@standardnotes/predicates",\ + "reference": "workspace:packages/predicates"\ + },\ {\ "name": "@standardnotes/scheduler-server",\ "reference": "workspace:packages/scheduler"\ @@ -62,6 +66,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@standardnotes/domain-events", ["workspace:packages/domain-events"]],\ ["@standardnotes/domain-events-infra", ["workspace:packages/domain-events-infra"]],\ ["@standardnotes/files-server", ["workspace:packages/files"]],\ + ["@standardnotes/predicates", ["workspace:packages/predicates"]],\ ["@standardnotes/scheduler-server", ["workspace:packages/scheduler"]],\ ["@standardnotes/server-monorepo", ["workspace:."]],\ ["@standardnotes/syncing-server", ["workspace:packages/syncing-server"]]\ @@ -2730,8 +2735,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@standardnotes/domain-events", "workspace:packages/domain-events"],\ ["@standardnotes/domain-events-infra", "workspace:packages/domain-events-infra"],\ ["@standardnotes/features", "npm:1.50.0"],\ + ["@standardnotes/predicates", "workspace:packages/predicates"],\ ["@standardnotes/responses", "npm:1.6.39"],\ - ["@standardnotes/scheduler", "npm:1.1.2"],\ ["@standardnotes/settings", "npm:1.15.0"],\ ["@standardnotes/sncrypto-common", "npm:1.9.0"],\ ["@standardnotes/sncrypto-node", "npm:1.8.3"],\ @@ -2808,7 +2813,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@standardnotes/auth", "npm:3.19.4"],\ ["@standardnotes/common", "npm:1.23.1"],\ ["@standardnotes/features", "npm:1.50.0"],\ - ["@standardnotes/scheduler", "npm:1.1.2"],\ + ["@standardnotes/predicates", "workspace:packages/predicates"],\ ["@types/jest", "npm:28.1.4"],\ ["@typescript-eslint/eslint-plugin", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:5.30.5"],\ ["eslint-plugin-prettier", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.2.1"],\ @@ -2949,6 +2954,22 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["@standardnotes/predicates", [\ + ["workspace:packages/predicates", {\ + "packageLocation": "./packages/predicates/",\ + "packageDependencies": [\ + ["@standardnotes/predicates", "workspace:packages/predicates"],\ + ["@standardnotes/common", "npm:1.23.1"],\ + ["@types/jest", "npm:27.5.2"],\ + ["@typescript-eslint/eslint-plugin", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:5.30.5"],\ + ["eslint-plugin-prettier", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.2.1"],\ + ["jest", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:27.5.1"],\ + ["reflect-metadata", "npm:0.1.13"],\ + ["ts-jest", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:27.1.5"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ ["@standardnotes/responses", [\ ["npm:1.6.39", {\ "packageLocation": "./.yarn/cache/@standardnotes-responses-npm-1.6.39-395f4c2d65-0ea1d4d5b8.zip/node_modules/@standardnotes/responses/",\ @@ -2961,16 +2982,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ - ["@standardnotes/scheduler", [\ - ["npm:1.1.2", {\ - "packageLocation": "./.yarn/cache/@standardnotes-scheduler-npm-1.1.2-78f89314fb-68642a0874.zip/node_modules/@standardnotes/scheduler/",\ - "packageDependencies": [\ - ["@standardnotes/scheduler", "npm:1.1.2"],\ - ["@standardnotes/common", "npm:1.23.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ ["@standardnotes/scheduler-server", [\ ["workspace:packages/scheduler", {\ "packageLocation": "./packages/scheduler/",\ @@ -2981,7 +2992,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@standardnotes/common", "npm:1.23.1"],\ ["@standardnotes/domain-events", "workspace:packages/domain-events"],\ ["@standardnotes/domain-events-infra", "workspace:packages/domain-events-infra"],\ - ["@standardnotes/scheduler", "npm:1.1.2"],\ + ["@standardnotes/predicates", "workspace:packages/predicates"],\ ["@standardnotes/time", "npm:1.7.1"],\ ["@types/ioredis", "npm:4.28.10"],\ ["@types/jest", "npm:28.1.4"],\ diff --git a/.yarn/cache/@standardnotes-scheduler-npm-1.1.2-78f89314fb-68642a0874.zip b/.yarn/cache/@standardnotes-scheduler-npm-1.1.2-78f89314fb-68642a0874.zip deleted file mode 100644 index e06738dc8..000000000 Binary files a/.yarn/cache/@standardnotes-scheduler-npm-1.1.2-78f89314fb-68642a0874.zip and /dev/null differ diff --git a/packages/auth/package.json b/packages/auth/package.json index 8634c8dad..0bc7f955c 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -40,8 +40,8 @@ "@standardnotes/domain-events": "workspace:*", "@standardnotes/domain-events-infra": "workspace:*", "@standardnotes/features": "^1.47.0", + "@standardnotes/predicates": "workspace:*", "@standardnotes/responses": "^1.6.39", - "@standardnotes/scheduler": "^1.1.2", "@standardnotes/settings": "^1.15.0", "@standardnotes/sncrypto-common": "^1.9.0", "@standardnotes/sncrypto-node": "^1.8.3", diff --git a/packages/domain-events/package.json b/packages/domain-events/package.json index 6a34e8e4a..51732ca27 100644 --- a/packages/domain-events/package.json +++ b/packages/domain-events/package.json @@ -26,7 +26,7 @@ "@standardnotes/auth": "^3.19.4", "@standardnotes/common": "^1.23.1", "@standardnotes/features": "^1.47.0", - "@standardnotes/scheduler": "^1.1.2", + "@standardnotes/predicates": "workspace:*", "reflect-metadata": "^0.1.13" }, "devDependencies": { diff --git a/packages/predicates/.eslintignore b/packages/predicates/.eslintignore new file mode 100644 index 000000000..1521c8b76 --- /dev/null +++ b/packages/predicates/.eslintignore @@ -0,0 +1 @@ +dist diff --git a/packages/predicates/.eslintrc b/packages/predicates/.eslintrc new file mode 100644 index 000000000..cb7136174 --- /dev/null +++ b/packages/predicates/.eslintrc @@ -0,0 +1,6 @@ +{ + "extends": "../../.eslintrc", + "parserOptions": { + "project": "./linter.tsconfig.json" + } +} diff --git a/packages/predicates/CHANGELOG.md b/packages/predicates/CHANGELOG.md new file mode 100644 index 000000000..119025eda --- /dev/null +++ b/packages/predicates/CHANGELOG.md @@ -0,0 +1,24 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.1.3](https://github.com/standardnotes/snjs/compare/@standardnotes/scheduler@1.1.2...@standardnotes/scheduler@1.1.3) (2022-07-04) + +### Bug Fixes + +* add missing reflect-metadata package to all packages ([ce3a5bb](https://github.com/standardnotes/snjs/commit/ce3a5bbf3f1d2276ac4abc3eec3c6a44c8c3ba9b)) + +## [1.1.2](https://github.com/standardnotes/snjs/compare/@standardnotes/scheduler@1.1.1...@standardnotes/scheduler@1.1.2) (2022-06-27) + +**Note:** Version bump only for package @standardnotes/scheduler + +## [1.1.1](https://github.com/standardnotes/snjs/compare/@standardnotes/scheduler@1.1.0...@standardnotes/scheduler@1.1.1) (2022-06-15) + +**Note:** Version bump only for package @standardnotes/scheduler + +# 1.1.0 (2022-06-13) + +### Features + +* add scheduler package ([251a2b5](https://github.com/standardnotes/snjs/commit/251a2b57937c4fcf3d23efd71dd6762a8df4496c)) diff --git a/packages/predicates/jest.config.js b/packages/predicates/jest.config.js new file mode 100644 index 000000000..e62343845 --- /dev/null +++ b/packages/predicates/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', + }, + } +}; diff --git a/packages/predicates/linter.tsconfig.json b/packages/predicates/linter.tsconfig.json new file mode 100644 index 000000000..c1a7d22c5 --- /dev/null +++ b/packages/predicates/linter.tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["dist"] +} diff --git a/packages/predicates/package.json b/packages/predicates/package.json new file mode 100644 index 000000000..00f471696 --- /dev/null +++ b/packages/predicates/package.json @@ -0,0 +1,38 @@ +{ + "name": "@standardnotes/predicates", + "version": "1.0.0", + "engines": { + "node": ">=16.0.0 <17.0.0" + }, + "description": "Utils and models required for scheduling jobs", + "main": "dist/src/index.js", + "author": "Standard Notes", + "types": "dist/src/index.d.ts", + "files": [ + "dist/src" + ], + "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", + "reflect-metadata": "^0.1.13" + } +} diff --git a/packages/predicates/src/Domain/Predicate/Predicate.ts b/packages/predicates/src/Domain/Predicate/Predicate.ts new file mode 100644 index 000000000..4f181519d --- /dev/null +++ b/packages/predicates/src/Domain/Predicate/Predicate.ts @@ -0,0 +1,10 @@ +import { Uuid } from '@standardnotes/common' + +import { PredicateAuthority } from './PredicateAuthority' +import { PredicateName } from './PredicateName' + +export type Predicate = { + jobUuid: Uuid + name: PredicateName + authority: PredicateAuthority +} diff --git a/packages/predicates/src/Domain/Predicate/PredicateAuthority.ts b/packages/predicates/src/Domain/Predicate/PredicateAuthority.ts new file mode 100644 index 000000000..4f4ea85d9 --- /dev/null +++ b/packages/predicates/src/Domain/Predicate/PredicateAuthority.ts @@ -0,0 +1,4 @@ +export enum PredicateAuthority { + Auth = 'auth', + SyncingServer = 'syncing-server', +} diff --git a/packages/predicates/src/Domain/Predicate/PredicateName.ts b/packages/predicates/src/Domain/Predicate/PredicateName.ts new file mode 100644 index 000000000..6b72b7e86 --- /dev/null +++ b/packages/predicates/src/Domain/Predicate/PredicateName.ts @@ -0,0 +1,4 @@ +export enum PredicateName { + EmailBackupsEnabled = 'email-backups-enabled', + SubscriptionPurchased = 'subscription-purchased', +} diff --git a/packages/predicates/src/Domain/Predicate/PredicateVerificationResult.ts b/packages/predicates/src/Domain/Predicate/PredicateVerificationResult.ts new file mode 100644 index 000000000..1c9786e3f --- /dev/null +++ b/packages/predicates/src/Domain/Predicate/PredicateVerificationResult.ts @@ -0,0 +1,4 @@ +export enum PredicateVerificationResult { + Affirmed = 'affirmed', + Denied = 'denied', +} diff --git a/packages/predicates/src/Domain/index.ts b/packages/predicates/src/Domain/index.ts new file mode 100644 index 000000000..58f584141 --- /dev/null +++ b/packages/predicates/src/Domain/index.ts @@ -0,0 +1,4 @@ +export * from './Predicate/Predicate' +export * from './Predicate/PredicateAuthority' +export * from './Predicate/PredicateName' +export * from './Predicate/PredicateVerificationResult' diff --git a/packages/predicates/src/index.ts b/packages/predicates/src/index.ts new file mode 100644 index 000000000..920deacdb --- /dev/null +++ b/packages/predicates/src/index.ts @@ -0,0 +1 @@ +export * from './Domain' diff --git a/packages/predicates/tsconfig.json b/packages/predicates/tsconfig.json new file mode 100644 index 000000000..8d2588d39 --- /dev/null +++ b/packages/predicates/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "composite": true, + "outDir": "./dist", + }, + "include": [ + "src/**/*" + ], + "references": [] +} diff --git a/packages/scheduler/package.json b/packages/scheduler/package.json index 99d7ccd4a..a79801acc 100644 --- a/packages/scheduler/package.json +++ b/packages/scheduler/package.json @@ -29,7 +29,7 @@ "@standardnotes/common": "^1.23.1", "@standardnotes/domain-events": "workspace:*", "@standardnotes/domain-events-infra": "workspace:*", - "@standardnotes/scheduler": "^1.1.2", + "@standardnotes/predicates": "workspace:*", "@standardnotes/time": "^1.7.1", "aws-sdk": "^2.1158.0", "dayjs": "^1.11.3", diff --git a/tsconfig.json b/tsconfig.json index 8b0b4551d..adf59a674 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -40,6 +40,9 @@ { "path": "./packages/files" }, + { + "path": "./packages/predicates" + }, { "path": "./packages/scheduler" }, diff --git a/yarn.lock b/yarn.lock index 9131fe6ce..9c43f38e8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2023,8 +2023,8 @@ __metadata: "@standardnotes/domain-events": "workspace:*" "@standardnotes/domain-events-infra": "workspace:*" "@standardnotes/features": ^1.47.0 + "@standardnotes/predicates": "workspace:*" "@standardnotes/responses": ^1.6.39 - "@standardnotes/scheduler": ^1.1.2 "@standardnotes/settings": ^1.15.0 "@standardnotes/sncrypto-common": ^1.9.0 "@standardnotes/sncrypto-node": ^1.8.3 @@ -2127,7 +2127,7 @@ __metadata: "@standardnotes/auth": ^3.19.4 "@standardnotes/common": ^1.23.1 "@standardnotes/features": ^1.47.0 - "@standardnotes/scheduler": ^1.1.2 + "@standardnotes/predicates": "workspace:*" "@types/jest": ^28.1.4 "@typescript-eslint/eslint-plugin": ^5.30.0 eslint-plugin-prettier: ^4.2.1 @@ -2238,6 +2238,20 @@ __metadata: languageName: node linkType: hard +"@standardnotes/predicates@workspace:*, @standardnotes/predicates@workspace:packages/predicates": + version: 0.0.0-use.local + resolution: "@standardnotes/predicates@workspace:packages/predicates" + dependencies: + "@standardnotes/common": ^1.23.1 + "@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/responses@npm:^1.6.39": version: 1.6.39 resolution: "@standardnotes/responses@npm:1.6.39" @@ -2258,7 +2272,7 @@ __metadata: "@standardnotes/common": ^1.23.1 "@standardnotes/domain-events": "workspace:*" "@standardnotes/domain-events-infra": "workspace:*" - "@standardnotes/scheduler": ^1.1.2 + "@standardnotes/predicates": "workspace:*" "@standardnotes/time": ^1.7.1 "@types/ioredis": ^4.28.10 "@types/jest": ^28.1.2 @@ -2282,15 +2296,6 @@ __metadata: languageName: unknown linkType: soft -"@standardnotes/scheduler@npm:^1.1.2": - version: 1.1.2 - resolution: "@standardnotes/scheduler@npm:1.1.2" - dependencies: - "@standardnotes/common": ^1.23.1 - checksum: 68642a08741aeb4936e4a69e43e2b85e5cbfa3ce60006d292cee517d33093edaf35a6a7af61343d85ab3474d6e980a073a2779f6e0b1f11805ab06a407b15ce7 - languageName: node - linkType: hard - "@standardnotes/server-monorepo@workspace:.": version: 0.0.0-use.local resolution: "@standardnotes/server-monorepo@workspace:."