Skip to content

Commit 3e3854d

Browse files
authored
add all modules to buildcheck (#3294)
1 parent 6c8767b commit 3e3854d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+1314
-1095
lines changed

BUILDCHECK.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,68 @@ For further details, see [buildcheck/README.md](./buildcheck/README.md)
110110
- [handlers/zuora-salesforce-link-remover/riff-raff.yaml](handlers/zuora-salesforce-link-remover/riff-raff.yaml)
111111
- [handlers/zuora-salesforce-link-remover/tsconfig.json](handlers/zuora-salesforce-link-remover/tsconfig.json)
112112
- [handlers/zuora-salesforce-link-remover/BUILDCHECK.md](handlers/zuora-salesforce-link-remover/BUILDCHECK.md)
113+
- [modules/aws/jest.config.js](modules/aws/jest.config.js)
114+
- [modules/aws/package.json](modules/aws/package.json)
115+
- [modules/aws/tsconfig.json](modules/aws/tsconfig.json)
116+
- [modules/aws/BUILDCHECK.md](modules/aws/BUILDCHECK.md)
117+
- [modules/bigquery/jest.config.js](modules/bigquery/jest.config.js)
118+
- [modules/bigquery/package.json](modules/bigquery/package.json)
119+
- [modules/bigquery/tsconfig.json](modules/bigquery/tsconfig.json)
120+
- [modules/bigquery/BUILDCHECK.md](modules/bigquery/BUILDCHECK.md)
121+
- [modules/email/jest.config.js](modules/email/jest.config.js)
122+
- [modules/email/package.json](modules/email/package.json)
123+
- [modules/email/tsconfig.json](modules/email/tsconfig.json)
124+
- [modules/email/BUILDCHECK.md](modules/email/BUILDCHECK.md)
125+
- [modules/identity/jest.config.js](modules/identity/jest.config.js)
126+
- [modules/identity/package.json](modules/identity/package.json)
127+
- [modules/identity/tsconfig.json](modules/identity/tsconfig.json)
128+
- [modules/identity/BUILDCHECK.md](modules/identity/BUILDCHECK.md)
129+
- [modules/internationalisation/jest.config.js](modules/internationalisation/jest.config.js)
130+
- [modules/internationalisation/package.json](modules/internationalisation/package.json)
131+
- [modules/internationalisation/tsconfig.json](modules/internationalisation/tsconfig.json)
132+
- [modules/internationalisation/BUILDCHECK.md](modules/internationalisation/BUILDCHECK.md)
133+
- [modules/product-benefits/jest.config.js](modules/product-benefits/jest.config.js)
134+
- [modules/product-benefits/package.json](modules/product-benefits/package.json)
135+
- [modules/product-benefits/tsconfig.json](modules/product-benefits/tsconfig.json)
136+
- [modules/product-benefits/BUILDCHECK.md](modules/product-benefits/BUILDCHECK.md)
137+
- [modules/product-catalog/jest.config.js](modules/product-catalog/jest.config.js)
138+
- [modules/product-catalog/package.json](modules/product-catalog/package.json)
139+
- [modules/product-catalog/tsconfig.json](modules/product-catalog/tsconfig.json)
140+
- [modules/product-catalog/BUILDCHECK.md](modules/product-catalog/BUILDCHECK.md)
141+
- [modules/promotions/jest.config.js](modules/promotions/jest.config.js)
142+
- [modules/promotions/package.json](modules/promotions/package.json)
143+
- [modules/promotions/tsconfig.json](modules/promotions/tsconfig.json)
144+
- [modules/promotions/BUILDCHECK.md](modules/promotions/BUILDCHECK.md)
145+
- [modules/routing/jest.config.js](modules/routing/jest.config.js)
146+
- [modules/routing/package.json](modules/routing/package.json)
147+
- [modules/routing/tsconfig.json](modules/routing/tsconfig.json)
148+
- [modules/routing/BUILDCHECK.md](modules/routing/BUILDCHECK.md)
149+
- [modules/salesforce/jest.config.js](modules/salesforce/jest.config.js)
150+
- [modules/salesforce/package.json](modules/salesforce/package.json)
151+
- [modules/salesforce/tsconfig.json](modules/salesforce/tsconfig.json)
152+
- [modules/salesforce/BUILDCHECK.md](modules/salesforce/BUILDCHECK.md)
153+
- [modules/secrets-manager/jest.config.js](modules/secrets-manager/jest.config.js)
154+
- [modules/secrets-manager/package.json](modules/secrets-manager/package.json)
155+
- [modules/secrets-manager/tsconfig.json](modules/secrets-manager/tsconfig.json)
156+
- [modules/secrets-manager/BUILDCHECK.md](modules/secrets-manager/BUILDCHECK.md)
157+
- [modules/supporter-product-data/jest.config.js](modules/supporter-product-data/jest.config.js)
158+
- [modules/supporter-product-data/package.json](modules/supporter-product-data/package.json)
159+
- [modules/supporter-product-data/tsconfig.json](modules/supporter-product-data/tsconfig.json)
160+
- [modules/supporter-product-data/BUILDCHECK.md](modules/supporter-product-data/BUILDCHECK.md)
161+
- [modules/sync-supporter-product-data/jest.config.js](modules/sync-supporter-product-data/jest.config.js)
162+
- [modules/sync-supporter-product-data/package.json](modules/sync-supporter-product-data/package.json)
163+
- [modules/sync-supporter-product-data/tsconfig.json](modules/sync-supporter-product-data/tsconfig.json)
164+
- [modules/sync-supporter-product-data/BUILDCHECK.md](modules/sync-supporter-product-data/BUILDCHECK.md)
165+
- [modules/test-users/jest.config.js](modules/test-users/jest.config.js)
166+
- [modules/test-users/package.json](modules/test-users/package.json)
167+
- [modules/test-users/tsconfig.json](modules/test-users/tsconfig.json)
168+
- [modules/test-users/BUILDCHECK.md](modules/test-users/BUILDCHECK.md)
113169
- [modules/zuora/jest.config.js](modules/zuora/jest.config.js)
114170
- [modules/zuora/package.json](modules/zuora/package.json)
115171
- [modules/zuora/tsconfig.json](modules/zuora/tsconfig.json)
116172
- [modules/zuora/BUILDCHECK.md](modules/zuora/BUILDCHECK.md)
173+
- [modules/zuora-catalog/jest.config.js](modules/zuora-catalog/jest.config.js)
174+
- [modules/zuora-catalog/package.json](modules/zuora-catalog/package.json)
175+
- [modules/zuora-catalog/tsconfig.json](modules/zuora-catalog/tsconfig.json)
176+
- [modules/zuora-catalog/BUILDCHECK.md](modules/zuora-catalog/BUILDCHECK.md)
117177
- [BUILDCHECK.md](BUILDCHECK.md)

buildcheck/data/build.ts

Lines changed: 218 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,194 @@ const zuoraSalesforceLinkRemover: HandlerDefinition = {
331331
},
332332
};
333333

334+
const srcOnly = {
335+
lint: "eslint --cache --cache-location /tmp/eslintcache/ 'src/**/*.ts'",
336+
test: 'jest --group=-integration --passWithNoTests',
337+
};
338+
339+
const moduleAws: ModuleDefinition = {
340+
name: 'aws',
341+
dependencies: {
342+
...dep['@aws-sdk/client-cloudwatch'],
343+
...dep['@aws-sdk/client-lambda'],
344+
...dep['@aws-sdk/client-s3'],
345+
...dep['@aws-sdk/client-sqs'],
346+
...dep['@aws-sdk/client-ssm'],
347+
...dep['@aws-sdk/credential-provider-node'],
348+
...dep['@aws-sdk/lib-storage'],
349+
...dep.zod,
350+
},
351+
};
352+
353+
const moduleBigquery: ModuleDefinition = {
354+
name: 'bigquery',
355+
dependencies: {
356+
...dep['@aws-sdk/client-s3'],
357+
...dep['@google-cloud/bigquery'],
358+
...deprecatedDeps['aws-sdk'],
359+
...dep['google-auth-library'],
360+
...dep.zod,
361+
},
362+
devDependencies: {
363+
...devDeps['@types/jest'],
364+
...devDeps['jest'],
365+
...devDeps['ts-jest'],
366+
},
367+
};
368+
369+
const moduleEmail: ModuleDefinition = {
370+
name: 'email',
371+
dependencies: {
372+
...dep['@aws-sdk/client-sqs'],
373+
},
374+
};
375+
376+
const moduleIdentity: ModuleDefinition = {
377+
name: 'identity',
378+
dependencies: {
379+
...dep['@okta/jwt-verifier'],
380+
...dep['zod'],
381+
},
382+
devDependencies: {
383+
...devDeps['@types/aws-lambda'],
384+
},
385+
};
386+
387+
const moduleInternationalisation: ModuleDefinition = {
388+
name: 'internationalisation',
389+
dependencies: {
390+
...dep['zod'],
391+
},
392+
extraScripts: srcOnly,
393+
};
394+
395+
const moduleProductBenefits: ModuleDefinition = {
396+
name: 'product-benefits',
397+
dependencies: {
398+
...dep['zod'],
399+
...dep['dayjs'],
400+
},
401+
};
402+
403+
const moduleProductCatalog: ModuleDefinition = {
404+
name: 'product-catalog',
405+
devDependencies: {
406+
...devDeps['tsx'],
407+
...devDeps['tsconfig-paths'],
408+
...dep['zod'],
409+
...devDeps['eslint-plugin-sort-keys-fix'],
410+
...devDeps['typescript'],
411+
},
412+
extraScripts: {
413+
generateFiles:
414+
'tsx -r tsconfig-paths/register --project ../../tsconfig.json src/generateSchemaCommand.ts',
415+
validateSchema:
416+
'prettier --write src/productCatalogSchema.ts && pnpm run sortSchemaKeys',
417+
sortSchemaKeys:
418+
'for i in {1..3}; do eslint --fix src/productCatalogSchema.ts; done',
419+
validateBillingPeriods:
420+
'prettier --write src/productBillingPeriods.ts && pnpm run sortBillingPeriodKeys',
421+
sortBillingPeriodKeys:
422+
'for i in {1..2}; do eslint --fix src/productBillingPeriods.ts; done',
423+
validateProductPurchaseSchema:
424+
'prettier --write src/productPurchaseSchema.ts && pnpm run sortProductPurchaseKeys',
425+
sortProductPurchaseKeys:
426+
'for i in {1..2}; do eslint --fix src/productPurchaseSchema.ts; done',
427+
validateSchemas:
428+
'pnpm run validateSchema && pnpm run validateBillingPeriods && pnpm run validateProductPurchaseSchema',
429+
buildGeneratedFiles:
430+
'tsc --noEmit --skipLibCheck --project tsconfig-for-generated-files.json',
431+
generateSchema:
432+
'pnpm run generateFiles && pnpm run validateSchemas && pnpm run buildGeneratedFiles',
433+
updateSnapshots: 'jest -u --group=-integration',
434+
},
435+
};
436+
437+
const modulePromotions: ModuleDefinition = {
438+
name: 'promotions',
439+
dependencies: {
440+
...dep['@aws-sdk/client-dynamodb'],
441+
...dep['@aws-sdk/util-dynamodb'],
442+
...dep['zod'],
443+
},
444+
};
445+
446+
const moduleRouting: ModuleDefinition = {
447+
name: 'routing',
448+
dependencies: {
449+
...dep['zod'],
450+
},
451+
devDependencies: {
452+
...devDeps['@types/aws-lambda'],
453+
},
454+
};
455+
456+
const moduleSalesforce: ModuleDefinition = {
457+
name: 'salesforce',
458+
dependencies: {
459+
...dep['zod'],
460+
},
461+
devDependencies: {
462+
...devDeps['@types/jest'],
463+
...devDeps['jest'],
464+
...devDeps['ts-jest'],
465+
},
466+
};
467+
468+
const moduleSecretsManager: ModuleDefinition = {
469+
name: 'secrets-manager',
470+
dependencies: {
471+
...dep['@aws-sdk/client-secrets-manager'],
472+
...devDeps['aws-sdk-client-mock'],
473+
},
474+
};
475+
476+
const moduleSupporterProductData: ModuleDefinition = {
477+
name: 'supporter-product-data',
478+
devDependencies: {
479+
...dep['@aws-sdk/client-dynamodb'],
480+
...dep['@aws-sdk/util-dynamodb'],
481+
},
482+
extraScripts: {
483+
test: 'NODE_OPTIONS="$NODE_OPTIONS --experimental-vm-modules" jest --group=-integration',
484+
},
485+
};
486+
487+
const moduleSyncSupporterProductData: ModuleDefinition = {
488+
name: 'sync-supporter-product-data',
489+
dependencies: {
490+
...dep['zod'],
491+
},
492+
devDependencies: {
493+
...dep['@aws-sdk/client-sqs'],
494+
...dep['dayjs'],
495+
...devDeps['tsx'],
496+
},
497+
extraScripts: {
498+
...srcOnly,
499+
'sync-user': 'tsx ./src/syncUser.ts',
500+
},
501+
};
502+
503+
const moduleTestUsers: ModuleDefinition = {
504+
name: 'test-users',
505+
devDependencies: {
506+
...dep['dayjs'],
507+
...devDeps['tsx'],
508+
...devDeps['tsconfig-paths'],
509+
},
510+
extraScripts: {
511+
...srcOnly,
512+
createDigitalSubscription: 'tsx ./src/createDigitalSubscription.ts',
513+
createAnnualContribution: 'tsx ./src/createAnnualContribution.ts',
514+
createMonthlyContribution: 'tsx ./src/createMonthlyContribution.ts',
515+
updateMonthlyContributionAmount:
516+
'tsx ./src/updateMonthlyContributionAmount.ts',
517+
cancelSubscription: 'tsx ./src/cancel.ts',
518+
deleteAccount: 'tsx ./src/deleteAccount.ts',
519+
},
520+
};
521+
334522
const moduleZuora: ModuleDefinition = {
335523
name: 'zuora',
336524
dependencies: {
@@ -341,6 +529,17 @@ const moduleZuora: ModuleDefinition = {
341529
},
342530
};
343531

532+
const moduleZuoraCatalog: ModuleDefinition = {
533+
name: 'zuora-catalog',
534+
dependencies: {
535+
...dep['@aws-sdk/client-s3'],
536+
...dep['zod'],
537+
},
538+
extraScripts: {
539+
'update-catalog-fixtures': 'bash runManual/updateCatalogFixtures.sh',
540+
},
541+
};
542+
344543
export const build: BuildDefinition = {
345544
handlers: [
346545
alarmsHandler,
@@ -364,5 +563,23 @@ export const build: BuildDefinition = {
364563
writeOffUnpaidInvoices,
365564
zuoraSalesforceLinkRemover,
366565
],
367-
modules: [moduleZuora],
566+
567+
modules: [
568+
moduleAws,
569+
moduleBigquery,
570+
moduleEmail,
571+
moduleIdentity,
572+
moduleInternationalisation,
573+
moduleProductBenefits,
574+
moduleProductCatalog,
575+
modulePromotions,
576+
moduleRouting,
577+
moduleSalesforce,
578+
moduleSecretsManager,
579+
moduleSupporterProductData,
580+
moduleSyncSupporterProductData,
581+
moduleTestUsers,
582+
moduleZuora,
583+
moduleZuoraCatalog,
584+
],
368585
};

buildcheck/data/dependencies.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export const dep = separateDepRecords({
1414
'fast-xml-parser': '^4.5.0',
1515
// signature validation
1616
'@peculiar/x509': '^1.12.3',
17+
'@okta/jwt-verifier': '^4.0.1',
1718
// clients
1819
'google-auth-library': '^9.15.0',
1920
'@google-cloud/bigquery': '^7.9.3',
@@ -29,21 +30,30 @@ export const dep = separateDepRecords({
2930
'client-secrets-manager',
3031
'client-sfn',
3132
'client-sns',
33+
'client-lambda',
34+
'credential-provider-node',
35+
'lib-storage',
3236
]),
3337
});
3438

3539
// intended for use in devDependencies
3640
export const devDeps = separateDepRecords({
41+
typescript: 'catalog:',
3742
// types
3843
'@types/stripe': '^8.0.417',
3944
'@types/aws-lambda': '^8.10.147',
45+
'@types/jest': '^29.5.14',
4046
// dev - for running locally
4147
tsx: '^4.21.0',
4248
'tsconfig-paths': 'catalog:',
4349
// for testing/mocking
4450
'@faker-js/faker': '^9.8.0',
4551
'aws-sdk-client-mock': '4.1.0',
4652
'fetch-mock': '^11.1.1',
53+
jest: '^29.7.0',
54+
'ts-jest': '^29.3.2',
55+
// linting
56+
'eslint-plugin-sort-keys-fix': '^1.1.2',
4757
});
4858

4959
// do not use, migrate away

modules/aws/BUILDCHECK.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
MANAGED FILE: to push changes see buildcheck/README.md - template: buildcheck/data/snippets/BUILDCHECK.md.ts
2+
# Buildcheck managed file list
3+
4+
The files listed below are managed by buildcheck and their content is checked by the build.
5+
6+
## HOWTO edit managed files
7+
1. edit the build definition in buildcheck/data/
8+
2. run `pnpm snapshot:update` at the root
9+
10+
For further details, see [buildcheck/README.md](../../buildcheck/README.md)
11+
12+
## Generated file list:
13+
- [jest.config.js](jest.config.js)
14+
- [package.json](package.json)
15+
- [tsconfig.json](tsconfig.json)
16+
- [BUILDCHECK.md](BUILDCHECK.md)

modules/aws/jest.config.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
// MANAGED FILE: to push changes see buildcheck/README.md - template: buildcheck/data/templates/module/jest.config.js.ts
2+
/** @type {import('ts-jest').JestConfigWithTsJest} */
13
module.exports = {
24
preset: 'ts-jest',
35
testEnvironment: 'node',
4-
transform: {
5-
'^.+\\.tsx?$': ['ts-jest', { tsconfig: 'tsconfig.json' }],
6-
},
6+
runner: 'groups',
77
moduleNameMapper: {
8-
'@modules/(.*)/(.*)$': '<rootDir>/../../modules/$1/src/$2',
8+
'@modules/([^/]*)/(.*)$': '<rootDir>/../../modules/$1/src/$2',
99
'@modules/(.*)$': '<rootDir>/../../modules/$1',
1010
},
1111
};

0 commit comments

Comments
 (0)