Skip to content

Commit 927e9e8

Browse files
committed
add dmno and remove/encrypt test-related secrets, swap jest for vitest
1 parent f874bfe commit 927e9e8

18 files changed

+1898
-1722
lines changed

.dmno/config.mts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import { DmnoBaseTypes, defineDmnoService, configPath } from 'dmno';
2+
3+
import { EncryptedVaultDmnoPlugin, EncryptedVaultTypes } from '@dmno/encrypted-vault-plugin';
4+
5+
const SecretsVault = new EncryptedVaultDmnoPlugin('vault', {
6+
key: configPath('DMNO_VAULT_KEY'),
7+
});
8+
9+
export default defineDmnoService({
10+
isRoot: true,
11+
settings: {
12+
redactSensitiveLogs: true,
13+
interceptSensitiveLeakRequests: true,
14+
preventClientLeaks: true,
15+
},
16+
schema: {
17+
DMNO_VAULT_KEY: {
18+
extends: EncryptedVaultTypes.encryptionKey,
19+
},
20+
GOOGLE_API_KEY: {
21+
sensitive: true,
22+
required: true,
23+
value: SecretsVault.item(),
24+
},
25+
GOOGLE_SERVICE_ACCOUNT_EMAIL: {
26+
sensitive: true,
27+
required: true,
28+
extends: DmnoBaseTypes.email,
29+
value: SecretsVault.item(),
30+
},
31+
GOOGLE_SERVICE_ACCOUNT_KEY: {
32+
sensitive: true,
33+
required: true,
34+
value: SecretsVault.item(),
35+
coerce: (val: string) => val.replaceAll('\\n', '\n'),
36+
},
37+
CI: {
38+
extends: 'boolean',
39+
description: 'flag to denote running tests in CI'
40+
},
41+
TEST_DELAY: {
42+
extends: 'number',
43+
required: true,
44+
value: (ctx) => DMNO_CONFIG.CI ? 1000 : 500,
45+
}
46+
47+
},
48+
});

.dmno/default.vault.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"version": "0.0.1",
3+
"keyName": "default-2024-08-31",
4+
"items": {
5+
"root!GOOGLE_SERVICE_ACCOUNT_EMAIL": {
6+
"encryptedValue": "GzfuVZ14HAtQY2omwCJv/IlQe5S3p7zkFnslFY7cFNZN6YFOF4N9b/6efvRskT+560Oh3DHtKMDz2N8luozaEOyKWW2r9MFHUTuoZN/VfY8wJD2AQqw7wCRXD/CA+1JqciRwIsSzcIRw",
7+
"updatedAt": "2024-08-31T21:40:59.749Z"
8+
},
9+
"root!GOOGLE_SERVICE_ACCOUNT_KEY": {
10+
"encryptedValue": "n54cKou9mWEoOzWMNy613YgLfJnhdrmk5KNgJDmmFRC9X4MRueiNmKzdOQsXmdK9Fz4JNz6hiq9Wfqri2syTCjl+NOCp9H4kQEhpPX7dGw+Z4msPqsM7bsEtjmQkz8HOLlFCOVnnqoyBsOuCuS89ZlCd9bODpx0Mx6x4kXZBTlRJ+jHYEzhkD8IQL6lhuQDY9YqCFBzguHosqebjqfXBnEBXckKfBaYlit/CfW03bsdR4Qg3mWRSugk/sGyc15YKcLKcfy62Fq4x6GZ0Js663uQ1Rdgxs+uzoujB+cp2N9Lc01BLQP4LnMy55VzjUxcneVVivonhOvGGx/COaLehifP1dYFdhtWcZX8btEwaL9piYJTKcv3SsTLFLY4ngolqbMXVwnBIDmDGZZWCMDbrzNK3fuXdw2rxMK8WboBM3n4UAXC0vwoXuP41U6+8oVtxZ7XDta+O8Dd6Co5YedFJKjqoekPBd2Khu3mcKji6ZH8z57/Sz97USn6K/58SNxvUOubdrdljjNKKKjd+9MkFtnUCF3Xb1ADp/ZLxc2HJPnHsPck3scTG5xgPwuqmIGEiUZ+hq+GJ086qhcTGhwHyKYePoOLuSaWUKTjzLNWYqqFiZmsh5/D9vIjWEWyJr0mOpXKvV8QPzOcO1vn4DPw/9oYRCsRhaS+oKkJD3QNJJ0pTJCbznaVmG9pDwq4fbEuWPAVhx13xvxb71mL7YFnQSqcl1+h5Np8u0mnlXygA0pxTfJARqAZP/fCpE9fnECF5QFfhyjMocweG3QXyH0R63zsNtwJKo2PRcUZvuo+za8fQUAz3KZIzSXjTsI/3OZ+0DWm/bcfM65ZVqEULXrejwNv68WLFjvhjsttOQbTjuqlTgRTLD8SweMfeBEXLQHJs9AMU9pwbcmYUbMTx6pHm1rmEcYHtaZfr5TyIFs+gxq0TOhM8LlonwsQrYjueGwtD2y59AYSyG9L+7+wiQHBzyIhNuMp+HS5/+stHa6xqLvOdnMb7t76EYMCGLX/2v1aDD8RpZfeoEt/+SClVFwbIb3RwwVjv3POyUYdah95ICzjiobwBJaxZ7YMQ5UFQICWf/cwDaq+VNUucwezpwDj12E2Qz910nm1AdNBSf7kbmXUx4KPjEO52TIpUKkBlx/+UIBRDFtUtQYfNrmVnSEcd4oxOGg4YKtG4YsJsMFZyyUxVRLNO/gDYga43fgjeGvyCcAVLr+ca2Fs1EWUoxU2bHHxCJm/BqWfIQnFGH8bmscjQx4WQFFHVxpjghARkVAkH4cRa6v5yqbeAwoS/2pydkyFxLUItw23bSwDSFnyFa+ywkP77qQdWkfFv2SChwF4NDC/oOTXniKKVFpIGtq1PI9vef+FASshgAryVbW+93K1DRkVWMrevMl/mMuYaymTr+58+eLLM7v+JSNSYmTd/Z3TGX0r0qKOERSW33X7ajJYmxkGpBEE0KDoB9BhzpCxC0p85nurcT55oPishxaZLDuCCQ7W73FAHYowHj4s7FeU8dnIWREYzp3XdsUJ3nyxr8weJSO93g1e01SnyTRAipuMfw94/k0Oj/Wv+wOXc1RfE8iTUzCeqYU1m/CjOFSn+S5DsWK+by4zMPMKzljf4GOBxEX9V36ZgijoM368Rq/v3jVB8JElEOjYaA1GmF+pKkSbebtUqGamCfa33s0zcTK1MZ+rNJcGS4v8C6wjkal4RGmB2OI5mXsu07fAt4f9NRZljBZhMkzWvIHXhm7t8CvBkk9LvDTn2Lb/5tq6gg4Jg/AQOalosl6u7vw+ByuksU3agv5joMpfC3VsueYF6DcM24xQuz9T2k3OOogYR7HO5QldSnbZ2mMz7KqgdrFuc60XF4zEoCFO1QBFJEX4c+fo8sBGh1BN90v5w19accvD8lCCdDvu5mlstvIiYsOujBgvz8Q4aWbywfYrkYFzHG0iccOtDEwRwJjfa9sWMy/qj4MUjiHyP6kLleCnF1sDKnKys7EHW9O2MPvSgsy/sbGEAKh69ktYxvhoQhAao4b+0XNQyOaHyt0xF2zdKCRNYzIeiDTJ8JVScQbOFNax+zb4b/lTH8xEUvdXO61IE3TtPH/rv/VTRgq8TvknfuMXY4z3ryZRJvQzeq91HSTOsh1IPfpLcEVW/MDNbx0KRiyzrOMsJ5H5CV/aRK/WRcNZyOjMsqd2SVJbgFy2Pl9D+D90BinJtjzcu+5k/UCzcf4zDY4YzYE/jhxbpowJsWwvvlm5dfJVXuFytB7boYFpdzbXuAryMX3klphoQf28x35den42Ru013F7f8jVs3hmmfG84ygJaPz1rvvaABjA+Z1qK+3ppcmXtE9giG+Mvk7G67lxoYxyJsMAYS5F27n0HpLIMmjsEAbnyLRmhyeC4=",
11+
"updatedAt": "2024-08-31T21:41:14.313Z"
12+
},
13+
"root!GOOGLE_API_KEY": {
14+
"encryptedValue": "iniwEDUzy+Sgr53pbm7Bh0a0F9COHWQcHHfrm0GhOXKHkmuSfOIO/MNt3zkLKJ+MzktUSs3C6OgDKpfBdRD3ymeREh7K",
15+
"updatedAt": "2024-08-31T21:42:08.303Z"
16+
}
17+
}
18+
}

.dmno/tsconfig.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"compilerOptions": {
3+
"strict": true,
4+
"moduleResolution": "Bundler",
5+
"module": "ESNext",
6+
"lib": [ "ESNext" ]
7+
},
8+
"include": [
9+
"./**/*.mts",
10+
"./.typegen/global.d.ts"
11+
]
12+
}

.eslintrc.cjs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,9 @@ module.exports = {
5959

6060
},
6161
overrides: [
62-
{ // extra jest related rules for tests
62+
{ // extra rules for tests
6363
files: 'test/*',
64-
plugins: ['jest'],
65-
extends: ['plugin:jest/recommended'],
66-
env: {
67-
'jest/globals': true,
68-
},
6964
rules: {
70-
'jest/consistent-test-it': 'error',
71-
'jest/expect-expect': 0, // sometimes the lack of an error thrown is a good test
7265
'no-await-in-loop': 0,
7366
}
7467
},

.gitignore

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,16 @@ src/ignore/
44
.DS_Store
55
examples/
66
TODO
7-
dist
7+
dist
8+
9+
# dmno files ###
10+
# local cache for resolved values
11+
**/.dmno/cache.json
12+
# encryption key used for cache
13+
**/.dmno/cache-key.json
14+
# generated type files
15+
**/.dmno/.typegen
16+
# iconify cache used in generated types
17+
**/.dmno/.icon-cache
18+
# local config overrides
19+
**/.dmno/.env.local

jest.config.cjs

Lines changed: 0 additions & 14 deletions
This file was deleted.

package.json

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,20 @@
5252
"changelog": "auto-changelog --commit-limit false --unreleased-only --stdout",
5353
"release": "pnpm run build && release-it",
5454
"runscript": "NODE_NO_WARNINGS=1 node --experimental-specifier-resolution=node --loader ts-node/esm",
55-
"test": "jest --runInBand"
55+
"test": "dmno run -- vitest --no-file-parallelism"
5656
},
5757
"config": {
5858
"commitizen": {
5959
"path": "./node_modules/cz-conventional-changelog"
6060
}
6161
},
6262
"dependencies": {
63-
"axios": "^1.7.6",
63+
"axios": "^1.7.7",
6464
"lodash": "^4.17.21"
6565
},
6666
"devDependencies": {
67+
"@dmno/encrypted-vault-plugin": "^0.0.5",
6768
"@swc/core": "^1.3.60",
68-
"@swc/jest": "^0.2.26",
69-
"@types/jest": "^29.5.1",
7069
"@types/lodash": "^4.14.195",
7170
"@types/node": "^20.2.5",
7271
"@typescript-eslint/eslint-plugin": "^5.59.7",
@@ -75,20 +74,19 @@
7574
"commitizen": "^4.3.0",
7675
"cz-conventional-changelog": "^3.3.0",
7776
"delay": "^4.3.0",
77+
"dmno": "^0.0.22",
7878
"docsify-cli": "^4.4.3",
7979
"eslint": "^8.41.0",
8080
"eslint-config-airbnb-base": "^15.0.0",
8181
"eslint-config-airbnb-typescript": "^17.0.0",
8282
"eslint-plugin-import": "^2.27.5",
83-
"eslint-plugin-jest": "^27.2.1",
8483
"eslint-plugin-no-floating-promise": "^1.0.2",
8584
"google-auth-library": "^9.14.0",
86-
"jest": "^29.5.0",
87-
"jest-junit": "^16.0.0",
8885
"release-it": "^15.11.0",
8986
"ts-node": "^10.9.1",
90-
"typescript": "^4.9.5",
91-
"unbuild": "^1.2.1"
87+
"typescript": "^5.5.4",
88+
"unbuild": "^1.2.1",
89+
"vitest": "^2.0.5"
9290
},
9391
"peerDependencies": {
9492
"google-auth-library": "^8.8.0 || ^9.0.0"
@@ -99,6 +97,6 @@
9997
}
10098
},
10199
"volta": {
102-
"node": "18.16.0"
100+
"node": "20.17.0"
103101
}
104102
}

0 commit comments

Comments
 (0)