diff --git a/package.json b/package.json index d019b123..d366c768 100644 --- a/package.json +++ b/package.json @@ -146,10 +146,10 @@ "webpack-cli": "^4.9.1" }, "_moduleAliases": { - "@core": "paf-mvp-core-js/src", - "@operator": "paf-mvp-operator-express/src", - "@client": "paf-mvp-client-express/src", - "@frontend": "paf-mvp-frontend/src" + "@onekey/core": "paf-mvp-core-js/src", + "@onekey/operator-node": "paf-mvp-operator-express/src", + "@onekey/client-node": "paf-mvp-client-express/src", + "@onekey/frontend": "paf-mvp-frontend/src" }, "lint-staged": { "*.{ts,tsx}": [ diff --git a/paf-mvp-audit/cypress/integration/audit-log.spec.ts b/paf-mvp-audit/cypress/integration/audit-log.spec.ts index ee2aa96f..b8d4c800 100644 --- a/paf-mvp-audit/cypress/integration/audit-log.spec.ts +++ b/paf-mvp-audit/cypress/integration/audit-log.spec.ts @@ -1,8 +1,7 @@ import { AuditLogPage } from '../pages/audit-log.page'; -import { Seed, Source, TransactionId, TransmissionResponse } from '@core/model'; +import { Cookies, Seed, Source, TransactionId, TransmissionResponse } from '@onekey/core'; import { getFakeIdentifiers, getFakePreferences } from '@test-fixtures/cookies'; -import { Cookies } from '@core/cookies'; -import { IOneKeyLib, TransmissionRegistryContext } from '@frontend/lib/paf-lib'; +import { IOneKeyLib, TransmissionRegistryContext } from '@onekey/frontend/lib/paf-lib'; describe('Audit log', () => { let page: AuditLogPage; diff --git a/paf-mvp-audit/cypress/tsconfig.json b/paf-mvp-audit/cypress/tsconfig.json index 96a9a1f5..0c63bf82 100644 --- a/paf-mvp-audit/cypress/tsconfig.json +++ b/paf-mvp-audit/cypress/tsconfig.json @@ -6,10 +6,9 @@ "esModuleInterop": true, "types": ["@testing-library/cypress", "cypress"], "paths": { - "@core/*": ["../../paf-mvp-core-js/src/*"], "@test-helpers/*": ["../../paf-mvp-core-js/tests/helpers/*"], "@test-fixtures/*": ["../../paf-mvp-core-js/tests/fixtures/*"], - "@frontend/*": ["../../paf-mvp-frontend/src/*"] + "@onekey/frontend/*": ["../../paf-mvp-frontend/src/*"] } }, "include": ["./"] diff --git a/paf-mvp-audit/package-lock.json b/paf-mvp-audit/package-lock.json index 1102084b..8b6ea379 100644 --- a/paf-mvp-audit/package-lock.json +++ b/paf-mvp-audit/package-lock.json @@ -8,6 +8,9 @@ "name": "paf-mvp-audit", "version": "0.1.0", "license": "Apache-2.0", + "dependencies": { + "@onekey/core": "../paf-mvp-core-js/src" + }, "devDependencies": { "@rollup/plugin-typescript": "^8.3.0", "@testing-library/cypress": "^8.0.2", @@ -30,6 +33,51 @@ "typescript": "^4.4.4" } }, + "../paf-mvp-core-js": { + "name": "@onekey/core", + "version": "1.0.13", + "license": "ISC", + "dependencies": { + "@types/cors": "^2.8.12", + "@types/ua-parser-js": "^0.7.36", + "@types/uuid": "^8.3.4", + "@types/vhost": "^3.0.4", + "ajv": "^8.11.0", + "atob": "^2.1.2", + "axios": "^0.26.1", + "btoa": "^1.2.1", + "connect-timeout": "^1.9.0", + "cors": "^2.8.5", + "detect-browser": "^5.3.0", + "json-schema-to-ts": "^1.6.5", + "mock-fs": "^5.1.2", + "tld-extract": "^2.0.1", + "ua-parser-js": "^1.0.2", + "uuid": "^8.3.2", + "vhost": "^3.0.2" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "@types/connect-timeout": "^0.0.36", + "@types/cookie-parser": "^1.4.2", + "@types/express": "^4.17.1", + "@types/express-serve-static-core": "^4.17.28", + "@types/json-schema": "^7.0.9", + "jest": "^28.1.3", + "json-schema-to-typescript": "^10.1.5", + "rollup-plugin-dts": "^4.2.2", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript-paths": "^1.3.1", + "rollup-plugin-typescript2": "^0.32.1", + "ts-jest": "^28.0.7", + "ts-node": "^10.4.0", + "tslib": "^2.4.0", + "typescript": "^4.5.4" + } + }, + "../paf-mvp-core-js/src": {}, "node_modules/@adobe/css-tools": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", @@ -1293,6 +1341,10 @@ "node": ">= 8" } }, + "node_modules/@onekey/core": { + "resolved": "../paf-mvp-core-js/src", + "link": true + }, "node_modules/@rollup/plugin-typescript": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.4.0.tgz", @@ -9231,6 +9283,9 @@ "fastq": "^1.6.0" } }, + "@onekey/core": { + "version": "file:../paf-mvp-core-js/src" + }, "@rollup/plugin-typescript": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.4.0.tgz", diff --git a/paf-mvp-audit/package.json b/paf-mvp-audit/package.json index 77868b45..d4d34af2 100644 --- a/paf-mvp-audit/package.json +++ b/paf-mvp-audit/package.json @@ -15,6 +15,9 @@ "directories": { "test": "tests" }, + "dependencies": { + "@onekey/core": "../paf-mvp-core-js/src" + }, "devDependencies": { "@rollup/plugin-typescript": "^8.3.0", "@testing-library/cypress": "^8.0.2", diff --git a/paf-mvp-audit/rollup.config.js b/paf-mvp-audit/rollup.config.js index c77ba720..ebd922d8 100644 --- a/paf-mvp-audit/rollup.config.js +++ b/paf-mvp-audit/rollup.config.js @@ -17,6 +17,7 @@ import { string } from 'rollup-plugin-string'; import livereload from 'rollup-plugin-livereload'; import copy from 'rollup-plugin-copy'; import serve from 'rollup-plugin-serve'; +import json from '@rollup/plugin-json'; // When developing this project independently of the other projects in the repo const IS_PROJECT_DEV = process.env.ROLLUP_WATCH !== undefined; @@ -26,6 +27,7 @@ const DIST = 'dist'; export default { input: './src/main.ts', plugins: [ + json(), string({ include: ['**/*.css', '**/*.svg'] }), postHTML({ template: true }), yaml(), diff --git a/paf-mvp-audit/src/controller.ts b/paf-mvp-audit/src/controller.ts index dc2cbf06..d736f044 100644 --- a/paf-mvp-audit/src/controller.ts +++ b/paf-mvp-audit/src/controller.ts @@ -1,12 +1,10 @@ import { Locale } from './locale'; -import { TransmissionResult } from '@core/model/generated-model'; -import { Log } from '@core/log'; +import { BindingViewOnly, Log, TransmissionResult } from '@onekey/core'; import { Model } from './model'; import { View } from './view'; -import { BindingViewOnly } from '@core/ui/binding'; import providerComponent from './html/components/provider.html'; import iconTick from './images/IconTick.svg'; -import { Window } from '@frontend/global'; +import { Window } from '@onekey/frontend/global'; // TODO: Add back when full audit information is available. // import iconCross from './images/iconCross.svg'; diff --git a/paf-mvp-audit/src/main.ts b/paf-mvp-audit/src/main.ts index ae8ff986..4c9a1a65 100644 --- a/paf-mvp-audit/src/main.ts +++ b/paf-mvp-audit/src/main.ts @@ -1,7 +1,7 @@ import { Locale } from './locale'; import { Controller } from './controller'; -import { Window } from '@frontend/global'; -import { Log, LogLevel } from '@core/log'; +import { Window } from '@onekey/frontend/global'; +import { Log, LogLevel } from '@onekey/core'; // Debug level while playing with MVP Log.level = LogLevel.Debug; diff --git a/paf-mvp-audit/src/model.ts b/paf-mvp-audit/src/model.ts index b257c923..6eddb081 100644 --- a/paf-mvp-audit/src/model.ts +++ b/paf-mvp-audit/src/model.ts @@ -1,5 +1,4 @@ -import { Field, IFieldBind, IModel } from '@core/ui/fields'; -import { AuditLog, TransmissionResult } from '@core/model/generated-model'; +import { AuditLog, Field, IFieldBind, IModel, TransmissionResult } from '@onekey/core'; /** * Field represents the transmission result from the audit log. diff --git a/paf-mvp-audit/src/view.ts b/paf-mvp-audit/src/view.ts index dd2993af..4b64e5b3 100644 --- a/paf-mvp-audit/src/view.ts +++ b/paf-mvp-audit/src/view.ts @@ -7,8 +7,7 @@ import css from './css/ok-ui.css'; import auditTemplate from './html/containers/audit.html'; import buttonTemplate from './html/components/button.html'; import { Locale } from './locale'; -import { IView } from '@core/ui/binding'; -import { Log } from '@core/log'; +import { IView, Log } from '@onekey/core'; export class View implements IView { // The shadow root for the UI. diff --git a/paf-mvp-client-express/.npmrc b/paf-mvp-client-express/.npmrc index 65719058..04f67d03 100644 --- a/paf-mvp-client-express/.npmrc +++ b/paf-mvp-client-express/.npmrc @@ -1,2 +1,3 @@ registry=https://registry.npmjs.org/ access=public +legacy-peer-deps=true diff --git a/paf-mvp-client-express/examples/example-client-node.ts b/paf-mvp-client-express/examples/example-client-node.ts index 6d54a78b..ba1bf9bb 100644 --- a/paf-mvp-client-express/examples/example-client-node.ts +++ b/paf-mvp-client-express/examples/example-client-node.ts @@ -1,5 +1,5 @@ /* eslint @typescript-eslint/no-unused-vars: 0 */ -import { ClientNode } from '@client/client-node'; +import { ClientNode } from '@onekey/client-node/client-node'; // Here is how the client is created. See config.json and public-key.pem, private-key.pem files (async () => { diff --git a/paf-mvp-client-express/package-lock.json b/paf-mvp-client-express/package-lock.json index 172f34d1..9645831a 100644 --- a/paf-mvp-client-express/package-lock.json +++ b/paf-mvp-client-express/package-lock.json @@ -1,12 +1,12 @@ { "name": "@onekey/client-node", - "version": "1.0.9", + "version": "1.0.13", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@onekey/client-node", - "version": "1.0.9", + "version": "1.0.13", "license": "ISC", "dependencies": { "axios": "^0.26.1", @@ -17,6 +17,7 @@ "winston": "^3.4.0" }, "devDependencies": { + "@onekey/core": "../paf-mvp-core-js/src", "@rollup/plugin-commonjs": "^22.0.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.3.0", @@ -31,8 +32,59 @@ "ts-jest": "^28.0.7", "tslib": "^2.4.0", "typescript": "^4.5.4" + }, + "peerDependencies": { + "@onekey/core": "^1.0.13" + } + }, + "../paf-mvp-core-js": { + "name": "@onekey/core", + "version": "1.0.13", + "dev": true, + "license": "ISC", + "dependencies": { + "@types/cors": "^2.8.12", + "@types/ua-parser-js": "^0.7.36", + "@types/uuid": "^8.3.4", + "@types/vhost": "^3.0.4", + "ajv": "^8.11.0", + "atob": "^2.1.2", + "axios": "^0.26.1", + "btoa": "^1.2.1", + "connect-timeout": "^1.9.0", + "cors": "^2.8.5", + "detect-browser": "^5.3.0", + "json-schema-to-ts": "^1.6.5", + "mock-fs": "^5.1.2", + "tld-extract": "^2.0.1", + "ua-parser-js": "^1.0.2", + "uuid": "^8.3.2", + "vhost": "^3.0.2" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "@types/connect-timeout": "^0.0.36", + "@types/cookie-parser": "^1.4.2", + "@types/express": "^4.17.1", + "@types/express-serve-static-core": "^4.17.28", + "@types/json-schema": "^7.0.9", + "jest": "^28.1.3", + "json-schema-to-typescript": "^10.1.5", + "rollup-plugin-dts": "^4.2.2", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript-paths": "^1.3.1", + "rollup-plugin-typescript2": "^0.32.1", + "ts-jest": "^28.0.7", + "ts-node": "^10.4.0", + "tslib": "^2.4.0", + "typescript": "^4.5.4" } }, + "../paf-mvp-core-js/src": { + "dev": true + }, "node_modules/@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", @@ -1320,6 +1372,10 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@onekey/core": { + "resolved": "../paf-mvp-core-js/src", + "link": true + }, "node_modules/@rollup/plugin-commonjs": { "version": "22.0.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", @@ -5430,22 +5486,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rollup": { - "version": "2.75.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.6.tgz", - "integrity": "sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==", - "dev": true, - "peer": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/rollup-plugin-dts": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz", @@ -7315,6 +7355,9 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@onekey/core": { + "version": "file:../paf-mvp-core-js/src" + }, "@rollup/plugin-commonjs": { "version": "22.0.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", @@ -9295,8 +9338,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "28.0.2", @@ -10418,16 +10460,6 @@ "glob": "^7.1.3" } }, - "rollup": { - "version": "2.75.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.6.tgz", - "integrity": "sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==", - "dev": true, - "peer": true, - "requires": { - "fsevents": "~2.3.2" - } - }, "rollup-plugin-dts": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz", @@ -10454,8 +10486,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript-paths/-/rollup-plugin-typescript-paths-1.3.1.tgz", "integrity": "sha512-gRjWwEIVcrga59OWWh8WGiJlcM9zzdr8xS64ZVYl+0pU5kRpoy2nu4QHh6bBlacIM38PK41w1v0WrH5SgTNetg==", - "dev": true, - "requires": {} + "dev": true }, "rollup-plugin-typescript2": { "version": "0.32.1", diff --git a/paf-mvp-client-express/package.json b/paf-mvp-client-express/package.json index c20f18e8..afee0fc5 100644 --- a/paf-mvp-client-express/package.json +++ b/paf-mvp-client-express/package.json @@ -1,6 +1,6 @@ { "name": "@onekey/client-node", - "version": "1.0.9", + "version": "1.0.13", "description": "OneKey Client node based on ExpressJS", "module": "dist/index.mjs", "main": "dist/index.cjs", @@ -46,6 +46,10 @@ "rollup-plugin-typescript2": "^0.32.1", "ts-jest": "^28.0.7", "tslib": "^2.4.0", - "typescript": "^4.5.4" + "typescript": "^4.5.4", + "@onekey/core": "../paf-mvp-core-js/src" + }, + "peerDependencies": { + "@onekey/core": "^1.0.13" } } diff --git a/paf-mvp-client-express/rollup.config.js b/paf-mvp-client-express/rollup.config.js index 07f56d19..ebc6d2e8 100644 --- a/paf-mvp-client-express/rollup.config.js +++ b/paf-mvp-client-express/rollup.config.js @@ -14,7 +14,6 @@ const DEV = process.env.ROLLUP_WATCH; const relative = path => join(__dirname, path); const entryPath = relative('src/index.ts'); -const coreExpressPath = relative('../paf-mvp-core-js/src/express/index.ts'); // https://rollupjs.org/guide/en/#configuration-files export default [ @@ -22,9 +21,6 @@ export default [ { input: { index: entryPath, - // Include core typings - // TODO this should be a proper npm package, not part of the build - core: coreExpressPath }, plugins: [dts()], // Generate type declaration file index.d.ts output: { diff --git a/paf-mvp-client-express/src/client-node.ts b/paf-mvp-client-express/src/client-node.ts index 1f733451..6ec6c3ca 100644 --- a/paf-mvp-client-express/src/client-node.ts +++ b/paf-mvp-client-express/src/client-node.ts @@ -1,12 +1,24 @@ import { NextFunction, Request, Response } from 'express'; import { OperatorClient } from './operator-client'; -import { NodeError, PostSeedRequest, PostSeedResponse, RedirectGetIdsPrefsResponse } from '@core/model'; -import { jsonProxyEndpoints, redirectProxyEndpoints } from '@core/endpoints'; -import { Config, Node, parseConfig, VHostApp } from '@core/express'; -import { fromDataToObject } from '@core/query-string'; +import { + Config, + fromDataToObject, + IJsonValidator, + jsonProxyEndpoints, + JsonSchemaType, + JsonValidator, + Node, + NodeError, + parseConfig, + PostSeedRequest, + PostSeedResponse, + PublicKeyProvider, + PublicKeyStore, + RedirectGetIdsPrefsResponse, + redirectProxyEndpoints, + VHostApp, +} from '@onekey/core'; import { AxiosRequestConfig } from 'axios'; -import { PublicKeyProvider, PublicKeyStore } from '@core/crypto'; -import { IJsonValidator, JsonSchemaType, JsonValidator } from '@core/validation/json-validator'; import { WebsiteIdentityValidator } from './website-identity-validator'; /** diff --git a/paf-mvp-client-express/src/index.ts b/paf-mvp-client-express/src/index.ts index 0c5f6422..53745c46 100644 --- a/paf-mvp-client-express/src/index.ts +++ b/paf-mvp-client-express/src/index.ts @@ -1,3 +1,2 @@ export * from './client-node'; -export * from '@core/express'; export * from './website-identity-validator'; diff --git a/paf-mvp-client-express/src/operator-client.ts b/paf-mvp-client-express/src/operator-client.ts index 9b7d7ffa..9480d619 100644 --- a/paf-mvp-client-express/src/operator-client.ts +++ b/paf-mvp-client-express/src/operator-client.ts @@ -1,36 +1,34 @@ import { - GetIdsPrefsResponse, - Identifiers, - IdsAndPreferences, - PostSignPreferencesRequest, - Preferences, - ProxyPostIdsPrefsResponse, - Seed, - Signature, - TransactionId, -} from '@core/model/generated-model'; -import { CurrentModelVersion, UnsignedSource } from '@core/model/model'; -import { PublicKeyProvider } from '@core/crypto/key-store'; -import { + CurrentModelVersion, DeleteIdsPrefsRequestBuilder, Get3PCRequestBuilder, GetIdsPrefsRequestBuilder, + GetIdsPrefsResponse, GetNewIdRequestBuilder, - PostIdsPrefsRequestBuilder, -} from '@core/model/operator-request-builders'; -import { Signer } from '@core/crypto/signer'; -import { + getPayload, + getTimeStampInSec, + Identifiers, + IdsAndPreferences, IdsAndPreferencesDefinition, IdsAndUnsignedPreferences, + MessageVerificationResult, + PostIdsPrefsRequestBuilder, + PostSignPreferencesRequest, + Preferences, + ProxyPostIdsPrefsResponse, + proxyUriParams, + PublicKeyProvider, ResponseDefinition, + ResponseVerifier, + Seed, SeedSignatureBuilder, SeedSignatureContainer, -} from '@core/crypto/signing-definition'; -import { MessageVerificationResult, ResponseVerifier } from '@core/crypto/verifier'; -import { getTimeStampInSec } from '@core/timestamp'; + Signature, + Signer, + TransactionId, + UnsignedSource, +} from '@onekey/core'; import { Request } from 'express'; -import { getPayload } from '@core/express'; -import { proxyUriParams } from '@core/endpoints'; // FIXME should probably be moved to core library export class OperatorClient { diff --git a/paf-mvp-client-express/src/website-identity-validator.ts b/paf-mvp-client-express/src/website-identity-validator.ts index 1cccee94..8466d20c 100644 --- a/paf-mvp-client-express/src/website-identity-validator.ts +++ b/paf-mvp-client-express/src/website-identity-validator.ts @@ -1,8 +1,6 @@ import cors, { CorsOptions } from 'cors'; import { NextFunction, Request, Response } from 'express'; -import { escapeRegExp, getTopLevelDomain } from '@core/express'; -import { NodeError } from '@core/model'; -import { proxyUriParams } from '@core/endpoints'; +import { escapeRegExp, getTopLevelDomain, NodeError, proxyUriParams } from '@onekey/core'; /** * Class to manipulate allowed origins and referrers based on current hostname diff --git a/paf-mvp-cmp/package-lock.json b/paf-mvp-cmp/package-lock.json index a8bb9239..d7653b1a 100644 --- a/paf-mvp-cmp/package-lock.json +++ b/paf-mvp-cmp/package-lock.json @@ -8,11 +8,59 @@ "name": "paf-mvp-cmp", "version": "0.1.0", "license": "Apache-2.0", + "dependencies": { + "@onekey/core": "../paf-mvp-core-js/src" + }, "devDependencies": { "@types/jest": "^28.1.3", "jest": "^28.1.3" } }, + "../paf-mvp-core-js": { + "name": "@onekey/core", + "version": "1.0.13", + "license": "ISC", + "dependencies": { + "@types/cors": "^2.8.12", + "@types/ua-parser-js": "^0.7.36", + "@types/uuid": "^8.3.4", + "@types/vhost": "^3.0.4", + "ajv": "^8.11.0", + "atob": "^2.1.2", + "axios": "^0.26.1", + "btoa": "^1.2.1", + "connect-timeout": "^1.9.0", + "cors": "^2.8.5", + "detect-browser": "^5.3.0", + "json-schema-to-ts": "^1.6.5", + "mock-fs": "^5.1.2", + "tld-extract": "^2.0.1", + "ua-parser-js": "^1.0.2", + "uuid": "^8.3.2", + "vhost": "^3.0.2" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "@types/connect-timeout": "^0.0.36", + "@types/cookie-parser": "^1.4.2", + "@types/express": "^4.17.1", + "@types/express-serve-static-core": "^4.17.28", + "@types/json-schema": "^7.0.9", + "jest": "^28.1.3", + "json-schema-to-typescript": "^10.1.5", + "rollup-plugin-dts": "^4.2.2", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript-paths": "^1.3.1", + "rollup-plugin-typescript2": "^0.32.1", + "ts-jest": "^28.0.7", + "ts-node": "^10.4.0", + "tslib": "^2.4.0", + "typescript": "^4.5.4" + } + }, + "../paf-mvp-core-js/src": {}, "node_modules/@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", @@ -927,6 +975,10 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@onekey/core": { + "resolved": "../paf-mvp-core-js/src", + "link": true + }, "node_modules/@sinclair/typebox": { "version": "0.24.39", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.39.tgz", @@ -4142,6 +4194,9 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@onekey/core": { + "version": "file:../paf-mvp-core-js/src" + }, "@sinclair/typebox": { "version": "0.24.39", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.39.tgz", diff --git a/paf-mvp-cmp/package.json b/paf-mvp-cmp/package.json index 2b7ba250..ff15b5cd 100644 --- a/paf-mvp-cmp/package.json +++ b/paf-mvp-cmp/package.json @@ -13,6 +13,9 @@ "directories": { "test": "tests" }, + "dependencies": { + "@onekey/core": "../paf-mvp-core-js/src" + }, "keywords": [], "author": "", "license": "Apache-2.0", diff --git a/paf-mvp-cmp/rollup.config.js b/paf-mvp-cmp/rollup.config.js index 22f25abc..156aed72 100644 --- a/paf-mvp-cmp/rollup.config.js +++ b/paf-mvp-cmp/rollup.config.js @@ -26,6 +26,7 @@ import * as yaml from 'js-yaml'; // Used to get the TCF core string from the environment. import { env } from 'process'; +import json from '@rollup/plugin-json'; const DEV = process.env.ROLLUP_WATCH; @@ -185,6 +186,7 @@ function buildLocaleConfig(localeCode, localeContent, tcfCoreTemplate) { // paf-lib must not be included in the bundle: it is imported separately external: [ path.resolve( '../paf-mvp-frontend/src/lib/paf-lib.ts' ) ], plugins: [ + json(), replace({ include: './src/main.ts', preventAssignment: true, diff --git a/paf-mvp-cmp/src/bindings.ts b/paf-mvp-cmp/src/bindings.ts index 8910b09c..3faa4d9c 100644 --- a/paf-mvp-cmp/src/bindings.ts +++ b/paf-mvp-cmp/src/bindings.ts @@ -1,6 +1,5 @@ import { Config } from './config'; -import { BindingViewOnly } from '@core/ui/binding'; -import { Identifier, PreferencesData } from '@core/model/generated-model'; +import { BindingViewOnly, Identifier, PreferencesData } from '@onekey/core'; import { Marketing, Model } from './model'; import { View } from './view'; diff --git a/paf-mvp-cmp/src/config.ts b/paf-mvp-cmp/src/config.ts index a3f7dca0..81b66ccb 100644 --- a/paf-mvp-cmp/src/config.ts +++ b/paf-mvp-cmp/src/config.ts @@ -1,4 +1,4 @@ -import { Log } from '@core/log'; +import { Log } from '@onekey/core'; import { TcfCore } from './tcfcore'; /** diff --git a/paf-mvp-cmp/src/controller.ts b/paf-mvp-cmp/src/controller.ts index 44b50c43..0be70080 100644 --- a/paf-mvp-cmp/src/controller.ts +++ b/paf-mvp-cmp/src/controller.ts @@ -1,16 +1,25 @@ import { Config } from './config'; import { BindingDisplayRandomId, BindingShowRandomIdDiv, BindingThisSiteOnly } from './bindings'; -import { Log } from '@core/log'; -import { BindingButton, BindingChecked, BindingCheckedMap, BindingElement } from '@core/ui/binding'; -import { Identifier, IdsAndOptionalPreferences, Preferences, PreferencesData } from '@core/model/generated-model'; +import { + BindingButton, + BindingChecked, + BindingCheckedMap, + BindingElement, + Cookies, + getPrebidDataCacheExpiration, + Identifier, + IdsAndOptionalPreferences, + Log, + Preferences, + PreferencesData, +} from '@onekey/core'; import { Marketing, Model } from './model'; -import { PafStatus } from '@frontend/enums/status.enum'; +import { PafStatus } from '@onekey/frontend/enums/status.enum'; import { View } from './view'; -import { getCookieValue } from '@frontend/utils/cookie'; -import { Cookies, getPrebidDataCacheExpiration } from '@core/cookies'; +import { getCookieValue } from '@onekey/frontend/utils/cookie'; import { TcfCore } from './tcfcore'; import { ILocale } from './ILocale'; -import { Window } from '@frontend/global'; +import { Window } from '@onekey/frontend/global'; const OneKeyLib = (window).OneKey; diff --git a/paf-mvp-cmp/src/main.ts b/paf-mvp-cmp/src/main.ts index 943cd258..2cbede61 100644 --- a/paf-mvp-cmp/src/main.ts +++ b/paf-mvp-cmp/src/main.ts @@ -1,8 +1,8 @@ import { Config } from './config'; import { Controller } from './controller'; -import { Log, LogLevel } from '@core/log'; -import { NotificationEnum } from '@frontend/enums/notification.enum'; -import { Window } from '@frontend/global'; +import { Log, LogLevel } from '@onekey/core'; +import { NotificationEnum } from '@onekey/frontend/enums/notification.enum'; +import { Window } from '@onekey/frontend/global'; /** * The language text object populated by rollup.config.js at build time based on the YAML resource language files. diff --git a/paf-mvp-cmp/src/model.ts b/paf-mvp-cmp/src/model.ts index 9cf5a990..89453485 100644 --- a/paf-mvp-cmp/src/model.ts +++ b/paf-mvp-cmp/src/model.ts @@ -1,13 +1,17 @@ -import { PafStatus } from '@frontend/enums/status.enum'; -import { Field, FieldReadOnly, IFieldBind, IFieldChangable, IModel } from '@core/ui/fields'; +import { PafStatus } from '@onekey/frontend/enums/status.enum'; import { + Field, + FieldReadOnly, Identifier, IdsAndOptionalPreferences, + IFieldBind, + IFieldChangable, + IModel, Preferences, PreferencesData, Source, Version, -} from '@core/model/generated-model'; +} from '@onekey/core'; /** * The different states for the marketing preferences field. diff --git a/paf-mvp-cmp/src/view.ts b/paf-mvp-cmp/src/view.ts index f7fc8749..91e8bd98 100644 --- a/paf-mvp-cmp/src/view.ts +++ b/paf-mvp-cmp/src/view.ts @@ -11,7 +11,7 @@ import itemTemplate from './html/components/customize.html'; import snackbarTemplate from './html/cards/snackbar.html'; import popupTemplate from './html/containers/popup.html'; import { Config } from './config'; -import { IView } from '@core/ui/binding'; +import { IView } from '@onekey/core'; import { ILocale } from './ILocale'; import { Tooltip } from './tooltip'; diff --git a/paf-mvp-cmp/tests/test-cases/model.test.ts b/paf-mvp-cmp/tests/test-cases/model.test.ts index f09827c0..52697417 100644 --- a/paf-mvp-cmp/tests/test-cases/model.test.ts +++ b/paf-mvp-cmp/tests/test-cases/model.test.ts @@ -1,5 +1,5 @@ import { FieldSingle, Marketing, Model } from '../../src/model'; -import { Identifier, Preferences, PreferencesData } from '@core/model/generated-model'; +import { Identifier, Preferences, PreferencesData } from '@onekey/core'; let model: Model; diff --git a/paf-mvp-core-js/package-lock.json b/paf-mvp-core-js/package-lock.json index a142823b..08d481c8 100644 --- a/paf-mvp-core-js/package-lock.json +++ b/paf-mvp-core-js/package-lock.json @@ -1,12 +1,12 @@ { "name": "@onekey/core", - "version": "1.0.9", + "version": "1.0.13", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@onekey/core", - "version": "1.0.9", + "version": "1.0.13", "license": "ISC", "dependencies": { "@types/cors": "^2.8.12", @@ -17,6 +17,7 @@ "atob": "^2.1.2", "axios": "^0.26.1", "btoa": "^1.2.1", + "connect-timeout": "^1.9.0", "cors": "^2.8.5", "detect-browser": "^5.3.0", "json-schema-to-ts": "^1.6.5", @@ -30,6 +31,7 @@ "@rollup/plugin-commonjs": "^22.0.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.3.0", + "@types/connect-timeout": "^0.0.36", "@types/cookie-parser": "^1.4.2", "@types/express": "^4.17.1", "@types/express-serve-static-core": "^4.17.28", @@ -1511,6 +1513,15 @@ "@types/node": "*" } }, + "node_modules/@types/connect-timeout": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/connect-timeout/-/connect-timeout-0.0.36.tgz", + "integrity": "sha512-rfw+RJU9gd0JeOJSkfRVixCETnw1ezx6Uo3exetKBeIKY4GaL/MVb4XCjmB4dgeZQ5vkcLlpYLVSbYIeqDu25g==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, "node_modules/@types/cookie-parser": { "version": "1.4.2", "integrity": "sha512-uwcY8m6SDQqciHsqcKDGbo10GdasYsPCYkH3hVegj9qAah6pX5HivOnOuI3WYmyQMnOATV39zv/Ybs0bC/6iVg==", @@ -2209,6 +2220,25 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/connect-timeout": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.9.0.tgz", + "integrity": "sha512-q4bsBIPd+eSGtnh/u6EBOKfuG+4YvwsN0idlOsg6KAw71Qpi0DCf2eCc/Va63QU9qdOeYC8katxoC+rHMNygZg==", + "dependencies": { + "http-errors": "~1.6.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect-timeout/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "node_modules/convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", @@ -2296,6 +2326,14 @@ "node": ">=0.10.0" } }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/detect-browser": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", @@ -2327,6 +2365,11 @@ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, "node_modules/electron-to-chromium": { "version": "1.4.213", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.213.tgz", @@ -2752,6 +2795,25 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -5054,6 +5116,25 @@ "node": ">=0.10.0" } }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", @@ -5355,22 +5436,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rollup": { - "version": "2.75.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", - "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", - "dev": true, - "peer": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/rollup-plugin-dts": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz", @@ -5497,6 +5562,11 @@ "randombytes": "^2.1.0" } }, + "node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5591,6 +5661,14 @@ "node": ">=8" } }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -7365,6 +7443,15 @@ "@types/node": "*" } }, + "@types/connect-timeout": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/connect-timeout/-/connect-timeout-0.0.36.tgz", + "integrity": "sha512-rfw+RJU9gd0JeOJSkfRVixCETnw1ezx6Uo3exetKBeIKY4GaL/MVb4XCjmB4dgeZQ5vkcLlpYLVSbYIeqDu25g==", + "dev": true, + "requires": { + "@types/express": "*" + } + }, "@types/cookie-parser": { "version": "1.4.2", "integrity": "sha512-uwcY8m6SDQqciHsqcKDGbo10GdasYsPCYkH3hVegj9qAah6pX5HivOnOuI3WYmyQMnOATV39zv/Ybs0bC/6iVg==", @@ -7926,6 +8013,24 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "connect-timeout": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.9.0.tgz", + "integrity": "sha512-q4bsBIPd+eSGtnh/u6EBOKfuG+4YvwsN0idlOsg6KAw71Qpi0DCf2eCc/Va63QU9qdOeYC8katxoC+rHMNygZg==", + "requires": { + "http-errors": "~1.6.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, "convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", @@ -7998,6 +8103,11 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, "detect-browser": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", @@ -8020,6 +8130,11 @@ "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", "dev": true }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, "electron-to-chromium": { "version": "1.4.213", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.213.tgz", @@ -8338,6 +8453,24 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + } + } + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -9160,8 +9293,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "28.0.2", @@ -10074,6 +10206,19 @@ "version": "4.1.1", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, "once": { "version": "1.4.0", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", @@ -10284,16 +10429,6 @@ "glob": "^7.1.3" } }, - "rollup": { - "version": "2.75.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", - "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", - "dev": true, - "peer": true, - "requires": { - "fsevents": "~2.3.2" - } - }, "rollup-plugin-dts": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz", @@ -10331,8 +10466,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript-paths/-/rollup-plugin-typescript-paths-1.3.1.tgz", "integrity": "sha512-gRjWwEIVcrga59OWWh8WGiJlcM9zzdr8xS64ZVYl+0pU5kRpoy2nu4QHh6bBlacIM38PK41w1v0WrH5SgTNetg==", - "dev": true, - "requires": {} + "dev": true }, "rollup-plugin-typescript2": { "version": "0.32.1", @@ -10380,6 +10514,11 @@ "randombytes": "^2.1.0" } }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10458,6 +10597,11 @@ } } }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", diff --git a/paf-mvp-core-js/package.json b/paf-mvp-core-js/package.json index 8228df41..32f20ba0 100644 --- a/paf-mvp-core-js/package.json +++ b/paf-mvp-core-js/package.json @@ -1,6 +1,6 @@ { "name": "@onekey/core", - "version": "1.0.9", + "version": "1.0.13", "description": "OneKey core JS library", "module": "dist/index.mjs", "main": "dist/index.cjs", @@ -34,6 +34,7 @@ "atob": "^2.1.2", "axios": "^0.26.1", "btoa": "^1.2.1", + "connect-timeout": "^1.9.0", "cors": "^2.8.5", "detect-browser": "^5.3.0", "json-schema-to-ts": "^1.6.5", @@ -47,6 +48,7 @@ "@rollup/plugin-commonjs": "^22.0.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.3.0", + "@types/connect-timeout": "^0.0.36", "@types/cookie-parser": "^1.4.2", "@types/express": "^4.17.1", "@types/express-serve-static-core": "^4.17.28", diff --git a/paf-mvp-core-js/src/crypto/digital-signature.ts b/paf-mvp-core-js/src/crypto/digital-signature.ts index 79bcd0dd..0f4a1675 100644 --- a/paf-mvp-core-js/src/crypto/digital-signature.ts +++ b/paf-mvp-core-js/src/crypto/digital-signature.ts @@ -20,11 +20,7 @@ * ⚠️ data if the code grows. */ import { createPrivateKey, createPublicKey, generateKeyPairSync, KeyObject, sign, verify } from 'node:crypto'; - -/** - * Signature of a Digital Signature Algorithm. - */ -export type Signature = string; +import { Signature } from '../model'; /** * PEM (Privacy_enhanced Mail) is the used format for diff --git a/paf-mvp-core-js/src/crypto/identity.ts b/paf-mvp-core-js/src/crypto/identity.ts index 6ead7423..319ef8bf 100644 --- a/paf-mvp-core-js/src/crypto/identity.ts +++ b/paf-mvp-core-js/src/crypto/identity.ts @@ -1,5 +1,5 @@ -import { Timestamp } from '@core/model/generated-model'; -import { getTimeStampInSec } from '@core/timestamp'; +import { Timestamp } from '../model'; +import { getTimeStampInSec } from '../timestamp'; export interface PublicKeyInfo { startTimestampInSec: Timestamp; diff --git a/paf-mvp-core-js/src/crypto/index.ts b/paf-mvp-core-js/src/crypto/index.ts index a9d57b73..bb2837b4 100644 --- a/paf-mvp-core-js/src/crypto/index.ts +++ b/paf-mvp-core-js/src/crypto/index.ts @@ -1,4 +1,6 @@ export * from './key-store'; +export * from './digital-signature'; +export * from './signer'; export * from './verifier'; export * from './signing-definition'; -export { isValidKey } from '@core/crypto/identity'; +export { isValidKey } from './identity'; diff --git a/paf-mvp-core-js/src/crypto/key-store.ts b/paf-mvp-core-js/src/crypto/key-store.ts index a7906df4..49afd6a2 100644 --- a/paf-mvp-core-js/src/crypto/key-store.ts +++ b/paf-mvp-core-js/src/crypto/key-store.ts @@ -1,10 +1,9 @@ import { fromIdentityResponse, isValidKey, PublicKeyInfo } from './identity'; -import { GetIdentityRequestBuilder } from '@core/model/identity-request-builder'; -import { GetIdentityResponse, Timestamp } from '@core/model/generated-model'; -import { getTimeStampInSec } from '@core/timestamp'; +import { GetIdentityRequestBuilder, GetIdentityResponse, Timestamp } from '../model'; +import { getTimeStampInSec } from '../timestamp'; import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'; -import { UnableToIdentifySignerError } from '@core/express/errors'; -import { PEM } from '@core/crypto/digital-signature'; +import { UnableToIdentifySignerError } from '../express/errors'; +import { PEM } from './digital-signature'; /** * A function that provides a public key from a domain name diff --git a/paf-mvp-core-js/src/crypto/signer.ts b/paf-mvp-core-js/src/crypto/signer.ts index cd3e2f7b..42220f2f 100644 --- a/paf-mvp-core-js/src/crypto/signer.ts +++ b/paf-mvp-core-js/src/crypto/signer.ts @@ -1,5 +1,5 @@ -import { Log } from '@core/log'; -import { ECDSA_NIT_P256Builder, IDSABuilder, IDSASigner, PEM } from '@core/crypto/digital-signature'; +import { Log } from '../log'; +import { ECDSA_NIT_P256Builder, IDSABuilder, IDSASigner, PEM } from './digital-signature'; export interface SignatureStringBuilder { /** diff --git a/paf-mvp-core-js/src/crypto/signing-definition.ts b/paf-mvp-core-js/src/crypto/signing-definition.ts index 4e1b0f4b..1d3b85b8 100644 --- a/paf-mvp-core-js/src/crypto/signing-definition.ts +++ b/paf-mvp-core-js/src/crypto/signing-definition.ts @@ -13,8 +13,8 @@ import { PostIdsPrefsResponse, Preferences, Seed, -} from '@core/model/generated-model'; -import { Unsigned, UnsignedSource } from '@core/model/model'; +} from '../model/generated-model'; +import { Unsigned, UnsignedSource } from '../model/model'; import { SignatureStringBuilder } from './signer'; /** diff --git a/paf-mvp-core-js/src/crypto/verifier.ts b/paf-mvp-core-js/src/crypto/verifier.ts index f7d7d44f..9d219650 100644 --- a/paf-mvp-core-js/src/crypto/verifier.ts +++ b/paf-mvp-core-js/src/crypto/verifier.ts @@ -4,13 +4,12 @@ import { RequestWithContext, SigningDefinition, UnsignedRequestWithContext, -} from '@core/crypto/signing-definition'; -import { Identifier, IdsAndPreferences, MessageBase } from '@core/model/generated-model'; -import { getTimeStampInSec } from '@core/timestamp'; -import { Unsigned } from '@core/model/model'; -import { Log } from '@core/log'; -import { PublicKeyProvider } from '@core/crypto/key-store'; -import { ECDSA_NIT_P256Builder, IDSABuilder } from '@core/crypto/digital-signature'; +} from './signing-definition'; +import { Identifier, IdsAndPreferences, MessageBase, Unsigned } from '../model'; +import { getTimeStampInSec } from '../timestamp'; +import { Log } from '../log'; +import { PublicKeyProvider } from './key-store'; +import { ECDSA_NIT_P256Builder, IDSABuilder } from './digital-signature'; /** * Verifier class diff --git a/paf-mvp-core-js/src/express/config.ts b/paf-mvp-core-js/src/express/config.ts index 7a3fe7c5..2225616a 100644 --- a/paf-mvp-core-js/src/express/config.ts +++ b/paf-mvp-core-js/src/express/config.ts @@ -1,7 +1,7 @@ import path, { join } from 'path'; import fs from 'fs'; -import { getTimeStampInSec } from '@core/timestamp'; -import { isValidKey, PublicKeyInfo } from '@core/crypto/identity'; +import { getTimeStampInSec } from '../timestamp'; +import { isValidKey, PublicKeyInfo } from '../crypto/identity'; /** * The representation of a pair of public and private keys, in JSON diff --git a/paf-mvp-core-js/src/express/index.ts b/paf-mvp-core-js/src/express/index.ts index 1a49a5dc..27e4e5e3 100644 --- a/paf-mvp-core-js/src/express/index.ts +++ b/paf-mvp-core-js/src/express/index.ts @@ -2,3 +2,4 @@ export * from './utils'; export * from './express-apps'; export * from './config'; export * from './node'; +export * from './errors'; diff --git a/paf-mvp-core-js/src/express/node.ts b/paf-mvp-core-js/src/express/node.ts index 92b1a632..3c746bb6 100644 --- a/paf-mvp-core-js/src/express/node.ts +++ b/paf-mvp-core-js/src/express/node.ts @@ -1,8 +1,8 @@ -import { Log } from '@core/log'; -import { PublicKeyProvider } from '@core/crypto'; -import { VHostApp } from '@core/express/express-apps'; -import { GetIdentityResponseBuilder, NodeError, RedirectErrorResponse, RedirectRequest } from '@core/model'; -import { participantEndpoints } from '@core/endpoints'; +import { Log } from '../log'; +import { PublicKeyProvider } from '../crypto'; +import { VHostApp } from '../express/express-apps'; +import { GetIdentityResponseBuilder, NodeError, RedirectErrorResponse, RedirectRequest } from '../model'; +import { participantEndpoints } from '../endpoints'; import cors from 'cors'; import { corsOptionsAcceptAll, @@ -10,11 +10,11 @@ import { httpRedirect, isValidHttpUrl, setInQueryString, -} from '@core/express/utils'; -import { IdentityConfig } from '@core/express/config'; +} from '../express/utils'; +import { IdentityConfig } from '../express/config'; import { NextFunction, Request, Response as ExpressResponse } from 'express'; -import { IJsonValidator, JsonSchemaType } from '@core/validation/json-validator'; -import { decodeBase64, QSParam } from '@core/query-string'; +import { IJsonValidator, JsonSchemaType } from '../validation/json-validator'; +import { decodeBase64, QSParam } from '../query-string'; export interface INode { app: VHostApp; diff --git a/paf-mvp-core-js/src/express/utils.ts b/paf-mvp-core-js/src/express/utils.ts index 590f1bb0..12405ad8 100644 --- a/paf-mvp-core-js/src/express/utils.ts +++ b/paf-mvp-core-js/src/express/utils.ts @@ -3,8 +3,8 @@ import { CookieOptions } from 'express-serve-static-core'; import { encodeBase64, fromDataToObject, QSParam } from '../query-string'; import { CorsOptions } from 'cors'; import domainParser from 'tld-extract'; -import { ReturnUrl } from '@core/model'; -import { RedirectContext, RestContext } from '@core/crypto'; +import { ReturnUrl } from '../model'; +import { RedirectContext, RestContext } from '../crypto'; export const setCookie = ( res: Response, diff --git a/paf-mvp-core-js/src/index.ts b/paf-mvp-core-js/src/index.ts index d6ad58d6..2a0e457a 100644 --- a/paf-mvp-core-js/src/index.ts +++ b/paf-mvp-core-js/src/index.ts @@ -1,6 +1,11 @@ -// FIXME: should use namespaces export * from './express'; +export * from './ui'; export * from './crypto'; +export * from './cookies'; export * from './model'; export * from './log'; export * from './user-agent'; +export * from './endpoints'; +export * from './timestamp'; +export * from './query-string'; +export * from './validation'; diff --git a/paf-mvp-core-js/src/model/id-builder.ts b/paf-mvp-core-js/src/model/id-builder.ts index 11c2363b..edc16755 100644 --- a/paf-mvp-core-js/src/model/id-builder.ts +++ b/paf-mvp-core-js/src/model/id-builder.ts @@ -1,9 +1,9 @@ import { v4 as uuidv4 } from 'uuid'; -import { getTimeStampInSec } from '@core/timestamp'; -import { Identifier } from '@core/model/generated-model'; -import { UnsignedSource } from '@core/model/model'; -import { ISigner, Signer } from '@core/crypto/signer'; -import { IdentifierDefinition } from '@core/crypto/signing-definition'; +import { getTimeStampInSec } from '../timestamp'; +import { Identifier } from '../model/generated-model'; +import { UnsignedSource } from '../model/model'; +import { ISigner, Signer } from '../crypto/signer'; +import { IdentifierDefinition } from '../crypto/signing-definition'; export class IdBuilder { constructor( diff --git a/paf-mvp-core-js/src/model/identity-request-builder.ts b/paf-mvp-core-js/src/model/identity-request-builder.ts index ba98e2e8..5b6adcfc 100644 --- a/paf-mvp-core-js/src/model/identity-request-builder.ts +++ b/paf-mvp-core-js/src/model/identity-request-builder.ts @@ -1,5 +1,5 @@ -import { RestRequestBuilder } from '@core/model/request-builders'; -import { participantEndpoints } from '@core/endpoints'; +import { RestRequestBuilder } from './request-builders'; +import { participantEndpoints } from '..'; export class GetIdentityRequestBuilder extends RestRequestBuilder { constructor(serverHost: string) { diff --git a/paf-mvp-core-js/src/model/identity-response-builder.ts b/paf-mvp-core-js/src/model/identity-response-builder.ts index fd7c78b0..83ba7396 100644 --- a/paf-mvp-core-js/src/model/identity-response-builder.ts +++ b/paf-mvp-core-js/src/model/identity-response-builder.ts @@ -1,5 +1,5 @@ -import { PublicKeyInfo } from '@core/crypto/identity'; -import { GetIdentityResponse } from '@core/model/generated-model'; +import { PublicKeyInfo } from '../crypto/identity'; +import { GetIdentityResponse } from '../model/generated-model'; export class GetIdentityResponseBuilder { constructor( diff --git a/paf-mvp-core-js/src/model/index.ts b/paf-mvp-core-js/src/model/index.ts index adb89cb4..1a4fcf06 100644 --- a/paf-mvp-core-js/src/model/index.ts +++ b/paf-mvp-core-js/src/model/index.ts @@ -2,7 +2,9 @@ export * from './identity-request-builder'; export * from './identity-response-builder'; export * from './operator-request-builders'; export * from './operator-response-builders'; +export * from './proxy-request-builders'; export * from './generated-model'; +export * from './audit-log'; export * from './model'; export * from './id-builder'; diff --git a/paf-mvp-core-js/src/model/model.ts b/paf-mvp-core-js/src/model/model.ts index b512bed3..5bf8a747 100644 --- a/paf-mvp-core-js/src/model/model.ts +++ b/paf-mvp-core-js/src/model/model.ts @@ -1,4 +1,4 @@ -import { Identifier, NodeError, ResponseCode, Source } from '@core/model'; +import { Identifier, NodeError, ResponseCode, Source } from '../model'; export const CurrentModelVersion = '0.1'; diff --git a/paf-mvp-core-js/src/model/operator-request-builders.ts b/paf-mvp-core-js/src/model/operator-request-builders.ts index e4bd35d5..da58510e 100644 --- a/paf-mvp-core-js/src/model/operator-request-builders.ts +++ b/paf-mvp-core-js/src/model/operator-request-builders.ts @@ -8,14 +8,9 @@ import { import { Unsigned } from './model'; import { jsonOperatorEndpoints, redirectEndpoints } from '../endpoints'; import { getTimeStampInSec } from '../timestamp'; -import { RestAndRedirectRequestBuilder, RestRequestBuilder } from '@core/model/request-builders'; -import { Signer } from '@core/crypto/signer'; -import { - RequestDefinition, - RequestWithBodyDefinition, - RequestWithoutBodyDefinition, - RestContext, -} from '@core/crypto/signing-definition'; +import { RestAndRedirectRequestBuilder, RestRequestBuilder } from './request-builders'; +import { Signer } from '../crypto/signer'; +import { RequestDefinition, RequestWithBodyDefinition, RequestWithoutBodyDefinition, RestContext } from '../crypto'; export class Get3PCRequestBuilder extends RestRequestBuilder { constructor(operatorHost: string) { diff --git a/paf-mvp-core-js/src/model/operator-response-builders.ts b/paf-mvp-core-js/src/model/operator-response-builders.ts index ab5a2dd3..2c8fa9d0 100644 --- a/paf-mvp-core-js/src/model/operator-response-builders.ts +++ b/paf-mvp-core-js/src/model/operator-response-builders.ts @@ -12,9 +12,9 @@ import { } from './generated-model'; import { Unsigned } from './model'; import { getTimeStampInSec } from '../timestamp'; -import { setInQueryString } from '@core/express'; -import { ResponseDefinition } from '@core/crypto/signing-definition'; -import { Signer } from '@core/crypto/signer'; +import { setInQueryString } from '../express/utils'; +import { ResponseDefinition } from '../crypto/signing-definition'; +import { Signer } from '../crypto/signer'; export abstract class ResponseBuilderWithRedirect { protected constructor(protected host: string) {} diff --git a/paf-mvp-core-js/src/model/proxy-request-builders.ts b/paf-mvp-core-js/src/model/proxy-request-builders.ts index c23cf1b7..42efe0bd 100644 --- a/paf-mvp-core-js/src/model/proxy-request-builders.ts +++ b/paf-mvp-core-js/src/model/proxy-request-builders.ts @@ -1,6 +1,6 @@ import { GetIdsPrefsResponse, Identifiers, PostSignPreferencesRequest, PreferencesData } from './generated-model'; import { jsonProxyEndpoints } from '../endpoints'; -import { setInQueryString } from '../express/utils'; +import { setInQueryString } from '../express'; export abstract class ProxyRestRequestBuilder { constructor(public proxyHost: string, protected restEndpoint: string) {} diff --git a/paf-mvp-core-js/src/model/request-builders.ts b/paf-mvp-core-js/src/model/request-builders.ts index 8ec744a8..bbe81589 100644 --- a/paf-mvp-core-js/src/model/request-builders.ts +++ b/paf-mvp-core-js/src/model/request-builders.ts @@ -1,9 +1,9 @@ -import { setInQueryString } from '@core/express/utils'; -import { MessageBase } from '@core/model/generated-model'; -import { RedirectRequest, Unsigned } from '@core/model/model'; -import { RedirectContext, RequestDefinition, RestContext } from '@core/crypto/signing-definition'; -import { getTimeStampInSec } from '@core/timestamp'; -import { Signer } from '@core/crypto/signer'; +import { setInQueryString } from '../express/utils'; +import { MessageBase } from '../model/generated-model'; +import { RedirectRequest, Unsigned } from '../model/model'; +import { RedirectContext, RequestDefinition, RestContext } from '../crypto/signing-definition'; +import { getTimeStampInSec } from '../timestamp'; +import { Signer } from '../crypto/signer'; export abstract class RestRequestBuilder { constructor(public serverHost: string, protected restEndpoint: string) {} diff --git a/paf-mvp-core-js/src/timestamp.ts b/paf-mvp-core-js/src/timestamp.ts index 4ec994a8..29c53fae 100644 --- a/paf-mvp-core-js/src/timestamp.ts +++ b/paf-mvp-core-js/src/timestamp.ts @@ -1,4 +1,4 @@ -import { Timestamp } from '@core/model/generated-model'; +import { Timestamp } from './model'; /** * Transform a date into a timestamp IN SECONDS, rounded to an integer diff --git a/paf-mvp-core-js/src/ui/index.ts b/paf-mvp-core-js/src/ui/index.ts new file mode 100644 index 00000000..302cbbcd --- /dev/null +++ b/paf-mvp-core-js/src/ui/index.ts @@ -0,0 +1,2 @@ +export * from './binding'; +export * from './fields'; diff --git a/paf-mvp-core-js/src/validation/index.ts b/paf-mvp-core-js/src/validation/index.ts new file mode 100644 index 00000000..9ffbd9e7 --- /dev/null +++ b/paf-mvp-core-js/src/validation/index.ts @@ -0,0 +1 @@ +export * from './json-validator'; diff --git a/paf-mvp-core-js/src/validation/json-validator.ts b/paf-mvp-core-js/src/validation/json-validator.ts index 5e1013c2..1a1f1fe7 100644 --- a/paf-mvp-core-js/src/validation/json-validator.ts +++ b/paf-mvp-core-js/src/validation/json-validator.ts @@ -1,4 +1,4 @@ -import { Log } from '@core/log'; +import { Log } from '../log'; import { default as AjvClass, ErrorObject } from 'ajv'; import fs from 'fs'; import path from 'path'; diff --git a/paf-mvp-core-js/tests/fixtures/audit-log-fixtures.ts b/paf-mvp-core-js/tests/fixtures/audit-log-fixtures.ts index 4a1bb82f..72215fbc 100644 --- a/paf-mvp-core-js/tests/fixtures/audit-log-fixtures.ts +++ b/paf-mvp-core-js/tests/fixtures/audit-log-fixtures.ts @@ -4,9 +4,9 @@ import { Seed, TransmissionResponse, TransmissionResult, -} from '@core/model/generated-model'; +} from '@onekey/core/model/generated-model'; -import { fromResponseToResult } from '@core/model/audit-log'; +import { fromResponseToResult } from '@onekey/core/model/audit-log'; export interface Content { transaction_id: string; diff --git a/paf-mvp-core-js/tests/fixtures/cookies.ts b/paf-mvp-core-js/tests/fixtures/cookies.ts index 7c54e76d..985a4706 100644 --- a/paf-mvp-core-js/tests/fixtures/cookies.ts +++ b/paf-mvp-core-js/tests/fixtures/cookies.ts @@ -1,5 +1,5 @@ -import { Cookies } from '@core/cookies'; -import { Identifier, Identifiers, IdsAndPreferences, Preferences } from '@core/model/generated-model'; +import { Cookies } from '@onekey/core/cookies'; +import { Identifier, Identifiers, IdsAndPreferences, Preferences } from '@onekey/core/model/generated-model'; export const timestamp = Date.now(); diff --git a/paf-mvp-core-js/tests/helpers/crypto.helper.ts b/paf-mvp-core-js/tests/helpers/crypto.helper.ts index 4780f6ae..9925eb3b 100644 --- a/paf-mvp-core-js/tests/helpers/crypto.helper.ts +++ b/paf-mvp-core-js/tests/helpers/crypto.helper.ts @@ -1,5 +1,5 @@ -import { SigningDefinition } from '@core/crypto/signing-definition'; -import { IDSABuilder } from '@core/crypto/digital-signature'; +import { SigningDefinition } from '@onekey/core/crypto/signing-definition'; +import { IDSABuilder } from '@onekey/core/crypto/digital-signature'; export interface FooType { foo: string; diff --git a/paf-mvp-core-js/tests/helpers/timestamp.helper.ts b/paf-mvp-core-js/tests/helpers/timestamp.helper.ts index 88212b32..a6c4b905 100644 --- a/paf-mvp-core-js/tests/helpers/timestamp.helper.ts +++ b/paf-mvp-core-js/tests/helpers/timestamp.helper.ts @@ -1,5 +1,5 @@ -import { Timestamp } from '@core/model/generated-model'; -import { getTimeStampInSec } from '@core/timestamp'; +import { Timestamp } from '@onekey/core/model/generated-model'; +import { getTimeStampInSec } from '@onekey/core/timestamp'; export class MockTimer { get timestamp(): Timestamp { diff --git a/paf-mvp-core-js/tests/test-cases/audit-log.test.ts b/paf-mvp-core-js/tests/test-cases/audit-log.test.ts index 4937a372..e7658bc7 100644 --- a/paf-mvp-core-js/tests/test-cases/audit-log.test.ts +++ b/paf-mvp-core-js/tests/test-cases/audit-log.test.ts @@ -1,5 +1,5 @@ -import { buildAuditLog, fromResponseToResult } from '@core/model/audit-log'; -import { TransmissionResponse } from '@core/model/generated-model'; +import { buildAuditLog, fromResponseToResult } from '@onekey/core/model/audit-log'; +import { TransmissionResponse } from '@onekey/core/model/generated-model'; import { buildAuditLogFixture, buildTransmissionResponseFixture, diff --git a/paf-mvp-core-js/tests/test-cases/config.test.ts b/paf-mvp-core-js/tests/test-cases/config.test.ts index 4012dc57..0c367f78 100644 --- a/paf-mvp-core-js/tests/test-cases/config.test.ts +++ b/paf-mvp-core-js/tests/test-cases/config.test.ts @@ -1,4 +1,4 @@ -import { Config, JSONConfig, parseConfig } from '@core/express/config'; +import { Config, JSONConfig, parseConfig } from '@onekey/core/express/config'; import mock from 'mock-fs'; describe('parseConfig', () => { diff --git a/paf-mvp-core-js/tests/test-cases/digital-signature.test.ts b/paf-mvp-core-js/tests/test-cases/digital-signature.test.ts index 86969a22..bbd94fcd 100644 --- a/paf-mvp-core-js/tests/test-cases/digital-signature.test.ts +++ b/paf-mvp-core-js/tests/test-cases/digital-signature.test.ts @@ -1,6 +1,6 @@ import { readFileSync } from 'fs'; import path from 'path'; -import { DSAKeyPair, ECDSA_NIT_P256Builder, IDSAKeyService, PEM } from '@core/crypto/digital-signature'; +import { DSAKeyPair, ECDSA_NIT_P256Builder, IDSAKeyService, PEM } from '@onekey/core/crypto/digital-signature'; describe('ECDSA_NIT_P256', () => { const validPair: DSAKeyPair = { diff --git a/paf-mvp-core-js/tests/test-cases/id-builder.test.ts b/paf-mvp-core-js/tests/test-cases/id-builder.test.ts index 7b06db18..5ccf1f00 100644 --- a/paf-mvp-core-js/tests/test-cases/id-builder.test.ts +++ b/paf-mvp-core-js/tests/test-cases/id-builder.test.ts @@ -1,4 +1,4 @@ -import { IdBuilder } from '@core/model/id-builder'; +import { IdBuilder } from '@onekey/core/model/id-builder'; describe('IdBuilder', () => { const privateKey = diff --git a/paf-mvp-core-js/tests/test-cases/ids-preferences-definition.test.ts b/paf-mvp-core-js/tests/test-cases/ids-preferences-definition.test.ts index d141a765..b0e19464 100644 --- a/paf-mvp-core-js/tests/test-cases/ids-preferences-definition.test.ts +++ b/paf-mvp-core-js/tests/test-cases/ids-preferences-definition.test.ts @@ -1,5 +1,5 @@ -import { IdsAndPreferencesDefinition } from '@core/crypto/signing-definition'; -import { IdsAndPreferences } from '@core/model/generated-model'; +import { IdsAndPreferencesDefinition } from '@onekey/core/crypto/signing-definition'; +import { IdsAndPreferences } from '@onekey/core/model/generated-model'; describe('IdsAndPreferencesDefinition', () => { test('should extract appropriate data', () => { diff --git a/paf-mvp-core-js/tests/test-cases/json-validator.test.ts b/paf-mvp-core-js/tests/test-cases/json-validator.test.ts index 01f0da2f..5d37d5df 100644 --- a/paf-mvp-core-js/tests/test-cases/json-validator.test.ts +++ b/paf-mvp-core-js/tests/test-cases/json-validator.test.ts @@ -4,7 +4,7 @@ import { JsonSchemaType, JsonValidator, NoJsonError, -} from '@core/validation/json-validator'; +} from '@onekey/core/validation/json-validator'; import path from 'path'; const fixtureDirectory = path.join(__dirname, '..', 'fixtures', 'fake-json-schemas'); diff --git a/paf-mvp-core-js/tests/test-cases/key-store.test.ts b/paf-mvp-core-js/tests/test-cases/key-store.test.ts index b89fb590..ba6e5614 100644 --- a/paf-mvp-core-js/tests/test-cases/key-store.test.ts +++ b/paf-mvp-core-js/tests/test-cases/key-store.test.ts @@ -1,10 +1,10 @@ -import { PublicKeyStore } from '@core/crypto/key-store'; -import { GetIdentityResponse, Timestamp } from '@core/model/generated-model'; -import { getTimeStampInSec } from '@core/timestamp'; +import { PublicKeyStore } from '@onekey/core/crypto/key-store'; +import { GetIdentityResponse, Timestamp } from '@onekey/core/model/generated-model'; +import { getTimeStampInSec } from '@onekey/core/timestamp'; import axios from 'axios'; import MockAdapter from 'axios-mock-adapter'; import { MockTimer } from '../helpers/timestamp.helper'; -import { PublicKeyInfo } from '@core/crypto/identity'; +import { PublicKeyInfo } from '@onekey/core/crypto/identity'; interface KeyInfo { key: string; diff --git a/paf-mvp-core-js/tests/test-cases/node.test.ts b/paf-mvp-core-js/tests/test-cases/node.test.ts index b0ed1e7a..512fdc56 100644 --- a/paf-mvp-core-js/tests/test-cases/node.test.ts +++ b/paf-mvp-core-js/tests/test-cases/node.test.ts @@ -1,10 +1,10 @@ -import { IJsonValidator, JsonSchemaType, JsonValidation } from '@core/validation/json-validator'; -import { EndpointConfiguration, IdentityConfig, Node } from '@core/express'; +import { IJsonValidator, JsonSchemaType, JsonValidation } from '@onekey/core/validation/json-validator'; +import { EndpointConfiguration, IdentityConfig, Node } from '@onekey/core/express'; import { createRequest, createResponse, MockResponse } from 'node-mocks-http'; import { NextFunction, Request, Response } from 'express'; -import { NodeError } from '@core/model'; -import { getTimeStampInSec } from '@core/timestamp'; -import { encodeBase64, QSParam } from '@core/query-string'; +import { NodeError } from '@onekey/core/model'; +import { getTimeStampInSec } from '@onekey/core/timestamp'; +import { encodeBase64, QSParam } from '@onekey/core/query-string'; const buildStaticJsonValidator = (validationResult: boolean): IJsonValidator => { const jsonValidation: JsonValidation = { diff --git a/paf-mvp-core-js/tests/test-cases/requests-definition.test.ts b/paf-mvp-core-js/tests/test-cases/requests-definition.test.ts index 205b8964..1740bb74 100644 --- a/paf-mvp-core-js/tests/test-cases/requests-definition.test.ts +++ b/paf-mvp-core-js/tests/test-cases/requests-definition.test.ts @@ -3,8 +3,8 @@ import { RequestWithBodyDefinition, RequestWithoutBodyDefinition, RestContext, -} from '@core/crypto/signing-definition'; -import { GetNewIdRequest, PostIdsPrefsRequest } from '@core/model/generated-model'; +} from '@onekey/core/crypto/signing-definition'; +import { GetNewIdRequest, PostIdsPrefsRequest } from '@onekey/core/model/generated-model'; describe('RequestWithoutBodyDefinition', () => { const request: GetNewIdRequest = { diff --git a/paf-mvp-core-js/tests/test-cases/signer.test.ts b/paf-mvp-core-js/tests/test-cases/signer.test.ts index b343f7a6..a0c62ddf 100644 --- a/paf-mvp-core-js/tests/test-cases/signer.test.ts +++ b/paf-mvp-core-js/tests/test-cases/signer.test.ts @@ -1,4 +1,4 @@ -import { Signer } from '@core/crypto/signer'; +import { Signer } from '@onekey/core/crypto/signer'; import { FooSigningDefinition, FooType, mockBuilder } from '../helpers/crypto.helper'; describe('Signer', () => { diff --git a/paf-mvp-core-js/tests/test-cases/verifier.test.ts b/paf-mvp-core-js/tests/test-cases/verifier.test.ts index bac260e3..543a17a7 100644 --- a/paf-mvp-core-js/tests/test-cases/verifier.test.ts +++ b/paf-mvp-core-js/tests/test-cases/verifier.test.ts @@ -1,7 +1,7 @@ import { FooSigningDefinition, FooType, mockBuilder } from '../helpers/crypto.helper'; -import { Verifier } from '@core/crypto/verifier'; -import { PublicKeyProvider } from '@core/crypto'; -import { UnableToIdentifySignerError } from '@core/express/errors'; +import { Verifier } from '@onekey/core/crypto/verifier'; +import { PublicKeyProvider } from '@onekey/core/crypto'; +import { UnableToIdentifySignerError } from '@onekey/core/express/errors'; import SpyInstance = jest.SpyInstance; describe('Verifier', () => { diff --git a/paf-mvp-demo-express/package-lock.json b/paf-mvp-demo-express/package-lock.json index d4059ba5..322c62de 100644 --- a/paf-mvp-demo-express/package-lock.json +++ b/paf-mvp-demo-express/package-lock.json @@ -7,6 +7,7 @@ "name": "@onkey/demo", "license": "ISC", "dependencies": { + "@onekey/core": "../paf-mvp-core-js/src", "@types/body-parser": "^1.19.2", "@types/cookie-parser": "^1.4.2", "@types/express": "^4.17.13", @@ -34,6 +35,51 @@ "tsconfig-paths": "^3.12.0" } }, + "../paf-mvp-core-js": { + "name": "@onekey/core", + "version": "1.0.13", + "license": "ISC", + "dependencies": { + "@types/cors": "^2.8.12", + "@types/ua-parser-js": "^0.7.36", + "@types/uuid": "^8.3.4", + "@types/vhost": "^3.0.4", + "ajv": "^8.11.0", + "atob": "^2.1.2", + "axios": "^0.26.1", + "btoa": "^1.2.1", + "connect-timeout": "^1.9.0", + "cors": "^2.8.5", + "detect-browser": "^5.3.0", + "json-schema-to-ts": "^1.6.5", + "mock-fs": "^5.1.2", + "tld-extract": "^2.0.1", + "ua-parser-js": "^1.0.2", + "uuid": "^8.3.2", + "vhost": "^3.0.2" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "@types/connect-timeout": "^0.0.36", + "@types/cookie-parser": "^1.4.2", + "@types/express": "^4.17.1", + "@types/express-serve-static-core": "^4.17.28", + "@types/json-schema": "^7.0.9", + "jest": "^28.1.3", + "json-schema-to-typescript": "^10.1.5", + "rollup-plugin-dts": "^4.2.2", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript-paths": "^1.3.1", + "rollup-plugin-typescript2": "^0.32.1", + "ts-jest": "^28.0.7", + "ts-node": "^10.4.0", + "tslib": "^2.4.0", + "typescript": "^4.5.4" + } + }, + "../paf-mvp-core-js/src": {}, "node_modules/@cspotcode/source-map-consumer": { "version": "0.8.0", "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", @@ -115,6 +161,10 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@onekey/core": { + "resolved": "../paf-mvp-core-js/src", + "link": true + }, "node_modules/@rollup/plugin-commonjs": { "version": "21.0.2", "integrity": "sha512-d/OmjaLVO4j/aQX69bwpWPpbvI3TJkQuxoAk7BH8ew1PyoMBLTOuvJTjzG8oEoW7drIIqB0KCJtfFLu/2GClWg==", @@ -2360,6 +2410,9 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@onekey/core": { + "version": "file:../paf-mvp-core-js/src" + }, "@rollup/plugin-commonjs": { "version": "21.0.2", "integrity": "sha512-d/OmjaLVO4j/aQX69bwpWPpbvI3TJkQuxoAk7BH8ew1PyoMBLTOuvJTjzG8oEoW7drIIqB0KCJtfFLu/2GClWg==", diff --git a/paf-mvp-demo-express/package.json b/paf-mvp-demo-express/package.json index de9e8fd0..11b909f5 100644 --- a/paf-mvp-demo-express/package.json +++ b/paf-mvp-demo-express/package.json @@ -31,7 +31,8 @@ "nodemon": "^2.0.15", "ts-node": "^10.4.0", "typescript": "^4.5.5", - "vhost": "^3.0.2" + "vhost": "^3.0.2", + "@onekey/core": "../paf-mvp-core-js/src" }, "devDependencies": { "@rollup/plugin-commonjs": "^21.0.2", diff --git a/paf-mvp-demo-express/scripts/fake-hosts.ts b/paf-mvp-demo-express/scripts/fake-hosts.ts index 1dc51d97..7d5f15e3 100644 --- a/paf-mvp-demo-express/scripts/fake-hosts.ts +++ b/paf-mvp-demo-express/scripts/fake-hosts.ts @@ -1,7 +1,7 @@ import path from 'path'; import fs from 'fs'; import { EOL, type } from 'os'; -import { VHostApp } from '@core/express/express-apps'; +import { VHostApp } from '@onekey/core'; import { getAppsAndNodes } from '../src/apps'; if (!(process.argv[2]?.length > 0)) { diff --git a/paf-mvp-demo-express/scripts/generate-examples.ts b/paf-mvp-demo-express/scripts/generate-examples.ts index 24f64821..a0360a0e 100644 --- a/paf-mvp-demo-express/scripts/generate-examples.ts +++ b/paf-mvp-demo-express/scripts/generate-examples.ts @@ -1,20 +1,38 @@ import { DeleteIdsPrefsRequest, + DeleteIdsPrefsRequestBuilder, DeleteIdsPrefsResponse, + DeleteIdsPrefsResponseBuilder, Error, + Get3PCRequestBuilder, Get3PcResponse, + Get3PCResponseBuilder, + GetIdentityRequestBuilder, GetIdentityResponse, + GetIdentityResponseBuilder, GetIdsPrefsRequest, + GetIdsPrefsRequestBuilder, GetIdsPrefsResponse, + GetIdsPrefsResponseBuilder, GetNewIdRequest, + GetNewIdRequestBuilder, GetNewIdResponse, + GetNewIdResponseBuilder, + getTimeStampInSec, + IdBuilder, Identifier, Identifiers, + parseConfig, PostIdsPrefsRequest, + PostIdsPrefsRequestBuilder, PostIdsPrefsResponse, + PostIdsPrefsResponseBuilder, PostSignPreferencesRequest, Preferences, ProxyPostIdsPrefsResponse, + ProxyRestSignPreferencesRequestBuilder, + ProxyRestVerifyGetIdsPrefsRequestBuilder, + PublicKeyStore, RedirectDeleteIdsPrefsRequest, RedirectDeleteIdsPrefsResponse, RedirectGetIdsPrefsRequest, @@ -22,38 +40,16 @@ import { RedirectPostIdsPrefsRequest, RedirectPostIdsPrefsResponse, Test3Pc, -} from '@core/model/generated-model'; -import { toIdsCookie, toPrefsCookie, toTest3pcCookie } from '@core/cookies'; -import { getTimeStampInSec } from '@core/timestamp'; + toIdsCookie, + toPrefsCookie, + toTest3pcCookie, +} from '@onekey/core'; import path from 'path'; -import { OperatorClient } from '@client/operator-client'; -import { - DeleteIdsPrefsRequestBuilder, - Get3PCRequestBuilder, - GetIdsPrefsRequestBuilder, - GetNewIdRequestBuilder, - PostIdsPrefsRequestBuilder, -} from '@core/model/operator-request-builders'; -import { - DeleteIdsPrefsResponseBuilder, - Get3PCResponseBuilder, - GetIdsPrefsResponseBuilder, - GetNewIdResponseBuilder, - PostIdsPrefsResponseBuilder, -} from '@core/model/operator-response-builders'; +import { OperatorClient } from '@onekey/client-node/operator-client'; import { Schema, Validator } from 'jsonschema'; import * as fs from 'fs'; -import { - ProxyRestSignPreferencesRequestBuilder, - ProxyRestVerifyGetIdsPrefsRequestBuilder, -} from '@core/model/proxy-request-builders'; import isEqual from 'lodash.isequal'; import cloneDeep from 'lodash.clonedeep'; -import { GetIdentityResponseBuilder } from '@core/model/identity-response-builder'; -import { GetIdentityRequestBuilder } from '@core/model/identity-request-builder'; -import { PublicKeyStore } from '@core/crypto/key-store'; -import { parseConfig } from '@core/express/config'; -import { IdBuilder } from '@core/model/id-builder'; const getTimestamp = (dateString: string) => getTimeStampInSec(new Date(dateString)); const getUrl = (method: 'POST' | 'GET' | 'DELETE', url: URL): string => diff --git a/paf-mvp-demo-express/src/apps.ts b/paf-mvp-demo-express/src/apps.ts index 8ef7d113..f96ef01a 100644 --- a/paf-mvp-demo-express/src/apps.ts +++ b/paf-mvp-demo-express/src/apps.ts @@ -1,6 +1,6 @@ -import { OperatorNode } from '@operator/operator-node'; -import { ClientNode } from '@client/client-node'; -import { VHostApp } from '@core/express/express-apps'; +import { OperatorNode } from '@onekey/operator-node/operator-node'; +import { ClientNode } from '@onekey/client-node/client-node'; +import { VHostApp } from '@onekey/core'; import { pafPublisherCdnApp, pafPublisherWebSiteApp } from './websites/paf-publisher'; import { pifPublisherCdnApp, pifPublisherWebSiteApp } from './websites/pif-publisher'; import { pofPublisherCdnApp, pofPublisherWebSiteApp } from './websites/pof-publisher'; diff --git a/paf-mvp-demo-express/src/index.ts b/paf-mvp-demo-express/src/index.ts index e93d3dae..985754c8 100644 --- a/paf-mvp-demo-express/src/index.ts +++ b/paf-mvp-demo-express/src/index.ts @@ -3,9 +3,8 @@ import { join } from 'path'; import { createServer } from 'https'; import { isRunningOnDeveloperPC, sslOptions } from './demo-utils'; import { create } from 'express-handlebars'; -import { MainApp, VHostApp } from '@core/express/express-apps'; +import { Log, LogLevel, MainApp, VHostApp } from '@onekey/core'; import { getAppsAndNodes } from './apps'; -import { Log, LogLevel } from '@core/log'; const relative = (dir: string) => join(__dirname, dir); diff --git a/paf-mvp-demo-express/src/websites/paf-market.ts b/paf-mvp-demo-express/src/websites/paf-market.ts index 7be46619..511c0489 100644 --- a/paf-mvp-demo-express/src/websites/paf-market.ts +++ b/paf-mvp-demo-express/src/websites/paf-market.ts @@ -1,4 +1,4 @@ -import { VHostApp } from '@core/express/express-apps'; +import { VHostApp } from '@onekey/core'; import { anythingButAssets, WebSiteConfig } from '../website-config'; const { name, host, cdnHost, pafNodeHost }: WebSiteConfig = { diff --git a/paf-mvp-demo-express/src/websites/paf-publisher.ts b/paf-mvp-demo-express/src/websites/paf-publisher.ts index 577b6e1c..03ac9e67 100644 --- a/paf-mvp-demo-express/src/websites/paf-publisher.ts +++ b/paf-mvp-demo-express/src/websites/paf-publisher.ts @@ -1,5 +1,5 @@ import { anythingButAssets, WebSiteConfig } from '../website-config'; -import { VHostApp } from '@core/express/express-apps'; +import { VHostApp } from '@onekey/core'; const { name, host, cdnHost, pafNodeHost }: WebSiteConfig = { name: 'PAF publisher', diff --git a/paf-mvp-demo-express/src/websites/pif-market.ts b/paf-mvp-demo-express/src/websites/pif-market.ts index c763da4d..5211ed8d 100644 --- a/paf-mvp-demo-express/src/websites/pif-market.ts +++ b/paf-mvp-demo-express/src/websites/pif-market.ts @@ -1,4 +1,4 @@ -import { VHostApp } from '@core/express/express-apps'; +import { VHostApp } from '@onekey/core'; import { anythingButAssets, WebSiteConfig } from '../website-config'; const { name, host, cdnHost, pafNodeHost }: WebSiteConfig = { diff --git a/paf-mvp-demo-express/src/websites/pif-publisher.ts b/paf-mvp-demo-express/src/websites/pif-publisher.ts index a92b2acc..9f5a2294 100644 --- a/paf-mvp-demo-express/src/websites/pif-publisher.ts +++ b/paf-mvp-demo-express/src/websites/pif-publisher.ts @@ -1,5 +1,5 @@ import { anythingButAssets, WebSiteConfig } from '../website-config'; -import { VHostApp } from '@core/express/express-apps'; +import { VHostApp } from '@onekey/core'; const { name, host, cdnHost, pafNodeHost }: WebSiteConfig = { name: 'PIF publisher', diff --git a/paf-mvp-demo-express/src/websites/pof-market.ts b/paf-mvp-demo-express/src/websites/pof-market.ts index 80888e31..2d7aa30c 100644 --- a/paf-mvp-demo-express/src/websites/pof-market.ts +++ b/paf-mvp-demo-express/src/websites/pof-market.ts @@ -1,5 +1,5 @@ import { anythingButAssets, WebSiteConfig } from '../website-config'; -import { VHostApp } from '@core/express/express-apps'; +import { VHostApp } from '@onekey/core'; const { name, host, cdnHost, pafNodeHost }: WebSiteConfig = { name: 'POF advertiser', diff --git a/paf-mvp-demo-express/src/websites/pof-publisher.ts b/paf-mvp-demo-express/src/websites/pof-publisher.ts index 4bd8d38b..3b9734f6 100644 --- a/paf-mvp-demo-express/src/websites/pof-publisher.ts +++ b/paf-mvp-demo-express/src/websites/pof-publisher.ts @@ -1,5 +1,5 @@ import { anythingButAssets, WebSiteConfig } from '../website-config'; -import { VHostApp } from '@core/express/express-apps'; +import { VHostApp } from '@onekey/core'; const { name, host, cdnHost, pafNodeHost }: WebSiteConfig = { name: 'POF publisher', diff --git a/paf-mvp-demo-express/src/websites/portal.ts b/paf-mvp-demo-express/src/websites/portal.ts index e7f49ae8..d5837a99 100644 --- a/paf-mvp-demo-express/src/websites/portal.ts +++ b/paf-mvp-demo-express/src/websites/portal.ts @@ -1,47 +1,43 @@ import express, { Request } from 'express'; import { WebSiteConfig } from '../website-config'; -import { OperatorClient } from '@client/operator-client'; -import { Cookies, typedCookie } from '@core/cookies'; +import { OperatorClient } from '@onekey/client-node/operator-client'; import { _ as Model, + Cookies, + getPafDataFromQueryString, + getRequestUrl, + getTopLevelDomain, + httpRedirect, Identifier, + IdentifierDefinition, Identifiers, IdsAndPreferences, + IdsAndPreferencesDefinition, + IdsAndPreferencesVerifier, + jsonOperatorEndpoints, MessageBase, + MessageVerificationResult, + parseConfig, PostIdsPrefsRequest, + PostIdsPrefsRequestBuilder, Preferences, + PublicKeyStore, + redirectEndpoints, RedirectGetIdsPrefsResponse, -} from '@core/model/generated-model'; -import { - getPafDataFromQueryString, - getRequestUrl, - getTopLevelDomain, - httpRedirect, removeCookie, -} from '@core/express/utils'; -import { PostIdsPrefsRequestBuilder } from '@core/model/operator-request-builders'; -import { s2sOptions } from '../demo-utils'; -import { PublicKeyStore } from '@core/crypto/key-store'; -import { - IdentifierDefinition, - IdsAndPreferencesDefinition, + RequestVerifier, RequestWithBodyDefinition, RequestWithContext, RequestWithoutBodyDefinition, ResponseDefinition, ResponseType, -} from '@core/crypto/signing-definition'; -import { - IdsAndPreferencesVerifier, - MessageVerificationResult, - RequestVerifier, ResponseVerifier, + typedCookie, Verifier, -} from '@core/crypto/verifier'; -import { jsonOperatorEndpoints, redirectEndpoints } from '@core/endpoints'; -import { VHostApp } from '@core/express/express-apps'; -import { parseConfig } from '@core/express/config'; -import { ClientNodeConfig } from '@client/client-node'; + VHostApp, +} from '@onekey/core'; +import { s2sOptions } from '../demo-utils'; +import { ClientNodeConfig } from '@onekey/client-node/client-node'; const { name, host }: WebSiteConfig = { name: 'A OneKey portal', diff --git a/paf-mvp-frontend/cypress/integration/notification-widget.spec.ts b/paf-mvp-frontend/cypress/integration/notification-widget.spec.ts index 85a1c120..f850bd1c 100644 --- a/paf-mvp-frontend/cypress/integration/notification-widget.spec.ts +++ b/paf-mvp-frontend/cypress/integration/notification-widget.spec.ts @@ -1,7 +1,7 @@ import { NotificationPage } from '../pages/notification.page'; import { NotificationEnum } from '../../src/enums/notification.enum'; import { getFakeIdentifier, getFakePreferences } from '@test-fixtures/cookies'; -import { GetIdsPrefsResponse } from '@core/model'; +import { GetIdsPrefsResponse } from '@onekey/core'; describe('Notification widget', () => { let page: NotificationPage; diff --git a/paf-mvp-frontend/cypress/integration/welcome-widget.spec.ts b/paf-mvp-frontend/cypress/integration/welcome-widget.spec.ts index 51c1e836..26a264fe 100644 --- a/paf-mvp-frontend/cypress/integration/welcome-widget.spec.ts +++ b/paf-mvp-frontend/cypress/integration/welcome-widget.spec.ts @@ -1,7 +1,6 @@ import { WidgetPage } from '../pages/widget.page'; -import { Cookies } from '@core/cookies'; +import { Cookies, GetIdsPrefsResponse, Identifiers } from '@onekey/core'; import { getFakeIdentifier, getFakeIdentifiers, getFakePreferences } from '@test-fixtures/cookies'; -import { GetIdsPrefsResponse, Identifiers } from '@core/model/generated-model'; describe('Welcome widget view', () => { let page: WidgetPage; diff --git a/paf-mvp-frontend/cypress/tsconfig.json b/paf-mvp-frontend/cypress/tsconfig.json index 6d13e95d..32c7cc37 100644 --- a/paf-mvp-frontend/cypress/tsconfig.json +++ b/paf-mvp-frontend/cypress/tsconfig.json @@ -6,7 +6,7 @@ "esModuleInterop": true, "types": ["@testing-library/cypress", "cypress"], "paths": { - "@core/*": ["../../paf-mvp-core-js/src/*"], + "@onekey/core/*": ["../../paf-mvp-core-js/src/*"], "@test-helpers/*": ["../../paf-mvp-core-js/tests/helpers/*"], "@test-fixtures/*": ["../../paf-mvp-core-js/tests/fixtures/*"], } diff --git a/paf-mvp-frontend/package-lock.json b/paf-mvp-frontend/package-lock.json index 867b8826..30722ec4 100644 --- a/paf-mvp-frontend/package-lock.json +++ b/paf-mvp-frontend/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.5", "license": "ISC", "dependencies": { + "@onekey/core": "../paf-mvp-core-js/src", "jest-environment-jsdom": "^28.1.3", "preact": "^10.5.15", "rollup-plugin-sourcemaps": "^0.6.3", @@ -61,6 +62,51 @@ "wait-on": "^6.0.1" } }, + "../paf-mvp-core-js": { + "name": "@onekey/core", + "version": "1.0.13", + "license": "ISC", + "dependencies": { + "@types/cors": "^2.8.12", + "@types/ua-parser-js": "^0.7.36", + "@types/uuid": "^8.3.4", + "@types/vhost": "^3.0.4", + "ajv": "^8.11.0", + "atob": "^2.1.2", + "axios": "^0.26.1", + "btoa": "^1.2.1", + "connect-timeout": "^1.9.0", + "cors": "^2.8.5", + "detect-browser": "^5.3.0", + "json-schema-to-ts": "^1.6.5", + "mock-fs": "^5.1.2", + "tld-extract": "^2.0.1", + "ua-parser-js": "^1.0.2", + "uuid": "^8.3.2", + "vhost": "^3.0.2" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "@types/connect-timeout": "^0.0.36", + "@types/cookie-parser": "^1.4.2", + "@types/express": "^4.17.1", + "@types/express-serve-static-core": "^4.17.28", + "@types/json-schema": "^7.0.9", + "jest": "^28.1.3", + "json-schema-to-typescript": "^10.1.5", + "rollup-plugin-dts": "^4.2.2", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript-paths": "^1.3.1", + "rollup-plugin-typescript2": "^0.32.1", + "ts-jest": "^28.0.7", + "ts-node": "^10.4.0", + "tslib": "^2.4.0", + "typescript": "^4.5.4" + } + }, + "../paf-mvp-core-js/src": {}, "node_modules/@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", @@ -1376,6 +1422,10 @@ "node": ">= 8" } }, + "node_modules/@onekey/core": { + "resolved": "../paf-mvp-core-js/src", + "link": true + }, "node_modules/@rollup/plugin-alias": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz", @@ -12216,6 +12266,9 @@ "fastq": "^1.6.0" } }, + "@onekey/core": { + "version": "file:../paf-mvp-core-js/src" + }, "@rollup/plugin-alias": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.9.tgz", diff --git a/paf-mvp-frontend/package.json b/paf-mvp-frontend/package.json index a148e952..e11a1384 100644 --- a/paf-mvp-frontend/package.json +++ b/paf-mvp-frontend/package.json @@ -30,7 +30,8 @@ "preact": "^10.5.15", "rollup-plugin-sourcemaps": "^0.6.3", "tinyduration": "^3.2.2", - "ua-parser-js": "^1.0.2" + "ua-parser-js": "^1.0.2", + "@onekey/core": "../paf-mvp-core-js/src" }, "devDependencies": { "@rollup/plugin-alias": "^3.1.8", diff --git a/paf-mvp-frontend/rollup.config.js b/paf-mvp-frontend/rollup.config.js index 9f05db54..31e61303 100644 --- a/paf-mvp-frontend/rollup.config.js +++ b/paf-mvp-frontend/rollup.config.js @@ -12,6 +12,7 @@ import preact from 'rollup-plugin-preact'; import styles from 'rollup-plugin-styles'; import { terser } from 'rollup-plugin-terser'; import livereload from 'rollup-plugin-livereload'; +import json from '@rollup/plugin-json'; // When developing this project independently of the other projects in the repo const IS_PROJECT_DEV = process.env.ROLLUP_WATCH !== undefined; @@ -42,6 +43,7 @@ export default [ }, treeshake: 'smallest', // remove unused code plugins: [ + json(), //sourcemaps(), typescript({ tsconfig: relative('../tsconfig.json'), diff --git a/paf-mvp-frontend/src/containers/notification/Notification.tsx b/paf-mvp-frontend/src/containers/notification/Notification.tsx index 474a7868..b80d1984 100644 --- a/paf-mvp-frontend/src/containers/notification/Notification.tsx +++ b/paf-mvp-frontend/src/containers/notification/Notification.tsx @@ -5,7 +5,7 @@ import { ISnackBarProps, SnackBar } from '../../components/snack-bar/SnackBar'; import { useEffect } from 'react'; import { NotificationEnum } from '../../enums/notification.enum'; import { useRef } from 'preact/hooks'; -import { Window } from '@frontend/global'; +import { Window } from '@onekey/frontend/global'; export interface INotificationProps { type: NotificationEnum; diff --git a/paf-mvp-frontend/src/containers/welcome-widget/WelcomeWidget.tsx b/paf-mvp-frontend/src/containers/welcome-widget/WelcomeWidget.tsx index e3da3bb3..239a2868 100644 --- a/paf-mvp-frontend/src/containers/welcome-widget/WelcomeWidget.tsx +++ b/paf-mvp-frontend/src/containers/welcome-widget/WelcomeWidget.tsx @@ -16,8 +16,8 @@ import { Arrow } from '../../components/svg/arrow/Arrow'; import { Refresh } from '../../components/svg/refresh/Refresh'; import { DotTyping } from '../../components/animations/DotTyping'; import { OnekeyLogo } from '../../components/svg/onekey-logo/OnekeyLogo'; -import { Window } from '@frontend/global'; -import { IdsAndPreferences } from '@core/model'; +import { Window } from '@onekey/frontend/global'; +import { IdsAndPreferences } from '@onekey/core'; export interface IWelcomeWidgetProps { brandName?: string; diff --git a/paf-mvp-frontend/src/global.d.ts b/paf-mvp-frontend/src/global.d.ts index 912a19a8..530a71ce 100644 --- a/paf-mvp-frontend/src/global.d.ts +++ b/paf-mvp-frontend/src/global.d.ts @@ -1,5 +1,5 @@ import { IProcessingQueue } from './utils/queue'; -import { IOneKeyLib } from '@frontend/lib/paf-lib'; +import { IOneKeyLib } from '@onekey/frontend/lib/paf-lib'; export type Window = WindowProxy & typeof globalThis & { diff --git a/paf-mvp-frontend/src/lib/one-key.ts b/paf-mvp-frontend/src/lib/one-key.ts index e85f099d..13ba295c 100644 --- a/paf-mvp-frontend/src/lib/one-key.ts +++ b/paf-mvp-frontend/src/lib/one-key.ts @@ -1,14 +1,14 @@ /** * Entry point to OneKey library, built as onekey.js (TODO rename js file) */ -import { Window } from '@frontend/global'; -import { setUpImmediateProcessingQueue } from '@frontend/utils/queue'; -import { OneKeyLib } from '@frontend/lib/paf-lib'; -import { CurrentScript } from '@frontend/utils/current-script'; -import { auditLogStorageService } from '@frontend/services/audit-log-storage.service'; -import { seedStorageService } from '@frontend/services/seed-storage.service'; -import { Log, LogLevel } from '@core/log'; -import { HttpService } from '@frontend/services/http.service'; +import { Window } from '@onekey/frontend/global'; +import { setUpImmediateProcessingQueue } from '@onekey/frontend/utils/queue'; +import { OneKeyLib } from '@onekey/frontend/lib/paf-lib'; +import { CurrentScript } from '@onekey/frontend/utils/current-script'; +import { auditLogStorageService } from '@onekey/frontend/services/audit-log-storage.service'; +import { seedStorageService } from '@onekey/frontend/services/seed-storage.service'; +import { Log, LogLevel } from '@onekey/core'; +import { HttpService } from '@onekey/frontend/services/http.service'; // Debug level while playing with MVP Log.level = LogLevel.Debug; diff --git a/paf-mvp-frontend/src/lib/paf-lib.ts b/paf-mvp-frontend/src/lib/paf-lib.ts index e9d6c56d..c2f9a27d 100644 --- a/paf-mvp-frontend/src/lib/paf-lib.ts +++ b/paf-mvp-frontend/src/lib/paf-lib.ts @@ -2,41 +2,46 @@ * TODO this file should be split into sub-modules, like i-one-key-lib.ts, one-key-lib.ts and rtb.ts */ import { executeInQueueAsync } from '../utils/queue'; -import { PafStatus } from '@frontend/enums/status.enum'; +import { PafStatus } from '@onekey/frontend/enums/status.enum'; import { AuditLog, + buildAuditLog, + Cookies, DeleteIdsPrefsResponse, Error, + findTransactionPath, Get3PcResponse, GetIdsPrefsResponse, GetNewIdResponse, + getPrebidDataCacheExpiration, Identifier, IdsAndOptionalPreferences, IdsAndPreferences, + isBrowserKnownToSupport3PC, + jsonProxyEndpoints, + Log, PostIdsPrefsRequest, PostIdsPrefsResponse, PostSeedRequest, PostSignPreferencesRequest, Preferences, + proxyUriParams, + QSParam, + redirectProxyEndpoints, Seed, TransactionId, TransmissionResponse, -} from '@core/model'; -import { NotificationEnum } from '@frontend/enums/notification.enum'; -import { Log } from '@core/log'; -import { EventHandler } from '@frontend/utils/event-handler'; -import { Cookies, getPrebidDataCacheExpiration, typedCookie } from '@core/cookies'; -import { DEFAULT_TTL_IN_SECONDS, getCookieValue, MAXIMUM_TTL_IN_SECONDS } from '@frontend/utils/cookie'; -import { QSParam } from '@core/query-string'; -import { jsonProxyEndpoints, proxyUriParams, redirectProxyEndpoints } from '@core/endpoints'; -import { isBrowserKnownToSupport3PC } from '@core/user-agent'; + typedCookie, +} from '@onekey/core'; +import { NotificationEnum } from '@onekey/frontend/enums/notification.enum'; +import { EventHandler } from '@onekey/frontend/utils/event-handler'; +import { DEFAULT_TTL_IN_SECONDS, getCookieValue, MAXIMUM_TTL_IN_SECONDS } from '@onekey/frontend/utils/cookie'; import { browserName } from 'detect-browser'; -import { mapAdUnitCodeToDivId } from '@frontend/utils/ad-unit-code'; -import { buildAuditLog, findTransactionPath } from '@core/model/audit-log'; -import { IAuditLogStorageService } from '@frontend/services/audit-log-storage.service'; -import { ISeedStorageService } from '@frontend/services/seed-storage.service'; -import { parseDuration } from '@frontend/utils/date-utils'; -import { IHttpService } from '@frontend/services/http.service'; +import { mapAdUnitCodeToDivId } from '@onekey/frontend/utils/ad-unit-code'; +import { IAuditLogStorageService } from '@onekey/frontend/services/audit-log-storage.service'; +import { ISeedStorageService } from '@onekey/frontend/services/seed-storage.service'; +import { parseDuration } from '@onekey/frontend/utils/date-utils'; +import { IHttpService } from '@onekey/frontend/services/http.service'; // TODO ------------------------------------------------------ move to one-key-lib.ts START export class OneKeyLib implements IOneKeyLib { diff --git a/paf-mvp-frontend/src/main.ts b/paf-mvp-frontend/src/main.ts index f4845129..192f8456 100644 --- a/paf-mvp-frontend/src/main.ts +++ b/paf-mvp-frontend/src/main.ts @@ -2,8 +2,8 @@ import './polyfills/assign'; import './styles.scss'; import { PromptConsent } from './widgets/prompt-consent'; import { notificationService } from './services/notification.service'; -import { NotificationEnum } from '@frontend/enums/notification.enum'; -import { currentScript } from '@frontend/utils/current-script'; +import { NotificationEnum } from '@onekey/frontend/enums/notification.enum'; +import { currentScript } from '@onekey/frontend/utils/current-script'; import { Window } from './global'; currentScript.setScript(document.currentScript as HTMLScriptElement); diff --git a/paf-mvp-frontend/src/services/audit-log-storage.service.ts b/paf-mvp-frontend/src/services/audit-log-storage.service.ts index a7b319ba..d351edc3 100644 --- a/paf-mvp-frontend/src/services/audit-log-storage.service.ts +++ b/paf-mvp-frontend/src/services/audit-log-storage.service.ts @@ -1,5 +1,5 @@ -import { DivId } from '@frontend/lib/paf-lib'; -import { AuditLog } from '@core/model'; +import { DivId } from '@onekey/frontend/lib/paf-lib'; +import { AuditLog } from '@onekey/core'; class AuditLogStorageService implements IAuditLogStorageService { /** diff --git a/paf-mvp-frontend/src/services/http.service.ts b/paf-mvp-frontend/src/services/http.service.ts index 24e38cd7..9f811897 100644 --- a/paf-mvp-frontend/src/services/http.service.ts +++ b/paf-mvp-frontend/src/services/http.service.ts @@ -1,4 +1,4 @@ -import { Log } from '@core/log'; +import { Log } from '@onekey/core'; export interface IHttpService { /** Yes if the service has started a redirection. */ diff --git a/paf-mvp-frontend/src/services/seed-storage.service.ts b/paf-mvp-frontend/src/services/seed-storage.service.ts index ae53e328..c6cfcafb 100644 --- a/paf-mvp-frontend/src/services/seed-storage.service.ts +++ b/paf-mvp-frontend/src/services/seed-storage.service.ts @@ -1,5 +1,5 @@ -import { TransactionId } from '@core/model'; -import { SeedEntry } from '@frontend/lib/paf-lib'; +import { TransactionId } from '@onekey/core'; +import { SeedEntry } from '@onekey/frontend/lib/paf-lib'; class SeedStorageService implements ISeedStorageService { /** Internal storage for generated Seeds. */ diff --git a/paf-mvp-frontend/src/utils/queue.ts b/paf-mvp-frontend/src/utils/queue.ts index b9194544..0b418f07 100644 --- a/paf-mvp-frontend/src/utils/queue.ts +++ b/paf-mvp-frontend/src/utils/queue.ts @@ -1,4 +1,4 @@ -import { Log } from '@core/log'; +import { Log } from '@onekey/core'; // API for loading OneKey asynchronously and run functions regardless // whether it gets loaded before or after their script executes. diff --git a/paf-mvp-frontend/src/widgets/base/base-paf-widget.ts b/paf-mvp-frontend/src/widgets/base/base-paf-widget.ts index 2d0f0d79..19bf9b15 100644 --- a/paf-mvp-frontend/src/widgets/base/base-paf-widget.ts +++ b/paf-mvp-frontend/src/widgets/base/base-paf-widget.ts @@ -1,7 +1,7 @@ import { ComponentFactory, createElement, render, VNode } from 'preact'; import { createHtmlElement } from '../../utils/create-html-element'; import { env } from '../../config'; -import { currentScript } from '@frontend/utils/current-script'; +import { currentScript } from '@onekey/frontend/utils/current-script'; const fontFaces = (domain: string) => `@font-face { font-family: 'SF Pro Display'; diff --git a/paf-mvp-frontend/tests/test-cases/date-utils.test.ts b/paf-mvp-frontend/tests/test-cases/date-utils.test.ts index 159d7f51..d47a1844 100644 --- a/paf-mvp-frontend/tests/test-cases/date-utils.test.ts +++ b/paf-mvp-frontend/tests/test-cases/date-utils.test.ts @@ -1,4 +1,4 @@ -import { parseDuration } from '@frontend/utils/date-utils'; +import { parseDuration } from '@onekey/frontend/utils/date-utils'; describe('ISO-8601 duration parser', () => { const invalid_inputs = [null, 'SOME_RANDOM_STRING', 'PTT1S', '']; diff --git a/paf-mvp-frontend/tests/test-cases/http.service.test.ts b/paf-mvp-frontend/tests/test-cases/http.service.test.ts index 8a085354..5e09e309 100644 --- a/paf-mvp-frontend/tests/test-cases/http.service.test.ts +++ b/paf-mvp-frontend/tests/test-cases/http.service.test.ts @@ -1,4 +1,4 @@ -import { HttpService, IHttpClient, RedirectingError } from '@frontend/services/http.service'; +import { HttpService, IHttpClient, RedirectingError } from '@onekey/frontend/services/http.service'; describe('HttpService', () => { const defaultUrl = 'https://test.com'; diff --git a/paf-mvp-frontend/tests/test-cases/onekey-lib.register-transmission.test.ts b/paf-mvp-frontend/tests/test-cases/onekey-lib.register-transmission.test.ts index 52b52168..b87d9b7b 100644 --- a/paf-mvp-frontend/tests/test-cases/onekey-lib.register-transmission.test.ts +++ b/paf-mvp-frontend/tests/test-cases/onekey-lib.register-transmission.test.ts @@ -1,9 +1,8 @@ -import { AuditHandler, OneKeyLib, SeedEntry } from '@frontend/lib/paf-lib'; -import { TransactionId, TransmissionResponse } from '@core/model'; -import { IAuditLogStorageService } from '@frontend/services/audit-log-storage.service'; -import { HttpService } from '@frontend/services/http.service'; -import { ISeedStorageService } from '@frontend/services/seed-storage.service'; -import { buildAuditLog } from '@core/model/audit-log'; +import { AuditHandler, OneKeyLib, SeedEntry } from '@onekey/frontend/lib/paf-lib'; +import { buildAuditLog, TransactionId, TransmissionResponse } from '@onekey/core'; +import { IAuditLogStorageService } from '@onekey/frontend/services/audit-log-storage.service'; +import { HttpService } from '@onekey/frontend/services/http.service'; +import { ISeedStorageService } from '@onekey/frontend/services/seed-storage.service'; const auditLogStorageService: IAuditLogStorageService = { saveAuditLog: jest.fn(), diff --git a/paf-mvp-frontend/tests/test-cases/onekey-lib.test.ts b/paf-mvp-frontend/tests/test-cases/onekey-lib.test.ts index b29fd5f2..36f56485 100644 --- a/paf-mvp-frontend/tests/test-cases/onekey-lib.test.ts +++ b/paf-mvp-frontend/tests/test-cases/onekey-lib.test.ts @@ -1,23 +1,23 @@ import { CookiesHelpers, getFakeIdentifier, getFakeIdentifiers, getFakePreferences } from '@test-fixtures/cookies'; -import { Cookies } from '@core/cookies'; -import { PafStatus } from '../../src/enums/status.enum'; import { + Cookies, Error, GetIdsPrefsResponse, Identifier, IdsAndPreferences, + isBrowserKnownToSupport3PC, PostSeedResponse, TransactionId, -} from '@core/model/generated-model'; +} from '@onekey/core'; +import { PafStatus } from '../../src/enums/status.enum'; import fetch from 'jest-fetch-mock'; -import { isBrowserKnownToSupport3PC } from '@core/user-agent'; -import { IdsAndPreferencesResult, OneKeyLib, SeedEntry } from '@frontend/lib/paf-lib'; -import { IAuditLogStorageService } from '@frontend/services/audit-log-storage.service'; -import { HttpService } from '@frontend/services/http.service'; -import { ISeedStorageService } from '@frontend/services/seed-storage.service'; -import { DEFAULT_TTL_IN_SECONDS, MAXIMUM_TTL_IN_SECONDS } from '@frontend/utils/cookie'; - -jest.mock('@core/user-agent'); +import { IdsAndPreferencesResult, OneKeyLib, SeedEntry } from '@onekey/frontend/lib/paf-lib'; +import { IAuditLogStorageService } from '@onekey/frontend/services/audit-log-storage.service'; +import { HttpService } from '@onekey/frontend/services/http.service'; +import { ISeedStorageService } from '@onekey/frontend/services/seed-storage.service'; +import { DEFAULT_TTL_IN_SECONDS, MAXIMUM_TTL_IN_SECONDS } from '@onekey/frontend/utils/cookie'; + +jest.mock('@onekey/core/user-agent'); const mockedIsBrowserKnownToSupport3PC = jest.mocked(isBrowserKnownToSupport3PC, true); jest.mock('ua-parser-js', () => () => ({ getBrowser: () => 'JEST-DOM' })); diff --git a/paf-mvp-operator-express/.npmrc b/paf-mvp-operator-express/.npmrc index 65719058..04f67d03 100644 --- a/paf-mvp-operator-express/.npmrc +++ b/paf-mvp-operator-express/.npmrc @@ -1,2 +1,3 @@ registry=https://registry.npmjs.org/ access=public +legacy-peer-deps=true diff --git a/paf-mvp-operator-express/examples/example-operator-api.ts b/paf-mvp-operator-express/examples/example-operator-api.ts index aa3b95b9..7e189fc3 100644 --- a/paf-mvp-operator-express/examples/example-operator-api.ts +++ b/paf-mvp-operator-express/examples/example-operator-api.ts @@ -1,7 +1,5 @@ -import { getTimeStampInSec } from '@core/timestamp'; -import { JsonValidator } from '@core/validation/json-validator'; -import { OperatorNode, Permission } from '@operator/operator-node'; -import { PublicKeyStore } from '@core/crypto'; +import { getTimeStampInSec, JsonValidator, PublicKeyStore } from '@onekey/core'; +import { OperatorNode, Permission } from '@onekey/operator-node/operator-node'; // This is just an example of a basic operator node configuration export const operator = new OperatorNode( diff --git a/paf-mvp-operator-express/package-lock.json b/paf-mvp-operator-express/package-lock.json index fe6b9432..7420baa9 100644 --- a/paf-mvp-operator-express/package-lock.json +++ b/paf-mvp-operator-express/package-lock.json @@ -1,18 +1,19 @@ { "name": "@onekey/operator-node", - "version": "1.0.9", + "version": "1.0.13", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@onekey/operator-node", - "version": "1.0.9", + "version": "1.0.13", "license": "ISC", "dependencies": { - "@types/connect-timeout": "^0.0.36", + "@onekey/core": "../paf-mvp-core-js/src", "@types/cors": "^2.8.12", "@types/uuid": "^8.3.4", "axios": "^0.26.1", + "connect-timeout": "^1.9.0", "cookie-parser": "^1.4.6", "cors": "^2.8.5", "express": "^4.17.1", @@ -27,7 +28,6 @@ "@types/express": "^4.17.1", "@types/express-serve-static-core": "^4.17.28", "@types/supertest": "^2.0.12", - "connect-timeout": "^1.9.0", "jest": "^28.1.3", "node-mocks-http": "^1.11.0", "rollup-plugin-dts": "^4.2.2", @@ -38,8 +38,56 @@ "ts-jest": "^28.0.7", "tslib": "^2.4.0", "typescript": "^4.5.4" + }, + "peerDependencies": { + "@onekey/core": "^1.0.13" + } + }, + "../paf-mvp-core-js": { + "name": "@onekey/core", + "version": "1.0.13", + "license": "ISC", + "dependencies": { + "@types/cors": "^2.8.12", + "@types/ua-parser-js": "^0.7.36", + "@types/uuid": "^8.3.4", + "@types/vhost": "^3.0.4", + "ajv": "^8.11.0", + "atob": "^2.1.2", + "axios": "^0.26.1", + "btoa": "^1.2.1", + "connect-timeout": "^1.9.0", + "cors": "^2.8.5", + "detect-browser": "^5.3.0", + "json-schema-to-ts": "^1.6.5", + "mock-fs": "^5.1.2", + "tld-extract": "^2.0.1", + "ua-parser-js": "^1.0.2", + "uuid": "^8.3.2", + "vhost": "^3.0.2" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "@types/connect-timeout": "^0.0.36", + "@types/cookie-parser": "^1.4.2", + "@types/express": "^4.17.1", + "@types/express-serve-static-core": "^4.17.28", + "@types/json-schema": "^7.0.9", + "jest": "^28.1.3", + "json-schema-to-typescript": "^10.1.5", + "rollup-plugin-dts": "^4.2.2", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript-paths": "^1.3.1", + "rollup-plugin-typescript2": "^0.32.1", + "ts-jest": "^28.0.7", + "ts-node": "^10.4.0", + "tslib": "^2.4.0", + "typescript": "^4.5.4" } }, + "../paf-mvp-core-js/src": {}, "node_modules/@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", @@ -1318,6 +1366,10 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@onekey/core": { + "resolved": "../paf-mvp-core-js/src", + "link": true + }, "node_modules/@rollup/plugin-commonjs": { "version": "22.0.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", @@ -1472,6 +1524,7 @@ "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -1481,18 +1534,11 @@ "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, "dependencies": { "@types/node": "*" } }, - "node_modules/@types/connect-timeout": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@types/connect-timeout/-/connect-timeout-0.0.36.tgz", - "integrity": "sha512-rfw+RJU9gd0JeOJSkfRVixCETnw1ezx6Uo3exetKBeIKY4GaL/MVb4XCjmB4dgeZQ5vkcLlpYLVSbYIeqDu25g==", - "dependencies": { - "@types/express": "*" - } - }, "node_modules/@types/cookie-parser": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.2.tgz", @@ -1523,6 +1569,7 @@ "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -1534,6 +1581,7 @@ "version": "4.17.28", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -1576,12 +1624,14 @@ "node_modules/@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true }, "node_modules/@types/node": { "version": "17.0.42", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.42.tgz", - "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==" + "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==", + "dev": true }, "node_modules/@types/prettier": { "version": "2.7.0", @@ -1592,12 +1642,14 @@ "node_modules/@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true }, "node_modules/@types/range-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true }, "node_modules/@types/resolve": { "version": "1.17.1", @@ -1612,6 +1664,7 @@ "version": "1.13.10", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -2217,7 +2270,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.9.0.tgz", "integrity": "sha512-q4bsBIPd+eSGtnh/u6EBOKfuG+4YvwsN0idlOsg6KAw71Qpi0DCf2eCc/Va63QU9qdOeYC8katxoC+rHMNygZg==", - "dev": true, "dependencies": { "http-errors": "~1.6.1", "ms": "2.0.0", @@ -2232,7 +2284,6 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -2246,14 +2297,12 @@ "node_modules/connect-timeout/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, "node_modules/connect-timeout/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, "node_modules/content-disposition": { "version": "0.5.4", @@ -5252,7 +5301,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -5605,22 +5653,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rollup": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", - "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", - "dev": true, - "peer": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/rollup-plugin-dts": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz", @@ -7544,6 +7576,9 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@onekey/core": { + "version": "file:../paf-mvp-core-js/src" + }, "@rollup/plugin-commonjs": { "version": "22.0.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", @@ -7679,6 +7714,7 @@ "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, "requires": { "@types/connect": "*", "@types/node": "*" @@ -7688,18 +7724,11 @@ "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, "requires": { "@types/node": "*" } }, - "@types/connect-timeout": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@types/connect-timeout/-/connect-timeout-0.0.36.tgz", - "integrity": "sha512-rfw+RJU9gd0JeOJSkfRVixCETnw1ezx6Uo3exetKBeIKY4GaL/MVb4XCjmB4dgeZQ5vkcLlpYLVSbYIeqDu25g==", - "requires": { - "@types/express": "*" - } - }, "@types/cookie-parser": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.2.tgz", @@ -7730,6 +7759,7 @@ "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -7741,6 +7771,7 @@ "version": "4.17.28", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, "requires": { "@types/node": "*", "@types/qs": "*", @@ -7783,12 +7814,14 @@ "@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "dev": true }, "@types/node": { "version": "17.0.42", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.42.tgz", - "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==" + "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==", + "dev": true }, "@types/prettier": { "version": "2.7.0", @@ -7799,12 +7832,14 @@ "@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true }, "@types/range-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true }, "@types/resolve": { "version": "1.17.1", @@ -7819,6 +7854,7 @@ "version": "1.13.10", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, "requires": { "@types/mime": "^1", "@types/node": "*" @@ -8294,7 +8330,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.9.0.tgz", "integrity": "sha512-q4bsBIPd+eSGtnh/u6EBOKfuG+4YvwsN0idlOsg6KAw71Qpi0DCf2eCc/Va63QU9qdOeYC8katxoC+rHMNygZg==", - "dev": true, "requires": { "http-errors": "~1.6.1", "ms": "2.0.0", @@ -8306,7 +8341,6 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -8317,14 +8351,12 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" } } }, @@ -9687,8 +9719,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "28.0.2", @@ -10564,8 +10595,7 @@ "on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" }, "once": { "version": "1.4.0", @@ -10815,16 +10845,6 @@ "glob": "^7.1.3" } }, - "rollup": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", - "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", - "dev": true, - "peer": true, - "requires": { - "fsevents": "~2.3.2" - } - }, "rollup-plugin-dts": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz", @@ -10851,8 +10871,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript-paths/-/rollup-plugin-typescript-paths-1.3.1.tgz", "integrity": "sha512-gRjWwEIVcrga59OWWh8WGiJlcM9zzdr8xS64ZVYl+0pU5kRpoy2nu4QHh6bBlacIM38PK41w1v0WrH5SgTNetg==", - "dev": true, - "requires": {} + "dev": true }, "rollup-plugin-typescript2": { "version": "0.32.1", diff --git a/paf-mvp-operator-express/package.json b/paf-mvp-operator-express/package.json index 87eee718..87297ef1 100644 --- a/paf-mvp-operator-express/package.json +++ b/paf-mvp-operator-express/package.json @@ -1,6 +1,6 @@ { "name": "@onekey/operator-node", - "version": "1.0.9", + "version": "1.0.13", "description": "OneKey Operator node based on ExpressJS", "module": "dist/index.mjs", "main": "dist/index.cjs", @@ -25,15 +25,16 @@ }, "homepage": "https://github.com/OneKey-Network/OneKey-implementation/tree/main/paf-mvp-operator-express#readme", "dependencies": { - "@types/connect-timeout": "^0.0.36", "@types/cors": "^2.8.12", "@types/uuid": "^8.3.4", "axios": "^0.26.1", "cookie-parser": "^1.4.6", + "connect-timeout": "^1.9.0", "cors": "^2.8.5", "express": "^4.17.1", "tld-extract": "^2.0.1", - "uuid": "^8.3.2" + "uuid": "^8.3.2", + "@onekey/core": "../paf-mvp-core-js/src" }, "devDependencies": { "@rollup/plugin-commonjs": "^22.0.0", @@ -43,7 +44,6 @@ "@types/express": "^4.17.1", "@types/express-serve-static-core": "^4.17.28", "@types/supertest": "^2.0.12", - "connect-timeout": "^1.9.0", "jest": "^28.1.3", "node-mocks-http": "^1.11.0", "rollup-plugin-dts": "^4.2.2", @@ -54,5 +54,8 @@ "ts-jest": "^28.0.7", "tslib": "^2.4.0", "typescript": "^4.5.4" + }, + "peerDependencies": { + "@onekey/core": "^1.0.13" } } diff --git a/paf-mvp-operator-express/rollup.config.js b/paf-mvp-operator-express/rollup.config.js index 07f56d19..6f0b9983 100644 --- a/paf-mvp-operator-express/rollup.config.js +++ b/paf-mvp-operator-express/rollup.config.js @@ -10,21 +10,18 @@ import dts from 'rollup-plugin-dts'; import typescript from 'rollup-plugin-typescript2'; import typescriptPaths from 'rollup-plugin-typescript-paths'; + const DEV = process.env.ROLLUP_WATCH; const relative = path => join(__dirname, path); const entryPath = relative('src/index.ts'); -const coreExpressPath = relative('../paf-mvp-core-js/src/express/index.ts'); // https://rollupjs.org/guide/en/#configuration-files export default [ defineConfig( { input: { - index: entryPath, - // Include core typings - // TODO this should be a proper npm package, not part of the build - core: coreExpressPath + index: entryPath }, plugins: [dts()], // Generate type declaration file index.d.ts output: { diff --git a/paf-mvp-operator-express/src/index.ts b/paf-mvp-operator-express/src/index.ts index d10b4946..bc2549a7 100644 --- a/paf-mvp-operator-express/src/index.ts +++ b/paf-mvp-operator-express/src/index.ts @@ -1,3 +1 @@ export * from './operator-node'; -export * from '@core/express'; -export * from '@core/model'; diff --git a/paf-mvp-operator-express/src/operator-node.ts b/paf-mvp-operator-express/src/operator-node.ts index 918f467f..c52a2131 100644 --- a/paf-mvp-operator-express/src/operator-node.ts +++ b/paf-mvp-operator-express/src/operator-node.ts @@ -3,60 +3,61 @@ import cors from 'cors'; import { AxiosRequestConfig } from 'axios'; import { Config, + Cookies, corsOptionsAcceptAll, - extractRequestAndContextFromHttp, - getPafDataFromQueryString, - getPayload, - getTopLevelDomain, - httpRedirect, - IdentityConfig, - Node, - parseConfig, - removeCookie, - Response, - setCookie, - VHostApp, -} from '@core/express'; -import { - IdentifierDefinition, - IdsAndPreferencesDefinition, - MessageVerificationResult, - PublicKeyProvider, - PublicKeyStore, - RequestVerifier, - RequestWithBodyDefinition, - RequestWithoutBodyDefinition, - Verifier, -} from '@core/crypto'; -import { DeleteIdsPrefsRequest, DeleteIdsPrefsResponseBuilder, Domain, + extractRequestAndContextFromHttp, Get3PCResponseBuilder, GetIdsPrefsRequest, GetIdsPrefsResponse, GetIdsPrefsResponseBuilder, GetNewIdRequest, GetNewIdResponseBuilder, + getPafDataFromQueryString, + getPayload, + getTimeStampInSec, + getTopLevelDomain, + httpRedirect, IdBuilder, Identifier, + IdentifierDefinition, Identifiers, + IdentityConfig, IdsAndPreferences, + IdsAndPreferencesDefinition, + IJsonValidator, + jsonOperatorEndpoints, + JsonSchemaType, + JsonValidator, + MessageVerificationResult, + Node, NodeError, + parseConfig, PostIdsPrefsRequest, PostIdsPrefsResponse, PostIdsPrefsResponseBuilder, Preferences, + PublicKeyProvider, + PublicKeyStore, RedirectDeleteIdsPrefsRequest, + redirectEndpoints, RedirectGetIdsPrefsRequest, RedirectPostIdsPrefsRequest, + removeCookie, + RequestVerifier, + RequestWithBodyDefinition, + RequestWithoutBodyDefinition, + Response, + setCookie, Test3Pc, -} from '@core/model'; -import { Cookies, toTest3pcCookie, typedCookie } from '@core/cookies'; -import { getTimeStampInSec } from '@core/timestamp'; -import { jsonOperatorEndpoints, redirectEndpoints } from '@core/endpoints'; -import { IJsonValidator, JsonSchemaType, JsonValidator } from '@core/validation/json-validator'; -import { UnableToIdentifySignerError } from '@core/express/errors'; + toTest3pcCookie, + typedCookie, + UnableToIdentifySignerError, + Verifier, + VHostApp, +} from '@onekey/core'; import timeout from 'connect-timeout'; /** diff --git a/paf-mvp-operator-express/tests/fixtures/operator-fixtures.ts b/paf-mvp-operator-express/tests/fixtures/operator-fixtures.ts index a4c55752..2b4dc2a9 100644 --- a/paf-mvp-operator-express/tests/fixtures/operator-fixtures.ts +++ b/paf-mvp-operator-express/tests/fixtures/operator-fixtures.ts @@ -1,4 +1,4 @@ -import { Identifier, Preferences } from '@core/model'; +import { Identifier, Preferences } from '@onekey/core'; export const id: Identifier = { version: '0.1', diff --git a/paf-mvp-operator-express/tests/helpers/assume-https.ts b/paf-mvp-operator-express/tests/helpers/assume-https.ts index 3977b695..16cb332a 100644 --- a/paf-mvp-operator-express/tests/helpers/assume-https.ts +++ b/paf-mvp-operator-express/tests/helpers/assume-https.ts @@ -1,8 +1,8 @@ // /!\ for some reason this doesn't work in a beforeAll // in express-apps.ts, all unsecure requests are redirected to HTTPS, making all tests end up with a 302 status. // To prevent that, we consider that all requests are secure -jest.mock('@core/express/express-apps', () => { - const module = jest.requireActual('@core/express/express-apps'); +jest.mock('@onekey/core/express/express-apps', () => { + const module = jest.requireActual('@onekey/core/express/express-apps'); module.VHostApp.prototype.ensureHttps = () => { // No redirect to HTTPS }; diff --git a/paf-mvp-operator-express/tests/helpers/integration.helpers.ts b/paf-mvp-operator-express/tests/helpers/integration.helpers.ts index 4614812a..2daab0d8 100644 --- a/paf-mvp-operator-express/tests/helpers/integration.helpers.ts +++ b/paf-mvp-operator-express/tests/helpers/integration.helpers.ts @@ -1,6 +1,5 @@ -import { Error, NodeError, RedirectErrorResponse, ResponseCode } from '@core/model'; +import { Error, fromDataToObject, NodeError, QSParam, RedirectErrorResponse, ResponseCode } from '@onekey/core'; import request from 'supertest'; -import { fromDataToObject, QSParam } from '@core/query-string'; export const getRedirectUrl = (response: request.Response) => { return new URL(response.header['location']); diff --git a/paf-mvp-operator-express/tests/integration-tests/operator.integration.delete.test.ts b/paf-mvp-operator-express/tests/integration-tests/operator.integration.delete.test.ts index 9b88d1d3..369f7c62 100644 --- a/paf-mvp-operator-express/tests/integration-tests/operator.integration.delete.test.ts +++ b/paf-mvp-operator-express/tests/integration-tests/operator.integration.delete.test.ts @@ -1,11 +1,15 @@ import { Express } from 'express'; import supertest from 'supertest'; import { OperatorUtils } from '../utils/operator-utils'; -import { IJsonValidator, JsonValidator } from '@core/validation/json-validator'; +import { + DeleteIdsPrefsResponse, + IJsonValidator, + JsonValidator, + RedirectDeleteIdsPrefsResponse, + UnableToIdentifySignerError, +} from '@onekey/core'; import { ClientBuilder } from '../utils/client-utils'; -import { OperatorClient } from '@client/operator-client'; -import { UnableToIdentifySignerError } from '@core/express/errors'; -import { DeleteIdsPrefsResponse, RedirectDeleteIdsPrefsResponse } from '@core/model'; +import { OperatorClient } from '@onekey/client-node/operator-client'; import { assertRedirectError, assertRestError, diff --git a/paf-mvp-operator-express/tests/integration-tests/operator.integration.newId.test.ts b/paf-mvp-operator-express/tests/integration-tests/operator.integration.newId.test.ts index dab12eef..3887b7bb 100644 --- a/paf-mvp-operator-express/tests/integration-tests/operator.integration.newId.test.ts +++ b/paf-mvp-operator-express/tests/integration-tests/operator.integration.newId.test.ts @@ -2,10 +2,9 @@ import { assertRestError } from '../helpers/integration.helpers'; import { Express } from 'express'; import supertest from 'supertest'; import { OperatorUtils } from '../utils/operator-utils'; -import { IJsonValidator, JsonValidator } from '@core/validation/json-validator'; +import { IJsonValidator, JsonValidator, UnableToIdentifySignerError } from '@onekey/core'; import { ClientBuilder } from '../utils/client-utils'; -import { OperatorClient } from '@client/operator-client'; -import { UnableToIdentifySignerError } from '@core/express/errors'; +import { OperatorClient } from '@onekey/client-node/operator-client'; import { createRequest } from 'node-mocks-http'; import { defaultRefererUrl, randomPrivateKey } from '../utils/constants'; diff --git a/paf-mvp-operator-express/tests/integration-tests/operator.integration.read.test.ts b/paf-mvp-operator-express/tests/integration-tests/operator.integration.read.test.ts index 42b61ca2..3bad062c 100644 --- a/paf-mvp-operator-express/tests/integration-tests/operator.integration.read.test.ts +++ b/paf-mvp-operator-express/tests/integration-tests/operator.integration.read.test.ts @@ -8,11 +8,15 @@ import { import { Express } from 'express'; import supertest from 'supertest'; import { OperatorUtils } from '../utils/operator-utils'; -import { IJsonValidator, JsonValidator } from '@core/validation/json-validator'; +import { + GetIdsPrefsResponse, + IJsonValidator, + JsonValidator, + RedirectGetIdsPrefsResponse, + UnableToIdentifySignerError, +} from '@onekey/core'; import { ClientBuilder } from '../utils/client-utils'; -import { OperatorClient } from '@client/operator-client'; -import { UnableToIdentifySignerError } from '@core/express/errors'; -import { GetIdsPrefsResponse, RedirectGetIdsPrefsResponse } from '@core/model'; +import { OperatorClient } from '@onekey/client-node/operator-client'; import { createRequest } from 'node-mocks-http'; import { defaultRefererUrl, defaultReturnUrl, randomPrivateKey } from '../utils/constants'; import { invalidUrls } from '../fixtures/operator-fixtures'; diff --git a/paf-mvp-operator-express/tests/integration-tests/operator.integration.write.test.ts b/paf-mvp-operator-express/tests/integration-tests/operator.integration.write.test.ts index bd31c14d..0aea656b 100644 --- a/paf-mvp-operator-express/tests/integration-tests/operator.integration.write.test.ts +++ b/paf-mvp-operator-express/tests/integration-tests/operator.integration.write.test.ts @@ -1,11 +1,16 @@ import { Express } from 'express'; import supertest from 'supertest'; import { OperatorUtils } from '../utils/operator-utils'; -import { IJsonValidator, JsonValidator } from '@core/validation/json-validator'; +import { + IdsAndPreferences, + IJsonValidator, + JsonValidator, + PostIdsPrefsResponse, + RedirectPostIdsPrefsResponse, + UnableToIdentifySignerError, +} from '@onekey/core'; import { ClientBuilder } from '../utils/client-utils'; -import { OperatorClient } from '@client/operator-client'; -import { UnableToIdentifySignerError } from '@core/express/errors'; -import { IdsAndPreferences, PostIdsPrefsResponse, RedirectPostIdsPrefsResponse } from '@core/model'; +import { OperatorClient } from '@onekey/client-node/operator-client'; import { assertRedirectError, assertRestError, diff --git a/paf-mvp-operator-express/tests/test-cases/operator-node.test.ts b/paf-mvp-operator-express/tests/test-cases/operator-node.test.ts index 11f9d343..a87efd09 100644 --- a/paf-mvp-operator-express/tests/test-cases/operator-node.test.ts +++ b/paf-mvp-operator-express/tests/test-cases/operator-node.test.ts @@ -1,8 +1,8 @@ -import { OperatorNode } from '@operator/operator-node'; +import { OperatorNode } from '@onekey/operator-node/operator-node'; import { createRequest, createResponse, MockResponse } from 'node-mocks-http'; import { Response } from 'express'; -import { OperatorClient } from '@client/operator-client'; -import { GetIdsPrefsResponse, NodeError, Signature, Timestamp } from '@core/model'; +import { OperatorClient } from '@onekey/client-node/operator-client'; +import { GetIdsPrefsResponse, NodeError, Signature, Timestamp } from '@onekey/core'; import { id, preferences } from '../fixtures/operator-fixtures'; import { OperatorUtils } from '../utils/operator-utils'; diff --git a/paf-mvp-operator-express/tests/test-cases/read-permission.test.ts b/paf-mvp-operator-express/tests/test-cases/read-permission.test.ts index 5492e1e5..33f1d00c 100644 --- a/paf-mvp-operator-express/tests/test-cases/read-permission.test.ts +++ b/paf-mvp-operator-express/tests/test-cases/read-permission.test.ts @@ -1,4 +1,4 @@ -import { OperatorNode } from '@operator/operator-node'; +import { OperatorNode } from '@onekey/operator-node/operator-node'; import { createResponse, MockResponse } from 'node-mocks-http'; import { NextFunction, Response } from 'express'; import { OperatorUtils } from '../utils/operator-utils'; diff --git a/paf-mvp-operator-express/tests/test-cases/write-permission.test.ts b/paf-mvp-operator-express/tests/test-cases/write-permission.test.ts index 029656c0..7912a554 100644 --- a/paf-mvp-operator-express/tests/test-cases/write-permission.test.ts +++ b/paf-mvp-operator-express/tests/test-cases/write-permission.test.ts @@ -1,4 +1,4 @@ -import { OperatorNode } from '@operator/operator-node'; +import { OperatorNode } from '@onekey/operator-node/operator-node'; import { createResponse, MockResponse } from 'node-mocks-http'; import { NextFunction, Response } from 'express'; import { OperatorUtils } from '../utils/operator-utils'; diff --git a/paf-mvp-operator-express/tests/utils/client-utils.ts b/paf-mvp-operator-express/tests/utils/client-utils.ts index f43156b8..72c646a5 100644 --- a/paf-mvp-operator-express/tests/utils/client-utils.ts +++ b/paf-mvp-operator-express/tests/utils/client-utils.ts @@ -1,5 +1,5 @@ -import { PublicKeyProvider } from '@core/crypto'; -import { OperatorClient } from '@client/operator-client'; +import { PublicKeyProvider } from '@onekey/core'; +import { OperatorClient } from '@onekey/client-node/operator-client'; export class ClientBuilder { private operatorHost = 'example.onekey.network'; diff --git a/paf-mvp-operator-express/tests/utils/operator-utils.ts b/paf-mvp-operator-express/tests/utils/operator-utils.ts index 978c1b43..5efd2946 100644 --- a/paf-mvp-operator-express/tests/utils/operator-utils.ts +++ b/paf-mvp-operator-express/tests/utils/operator-utils.ts @@ -1,11 +1,16 @@ -import { IJsonValidator, JsonValidation } from '@core/validation/json-validator'; -import { PublicKeyProvider } from '@core/crypto'; -import { OperatorNode, Permission } from '@operator/operator-node'; -import { getTimeStampInSec } from '@core/timestamp'; -import { Domain, PostIdsPrefsRequest } from '@core/model'; +import { + Domain, + encodeBase64, + getTimeStampInSec, + IJsonValidator, + JsonValidation, + PostIdsPrefsRequest, + PublicKeyProvider, + QSParam, + VHostApp, +} from '@onekey/core'; +import { OperatorNode, Permission } from '@onekey/operator-node/operator-node'; import { createRequest } from 'node-mocks-http'; -import { encodeBase64, QSParam } from '@core/query-string'; -import { VHostApp } from '@core/express'; export class OperatorUtils { private static operatorPublicKey = `-----BEGIN PUBLIC KEY----- diff --git a/tsconfig.json b/tsconfig.json index 9bcedcd3..d187aa2a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -24,10 +24,9 @@ "node_modules/@types" ], "paths": { - "@core/*": ["./paf-mvp-core-js/src/*"], - "@operator/*": ["./paf-mvp-operator-express/src/*"], - "@client/*": ["./paf-mvp-client-express/src/*"], - "@frontend/*": ["./paf-mvp-frontend/src/*"], + "@onekey/operator-node/*": ["./paf-mvp-operator-express/src/*"], + "@onekey/client-node/*": ["./paf-mvp-client-express/src/*"], + "@onekey/frontend/*": ["./paf-mvp-frontend/src/*"], "@test-helpers/*": ["./paf-mvp-core-js/tests/helpers/*"], "@test-fixtures/*": ["./paf-mvp-core-js/tests/fixtures/*"] } diff --git a/tsconfig.test.json b/tsconfig.test.json index db478108..32c2e413 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -10,10 +10,10 @@ "node_modules/@types" ], "paths": { - "@core/*": ["paf-mvp-core-js/src/*"], - "@operator/*": ["./paf-mvp-operator-express/src/*"], - "@client/*": ["./paf-mvp-client-express/src/*"], - "@frontend/*": ["./paf-mvp-frontend/src/*"], + "@onekey/core/*": ["paf-mvp-core-js/src/*"], + "@onekey/operator-node/*": ["./paf-mvp-operator-express/src/*"], + "@onekey/client-node/*": ["./paf-mvp-client-express/src/*"], + "@onekey/frontend/*": ["./paf-mvp-frontend/src/*"], "@test-helpers/*": ["./paf-mvp-core-js/tests/helpers/*"], "@test-fixtures/*": ["./paf-mvp-core-js/tests/fixtures/*"], }