From 3f83e87bddb5f017d067282e277a37bf454e0457 Mon Sep 17 00:00:00 2001 From: Pierre Troger Date: Fri, 11 Oct 2024 11:58:36 +0200 Subject: [PATCH] import sdk from path, added API clients to sdk exports --- Makefile | 1 + packages/armory-sdk/src/index.ts | 3 ++ packages/user-journey/.eslintrc.json | 7 +++++ packages/user-journey/package.json | 10 ------- packages/user-journey/project.json | 8 +++-- .../e2e/criterion/check-approvals.spec.ts | 10 +++---- .../e2e/criterion/check-rate-limit.spec.ts | 8 ++--- .../criterion/check-spending-limit.spec.ts | 10 +++---- .../scenarii/address-book-management.spec.ts | 4 +-- .../approvals-and-spending-limit.spec.ts | 8 ++--- .../e2e/scenarii/defi-interactions.spec.ts | 2 +- .../tiered-eth-transfer-policy.spec.ts | 6 ++-- .../e2e/scenarii/user-journeys.spec.ts | 29 ++++++++++++------- packages/user-journey/src/util/setup.ts | 14 +++++++-- packages/user-journey/tsconfig.json | 19 ++++++------ packages/user-journey/tsconfig.lib.json | 2 +- packages/user-journey/tsconfig.spec.json | 9 ++++++ tsconfig.base.json | 3 +- 18 files changed, 91 insertions(+), 62 deletions(-) delete mode 100644 packages/user-journey/package.json create mode 100644 packages/user-journey/tsconfig.spec.json diff --git a/Makefile b/Makefile index 75a1b429d..c1ca34140 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,7 @@ include ./packages/policy-engine-shared/Makefile include ./packages/transaction-request-intent/Makefile include ./packages/signature/Makefile include ./packages/armory-sdk/Makefile +include ./packages/user-journey/Makefile # For more terminal color codes, head over to # https://opensource.com/article/19/9/linux-terminal-colors diff --git a/packages/armory-sdk/src/index.ts b/packages/armory-sdk/src/index.ts index 694101d6d..d836db6bb 100644 --- a/packages/armory-sdk/src/index.ts +++ b/packages/armory-sdk/src/index.ts @@ -7,6 +7,9 @@ export * from './lib/shared/promise' export * from './lib/types' export * from './lib/vault' +export { AuthorizationResponseDtoStatusEnum, CreateClientResponseDto } from './lib/http/client/auth' +export { ClientDto, WalletDto } from './lib/http/client/vault' +export { Signer } from './lib/shared/type' export { resourceId } from './lib/utils' export type { Jwk, PrivateKey, PublicKey, RsaPublicKey } from '@narval/signature' diff --git a/packages/user-journey/.eslintrc.json b/packages/user-journey/.eslintrc.json index 9d9c0db55..adbe7ae2d 100644 --- a/packages/user-journey/.eslintrc.json +++ b/packages/user-journey/.eslintrc.json @@ -13,6 +13,13 @@ { "files": ["*.js", "*.jsx"], "rules": {} + }, + { + "files": ["*.json"], + "parser": "jsonc-eslint-parser", + "rules": { + "@nx/dependency-checks": "error" + } } ] } diff --git a/packages/user-journey/package.json b/packages/user-journey/package.json deleted file mode 100644 index a562a5922..000000000 --- a/packages/user-journey/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "user-journey", - "version": "0.0.1", - "description": "it's a test suite that covers core scenario for narval's armory.", - "dependencies": { - "@narval-xyz/armory-sdk": "0.8.3" - }, - "author": "", - "license": "ISC" -} diff --git a/packages/user-journey/project.json b/packages/user-journey/project.json index 64f4f6220..a177c61d3 100644 --- a/packages/user-journey/project.json +++ b/packages/user-journey/project.json @@ -6,13 +6,17 @@ "tags": [], "targets": { "lint": { - "executor": "@nx/eslint:lint" + "executor": "@nx/eslint:lint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": ["packages/user-journey/**/*.ts"] + } }, "test:e2e": { "executor": "@nx/jest:jest", "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], "options": { - "jestConfig": "packages/armory-sdk/jest.e2e.ts", + "jestConfig": "packages/user-journey/jest.e2e.ts", "verbose": true, "runInBand": true } diff --git a/packages/user-journey/src/__test__/e2e/criterion/check-approvals.spec.ts b/packages/user-journey/src/__test__/e2e/criterion/check-approvals.spec.ts index c54e8435f..849803d46 100644 --- a/packages/user-journey/src/__test__/e2e/criterion/check-approvals.spec.ts +++ b/packages/user-journey/src/__test__/e2e/criterion/check-approvals.spec.ts @@ -1,9 +1,9 @@ import { Action, Decision, entitiesSchema, FIXTURE, Request } from '@narval/policy-engine-shared' import { v4 } from 'uuid' -import defaultEntities from '../../resource/entity/test.default.json' -import twoAdminApproval from '../../resource/policy/checkApprovals/2-admin-approval-required.json' -import adminApproval from '../../resource/policy/checkApprovals/admin-approval-required.json' -import adminPermitAll from '../../resource/policy/checkPrincipalRole/admin-permit-all.json' +import defaultEntities from '../../../resource/entity/test.default.json' +import twoAdminApproval from '../../../resource/policy/checkApprovals/2-admin-approval-required.json' +import adminApproval from '../../../resource/policy/checkApprovals/admin-approval-required.json' +import adminPermitAll from '../../../resource/policy/checkPrincipalRole/admin-permit-all.json' import { buildAuthClient, buildPolicy, @@ -12,7 +12,7 @@ import { getAuthAdminApiKey, getAuthHost, saveDataStore -} from '../../util/setup' +} from '../../../util/setup' const systemManagerHexPk = FIXTURE.UNSAFE_PRIVATE_KEY.Root const ericPrivateKey = FIXTURE.UNSAFE_PRIVATE_KEY.Eric diff --git a/packages/user-journey/src/__test__/e2e/criterion/check-rate-limit.spec.ts b/packages/user-journey/src/__test__/e2e/criterion/check-rate-limit.spec.ts index 13e82800d..344dd3589 100644 --- a/packages/user-journey/src/__test__/e2e/criterion/check-rate-limit.spec.ts +++ b/packages/user-journey/src/__test__/e2e/criterion/check-rate-limit.spec.ts @@ -1,5 +1,8 @@ import { Action, entitiesSchema, FIXTURE, Request } from '@narval/policy-engine-shared' import { v4 } from 'uuid' +import defaultEntities from '../../../resource/entity/test.default.json' +import adminPermitAll from '../../../resource/policy/checkPrincipalRole/admin-permit-all.json' +import memberTwoTransferPerDay from '../../../resource/policy/checkRateLimit/members-2-transfer-per-day.json' import { buildAuthClient, buildPolicy, @@ -8,10 +11,7 @@ import { getAuthAdminApiKey, getAuthHost, saveDataStore -} from '../../util/setup' -import defaultEntities from '../resource/entity/test.default.json' -import adminPermitAll from '../resource/policy/checkPrincipalRole/admin-permit-all.json' -import memberTwoTransferPerDay from '../resource/policy/checkRateLimit/members-2-transfer-per-day.json' +} from '../../../util/setup' const systemManagerHexPk = FIXTURE.UNSAFE_PRIVATE_KEY.Root const ericPrivateKey = FIXTURE.UNSAFE_PRIVATE_KEY.Eric diff --git a/packages/user-journey/src/__test__/e2e/criterion/check-spending-limit.spec.ts b/packages/user-journey/src/__test__/e2e/criterion/check-spending-limit.spec.ts index c5d2c29a9..bebcf5fbf 100644 --- a/packages/user-journey/src/__test__/e2e/criterion/check-spending-limit.spec.ts +++ b/packages/user-journey/src/__test__/e2e/criterion/check-spending-limit.spec.ts @@ -1,9 +1,9 @@ import { Action, entitiesSchema, FIXTURE, Request } from '@narval/policy-engine-shared' import { v4 } from 'uuid' -import defaultEntities from '../../resource/entity/test.default.json' -import adminPermitAll from '../../resource/policy/checkPrincipalRole/admin-permit-all.json' -import treasuryMemberCanTransferOneEthFixed from '../../resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-fixed.json' -import treasuryMemberCanTransferOneEthRolling from '../../resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-rolling.json' +import defaultEntities from '../../../resource/entity/test.default.json' +import adminPermitAll from '../../../resource/policy/checkPrincipalRole/admin-permit-all.json' +import treasuryMemberCanTransferOneEthFixed from '../../../resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-fixed.json' +import treasuryMemberCanTransferOneEthRolling from '../../../resource/policy/checkSpendingLimit/treasury-groupMember-can-transfer-1-eth-rolling.json' import { buildAuthClient, buildPolicy, @@ -12,7 +12,7 @@ import { getAuthAdminApiKey, getAuthHost, saveDataStore -} from '../../util/setup' +} from '../../../util/setup' const systemManagerHexPk = FIXTURE.UNSAFE_PRIVATE_KEY.Root const ericPrivateKey = FIXTURE.UNSAFE_PRIVATE_KEY.Eric diff --git a/packages/user-journey/src/__test__/e2e/scenarii/address-book-management.spec.ts b/packages/user-journey/src/__test__/e2e/scenarii/address-book-management.spec.ts index a5878739d..29f469812 100644 --- a/packages/user-journey/src/__test__/e2e/scenarii/address-book-management.spec.ts +++ b/packages/user-journey/src/__test__/e2e/scenarii/address-book-management.spec.ts @@ -11,9 +11,9 @@ import { AddressBookAddresses } from 'packages/policy-engine-shared/src/lib/dev. import { v4 } from 'uuid' import { Hex } from 'viem' import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts' +import defaultEntities from '../../../resource/entity/test.default.json' +import addressBookAndRoles from '../../../resource/policy/set/address-book-and-roles.json' import { buildAuthClient, createClient, saveDataStore } from '../../../util/setup' -import defaultEntities from '../resource/entity/test.default.json' -import addressBookAndRoles from '../resource/policy/set/address-book-and-roles.json' const TEST_TIMEOUT_MS = 30_000 diff --git a/packages/user-journey/src/__test__/e2e/scenarii/approvals-and-spending-limit.spec.ts b/packages/user-journey/src/__test__/e2e/scenarii/approvals-and-spending-limit.spec.ts index 729b79a61..a861d3353 100644 --- a/packages/user-journey/src/__test__/e2e/scenarii/approvals-and-spending-limit.spec.ts +++ b/packages/user-journey/src/__test__/e2e/scenarii/approvals-and-spending-limit.spec.ts @@ -1,9 +1,9 @@ /* eslint-disable jest/consistent-test-it */ -import { Action, Decision, entitiesSchema, FIXTURE, policySchema, Request } from '@narval-xyz/armory-sdk' +import { Action, Decision, entitiesSchema, FIXTURE, policySchema, Request } from '@narval/policy-engine-shared' import { v4 } from 'uuid' -import defaultEntities from '../../resource/entity/test.default.json' -import approvalsAndSpendingLimit from '../../resource/policy/set/approvals-and-spending-limit.json' -import { buildAuthClient, createClient, saveDataStore } from '../../util/setup' +import defaultEntities from '../../../resource/entity/test.default.json' +import approvalsAndSpendingLimit from '../../../resource/policy/set/approvals-and-spending-limit.json' +import { buildAuthClient, createClient, saveDataStore } from '../../../util/setup' const TEST_TIMEOUT_MS = 30_000 diff --git a/packages/user-journey/src/__test__/e2e/scenarii/defi-interactions.spec.ts b/packages/user-journey/src/__test__/e2e/scenarii/defi-interactions.spec.ts index 6f34d9d7e..a0171e9fc 100644 --- a/packages/user-journey/src/__test__/e2e/scenarii/defi-interactions.spec.ts +++ b/packages/user-journey/src/__test__/e2e/scenarii/defi-interactions.spec.ts @@ -6,7 +6,7 @@ import { FIXTURE, policySchema, Request -} from '@narval-xyz/armory-sdk' +} from '@narval/policy-engine-shared' import { v4 } from 'uuid' import defiEntities from '../../../resource/entity/defi-interaction.json' import defiInteractionPolicy from '../../../resource/policy/set/defi-interaction.json' diff --git a/packages/user-journey/src/__test__/e2e/scenarii/tiered-eth-transfer-policy.spec.ts b/packages/user-journey/src/__test__/e2e/scenarii/tiered-eth-transfer-policy.spec.ts index d162947e3..ee43952e1 100644 --- a/packages/user-journey/src/__test__/e2e/scenarii/tiered-eth-transfer-policy.spec.ts +++ b/packages/user-journey/src/__test__/e2e/scenarii/tiered-eth-transfer-policy.spec.ts @@ -1,9 +1,9 @@ /* eslint-disable jest/consistent-test-it */ import { Action, Decision, entitiesSchema, FIXTURE, policySchema, Request, toHex } from '@narval/policy-engine-shared' import { v4 } from 'uuid' -import defaultEntities from '../../resource/entity/test.default.json' -import tieredEthTransfer from '../../resource/policy/set/tiered-eth-transfer.json' -import { buildAuthClient, createClient, saveDataStore } from '../../util/setup' +import defaultEntities from '../../../resource/entity/test.default.json' +import tieredEthTransfer from '../../../resource/policy/set/tiered-eth-transfer.json' +import { buildAuthClient, createClient, saveDataStore } from '../../../util/setup' const TEST_TIMEOUT_MS = 30_000 diff --git a/packages/user-journey/src/__test__/e2e/scenarii/user-journeys.spec.ts b/packages/user-journey/src/__test__/e2e/scenarii/user-journeys.spec.ts index 7737bd162..66bf3bdcd 100644 --- a/packages/user-journey/src/__test__/e2e/scenarii/user-journeys.spec.ts +++ b/packages/user-journey/src/__test__/e2e/scenarii/user-journeys.spec.ts @@ -1,4 +1,23 @@ /* eslint-disable jest/consistent-test-it */ +import { + AuthAdminClient, + AuthClient, + AuthorizationResponseDtoStatusEnum, + ClientDto, + CreateClientResponseDto, + DataStoreConfig, + EntityStoreClient, + Permission, + PolicyStoreClient, + SignOptions, + Signer, + VaultAdminClient, + VaultClient, + WalletDto, + createHttpDataStore, + credential, + resourceId +} from '@narval/armory-sdk' import { AccessToken, AccountEntity, @@ -26,16 +45,6 @@ import { import { format } from 'date-fns' import { v4 as uuid } from 'uuid' import { english, generateMnemonic, generatePrivateKey, privateKeyToAccount } from 'viem/accounts' -import { AuthAdminClient, AuthClient } from '../../../auth/client' -import { EntityStoreClient, PolicyStoreClient } from '../../../data-store/client' -import { DataStoreConfig } from '../../../data-store/type' -import { createHttpDataStore, credential } from '../../../data-store/util' -import { Permission } from '../../../domain' -import { AuthorizationResponseDtoStatusEnum, CreateClientResponseDto } from '../../../http/client/auth' -import { ClientDto, WalletDto } from '../../../http/client/vault' -import { SignOptions, Signer } from '../../../shared/type' -import { resourceId } from '../../../utils' -import { VaultAdminClient, VaultClient } from '../../../vault/client' const TEST_TIMEOUT_MS = 30_000 diff --git a/packages/user-journey/src/util/setup.ts b/packages/user-journey/src/util/setup.ts index 6ad031b06..ea606d58a 100644 --- a/packages/user-journey/src/util/setup.ts +++ b/packages/user-journey/src/util/setup.ts @@ -1,10 +1,18 @@ +import { + AuthAdminClient, + AuthClient, + AuthConfig, + createHttpDataStore, + DataStoreConfig, + EntityStoreClient, + PolicyStoreClient, + VaultAdminClient, + VaultConfig +} from '@narval/armory-sdk' import { Entities, Hex, Policy, policySchema, Request } from '@narval/policy-engine-shared' import { buildSignerForAlg, getPublicKey, privateKeyToJwk } from '@narval/signature' import { format } from 'date-fns' import { v4 } from 'uuid' -import { AuthAdminClient, AuthClient, AuthConfig } from '../../auth' -import { createHttpDataStore, DataStoreConfig, EntityStoreClient, PolicyStoreClient } from '../../data-store' -import { VaultAdminClient, VaultConfig } from '../../vault' export const getAuthHost = () => 'http://localhost:3005' export const getAuthAdminApiKey = () => 'armory-admin-api-key' diff --git a/packages/user-journey/tsconfig.json b/packages/user-journey/tsconfig.json index db7b56666..efb889526 100644 --- a/packages/user-journey/tsconfig.json +++ b/packages/user-journey/tsconfig.json @@ -1,19 +1,18 @@ { "extends": "../../tsconfig.base.json", - "compilerOptions": { - "module": "commonjs", - "forceConsistentCasingInFileNames": true, - "strict": true, - "noImplicitOverride": true, - "noPropertyAccessFromIndexSignature": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true - }, "files": [], "include": [], "references": [ { "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "module": "commonjs", + "strict": true, + "resolveJsonModule": true + } } diff --git a/packages/user-journey/tsconfig.lib.json b/packages/user-journey/tsconfig.lib.json index faa09cc18..2e16b8791 100644 --- a/packages/user-journey/tsconfig.lib.json +++ b/packages/user-journey/tsconfig.lib.json @@ -6,5 +6,5 @@ "types": ["node"] }, "include": ["src/**/*.ts"], - "exclude": ["src/**/*.spec.ts", "src/**/*.test.ts"] + "exclude": ["jest.config.ts", "src/**/*.spec.ts"] } diff --git a/packages/user-journey/tsconfig.spec.json b/packages/user-journey/tsconfig.spec.json new file mode 100644 index 000000000..f6d8ffcc9 --- /dev/null +++ b/packages/user-journey/tsconfig.spec.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"] + }, + "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/tsconfig.base.json b/tsconfig.base.json index a8a7193be..92bb58da7 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -20,8 +20,7 @@ "@narval/nestjs-shared": ["packages/nestjs-shared/src/index.ts"], "@narval/policy-engine-shared": ["packages/policy-engine-shared/src/index.ts"], "@narval/signature": ["packages/signature/src/index.ts"], - "@narval/transaction-request-intent": ["packages/transaction-request-intent/src/index.ts"], - "@narval/user-journey": ["packages/user-journey/src/index.ts"] + "@narval/transaction-request-intent": ["packages/transaction-request-intent/src/index.ts"] }, "removeComments": true, "rootDir": ".",