UNPKG

@cdklabs/cdk-appflow

Version:

*Note:* this library is currently in technical preview.

89 lines 12 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.Transform = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const operation_1 = require("./operation"); const tasks_1 = require("./tasks"); const OP_NOOP = "NO_OP"; /** * A representation of a transform operation, that is an operation modifying source fields */ class Transform extends operation_1.OperationBase { /** * Truncates the field to a specified length * @param field a source field to truncate * @param length the maximum length after truncation * @returns a @see Transform instance */ static truncate(field, length) { if (!Number.isInteger(length)) { throw new Error("length has to be an integer value"); } if (length <= 0) { throw new Error("length has to be a positive integer value"); } return new Transform([ new tasks_1.Task("Truncate", [typeof field === "string" ? field : field.name], { operation: OP_NOOP }, [{ key: "TRUNCATE_LENGTH", value: `${length}` }]), ]); } /** * Masks the field with a specified mask * @param field a source field to mask * @param mask a mask character. @default '*' * @returns a @see Transform instance */ static mask(field, mask = "*") { if (mask && mask.length !== 1) { throw new Error("The mask has to be a single character"); } return new Transform([ new tasks_1.Task("Mask", [typeof field === "string" ? field : field.name], { operation: "MASK_ALL" }, [ { // TODO: test this. The AWS Console generated transform has length, but what for? key: "MASK_LENGTH", value: "5", }, { key: "MASK_VALUE", value: mask ?? "*" }, ]), ]); } static maskStart(field, length, mask) { if (!Number.isInteger(length)) { throw new Error("length has to be an integer value"); } if (length <= 0) { throw new Error("length has to be a positive integer value"); } if (mask && mask.length !== 1) { throw new Error("The mask has to be a single character"); } return new Transform([ new tasks_1.Task("Mask", [typeof field === "string" ? field : field.name], { operation: "MASK_FIRST_N" }, [ { key: "MASK_LENGTH", value: `${length}` }, { key: "MASK_VALUE", value: mask ?? "*" }, ]), ]); } static maskEnd(field, length, mask) { if (!Number.isInteger(length)) { throw new Error("length has to be an integer value"); } if (length <= 0) { throw new Error("length has to be a positive integer value"); } if (mask && mask.length !== 1) { throw new Error("The mask has to be a single character"); } return new Transform([ new tasks_1.Task("Mask", [typeof field === "string" ? field : field.name], { operation: "MASK_LAST_N" }, [ { key: "MASK_LENGTH", value: `${length}` }, { key: "MASK_VALUE", value: mask ?? "*" }, ]), ]); } } exports.Transform = Transform; _a = JSII_RTTI_SYMBOL_1; Transform[_a] = { fqn: "@cdklabs/cdk-appflow.Transform", version: "0.2.3" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3Jtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL3Rhc2tzL3RyYW5zZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSwyQ0FBd0Q7QUFDeEQsbUNBQStCO0FBRS9CLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQztBQU94Qjs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLHlCQUFhO0lBQzFDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFxQixFQUFFLE1BQWM7UUFDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELElBQUksTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsT0FBTyxJQUFJLFNBQVMsQ0FBQztZQUNuQixJQUFJLFlBQUksQ0FDTixVQUFVLEVBQ1YsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUNoRCxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFDdEIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQ2pEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFxQixFQUFFLE9BQWUsR0FBRztRQUMxRCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVD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Y29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gXCIuL2ZpZWxkXCI7XG5pbXBvcnQgeyBJT3BlcmF0aW9uLCBPcGVyYXRpb25CYXNlIH0gZnJvbSBcIi4vb3BlcmF0aW9uXCI7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSBcIi4vdGFza3NcIjtcblxuY29uc3QgT1BfTk9PUCA9IFwiTk9fT1BcIjtcblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGEgdHJhbnNmb3JtIG9wZXJhdGlvbiwgdGhhdCBpcyBhbiBvcGVyYXRpb24gbW9kaWZ5aW5nIHNvdXJjZSBmaWVsZHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNmb3JtIGV4dGVuZHMgSU9wZXJhdGlvbiB7fVxuXG4vKipcbiAqIEEgcmVwcmVzZW50YXRpb24gb2YgYSB0cmFuc2Zvcm0gb3BlcmF0aW9uLCB0aGF0IGlzIGFuIG9wZXJhdGlvbiBtb2RpZnlpbmcgc291cmNlIGZpZWxkc1xuICovXG5leHBvcnQgY2xhc3MgVHJhbnNmb3JtIGV4dGVuZHMgT3BlcmF0aW9uQmFzZSBpbXBsZW1lbnRzIElUcmFuc2Zvcm0ge1xuICAvKipcbiAgICogVHJ1bmNhdGVzIHRoZSBmaWVsZCB0byBhIHNwZWNpZmllZCBsZW5ndGhcbiAgICogQHBhcmFtIGZpZWxkIGEgc291cmNlIGZpZWxkIHRvIHRydW5jYXRlXG4gICAqIEBwYXJhbSBsZW5ndGggdGhlIG1heGltdW0gbGVuZ3RoIGFmdGVyIHRydW5jYXRpb25cbiAgICogQHJldHVybnMgYSBAc2VlIFRyYW5zZm9ybSBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0cnVuY2F0ZShmaWVsZDogc3RyaW5nIHwgRmllbGQsIGxlbmd0aDogbnVtYmVyKTogSVRyYW5zZm9ybSB7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGxlbmd0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImxlbmd0aCBoYXMgdG8gYmUgYW4gaW50ZWdlciB2YWx1ZVwiKTtcbiAgICB9XG5cbiAgICBpZiAobGVuZ3RoIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImxlbmd0aCBoYXMgdG8gYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHZhbHVlXCIpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtKFtcbiAgICAgIG5ldyBUYXNrKFxuICAgICAgICBcIlRydW5jYXRlXCIsXG4gICAgICAgIFt0eXBlb2YgZmllbGQgPT09IFwic3RyaW5nXCIgPyBmaWVsZCA6IGZpZWxkLm5hbWVdLFxuICAgICAgICB7IG9wZXJhdGlvbjogT1BfTk9PUCB9LFxuICAgICAgICBbeyBrZXk6IFwiVFJVTkNBVEVfTEVOR1RIXCIsIHZhbHVlOiBgJHtsZW5ndGh9YCB9XSxcbiAgICAgICksXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogTWFza3MgdGhlIGZpZWxkIHdpdGggYSBzcGVjaWZpZWQgbWFza1xuICAgKiBAcGFyYW0gZmllbGQgYSBzb3VyY2UgZmllbGQgdG8gbWFza1xuICAgKiBAcGFyYW0gbWFzayBhIG1hc2sgY2hhcmFjdGVyLiBAZGVmYXVsdCAnKidcbiAgICogQHJldHVybnMgYSBAc2VlIFRyYW5zZm9ybSBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYXNrKGZpZWxkOiBzdHJpbmcgfCBGaWVsZCwgbWFzazogc3RyaW5nID0gXCIqXCIpOiBJVHJhbnNmb3JtIHtcbiAgICBpZiAobWFzayAmJiBtYXNrLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIG1hc2sgaGFzIHRvIGJlIGEgc2luZ2xlIGNoYXJhY3RlclwiKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm0oW1xuICAgICAgbmV3IFRhc2soXG4gICAgICAgIFwiTWFza1wiLFxuICAgICAgICBbdHlwZW9mIGZpZWxkID09PSBcInN0cmluZ1wiID8gZmllbGQgOiBmaWVsZC5uYW1lXSxcbiAgICAgICAgeyBvcGVyYXRpb246IFwiTUFTS19BTExcIiB9LFxuICAgICAgICBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gVE9ETzogdGVzdCB0aGlzLiBUaGUgQVdTIENvbnNvbGUgZ2VuZXJhdGVkIHRyYW5zZm9ybSBoYXMgbGVuZ3RoLCBidXQgd2hhdCBmb3I/XG4gICAgICAgICAgICBrZXk6IFwiTUFTS19MRU5HVEhcIixcbiAgICAgICAgICAgIHZhbHVlOiBcIjVcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsga2V5OiBcIk1BU0tfVkFMVUVcIiwgdmFsdWU6IG1hc2sgPz8gXCIqXCIgfSxcbiAgICAgICAgXSxcbiAgICAgICksXG4gICAgXSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG1hc2tTdGFydChcbiAgICBmaWVsZDogc3RyaW5nIHwgRmllbGQsXG4gICAgbGVuZ3RoOiBudW1iZXIsXG4gICAgbWFzaz86IHN0cmluZyxcbiAgKTogSVRyYW5zZm9ybSB7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGxlbmd0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImxlbmd0aCBoYXMgdG8gYmUgYW4gaW50ZWdlciB2YWx1ZVwiKTtcbiAgICB9XG5cbiAgICBpZiAobGVuZ3RoIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImxlbmd0aCBoYXMgdG8gYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHZhbHVlXCIpO1xuICAgIH1cblxuICAgIGlmIChtYXNrICYmIG1hc2subGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgbWFzayBoYXMgdG8gYmUgYSBzaW5nbGUgY2hhcmFjdGVyXCIpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtKFtcbiAgICAgIG5ldyBUYXNrKFxuICAgICAgICBcIk1hc2tcIixcbiAgICAgICAgW3R5cGVvZiBmaWVsZCA9PT0gXCJzdHJpbmdcIiA/IGZpZWxkIDogZmllbGQubmFtZV0sXG4gICAgICAgIHsgb3BlcmF0aW9uOiBcIk1BU0tfRklSU1RfTlwiIH0sXG4gICAgICAgIFtcbiAgICAgICAgICB7IGtleTogXCJNQVNLX0xFTkdUSFwiLCB2YWx1ZTogYCR7bGVuZ3RofWAgfSxcbiAgICAgICAgICB7IGtleTogXCJNQVNLX1ZBTFVFXCIsIHZhbHVlOiBtYXNrID8/IFwiKlwiIH0sXG4gICAgICAgIF0sXG4gICAgICApLFxuICAgIF0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBtYXNrRW5kKFxuICAgIGZpZWxkOiBzdHJpbmcgfCBGaWVsZCxcbiAgICBsZW5ndGg6IG51bWJlcixcbiAgICBtYXNrPzogc3RyaW5nLFxuICApOiBJVHJhbnNmb3JtIHtcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIobGVuZ3RoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwibGVuZ3RoIGhhcyB0byBiZSBhbiBpbnRlZ2VyIHZhbHVlXCIpO1xuICAgIH1cblxuICAgIGlmIChsZW5ndGggPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwibGVuZ3RoIGhhcyB0byBiZSBhIHBvc2l0aXZlIGludGVnZXIgdmFsdWVcIik7XG4gICAgfVxuXG4gICAgaWYgKG1hc2sgJiYgbWFzay5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSBtYXNrIGhhcyB0byBiZSBhIHNpbmdsZSBjaGFyYWN0ZXJcIik7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtKFtcbiAgICAgIG5ldyBUYXNrKFxuICAgICAgICBcIk1hc2tcIixcbiAgICAgICAgW3R5cGVvZiBmaWVsZCA9PT0gXCJzdHJpbmdcIiA/IGZpZWxkIDogZmllbGQubmFtZV0sXG4gICAgICAgIHsgb3BlcmF0aW9uOiBcIk1BU0tfTEFTVF9OXCIgfSxcbiAgICAgICAgW1xuICAgICAgICAgIHsga2V5OiBcIk1BU0tfTEVOR1RIXCIsIHZhbHVlOiBgJHtsZW5ndGh9YCB9LFxuICAgICAgICAgIHsga2V5OiBcIk1BU0tfVkFMVUVcIiwgdmFsdWU6IG1hc2sgPz8gXCIqXCIgfSxcbiAgICAgICAgXSxcbiAgICAgICksXG4gICAgXSk7XG4gIH1cbn1cbiJdfQ==