UNPKG

@pagopa/io-spid-commons

Version:

Common code for integrating SPID authentication

51 lines 2.92 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const AP = require("fp-ts/lib/Apply"); const A = require("fp-ts/lib/Array"); const function_1 = require("fp-ts/lib/function"); const O = require("fp-ts/lib/Option"); const T = require("fp-ts/lib/Task"); const TE = require("fp-ts/lib/TaskEither"); const yargs = require("yargs"); const logger_1 = require("../utils/logger"); const metadata_1 = require("../utils/metadata"); // // parse command line // const argv = yargs .option("idp-metadata-url-env", { demandOption: false, description: "ENV var name containing IDP Metadata URL", normalize: true, // eslint-disable-next-line id-blacklist string: true, }) .option("testenv-metadata-url-env", { demandOption: false, description: "ENV var name containing TestEnv2 Metadata URL", normalize: true, // eslint-disable-next-line id-blacklist string: true, }) .option("cie-metadata-url-env", { demandOption: false, description: "ENV var name containing CIE Metadata URL", normalize: true, // eslint-disable-next-line id-blacklist string: true, }) .help().argv; const printIdpsMetadata = (idpsMetadataENV, testEnv2MetadataENV, cieMetadataENV) => { // eslint-disable-next-line functional/immutable-data, @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-function logger_1.logger.info = () => { }; const maybeIdpsMetadataURL = (0, function_1.pipe)(O.fromNullable(idpsMetadataENV), O.chainNullableK((_) => process.env[_]), O.map((_) => (0, function_1.pipe)(TE.Do, TE.bind("idps", () => (0, metadata_1.fetchMetadataXML)(_)), TE.getOrElseW(() => T.of({})))), O.getOrElseW(() => T.of({}))); const maybeTestEnvMetadataURL = (0, function_1.pipe)(O.fromNullable(testEnv2MetadataENV), O.chainNullableK((_) => process.env[_]), O.map((_) => (0, function_1.pipe)(TE.Do, TE.bind("xx_testenv2", () => (0, metadata_1.fetchMetadataXML)(`${_}/metadata`)), TE.getOrElseW(() => T.of({})))), O.getOrElseW(() => T.of({}))); const maybeCIEMetadataURL = (0, function_1.pipe)(O.fromNullable(cieMetadataENV), O.chainNullableK((_) => process.env[_]), O.map((_) => (0, function_1.pipe)(TE.Do, TE.bind("xx_servizicie", () => (0, metadata_1.fetchMetadataXML)(_)), TE.getOrElseW(() => T.of({})))), O.getOrElseW(() => T.of({}))); return (0, function_1.pipe)(AP.sequenceT(T.ApplicativePar)(maybeIdpsMetadataURL, maybeTestEnvMetadataURL, maybeCIEMetadataURL), T.map(A.reduce({}, (prev, current) => (Object.assign(Object.assign({}, prev), current)))))(); }; printIdpsMetadata(argv["idp-metadata-url-env"], argv["testenv-metadata-url-env"], argv["cie-metadata-url-env"]) // eslint-disable-next-line no-console .then((metadata) => console.log(JSON.stringify(metadata, null, 2))) .catch(() => logger_1.logger.error("Error fetching IDP metadata")); //# sourceMappingURL=startup-idps-metadata.js.map