Files
self/common/tsup.config.ts
Aaron DeRuvo ac745bbf8f moves validateDocument functions into the common package. (#977)
* moves validateDocument functions into the common package.

* fix build issues and lint

* handle bad connections better in nullifiier

* add an abort controler to nullifer fetcher,  ignore fals positives

* import types separately

* take it as an arg
2025-08-29 17:28:42 +02:00

163 lines
6.5 KiB
TypeScript

import path from 'path';
import { defineConfig } from 'tsup';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const entry = {
index: 'index.ts',
// Existing grouped exports
'src/constants/index': 'src/constants/index.ts',
'src/utils/index': 'src/utils/index.ts',
'src/types/index': 'src/types/index.ts',
// Granular constants exports
'src/constants/constants': 'src/constants/constants.ts',
'src/constants/countries': 'src/constants/countries.ts',
'src/constants/vkey': 'src/constants/vkey.ts',
'src/constants/skiPem': 'src/constants/skiPem.ts',
'src/constants/mockCertificates': 'src/constants/mockCertificates.ts',
'src/constants/sampleDataHashes': 'src/constants/sampleDataHashes.ts',
// Granular utils exports
'src/utils/attest': 'src/utils/attest.ts',
'src/utils/hash': 'src/utils/hash.ts',
'src/utils/bytes': 'src/utils/bytes.ts',
'src/utils/trees': 'src/utils/trees.ts',
'src/utils/proving': 'src/utils/proving.ts',
'src/utils/scope': 'src/utils/scope.ts',
'src/utils/appType': 'src/utils/appType.ts',
'src/utils/date': 'src/utils/date.ts',
'src/utils/arrays': 'src/utils/arrays.ts',
'src/utils/types': 'src/utils/types.ts',
'src/utils/passports/index': 'src/utils/passports/index.ts',
'src/utils/passports/format': 'src/utils/passports/format.ts',
'src/utils/passports/mock': 'src/utils/passports/mock.ts',
'src/utils/passports/validate': 'src/utils/passports/validate.ts',
'src/utils/passports/dg1': 'src/utils/passports/dg1.ts',
'src/utils/passports/genMockPassportData': 'src/utils/passports/genMockPassportData.ts',
'src/utils/passports/genMockIdDoc': 'src/utils/passports/genMockIdDoc.ts',
'src/utils/passports/passport_parsing/parseDscCertificateData':
'src/utils/passports/passport_parsing/parseDscCertificateData.ts',
'src/utils/certificate_parsing/index': 'src/utils/certificate_parsing/index.ts',
'src/utils/certificate_parsing/elliptic': 'src/utils/certificate_parsing/elliptic.ts',
'src/utils/certificate_parsing/curves': 'src/utils/certificate_parsing/curves.ts',
'src/utils/certificate_parsing/oids': 'src/utils/certificate_parsing/oids.ts',
'src/utils/certificate_parsing/parseCertificateSimple':
'src/utils/certificate_parsing/parseCertificateSimple.ts',
'src/utils/circuits/index': 'src/utils/circuits/index.ts',
'src/utils/circuits/circuitsName': 'src/utils/circuits/circuitsName.ts',
'src/utils/circuits/formatOutputs': 'src/utils/circuits/formatOutputs.ts',
'src/utils/circuits/formatInputs': 'src/utils/circuits/formatInputs.ts',
'src/utils/circuits/uuid': 'src/utils/circuits/uuid.ts',
'src/utils/contracts/index': 'src/utils/contracts/index.ts',
'src/utils/contracts/forbiddenCountries': 'src/utils/contracts/forbiddenCountries.ts',
'src/utils/csca': 'src/utils/csca.ts',
// Level 3 Hash Function Exports
'src/utils/hash/poseidon': 'src/utils/hash/poseidon.ts',
'src/utils/hash/sha': 'src/utils/hash/sha.ts',
'src/utils/hash/custom': 'src/utils/hash/custom.ts',
// Level 3 Circuit Function Exports
'src/utils/circuits/dscInputs': 'src/utils/circuits/dscInputs.ts',
'src/utils/circuits/registerInputs': 'src/utils/circuits/registerInputs.ts',
'src/utils/circuits/discloseInputs': 'src/utils/circuits/discloseInputs.ts',
'src/utils/circuits/generateInputs': 'src/utils/circuits/generateInputs.ts',
'src/utils/circuits/ofacInputs': 'src/utils/circuits/ofacInputs.ts',
// Level 3 Certificate Function Exports
'src/utils/certificate_parsing/parseSimple': 'src/utils/certificate_parsing/parseSimple.ts',
'src/utils/certificate_parsing/parseNode': 'src/utils/certificate_parsing/parseNode.ts',
'src/utils/certificate_parsing/ellipticInit': 'src/utils/certificate_parsing/ellipticInit.ts',
'src/utils/certificate_parsing/curveUtils': 'src/utils/certificate_parsing/curveUtils.ts',
'src/utils/certificate_parsing/oidUtils': 'src/utils/certificate_parsing/oidUtils.ts',
'src/utils/certificate_parsing/certUtils': 'src/utils/certificate_parsing/certUtils.ts',
// Level 3 Passport Function Exports
'src/utils/passports/core': 'src/utils/passports/core.ts',
'src/utils/passports/commitment': 'src/utils/passports/commitment.ts',
'src/utils/passports/signature': 'src/utils/passports/signature.ts',
'src/utils/passports/parsing': 'src/utils/passports/parsing.ts',
'src/utils/passports/mockGeneration': 'src/utils/passports/mockGeneration.ts',
'src/utils/passports/mockDsc': 'src/utils/passports/mockDsc.ts',
'src/utils/passports/passport': 'src/utils/passports/passport.ts',
// Granular types exports
'src/types/passport': 'src/types/passport.ts',
'src/types/app': 'src/types/app.ts',
'src/types/certificates': 'src/types/certificates.ts',
'src/types/circuits': 'src/types/circuits.ts',
};
export default defineConfig([
// ESM build (matches current dist/esm/src structure)
{
tsconfig: './tsconfig.json',
entry: entry,
format: ['esm'],
outDir: path.resolve(__dirname, 'dist/esm'),
outExtension: ({ format }) => ({ js: format === 'cjs' ? '.cjs' : '.js' }),
dts: false, // Generated separately via build:types script
splitting: false,
clean: true, // Clean only on first build
sourcemap: true,
target: 'es2020',
platform: 'neutral',
external: [
/^@openpassport/,
/^asn1/,
/^axios/,
/^buffer/,
/^chai/,
/^child_process/,
/^country-/,
/^elliptic/,
/^ethers/,
/^fs/,
/^i18n-/,
/^js-/,
/^json-/,
/^jsrsasign/,
/^node-forge/,
/^path/,
/^pkijs/,
/^poseidon-/,
/^snarkjs/,
/^typescript-/,
/^uuid/,
],
},
// CJS build (matches current dist/cjs/src structure)
{
tsconfig: './tsconfig.cjs.json',
entry: entry,
format: ['cjs'],
outDir: path.resolve(__dirname, 'dist/cjs'),
outExtension: ({ format }) => ({ js: format === 'cjs' ? '.cjs' : '.js' }),
dts: false, // Only generate types once (in ESM build)
splitting: false,
clean: false, // Don't clean after ESM build
sourcemap: true,
target: 'es2020',
platform: 'neutral',
external: [
/^@openpassport/,
/^asn1/,
/^axios/,
/^buffer/,
/^chai/,
/^child_process/,
/^country-/,
/^elliptic/,
/^ethers/,
/^fs/,
/^i18n-/,
/^js-/,
/^json-/,
/^jsrsasign/,
/^node-forge/,
/^path/,
/^pkijs/,
/^poseidon-/,
/^snarkjs/,
/^typescript-/,
/^uuid/,
],
},
]);