@transcend-io/cli 8.27.0 → 8.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/bin/bash-complete.cjs +1 -1
- package/dist/bin/cli.cjs +1 -1
- package/dist/bin/deprecated-command.cjs +2 -2
- package/dist/{chunk-GMTBHFZV.cjs → chunk-2CAMTEJY.cjs} +4 -4
- package/dist/{chunk-GMTBHFZV.cjs.map → chunk-2CAMTEJY.cjs.map} +1 -1
- package/dist/{chunk-FQESEVCX.cjs → chunk-4AOZYIVR.cjs} +2 -2
- package/dist/{chunk-FQESEVCX.cjs.map → chunk-4AOZYIVR.cjs.map} +1 -1
- package/dist/{chunk-LSZQ3OFG.cjs → chunk-57L3G2BH.cjs} +2 -2
- package/dist/{chunk-LSZQ3OFG.cjs.map → chunk-57L3G2BH.cjs.map} +1 -1
- package/dist/{chunk-LIFHKHUG.cjs → chunk-BBIQYUL2.cjs} +2 -2
- package/dist/{chunk-LIFHKHUG.cjs.map → chunk-BBIQYUL2.cjs.map} +1 -1
- package/dist/{chunk-BL2UJW5C.cjs → chunk-BO6JY2EM.cjs} +2 -2
- package/dist/{chunk-BL2UJW5C.cjs.map → chunk-BO6JY2EM.cjs.map} +1 -1
- package/dist/{chunk-JFZPP4VV.cjs → chunk-BQSBPO63.cjs} +3 -3
- package/dist/{chunk-JFZPP4VV.cjs.map → chunk-BQSBPO63.cjs.map} +1 -1
- package/dist/{chunk-THCW2SNW.cjs → chunk-F7QE6D3T.cjs} +2 -2
- package/dist/{chunk-THCW2SNW.cjs.map → chunk-F7QE6D3T.cjs.map} +1 -1
- package/dist/{chunk-LCDYXJN6.cjs → chunk-FHUHBSLE.cjs} +2 -2
- package/dist/{chunk-LCDYXJN6.cjs.map → chunk-FHUHBSLE.cjs.map} +1 -1
- package/dist/{chunk-AD5RNQ4J.cjs → chunk-GDNSAJQN.cjs} +2 -2
- package/dist/{chunk-AD5RNQ4J.cjs.map → chunk-GDNSAJQN.cjs.map} +1 -1
- package/dist/{chunk-G3LZCX5D.cjs → chunk-HCPNMNS3.cjs} +6 -6
- package/dist/{chunk-G3LZCX5D.cjs.map → chunk-HCPNMNS3.cjs.map} +1 -1
- package/dist/{chunk-JXUIQS5T.cjs → chunk-ID7MP3QD.cjs} +2 -2
- package/dist/{chunk-JXUIQS5T.cjs.map → chunk-ID7MP3QD.cjs.map} +1 -1
- package/dist/{chunk-NXWJFTTG.cjs → chunk-K4IBAM5Z.cjs} +4 -4
- package/dist/{chunk-NXWJFTTG.cjs.map → chunk-K4IBAM5Z.cjs.map} +1 -1
- package/dist/{chunk-ECGHWDVP.cjs → chunk-LU3DKRNK.cjs} +2 -2
- package/dist/chunk-LU3DKRNK.cjs.map +1 -0
- package/dist/{chunk-IG445VJR.cjs → chunk-LWPX5LJB.cjs} +2 -2
- package/dist/{chunk-IG445VJR.cjs.map → chunk-LWPX5LJB.cjs.map} +1 -1
- package/dist/{chunk-HBI4MFHE.cjs → chunk-N25PPQY4.cjs} +21 -21
- package/dist/{chunk-HBI4MFHE.cjs.map → chunk-N25PPQY4.cjs.map} +1 -1
- package/dist/chunk-NBXAOUWC.cjs +3001 -0
- package/dist/chunk-NBXAOUWC.cjs.map +1 -0
- package/dist/{chunk-Q7I37FJV.cjs → chunk-T3BBQIRY.cjs} +2 -2
- package/dist/chunk-T3BBQIRY.cjs.map +1 -0
- package/dist/{chunk-DZ5KTF7W.cjs → chunk-UXYKFAP7.cjs} +2 -2
- package/dist/{chunk-DZ5KTF7W.cjs.map → chunk-UXYKFAP7.cjs.map} +1 -1
- package/dist/{impl-FKFSISLZ.cjs → impl-333FTGNJ.cjs} +2 -2
- package/dist/{impl-FKFSISLZ.cjs.map → impl-333FTGNJ.cjs.map} +1 -1
- package/dist/{impl-HULEYZA3.cjs → impl-3HWWFZLZ.cjs} +2 -2
- package/dist/{impl-HULEYZA3.cjs.map → impl-3HWWFZLZ.cjs.map} +1 -1
- package/dist/{impl-P7VE347W.cjs → impl-5IR5JVEX.cjs} +2 -2
- package/dist/{impl-P7VE347W.cjs.map → impl-5IR5JVEX.cjs.map} +1 -1
- package/dist/{impl-WWVVPFM7.cjs → impl-5JKO562Z.cjs} +2 -2
- package/dist/{impl-WWVVPFM7.cjs.map → impl-5JKO562Z.cjs.map} +1 -1
- package/dist/impl-5NEL56EQ.cjs +2 -0
- package/dist/{impl-YGX4NQLZ.cjs.map → impl-5NEL56EQ.cjs.map} +1 -1
- package/dist/impl-6O4FILGB.cjs +2 -0
- package/dist/{impl-3SWF4GZZ.cjs.map → impl-6O4FILGB.cjs.map} +1 -1
- package/dist/impl-7NYN6PNG.cjs +2 -0
- package/dist/{impl-WUHP3P5R.cjs.map → impl-7NYN6PNG.cjs.map} +1 -1
- package/dist/impl-ATMXXGUO.cjs +2 -0
- package/dist/{impl-BGLZ6S7A.cjs.map → impl-ATMXXGUO.cjs.map} +1 -1
- package/dist/{impl-OYWTY4Q7.cjs → impl-B5HWJ3KK.cjs} +2 -2
- package/dist/{impl-OYWTY4Q7.cjs.map → impl-B5HWJ3KK.cjs.map} +1 -1
- package/dist/{impl-JID5BHDK.cjs → impl-CGX5RD4A.cjs} +2 -2
- package/dist/{impl-JID5BHDK.cjs.map → impl-CGX5RD4A.cjs.map} +1 -1
- package/dist/{impl-IOI72RK7.cjs → impl-D2C22UEC.cjs} +2 -2
- package/dist/{impl-IOI72RK7.cjs.map → impl-D2C22UEC.cjs.map} +1 -1
- package/dist/{impl-3YAJ7ZV3.cjs → impl-EE3BM53W.cjs} +2 -2
- package/dist/{impl-3YAJ7ZV3.cjs.map → impl-EE3BM53W.cjs.map} +1 -1
- package/dist/{impl-X3NI5ITC.cjs → impl-FTRCRS7H.cjs} +2 -2
- package/dist/{impl-X3NI5ITC.cjs.map → impl-FTRCRS7H.cjs.map} +1 -1
- package/dist/impl-FXVXRV6Q.cjs +3 -0
- package/dist/{impl-ABBOINXS.cjs.map → impl-FXVXRV6Q.cjs.map} +1 -1
- package/dist/{impl-6X6QOXM3.cjs → impl-GJB4EKPW.cjs} +3 -3
- package/dist/{impl-6X6QOXM3.cjs.map → impl-GJB4EKPW.cjs.map} +1 -1
- package/dist/{impl-WWL2A2T2.cjs → impl-HBJ7BPEI.cjs} +2 -2
- package/dist/{impl-WWL2A2T2.cjs.map → impl-HBJ7BPEI.cjs.map} +1 -1
- package/dist/{impl-3NXCEUTZ.cjs → impl-HQICWTNR.cjs} +5 -5
- package/dist/{impl-3NXCEUTZ.cjs.map → impl-HQICWTNR.cjs.map} +1 -1
- package/dist/{impl-2KMLK6S2.cjs → impl-HSD25CEC.cjs} +2 -2
- package/dist/{impl-2KMLK6S2.cjs.map → impl-HSD25CEC.cjs.map} +1 -1
- package/dist/{impl-GZIWCS6D.cjs → impl-HXH7SZDU.cjs} +2 -2
- package/dist/{impl-GZIWCS6D.cjs.map → impl-HXH7SZDU.cjs.map} +1 -1
- package/dist/impl-ITV3PGFS.cjs +2 -0
- package/dist/{impl-XMOEYUIG.cjs.map → impl-ITV3PGFS.cjs.map} +1 -1
- package/dist/impl-IWMRKBYP.cjs +2 -0
- package/dist/{impl-5LT5ZA7K.cjs.map → impl-IWMRKBYP.cjs.map} +1 -1
- package/dist/{impl-OQKJR3OY.cjs → impl-J5DLFX22.cjs} +4 -4
- package/dist/{impl-OQKJR3OY.cjs.map → impl-J5DLFX22.cjs.map} +1 -1
- package/dist/{impl-HIZHI4CT.cjs → impl-JYAU26KS.cjs} +2 -2
- package/dist/{impl-HIZHI4CT.cjs.map → impl-JYAU26KS.cjs.map} +1 -1
- package/dist/{impl-KFQWJU6D.cjs → impl-LVPOYO4A.cjs} +2 -2
- package/dist/{impl-KFQWJU6D.cjs.map → impl-LVPOYO4A.cjs.map} +1 -1
- package/dist/{impl-6VNSS7JY.cjs → impl-M3AZLM3Y.cjs} +2 -2
- package/dist/{impl-6VNSS7JY.cjs.map → impl-M3AZLM3Y.cjs.map} +1 -1
- package/dist/{impl-QOGUZMYD.cjs → impl-OCDURTBG.cjs} +2 -2
- package/dist/{impl-QOGUZMYD.cjs.map → impl-OCDURTBG.cjs.map} +1 -1
- package/dist/impl-OMCKSCEI.cjs +2 -0
- package/dist/{impl-D3IADLFZ.cjs.map → impl-OMCKSCEI.cjs.map} +1 -1
- package/dist/{impl-5LRIZL6Q.cjs → impl-PHYCAOK7.cjs} +2 -2
- package/dist/{impl-5LRIZL6Q.cjs.map → impl-PHYCAOK7.cjs.map} +1 -1
- package/dist/{impl-OGVRZFXA.cjs → impl-QT2HKTCP.cjs} +2 -2
- package/dist/{impl-OGVRZFXA.cjs.map → impl-QT2HKTCP.cjs.map} +1 -1
- package/dist/{impl-5BIEQWSB.cjs → impl-SQHP2SZ4.cjs} +2 -2
- package/dist/{impl-5BIEQWSB.cjs.map → impl-SQHP2SZ4.cjs.map} +1 -1
- package/dist/{impl-W75S6XUS.cjs → impl-TJFUBDML.cjs} +2 -2
- package/dist/{impl-W75S6XUS.cjs.map → impl-TJFUBDML.cjs.map} +1 -1
- package/dist/{impl-5AU5GNSB.cjs → impl-TU3DSCLK.cjs} +2 -2
- package/dist/{impl-5AU5GNSB.cjs.map → impl-TU3DSCLK.cjs.map} +1 -1
- package/dist/{impl-LLP7IXWK.cjs → impl-VV3UMWFG.cjs} +2 -2
- package/dist/{impl-LLP7IXWK.cjs.map → impl-VV3UMWFG.cjs.map} +1 -1
- package/dist/{impl-5D3TCFK7.cjs → impl-VYNKYTB5.cjs} +2 -2
- package/dist/{impl-5D3TCFK7.cjs.map → impl-VYNKYTB5.cjs.map} +1 -1
- package/dist/{impl-BIB6PUGE.cjs → impl-W7AB7VQY.cjs} +2 -2
- package/dist/{impl-BIB6PUGE.cjs.map → impl-W7AB7VQY.cjs.map} +1 -1
- package/dist/{impl-GE54DKYZ.cjs → impl-WGVGJV2F.cjs} +3 -3
- package/dist/{impl-GE54DKYZ.cjs.map → impl-WGVGJV2F.cjs.map} +1 -1
- package/dist/{impl-J23ILBH7.cjs → impl-XUD5VFQX.cjs} +2 -2
- package/dist/{impl-J23ILBH7.cjs.map → impl-XUD5VFQX.cjs.map} +1 -1
- package/dist/{impl-BSODHREX.cjs → impl-Y3WZAMYW.cjs} +2 -2
- package/dist/{impl-BSODHREX.cjs.map → impl-Y3WZAMYW.cjs.map} +1 -1
- package/dist/{impl-6ZJOSWUH.cjs → impl-Z4GNVM3V.cjs} +2 -2
- package/dist/{impl-6ZJOSWUH.cjs.map → impl-Z4GNVM3V.cjs.map} +1 -1
- package/dist/impl-ZMX57RSP.cjs +2 -0
- package/dist/{impl-U4GMJYRH.cjs.map → impl-ZMX57RSP.cjs.map} +1 -1
- package/dist/{impl-YOB7AAQJ.cjs → impl-ZSNYO6VH.cjs} +2 -2
- package/dist/{impl-YOB7AAQJ.cjs.map → impl-ZSNYO6VH.cjs.map} +1 -1
- package/dist/{impl-OVRVC7X5.cjs → impl-ZWLFLVPK.cjs} +2 -2
- package/dist/{impl-OVRVC7X5.cjs.map → impl-ZWLFLVPK.cjs.map} +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10878 -5
- package/package.json +3 -3
- package/dist/chunk-ECGHWDVP.cjs.map +0 -1
- package/dist/chunk-OPHHRNLH.cjs +0 -2979
- package/dist/chunk-OPHHRNLH.cjs.map +0 -1
- package/dist/chunk-Q7I37FJV.cjs.map +0 -1
- package/dist/impl-3SWF4GZZ.cjs +0 -2
- package/dist/impl-5LT5ZA7K.cjs +0 -2
- package/dist/impl-ABBOINXS.cjs +0 -3
- package/dist/impl-BGLZ6S7A.cjs +0 -2
- package/dist/impl-D3IADLFZ.cjs +0 -2
- package/dist/impl-U4GMJYRH.cjs +0 -2
- package/dist/impl-WUHP3P5R.cjs +0 -2
- package/dist/impl-XMOEYUIG.cjs +0 -2
- package/dist/impl-YGX4NQLZ.cjs +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-4AOZYIVR.cjs","../src/commands/inventory/pull/command.ts","../src/lib/cli/parsers.ts"],"names":["uuidParser","input"],"mappings":"AAAA,mfAA0C,wDAAyC,qCCAxC,2DACN,gECDiB,SAStCA,CAAAA,CAAWC,CAAAA,CAAuB,CAGhD,EAAA,CAAI,CADF,4EAAA,CACa,IAAA,CAAKA,CAAK,CAAA,CACvB,MAAM,IAAI,KAAA,CAAM,CAAA,qBAAA,EAAwBA,CAAK,CAAA,CAAA;ADwF5B;AAAA;AAAA;AAAA;AAAA;AAAA;AASpB,qGAAA","file":"/home/runner/work/cli/cli/dist/chunk-4AOZYIVR.cjs","sourcesContent":[null,"import { buildCommand, numberParser } from '@stricli/core';\nimport { ConsentTrackerStatus } from '@transcend-io/privacy-types';\nimport {\n createAuthParameter,\n createTranscendUrlParameter,\n} from '../../../lib/cli/common-parameters';\nimport { TranscendPullResource } from '../../../enums';\n\nexport const DEFAULT_TRANSCEND_PULL_RESOURCES = [\n TranscendPullResource.DataSilos,\n TranscendPullResource.Enrichers,\n TranscendPullResource.Templates,\n TranscendPullResource.ApiKeys,\n];\n\nexport const DEFAULT_CONSENT_TRACKER_STATUSES =\n Object.values(ConsentTrackerStatus);\n\nexport const pullCommand = buildCommand({\n loader: async () => {\n const { pull } = await import('./impl');\n return pull;\n },\n parameters: {\n flags: {\n auth: createAuthParameter({\n scopes: 'Varies',\n }),\n resources: {\n kind: 'enum',\n values: ['all', ...Object.values(TranscendPullResource)],\n brief: `The different resource types to pull in. Defaults to ${DEFAULT_TRANSCEND_PULL_RESOURCES.join(\n ',',\n )}.`,\n variadic: ',',\n optional: true,\n },\n file: {\n kind: 'parsed',\n parse: String,\n brief: 'Path to the YAML file to pull into',\n default: './transcend.yml',\n },\n transcendUrl: createTranscendUrlParameter(),\n dataSiloIds: {\n kind: 'parsed',\n parse: String,\n variadic: ',',\n brief:\n 'The UUIDs of the data silos that should be pulled into the YAML file',\n optional: true,\n },\n integrationNames: {\n kind: 'parsed',\n parse: String,\n variadic: ',',\n brief: 'The types of integrations to pull down',\n optional: true,\n },\n trackerStatuses: {\n kind: 'enum',\n values: Object.values(ConsentTrackerStatus),\n variadic: ',',\n brief:\n 'The statuses of consent manager trackers to pull down. Defaults to all statuses.',\n optional: true,\n },\n pageSize: {\n kind: 'parsed',\n parse: numberParser,\n brief: 'The page size to use when paginating over the API',\n default: '50',\n },\n skipDatapoints: {\n kind: 'boolean',\n brief:\n 'When true, skip pulling in datapoints alongside data silo resource',\n default: false,\n },\n skipSubDatapoints: {\n kind: 'boolean',\n brief:\n 'When true, skip pulling in subDatapoints alongside data silo resource',\n default: false,\n },\n includeGuessedCategories: {\n kind: 'boolean',\n brief:\n 'When true, included guessed data categories that came from the content classifier',\n default: false,\n },\n debug: {\n kind: 'boolean',\n brief:\n 'Set to true to include debug logs while pulling the configuration',\n default: false,\n },\n },\n },\n docs: {\n brief: 'Pull metadata from Transcend into transcend.yml',\n fullDescription: `Generates a transcend.yml by pulling the configuration from your Transcend instance.\n\nThe API key needs various scopes depending on the resources being pulled (see the CLI's README for more details).\n\nThis command can be helpful if you are looking to:\n\n- Copy your data into another instance\n- Generate a transcend.yml file as a starting point to maintain parts of your data inventory in code.`,\n },\n});\n","import ms, { type StringValue as MsStringValue } from 'ms';\n\n/**\n * Validates and returns a UUID string.\n *\n * @param input - The input string to validate as UUID\n * @returns The validated UUID string\n * @throws Error if input is not a valid UUID\n */\nexport function uuidParser(input: string): string {\n const uuidRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n if (!uuidRegex.test(input)) {\n throw new Error(`Invalid UUID format: ${input}`);\n }\n return input;\n}\n\n/**\n * Validates and returns a URL string.\n *\n * @param input - The input string to validate as URL\n * @returns The validated URL string\n * @throws Error if input is not a valid URL\n */\nexport function urlParser(input: string): string {\n try {\n const url = new URL(input);\n return url.toString().replace(/\\/$/, '');\n } catch {\n throw new Error(`Invalid URL format: ${input}`);\n }\n}\n\n/**\n * Parse a comma-separated string to array.\n * NOTE: Prefer using `variadic` for list arguments instead of this function. This should only be used for arguments which have a default value.\n *\n * @param input - The comma-separated string to parse\n * @returns Array of trimmed, non-empty strings\n */\nexport function arrayParser(input: string): string[] {\n return input\n .split(',')\n .map((s) => s.trim())\n .filter((s) => s.length > 0);\n}\n\n/**\n * Parse a date string to a Date object.\n *\n * @param input - The date string to parse\n * @returns The parsed Date object\n * @throws TypeError if input is not a valid date\n */\nexport function dateParser(input: string): Date {\n const date = new Date(input);\n if (Number.isNaN(date.getTime())) {\n throw new TypeError(\n `Invalid date: ${input}. Try using the ISO 8601 format (YYYY-MM-DDTHH:MM:SS.SSSZ)`,\n );\n }\n return date;\n}\n\n/**\n * Parse a duration string to milliseconds.\n * Accepts concise/natural-ish strings (powered by `ms`) and returns milliseconds.\n * Examples: \"3600\", \"2d\", \"1h\", \"90 minutes\", \"10s\".\n *\n * @param input - The duration to parse\n * @returns The parsed duration in milliseconds\n * @throws Error if input is not a valid duration\n */\nexport function parseDurationToMs(input: unknown): number {\n if (typeof input === 'number' && Number.isFinite(input)) {\n // backward-compat: numbers => seconds\n return Math.round(input * 1000);\n }\n\n if (typeof input === 'string') {\n const trimmed = input.trim();\n // empty string → our standardized error (avoid ms throwing its own)\n if (trimmed === '') {\n throw new Error(\n 'Invalid duration. Examples: \"45\", \"2d\", \"1h\", \"90 minutes\", \"10s\".',\n );\n }\n\n // bare numeric string => seconds (backward-compat)\n const asNumber = Number(trimmed);\n if (trimmed !== '' && Number.isFinite(asNumber)) {\n return Math.round(asNumber * 1000);\n }\n\n // let ms parse human strings\n let parsed: number | undefined;\n try {\n parsed = ms(trimmed as MsStringValue);\n } catch {\n // normalize ms' error to ours\n throw new Error(\n 'Invalid duration. Examples: \"45\", \"2d\", \"1h\", \"90 minutes\", \"10s\".',\n );\n }\n if (typeof parsed === 'number' && Number.isFinite(parsed)) {\n return parsed;\n }\n }\n\n throw new Error(\n 'Invalid duration. Examples: \"45\", \"2d\", \"1h\", \"90 minutes\", \"10s\".',\n );\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkGDNSAJQNcjs = require('./chunk-GDNSAJQN.cjs');var _chunkZUNVPK23cjs = require('./chunk-ZUNVPK23.cjs');var _fs = require('fs');var _typeutils = require('@transcend-io/type-utils');var _privacytypes = require('@transcend-io/privacy-types');var K=/target ('|")(.*?)('|")/,L=/pod ('|")(.*?)('|")(, ('|")~> (.+?)('|")|)/,y={supportedFiles:["Podfile"],ignoreDirs:["Pods"],scanFunction:t=>{let e=_fs.readFileSync.call(void 0, t,"utf-8"),r=_typeutils.findAllWithRegex.call(void 0, {value:new RegExp(K,"g"),matches:["quote1","name","quote2"]},e),m=_typeutils.findAllWithRegex.call(void 0, {value:new RegExp(L,"g"),matches:["quote1","name","quote2","extra","quote3","version","quote4"]},e);return r.map((s,a)=>({name:s.name,type:_privacytypes.CodePackageType.CocoaPods,softwareDevelopmentKits:m.filter(i=>i.matchIndex>s.matchIndex&&(!r[a+1]||i.matchIndex<r[a+1].matchIndex)).map(i=>({name:i.name,version:i.version}))}))}};var _path = require('path');var X=/implementation( *)('|")(.+?):(.+?):(.+?|)('|")/,j=/apply plugin: *('|")(.+?)(:(.+?)|)('|")/,J=/implementation group:( *)('|")(.+?)('|"),( *)name:( *)('|")(.+?)('|"),( *)version:( *)('|")(.+?)('|")/,U=/applicationId( *)"(.+?)"/,_={supportedFiles:["build.gradle**"],ignoreDirs:["gradle-app.setting","gradle-wrapper.jar","gradle-wrapper.properties"],scanFunction:t=>{let e=_fs.readFileSync.call(void 0, t,"utf-8"),r=_path.dirname.call(void 0, t),m=_typeutils.findAllWithRegex.call(void 0, {value:new RegExp(X,"g"),matches:["space","quote1","name","path","version","quote2"]},e),c=_typeutils.findAllWithRegex.call(void 0, {value:new RegExp(j,"g"),matches:["quote1","name","group","version","quote2"]},e),s=_typeutils.findAllWithRegex.call(void 0, {value:new RegExp(J,"g"),matches:["space1","quote1","group","quote2","space2","space3","quote3","name","quote4","space4","space5","quote5","version","quote6"]},e),a=_typeutils.findAllWithRegex.call(void 0, {value:new RegExp(U,"g"),matches:["space","name"]},e);if(a.length>1)throw new Error(`Expected only one applicationId per file: ${t}`);return[{name:_optionalChain([a, 'access', _2 => _2[0], 'optionalAccess', _3 => _3.name])||r.split("/").pop(),softwareDevelopmentKits:[...m,...s,...c].map(i=>({name:i.name,version:i.version||void 0}))}]}};var I={supportedFiles:["package.json"],ignoreDirs:["node_modules","serverless-build","lambda-build"],scanFunction:t=>{let e=_fs.readFileSync.call(void 0, t,"utf-8"),r=_path.dirname.call(void 0, t),m=JSON.parse(e),{name:c,description:s,dependencies:a={},devDependencies:i={},optionalDependencies:n={}}=m;return[{name:c||r.split("/").pop(),description:s,softwareDevelopmentKits:[...Object.entries(a).map(([o,p])=>({name:o,version:typeof p=="string"?p:void 0})),...Object.entries(i).map(([o,p])=>({name:o,version:typeof p=="string"?p:void 0,isDevDependency:!0})),...Object.entries(n).map(([o,p])=>({name:o,version:typeof p=="string"?p:void 0}))]}]}};var z=/(.+?)(=+)(.+)/,Z=/name *= *('|")(.+?)('|")/,ee=/description *= *('|")(.+?)('|")/,x={supportedFiles:["requirements.txt"],ignoreDirs:["build","lib","lib64"],scanFunction:t=>{let e=_fs.readFileSync.call(void 0, t,"utf-8"),r=_path.dirname.call(void 0, t),c=_chunkGDNSAJQNcjs.c.call(void 0, r).find(o=>o==="setup.py"),s=c?_fs.readFileSync.call(void 0, _path.join.call(void 0, r,c),"utf-8"):void 0,a=s?(Z.exec(s)||[])[2]:void 0,i=s?(ee.exec(s)||[])[2]:void 0,n=_typeutils.findAllWithRegex.call(void 0, {value:new RegExp(z,"g"),matches:["name","equals","version"]},e);return[{name:a||r.split("/").pop(),description:i||void 0,type:_privacytypes.CodePackageType.RequirementsTxt,softwareDevelopmentKits:n.map(o=>({name:o.name,version:o.version}))}]}};var re=/gem *('|")(.+?)('|")(, *('|")(.+?)('|")|)/,se=/spec\.name *= *('|")(.+?)('|")/,ie=/spec\.description *= *('|")(.+?)('|")/,pe=/spec\.summary *= *('|")(.+?)('|")/,D={supportedFiles:["Gemfile"],ignoreDirs:["bin"],scanFunction:t=>{let e=_fs.readFileSync.call(void 0, t,"utf-8"),r=_path.dirname.call(void 0, t),c=_chunkGDNSAJQNcjs.c.call(void 0, r).find(o=>o===".gemspec"),s=c?_fs.readFileSync.call(void 0, c,"utf-8"):void 0,a=s?(se.exec(s)||[])[2]:void 0,i=s?(ie.exec(s)||pe.exec(s)||[])[1]:void 0,n=_typeutils.findAllWithRegex.call(void 0, {value:new RegExp(re,"g"),matches:["quote1","name","quote2","hasVersion","quote3","version","quote4"]},e);return[{name:a||r.split("/").pop(),description:i||void 0,type:_privacytypes.CodePackageType.RequirementsTxt,softwareDevelopmentKits:n.map(o=>({name:o.name,version:o.version}))}]}};var _jsyaml = require('js-yaml'); var _jsyaml2 = _interopRequireDefault(_jsyaml);function ge(t){return t.split(`
|
|
2
2
|
`).map(e=>{let r=e.indexOf("#");return r>-1&&!e.substring(0,r).includes('"')&&!e.substring(0,r).includes("'")?e.substring(0,r).trim():e}).filter(e=>e.length>0).join(`
|
|
3
3
|
`)}var P={supportedFiles:["pubspec.yml"],ignoreDirs:["build"],scanFunction:t=>{let e=_path.dirname.call(void 0, t),r=_fs.readFileSync.call(void 0, t,"utf-8"),{name:m,description:c,dev_dependencies:s={},dependencies:a={}}=_jsyaml2.default.load(ge(r));return[{name:m||e.split("/").pop(),description:c,type:_privacytypes.CodePackageType.RequirementsTxt,softwareDevelopmentKits:[...Object.entries(a).map(([i,n])=>({name:i,version:typeof n=="string"?n:typeof n=="number"?n.toString():_optionalChain([n, 'optionalAccess', _4 => _4.sdk])})),...Object.entries(s).map(([i,n])=>({name:i,version:typeof n=="string"?n:typeof n=="number"?n.toString():_optionalChain([n, 'optionalAccess', _5 => _5.sdk]),isDevDependency:!0}))]}]}};var F={supportedFiles:["composer.json"],ignoreDirs:["vendor","node_modules","cache","build","dist"],scanFunction:t=>{let e=_fs.readFileSync.call(void 0, t,"utf-8"),r=_path.dirname.call(void 0, t),m=JSON.parse(e),{name:c,description:s,require:a={},"require-dev":i={}}=m;return[{name:c||r.split("/").pop(),description:s,softwareDevelopmentKits:[...Object.entries(a).map(([n,o])=>({name:n,version:typeof o=="string"?o:void 0})),...Object.entries(i).map(([n,o])=>({name:n,version:typeof o=="string"?o:void 0,isDevDependency:!0}))]}]}};var _iots = require('io-ts'); var d = _interopRequireWildcard(_iots);var ye=d.type({pins:d.array(d.type({identity:d.string,kind:d.string,location:d.string,state:d.type({revision:d.string,version:d.string})})),version:d.number}),A={supportedFiles:["Package.resolved"],ignoreDirs:[],scanFunction:t=>{let e=_fs.readFileSync.call(void 0, t,"utf-8"),r=_typeutils.decodeCodec.call(void 0, ye,e);return[{name:_path.dirname.call(void 0, t).split("/").pop()||"",type:_privacytypes.CodePackageType.CocoaPods,softwareDevelopmentKits:r.pins.map(m=>({name:m.identity,version:m.state.version}))}]}};var R="(implementation|api|kapt|ksp|debugImplementation|releaseImplementation|androidTestImplementation|testImplementation|compileOnly|runtimeOnly)",xe=new RegExp(`${R}\\s*\\(\\s*["']([^"':\\s]+):([^"':\\s]+):?([^"']*)["']\\s*\\)`,"g"),De=new RegExp(`${R}\\s*\\(\\s*platform\\(\\s*["']([^"':\\s]+):([^"':\\s]+):?([^"']*)["']\\s*\\)\\s*\\)`,"g"),Pe=new RegExp(`${R}\\s*\\(\\s*libs(?:\\.[\\w\\-\\.]+|\\[["'][^"']+["']\\])\\s*\\)`,"g"),Ae=/id\s*\(\s*["']([^"']+)["']\s*\)(?:\s*version\s*["']([^"']+)["'])?/g,Re=/apply\s*\(\s*plugin\s*=\s*["']([^"']+)["']\s*\)/g,ke=/plugins\s*\{[^}]*alias\s*\(\s*libs(?:\.plugins)?(?:\.[\w\-.]+|\[["'][^"']+["']\])\s*\)[^}]*\}/g,ve=/applicationId\s*=\s*["']([^"']+)["']/g,Ge=/applicationId\s*\(\s*["']([^"']+)["']\s*\)/g;function u(t,e){let r=e&&e.trim().length>0&&e!=="_"?e.trim():void 0;return{name:t,version:r}}var w={supportedFiles:["**/build.gradle.kts","**/*.gradle.kts"],ignoreDirs:["gradle-app.setting","gradle-wrapper.jar","gradle-wrapper.properties"],scanFunction:t=>{let e=_fs.readFileSync.call(void 0, t,"utf-8"),r=_path.dirname.call(void 0, t),m=[..._typeutils.findAllWithRegex.call(void 0, {value:ve,matches:["name"]},e),..._typeutils.findAllWithRegex.call(void 0, {value:Ge,matches:["name"]},e)];if(m.length>1)throw new Error(`Expected only one applicationId per file: ${t}`);let c=_optionalChain([m, 'access', _6 => _6[0], 'optionalAccess', _7 => _7.name])||r.split("/").pop(),s=[];for(let n of e.matchAll(xe)){let[,,o,p,f]=n;s.push(u(`${o}:${p}`,f))}for(let n of e.matchAll(De)){let[,,o,p,f]=n;s.push(u(`${o}:${p}`,f))}for(let n of e.matchAll(Pe)){let o=n[0].replace(/^[^(]+\(\s*/,"").replace(/\)\s*$/,"").trim();s.push(u(o))}let a=[];for(let n of e.matchAll(Ae)){let[,o,p]=n;a.push(u(o,p))}for(let n of e.matchAll(Re)){let[,o]=n;a.push(u(o))}if(ke.test(e)){let n=e.matchAll(/alias\s*\(\s*(libs(?:\.plugins)?(?:\.[\w\-.]+|\[["'][^"']+["']\]))\s*\)/g);for(let o of n)a.push(u(o[1]))}let i=[...s,...a].reduce((n,o)=>{let p=`${o.name}@@${o.version||""}`;return n.map.has(p)||(n.map.set(p,o),n.list.push(o)),n},{map:new Map,list:[]}).list;return[{name:c,softwareDevelopmentKits:i}]}};var hn={cocoaPods:y,gradle:_,javascriptPackageJson:I,pythonRequirementsTxt:x,gemfile:D,pubspec:P,swift:A},T={[_privacytypes.CodePackageType.CocoaPods]:y,[_privacytypes.CodePackageType.Gradle]:_,[_privacytypes.CodePackageType.PackageJson]:I,[_privacytypes.CodePackageType.RequirementsTxt]:x,[_privacytypes.CodePackageType.Gemfile]:D,[_privacytypes.CodePackageType.Pubspec]:P,[_privacytypes.CodePackageType.ComposerJson]:F,[_privacytypes.CodePackageType.Swift]:A,[_privacytypes.CodePackageType.Kotlin]:w};var _fastglob = require('fast-glob'); var _fastglob2 = _interopRequireDefault(_fastglob);var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors);async function Kn({scanPath:t,ignoreDirs:e=[],repositoryName:r}){return(await Promise.all(_typeutils.getEntries.call(void 0, T).map(async([c,s])=>{let{ignoreDirs:a,supportedFiles:i,scanFunction:n}=s,o=[...e,...a].filter(p=>p.length>0);try{let p=await _fastglob2.default.call(void 0, `${t}/**/${i.join("|")}`,{ignore:o.map(l=>`${t}/**/${l}`),unique:!0,onlyFiles:!0});_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Scanning: ${p.length} files of type ${c}`));let f=p.map(l=>n(l).map(N=>({...N,relativePath:l.replace(`${t}/`,"")}))).flat();return _chunkZUNVPK23cjs.a.info(_colors2.default.green(`Found: ${f.length} packages and ${f.map(({softwareDevelopmentKits:l=[]})=>l).flat().length} sdks`)),f.map(l=>({...l,type:c,repositoryName:r}))}catch(p){throw new Error(`Error scanning globs ${i} with error: ${p}`)}}))).flat()}exports.a = hn; exports.b = Kn;
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
4
|
+
//# sourceMappingURL=chunk-57L3G2BH.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-LSZQ3OFG.cjs","../src/lib/code-scanning/integrations/cocoaPods.ts","../src/lib/code-scanning/integrations/gradle.ts","../src/lib/code-scanning/integrations/pubspec.ts","../src/lib/code-scanning/integrations/kotlin.ts"],"names":["POD_TARGET_REGEX","POD_PACKAGE_REGEX","cocoaPods","filePath","fileContents","readFileSync","targets","findAllWithRegex","packages","target","ind","CodePackageType","pkg","GRADLE_IMPLEMENTATION_REGEX","GRADLE_PLUGIN_REGEX","GRADLE_IMPLEMENTATION_GROUP_REGEX","GRADLE_APPLICATION_NAME_REGEX","gradle","directory","dirname","targetPlugins","targetGroups","applications"],"mappings":"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","file":"/home/runner/work/cli/cli/dist/chunk-LSZQ3OFG.cjs","sourcesContent":[null,"import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { CodePackageSdk } from '../../../codecs';\nimport { findAllWithRegex } from '@transcend-io/type-utils';\nimport { CodePackageType } from '@transcend-io/privacy-types';\n\nconst POD_TARGET_REGEX = /target ('|\")(.*?)('|\")/;\nconst POD_PACKAGE_REGEX = /pod ('|\")(.*?)('|\")(, ('|\")~> (.+?)('|\")|)/;\n\nexport const cocoaPods: CodeScanningConfig = {\n supportedFiles: ['Podfile'],\n ignoreDirs: ['Pods'],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n\n const targets = findAllWithRegex(\n {\n value: new RegExp(POD_TARGET_REGEX, 'g'),\n matches: ['quote1', 'name', 'quote2'],\n },\n fileContents,\n );\n const packages = findAllWithRegex(\n {\n value: new RegExp(POD_PACKAGE_REGEX, 'g'),\n matches: [\n 'quote1',\n 'name',\n 'quote2',\n 'extra',\n 'quote3',\n 'version',\n 'quote4',\n ],\n },\n fileContents,\n );\n\n const deps: CodePackageSdk[] = targets.map((target, ind) => ({\n name: target.name,\n type: CodePackageType.CocoaPods,\n softwareDevelopmentKits: packages\n .filter(\n (pkg) =>\n pkg.matchIndex > target.matchIndex &&\n (!targets[ind + 1] || pkg.matchIndex < targets[ind + 1].matchIndex),\n )\n .map((pkg) => ({\n name: pkg.name,\n version: pkg.version,\n })),\n }));\n\n return deps;\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { findAllWithRegex } from '@transcend-io/type-utils';\nimport { dirname } from 'node:path';\n\nconst GRADLE_IMPLEMENTATION_REGEX =\n /implementation( *)('|\")(.+?):(.+?):(.+?|)('|\")/;\nconst GRADLE_PLUGIN_REGEX = /apply plugin: *('|\")(.+?)(:(.+?)|)('|\")/;\nconst GRADLE_IMPLEMENTATION_GROUP_REGEX =\n /implementation group:( *)('|\")(.+?)('|\"),( *)name:( *)('|\")(.+?)('|\"),( *)version:( *)('|\")(.+?)('|\")/;\nconst GRADLE_APPLICATION_NAME_REGEX = /applicationId( *)\"(.+?)\"/;\n\n/**\n * So far, there are three ways of defining dependencies that is supported\n * implementation group: 'org.eclipse.jdt', name: 'org.eclipse.jdt.core', version: '3.28.0'\n * or\n * implementation 'com.google.firebase:firebase-analytics:18.0.0'\n * or\n * apply plugin: 'com.google.gms.google-services'\n *\n * single and double quotes are both recognized\n */\nexport const gradle: CodeScanningConfig = {\n supportedFiles: ['build.gradle**'],\n ignoreDirs: [\n 'gradle-app.setting',\n 'gradle-wrapper.jar',\n 'gradle-wrapper.properties',\n ],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n const directory = dirname(filePath);\n\n const targets = findAllWithRegex(\n {\n value: new RegExp(GRADLE_IMPLEMENTATION_REGEX, 'g'),\n matches: ['space', 'quote1', 'name', 'path', 'version', 'quote2'],\n },\n fileContents,\n );\n const targetPlugins = findAllWithRegex(\n {\n value: new RegExp(GRADLE_PLUGIN_REGEX, 'g'),\n matches: ['quote1', 'name', 'group', 'version', 'quote2'],\n },\n fileContents,\n );\n const targetGroups = findAllWithRegex(\n {\n value: new RegExp(GRADLE_IMPLEMENTATION_GROUP_REGEX, 'g'),\n matches: [\n 'space1',\n 'quote1',\n 'group',\n 'quote2',\n 'space2',\n 'space3',\n 'quote3',\n 'name',\n 'quote4',\n 'space4',\n 'space5',\n 'quote5',\n 'version',\n 'quote6',\n ],\n },\n fileContents,\n );\n const applications = findAllWithRegex(\n {\n value: new RegExp(GRADLE_APPLICATION_NAME_REGEX, 'g'),\n matches: ['space', 'name'],\n },\n fileContents,\n );\n if (applications.length > 1) {\n throw new Error(`Expected only one applicationId per file: ${filePath}`);\n }\n\n return [\n {\n name: applications[0]?.name || directory.split('/').pop()!,\n softwareDevelopmentKits: [\n ...targets,\n ...targetGroups,\n ...targetPlugins,\n ].map((target) => ({\n name: target.name,\n version: target.version || undefined,\n })),\n },\n ];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { CodePackageType } from '@transcend-io/privacy-types';\nimport yaml from 'js-yaml';\nimport { dirname } from 'node:path';\n\n/**\n * Remove YAML comments from a string\n *\n * @param yamlString - YAML string\n * @returns String without comments\n */\nfunction removeYAMLComments(yamlString: string): string {\n return yamlString\n .split('\\n')\n .map((line) => {\n // Remove inline comments\n const commentIndex = line.indexOf('#');\n if (commentIndex > -1) {\n // Check if '#' is not inside a string\n if (\n !line.substring(0, commentIndex).includes('\"') &&\n !line.substring(0, commentIndex).includes(\"'\")\n ) {\n return line.substring(0, commentIndex).trim();\n }\n }\n return line;\n })\n .filter((line) => line.length > 0)\n .join('\\n');\n}\n\nexport const pubspec: CodeScanningConfig = {\n supportedFiles: ['pubspec.yml'],\n ignoreDirs: ['build'],\n scanFunction: (filePath) => {\n const directory = dirname(filePath);\n const fileContents = readFileSync(filePath, 'utf-8');\n const {\n name,\n description,\n dev_dependencies = {},\n dependencies = {},\n } = yaml.load(removeYAMLComments(fileContents)) as {\n /** Name */\n name?: string;\n /** Description */\n description?: string;\n /** Dev dependencies */\n dev_dependencies?: { [k in string]: number | Record<string, string> };\n /** Dependencies */\n dependencies?: { [k in string]: number | Record<string, string> };\n };\n return [\n {\n name: name || directory.split('/').pop()!,\n description,\n type: CodePackageType.RequirementsTxt,\n softwareDevelopmentKits: [\n ...Object.entries(dependencies).map(([name, version]) => ({\n name,\n version:\n typeof version === 'string'\n ? version\n : typeof version === 'number'\n ? version.toString()\n : version?.sdk,\n })),\n ...Object.entries(dev_dependencies).map(([name, version]) => ({\n name,\n version:\n typeof version === 'string'\n ? version\n : typeof version === 'number'\n ? version.toString()\n : version?.sdk,\n isDevDependency: true,\n })),\n ],\n },\n ];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { dirname } from 'node:path';\nimport { CodeScanningConfig } from '../types';\nimport { findAllWithRegex } from '@transcend-io/type-utils';\n\n/**\n * Kotlin DSL (build.gradle.kts) dependency & plugin parsing\n */\n\nconst KTS_DEP_CONFIGS =\n // eslint-disable-next-line max-len\n '(implementation|api|kapt|ksp|debugImplementation|releaseImplementation|androidTestImplementation|testImplementation|compileOnly|runtimeOnly)';\n\n// e.g. implementation(\"com.google.firebase:firebase-analytics:18.0.0\")\nconst KTS_DEP_STRING_COORDS_REGEX = new RegExp(\n `${KTS_DEP_CONFIGS}\\\\s*\\\\(\\\\s*[\"']([^\"':\\\\s]+):([^\"':\\\\s]+):?([^\"']*)[\"']\\\\s*\\\\)`,\n 'g',\n);\n// captures: [1]=config, [2]=group, [3]=artifact, [4]=version (may be '')\n\n// e.g. implementation(platform(\"com.google.firebase:firebase-bom:33.1.2\"))\nconst KTS_DEP_PLATFORM_REGEX = new RegExp(\n `${KTS_DEP_CONFIGS}\\\\s*\\\\(\\\\s*platform\\\\(\\\\s*[\"']([^\"':\\\\s]+):([^\"':\\\\s]+):?([^\"']*)[\"']\\\\s*\\\\)\\\\s*\\\\)`,\n 'g',\n);\n\n// e.g. implementation(libs.androidx.appcompat) / implementation(libs[\"androidx-core-ktx\"])\nconst KTS_DEP_LIBS_ALIAS_REGEX = new RegExp(\n `${KTS_DEP_CONFIGS}\\\\s*\\\\(\\\\s*libs(?:\\\\.[\\\\w\\\\-\\\\.]+|\\\\[[\"'][^\"']+[\"']\\\\])\\\\s*\\\\)`,\n 'g',\n);\n\n// Plugins:\n// plugins { id(\"com.google.gms.google-services\") version \"4.4.2\" apply false }\n// plugins { id(\"org.jetbrains.kotlin.android\") }\n// apply(plugin = \"newrelic\")\n// plugins { alias(libs.plugins.kotlin.android) }\nconst KTS_PLUGIN_ID_REGEX =\n /id\\s*\\(\\s*[\"']([^\"']+)[\"']\\s*\\)(?:\\s*version\\s*[\"']([^\"']+)[\"'])?/g;\nconst KTS_PLUGIN_APPLY_REGEX =\n /apply\\s*\\(\\s*plugin\\s*=\\s*[\"']([^\"']+)[\"']\\s*\\)/g;\nconst KTS_PLUGIN_ALIAS_REGEX =\n /plugins\\s*\\{[^}]*alias\\s*\\(\\s*libs(?:\\.plugins)?(?:\\.[\\w\\-.]+|\\[[\"'][^\"']+[\"']\\])\\s*\\)[^}]*\\}/g;\n\n// applicationId in Kotlin DSL:\n// applicationId = \"com.foo.bar\"\n// applicationId(\"com.foo.bar\")\nconst KTS_APPLICATION_ID_EQ_REGEX = /applicationId\\s*=\\s*[\"']([^\"']+)[\"']/g;\nconst KTS_APPLICATION_ID_CALL_REGEX =\n /applicationId\\s*\\(\\s*[\"']([^\"']+)[\"']\\s*\\)/g;\n\n/**\n * Input dep entry (partial)\n */\ntype DepInput = {\n /** Name of the dependency */\n name: string;\n /** Version of the dependency */\n version?: string;\n};\n\n/**\n * Helper to normalize a parsed dep entry\n *\n * @param name - name\n * @param version - version\n * @returns normalized entry\n */\nfunction depEntry(name: string, version?: string): DepInput {\n const v =\n version && version.trim().length > 0 && version !== '_'\n ? version.trim()\n : undefined;\n return { name, version: v };\n}\n\nexport const kotlin: CodeScanningConfig = {\n supportedFiles: ['**/build.gradle.kts', '**/*.gradle.kts'],\n ignoreDirs: [\n 'gradle-app.setting',\n 'gradle-wrapper.jar',\n 'gradle-wrapper.properties',\n ],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n const directory = dirname(filePath);\n\n // ---------- applicationId ----------\n const appIds = [\n ...findAllWithRegex(\n { value: KTS_APPLICATION_ID_EQ_REGEX, matches: ['name'] },\n fileContents,\n ),\n ...findAllWithRegex(\n { value: KTS_APPLICATION_ID_CALL_REGEX, matches: ['name'] },\n fileContents,\n ),\n ];\n if (appIds.length > 1) {\n throw new Error(`Expected only one applicationId per file: ${filePath}`);\n }\n const appName = appIds[0]?.name || directory.split('/').pop()!;\n\n // ---------- dependencies ----------\n const deps: Array<DepInput> = [];\n\n // \"group:artifact:version\"\n for (const m of fileContents.matchAll(KTS_DEP_STRING_COORDS_REGEX)) {\n const [, , group, artifact, version] = m;\n deps.push(depEntry(`${group}:${artifact}`, version));\n }\n\n // platform(\"group:artifact:version\")\n for (const m of fileContents.matchAll(KTS_DEP_PLATFORM_REGEX)) {\n const [, , group, artifact, version] = m;\n // Record as regular coord (you may prefer to tag as BoM separately)\n deps.push(depEntry(`${group}:${artifact}`, version));\n }\n\n // libs aliases (version catalogs) — keep alias as name, unknown version\n for (const m of fileContents.matchAll(KTS_DEP_LIBS_ALIAS_REGEX)) {\n // Grab the exact token as name (best-effort)\n const token = m[0]\n .replace(/^[^(]+\\(\\s*/, '')\n .replace(/\\)\\s*$/, '')\n .trim(); // e.g., libs.androidx.appcompat or libs[\"androidx-core-ktx\"]\n deps.push(depEntry(token));\n }\n\n // ---------- plugins ----------\n const plugins: Array<DepInput> = [];\n\n for (const m of fileContents.matchAll(KTS_PLUGIN_ID_REGEX)) {\n const [, pid, pver] = m;\n plugins.push(depEntry(pid, pver));\n }\n\n for (const m of fileContents.matchAll(KTS_PLUGIN_APPLY_REGEX)) {\n const [, pid] = m;\n plugins.push(depEntry(pid));\n }\n\n // alias(libs.plugins...) — keep alias token (no version)\n if (KTS_PLUGIN_ALIAS_REGEX.test(fileContents)) {\n // Collect all alias lines to preserve identifiers; light parse:\n const aliasMatches = fileContents.matchAll(\n /alias\\s*\\(\\s*(libs(?:\\.plugins)?(?:\\.[\\w\\-.]+|\\[[\"'][^\"']+[\"']\\]))\\s*\\)/g,\n );\n for (const m of aliasMatches) {\n plugins.push(depEntry(m[1]));\n }\n }\n\n // ---------- compose final list ----------\n // Merge deps + plugins as \"softwareDevelopmentKits\"\n const softwareDevelopmentKits = [...deps, ...plugins]\n // de-dup by name+version\n .reduce(\n (acc, cur) => {\n const key = `${cur.name}@@${cur.version || ''}`;\n if (!acc.map.has(key)) {\n acc.map.set(key, cur);\n acc.list.push(cur);\n }\n return acc;\n },\n {\n map: new Map<string, DepInput>(),\n list: [] as Array<DepInput>,\n },\n ).list;\n\n return [\n {\n name: appName,\n softwareDevelopmentKits,\n },\n ];\n },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-57L3G2BH.cjs","../src/lib/code-scanning/integrations/cocoaPods.ts","../src/lib/code-scanning/integrations/gradle.ts","../src/lib/code-scanning/integrations/pubspec.ts","../src/lib/code-scanning/integrations/kotlin.ts"],"names":["POD_TARGET_REGEX","POD_PACKAGE_REGEX","cocoaPods","filePath","fileContents","readFileSync","targets","findAllWithRegex","packages","target","ind","CodePackageType","pkg","GRADLE_IMPLEMENTATION_REGEX","GRADLE_PLUGIN_REGEX","GRADLE_IMPLEMENTATION_GROUP_REGEX","GRADLE_APPLICATION_NAME_REGEX","gradle","directory","dirname","targetPlugins","targetGroups","applications"],"mappings":"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","file":"/home/runner/work/cli/cli/dist/chunk-57L3G2BH.cjs","sourcesContent":[null,"import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { CodePackageSdk } from '../../../codecs';\nimport { findAllWithRegex } from '@transcend-io/type-utils';\nimport { CodePackageType } from '@transcend-io/privacy-types';\n\nconst POD_TARGET_REGEX = /target ('|\")(.*?)('|\")/;\nconst POD_PACKAGE_REGEX = /pod ('|\")(.*?)('|\")(, ('|\")~> (.+?)('|\")|)/;\n\nexport const cocoaPods: CodeScanningConfig = {\n supportedFiles: ['Podfile'],\n ignoreDirs: ['Pods'],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n\n const targets = findAllWithRegex(\n {\n value: new RegExp(POD_TARGET_REGEX, 'g'),\n matches: ['quote1', 'name', 'quote2'],\n },\n fileContents,\n );\n const packages = findAllWithRegex(\n {\n value: new RegExp(POD_PACKAGE_REGEX, 'g'),\n matches: [\n 'quote1',\n 'name',\n 'quote2',\n 'extra',\n 'quote3',\n 'version',\n 'quote4',\n ],\n },\n fileContents,\n );\n\n const deps: CodePackageSdk[] = targets.map((target, ind) => ({\n name: target.name,\n type: CodePackageType.CocoaPods,\n softwareDevelopmentKits: packages\n .filter(\n (pkg) =>\n pkg.matchIndex > target.matchIndex &&\n (!targets[ind + 1] || pkg.matchIndex < targets[ind + 1].matchIndex),\n )\n .map((pkg) => ({\n name: pkg.name,\n version: pkg.version,\n })),\n }));\n\n return deps;\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { findAllWithRegex } from '@transcend-io/type-utils';\nimport { dirname } from 'node:path';\n\nconst GRADLE_IMPLEMENTATION_REGEX =\n /implementation( *)('|\")(.+?):(.+?):(.+?|)('|\")/;\nconst GRADLE_PLUGIN_REGEX = /apply plugin: *('|\")(.+?)(:(.+?)|)('|\")/;\nconst GRADLE_IMPLEMENTATION_GROUP_REGEX =\n /implementation group:( *)('|\")(.+?)('|\"),( *)name:( *)('|\")(.+?)('|\"),( *)version:( *)('|\")(.+?)('|\")/;\nconst GRADLE_APPLICATION_NAME_REGEX = /applicationId( *)\"(.+?)\"/;\n\n/**\n * So far, there are three ways of defining dependencies that is supported\n * implementation group: 'org.eclipse.jdt', name: 'org.eclipse.jdt.core', version: '3.28.0'\n * or\n * implementation 'com.google.firebase:firebase-analytics:18.0.0'\n * or\n * apply plugin: 'com.google.gms.google-services'\n *\n * single and double quotes are both recognized\n */\nexport const gradle: CodeScanningConfig = {\n supportedFiles: ['build.gradle**'],\n ignoreDirs: [\n 'gradle-app.setting',\n 'gradle-wrapper.jar',\n 'gradle-wrapper.properties',\n ],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n const directory = dirname(filePath);\n\n const targets = findAllWithRegex(\n {\n value: new RegExp(GRADLE_IMPLEMENTATION_REGEX, 'g'),\n matches: ['space', 'quote1', 'name', 'path', 'version', 'quote2'],\n },\n fileContents,\n );\n const targetPlugins = findAllWithRegex(\n {\n value: new RegExp(GRADLE_PLUGIN_REGEX, 'g'),\n matches: ['quote1', 'name', 'group', 'version', 'quote2'],\n },\n fileContents,\n );\n const targetGroups = findAllWithRegex(\n {\n value: new RegExp(GRADLE_IMPLEMENTATION_GROUP_REGEX, 'g'),\n matches: [\n 'space1',\n 'quote1',\n 'group',\n 'quote2',\n 'space2',\n 'space3',\n 'quote3',\n 'name',\n 'quote4',\n 'space4',\n 'space5',\n 'quote5',\n 'version',\n 'quote6',\n ],\n },\n fileContents,\n );\n const applications = findAllWithRegex(\n {\n value: new RegExp(GRADLE_APPLICATION_NAME_REGEX, 'g'),\n matches: ['space', 'name'],\n },\n fileContents,\n );\n if (applications.length > 1) {\n throw new Error(`Expected only one applicationId per file: ${filePath}`);\n }\n\n return [\n {\n name: applications[0]?.name || directory.split('/').pop()!,\n softwareDevelopmentKits: [\n ...targets,\n ...targetGroups,\n ...targetPlugins,\n ].map((target) => ({\n name: target.name,\n version: target.version || undefined,\n })),\n },\n ];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { CodeScanningConfig } from '../types';\nimport { CodePackageType } from '@transcend-io/privacy-types';\nimport yaml from 'js-yaml';\nimport { dirname } from 'node:path';\n\n/**\n * Remove YAML comments from a string\n *\n * @param yamlString - YAML string\n * @returns String without comments\n */\nfunction removeYAMLComments(yamlString: string): string {\n return yamlString\n .split('\\n')\n .map((line) => {\n // Remove inline comments\n const commentIndex = line.indexOf('#');\n if (commentIndex > -1) {\n // Check if '#' is not inside a string\n if (\n !line.substring(0, commentIndex).includes('\"') &&\n !line.substring(0, commentIndex).includes(\"'\")\n ) {\n return line.substring(0, commentIndex).trim();\n }\n }\n return line;\n })\n .filter((line) => line.length > 0)\n .join('\\n');\n}\n\nexport const pubspec: CodeScanningConfig = {\n supportedFiles: ['pubspec.yml'],\n ignoreDirs: ['build'],\n scanFunction: (filePath) => {\n const directory = dirname(filePath);\n const fileContents = readFileSync(filePath, 'utf-8');\n const {\n name,\n description,\n dev_dependencies = {},\n dependencies = {},\n } = yaml.load(removeYAMLComments(fileContents)) as {\n /** Name */\n name?: string;\n /** Description */\n description?: string;\n /** Dev dependencies */\n dev_dependencies?: { [k in string]: number | Record<string, string> };\n /** Dependencies */\n dependencies?: { [k in string]: number | Record<string, string> };\n };\n return [\n {\n name: name || directory.split('/').pop()!,\n description,\n type: CodePackageType.RequirementsTxt,\n softwareDevelopmentKits: [\n ...Object.entries(dependencies).map(([name, version]) => ({\n name,\n version:\n typeof version === 'string'\n ? version\n : typeof version === 'number'\n ? version.toString()\n : version?.sdk,\n })),\n ...Object.entries(dev_dependencies).map(([name, version]) => ({\n name,\n version:\n typeof version === 'string'\n ? version\n : typeof version === 'number'\n ? version.toString()\n : version?.sdk,\n isDevDependency: true,\n })),\n ],\n },\n ];\n },\n};\n","import { readFileSync } from 'node:fs';\nimport { dirname } from 'node:path';\nimport { CodeScanningConfig } from '../types';\nimport { findAllWithRegex } from '@transcend-io/type-utils';\n\n/**\n * Kotlin DSL (build.gradle.kts) dependency & plugin parsing\n */\n\nconst KTS_DEP_CONFIGS =\n // eslint-disable-next-line max-len\n '(implementation|api|kapt|ksp|debugImplementation|releaseImplementation|androidTestImplementation|testImplementation|compileOnly|runtimeOnly)';\n\n// e.g. implementation(\"com.google.firebase:firebase-analytics:18.0.0\")\nconst KTS_DEP_STRING_COORDS_REGEX = new RegExp(\n `${KTS_DEP_CONFIGS}\\\\s*\\\\(\\\\s*[\"']([^\"':\\\\s]+):([^\"':\\\\s]+):?([^\"']*)[\"']\\\\s*\\\\)`,\n 'g',\n);\n// captures: [1]=config, [2]=group, [3]=artifact, [4]=version (may be '')\n\n// e.g. implementation(platform(\"com.google.firebase:firebase-bom:33.1.2\"))\nconst KTS_DEP_PLATFORM_REGEX = new RegExp(\n `${KTS_DEP_CONFIGS}\\\\s*\\\\(\\\\s*platform\\\\(\\\\s*[\"']([^\"':\\\\s]+):([^\"':\\\\s]+):?([^\"']*)[\"']\\\\s*\\\\)\\\\s*\\\\)`,\n 'g',\n);\n\n// e.g. implementation(libs.androidx.appcompat) / implementation(libs[\"androidx-core-ktx\"])\nconst KTS_DEP_LIBS_ALIAS_REGEX = new RegExp(\n `${KTS_DEP_CONFIGS}\\\\s*\\\\(\\\\s*libs(?:\\\\.[\\\\w\\\\-\\\\.]+|\\\\[[\"'][^\"']+[\"']\\\\])\\\\s*\\\\)`,\n 'g',\n);\n\n// Plugins:\n// plugins { id(\"com.google.gms.google-services\") version \"4.4.2\" apply false }\n// plugins { id(\"org.jetbrains.kotlin.android\") }\n// apply(plugin = \"newrelic\")\n// plugins { alias(libs.plugins.kotlin.android) }\nconst KTS_PLUGIN_ID_REGEX =\n /id\\s*\\(\\s*[\"']([^\"']+)[\"']\\s*\\)(?:\\s*version\\s*[\"']([^\"']+)[\"'])?/g;\nconst KTS_PLUGIN_APPLY_REGEX =\n /apply\\s*\\(\\s*plugin\\s*=\\s*[\"']([^\"']+)[\"']\\s*\\)/g;\nconst KTS_PLUGIN_ALIAS_REGEX =\n /plugins\\s*\\{[^}]*alias\\s*\\(\\s*libs(?:\\.plugins)?(?:\\.[\\w\\-.]+|\\[[\"'][^\"']+[\"']\\])\\s*\\)[^}]*\\}/g;\n\n// applicationId in Kotlin DSL:\n// applicationId = \"com.foo.bar\"\n// applicationId(\"com.foo.bar\")\nconst KTS_APPLICATION_ID_EQ_REGEX = /applicationId\\s*=\\s*[\"']([^\"']+)[\"']/g;\nconst KTS_APPLICATION_ID_CALL_REGEX =\n /applicationId\\s*\\(\\s*[\"']([^\"']+)[\"']\\s*\\)/g;\n\n/**\n * Input dep entry (partial)\n */\ntype DepInput = {\n /** Name of the dependency */\n name: string;\n /** Version of the dependency */\n version?: string;\n};\n\n/**\n * Helper to normalize a parsed dep entry\n *\n * @param name - name\n * @param version - version\n * @returns normalized entry\n */\nfunction depEntry(name: string, version?: string): DepInput {\n const v =\n version && version.trim().length > 0 && version !== '_'\n ? version.trim()\n : undefined;\n return { name, version: v };\n}\n\nexport const kotlin: CodeScanningConfig = {\n supportedFiles: ['**/build.gradle.kts', '**/*.gradle.kts'],\n ignoreDirs: [\n 'gradle-app.setting',\n 'gradle-wrapper.jar',\n 'gradle-wrapper.properties',\n ],\n scanFunction: (filePath) => {\n const fileContents = readFileSync(filePath, 'utf-8');\n const directory = dirname(filePath);\n\n // ---------- applicationId ----------\n const appIds = [\n ...findAllWithRegex(\n { value: KTS_APPLICATION_ID_EQ_REGEX, matches: ['name'] },\n fileContents,\n ),\n ...findAllWithRegex(\n { value: KTS_APPLICATION_ID_CALL_REGEX, matches: ['name'] },\n fileContents,\n ),\n ];\n if (appIds.length > 1) {\n throw new Error(`Expected only one applicationId per file: ${filePath}`);\n }\n const appName = appIds[0]?.name || directory.split('/').pop()!;\n\n // ---------- dependencies ----------\n const deps: Array<DepInput> = [];\n\n // \"group:artifact:version\"\n for (const m of fileContents.matchAll(KTS_DEP_STRING_COORDS_REGEX)) {\n const [, , group, artifact, version] = m;\n deps.push(depEntry(`${group}:${artifact}`, version));\n }\n\n // platform(\"group:artifact:version\")\n for (const m of fileContents.matchAll(KTS_DEP_PLATFORM_REGEX)) {\n const [, , group, artifact, version] = m;\n // Record as regular coord (you may prefer to tag as BoM separately)\n deps.push(depEntry(`${group}:${artifact}`, version));\n }\n\n // libs aliases (version catalogs) — keep alias as name, unknown version\n for (const m of fileContents.matchAll(KTS_DEP_LIBS_ALIAS_REGEX)) {\n // Grab the exact token as name (best-effort)\n const token = m[0]\n .replace(/^[^(]+\\(\\s*/, '')\n .replace(/\\)\\s*$/, '')\n .trim(); // e.g., libs.androidx.appcompat or libs[\"androidx-core-ktx\"]\n deps.push(depEntry(token));\n }\n\n // ---------- plugins ----------\n const plugins: Array<DepInput> = [];\n\n for (const m of fileContents.matchAll(KTS_PLUGIN_ID_REGEX)) {\n const [, pid, pver] = m;\n plugins.push(depEntry(pid, pver));\n }\n\n for (const m of fileContents.matchAll(KTS_PLUGIN_APPLY_REGEX)) {\n const [, pid] = m;\n plugins.push(depEntry(pid));\n }\n\n // alias(libs.plugins...) — keep alias token (no version)\n if (KTS_PLUGIN_ALIAS_REGEX.test(fileContents)) {\n // Collect all alias lines to preserve identifiers; light parse:\n const aliasMatches = fileContents.matchAll(\n /alias\\s*\\(\\s*(libs(?:\\.plugins)?(?:\\.[\\w\\-.]+|\\[[\"'][^\"']+[\"']\\]))\\s*\\)/g,\n );\n for (const m of aliasMatches) {\n plugins.push(depEntry(m[1]));\n }\n }\n\n // ---------- compose final list ----------\n // Merge deps + plugins as \"softwareDevelopmentKits\"\n const softwareDevelopmentKits = [...deps, ...plugins]\n // de-dup by name+version\n .reduce(\n (acc, cur) => {\n const key = `${cur.name}@@${cur.version || ''}`;\n if (!acc.map.has(key)) {\n acc.map.set(key, cur);\n acc.list.push(cur);\n }\n return acc;\n },\n {\n map: new Map<string, DepInput>(),\n list: [] as Array<DepInput>,\n },\n ).list;\n\n return [\n {\n name: appName,\n softwareDevelopmentKits,\n },\n ];\n },\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkF7QE6D3Tcjs = require('./chunk-F7QE6D3T.cjs');function f(p,{adTechPurposes:m=["SaleOfInfo"],serviceToTitle:s,serviceToSupportedIntegration:r}){let e=[],i=[],n={};p.forEach(t=>{let{service:a,attributes:c=[]}=t;if(!a||a==="internalService")return;let u=c.find(o=>o.key==="Found on Domain");u&&(n[a]||(n[a]=[]),n[a].push(...u.values.map(o=>o.replace("https://","").replace("http://",""))),n[a]=[...new Set(n[a])]),_chunkF7QE6D3Tcjs.i.call(void 0, t.trackingPurposes,m).length>0?(i.push(a),e.includes(a)&&(e=e.filter(o=>o!==a))):i.includes(a)||e.push(a)});let h=[...new Set(i)].map(t=>({title:s[t],...r[t]?{integrationName:t}:{integrationName:"promptAPerson","outer-type":t},attributes:[{key:"Tech Type",values:["Ad Tech"]},{key:"Found On Domain",values:n[t]||[]}]}));return{siteTechDataSilos:[...new Set(e)].map(t=>({title:s[t],...r[t]?{integrationName:t}:{integrationName:"promptAPerson",outerType:t},attributes:[{key:"Tech Type",values:["Site Tech"]},{key:"Found On Domain",values:n[t]||[]}]})),adTechDataSilos:h}}exports.a = f;
|
|
2
|
+
//# sourceMappingURL=chunk-BBIQYUL2.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-BBIQYUL2.cjs","../src/lib/consent-manager/dataFlowsToDataSilos.ts"],"names":["dataFlowsToDataSilos","inputs","adTechPurposes","serviceToTitle","serviceToSupportedIntegration","siteTechIntegrations","adTechIntegrations","serviceToFoundOnDomain","flow","service","attributes","foundOnDomain","attr","v","union_default","s","adTechDataSilos"],"mappings":"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","file":"/home/runner/work/cli/cli/dist/chunk-BBIQYUL2.cjs","sourcesContent":[null,"import { DataFlowInput, DataSiloInput } from '../../codecs';\nimport { union } from 'lodash-es';\nimport { IndexedCatalogs } from '../graphql';\n\n/**\n * Convert data flow configurations into a set of data silo configurations\n *\n * @param inputs - Data flow input to convert to data silos\n * @param options - Additional options\n * @returns Business entity configuration input\n */\nexport function dataFlowsToDataSilos(\n inputs: DataFlowInput[],\n {\n adTechPurposes = ['SaleOfInfo'],\n serviceToTitle,\n serviceToSupportedIntegration,\n }: IndexedCatalogs & {\n /** List of purposes that are considered \"Ad Tech\" */\n adTechPurposes?: string[];\n },\n): {\n /** List of data silo configurations for site-tech services */\n siteTechDataSilos: DataSiloInput[];\n /** List of data silo configurations for ad-tech services */\n adTechDataSilos: DataSiloInput[];\n} {\n // List of site tech integrations\n let siteTechIntegrations: string[] = [];\n\n // List of ad tech integrations\n const adTechIntegrations: string[] = [];\n\n // Mapping from service name to list of\n const serviceToFoundOnDomain: { [k in string]: string[] } = {};\n\n // iterate over each flow\n inputs.forEach((flow) => {\n // process data flows with services\n const { service, attributes = [] } = flow;\n if (!service || service === 'internalService') {\n return;\n }\n\n // create mapping to found on domain\n const foundOnDomain = attributes.find(\n (attr) => attr.key === 'Found on Domain',\n );\n\n // Create a list of all domains where the data flow was found\n if (foundOnDomain) {\n if (!serviceToFoundOnDomain[service]) {\n serviceToFoundOnDomain[service] = [];\n }\n serviceToFoundOnDomain[service]!.push(\n ...foundOnDomain.values.map((v) =>\n v.replace('https://', '').replace('http://', ''),\n ),\n );\n serviceToFoundOnDomain[service] = [\n ...new Set(serviceToFoundOnDomain[service]),\n ];\n }\n\n // Keep track of ad tech\n if (union(flow.trackingPurposes, adTechPurposes).length > 0) {\n // add service to ad tech list\n adTechIntegrations.push(service);\n\n // remove from site tech list\n if (siteTechIntegrations.includes(service)) {\n siteTechIntegrations = siteTechIntegrations.filter(\n (s) => s !== service,\n );\n }\n } else if (!adTechIntegrations.includes(service)) {\n // add to site tech list\n siteTechIntegrations.push(service);\n }\n });\n\n // create the list of ad tech integrations\n const adTechDataSilos = [...new Set(adTechIntegrations)].map((service) => ({\n title: serviceToTitle[service],\n ...(serviceToSupportedIntegration[service]\n ? { integrationName: service }\n : { integrationName: 'promptAPerson', 'outer-type': service }),\n attributes: [\n {\n key: 'Tech Type',\n values: ['Ad Tech'],\n },\n {\n key: 'Found On Domain',\n values: serviceToFoundOnDomain[service] || [],\n },\n ],\n }));\n\n // create the list of site tech integrations\n const siteTechDataSilos = [...new Set(siteTechIntegrations)].map(\n (service) => ({\n title: serviceToTitle[service],\n ...(serviceToSupportedIntegration[service]\n ? { integrationName: service }\n : { integrationName: 'promptAPerson', outerType: service }),\n attributes: [\n {\n key: 'Tech Type',\n values: ['Site Tech'],\n },\n {\n key: 'Found On Domain',\n values: serviceToFoundOnDomain[service] || [],\n },\n ],\n }),\n );\n\n return {\n siteTechDataSilos,\n adTechDataSilos,\n };\n}\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkNBXAOUWCcjs = require('./chunk-NBXAOUWC.cjs');var _chunkZUNVPK23cjs = require('./chunk-ZUNVPK23.cjs');var _chunkF7QE6D3Tcjs = require('./chunk-F7QE6D3T.cjs');var _privacytypes = require('@transcend-io/privacy-types');var _bluebird = require('bluebird');var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors);async function te({file:u,auth:s,sombraAuth:g,requestActions:f=[],concurrency:p=100,transcendUrl:n=_chunkF7QE6D3Tcjs.r}){let o=_chunkNBXAOUWCcjs.xc.call(void 0, n,s),e=await _chunkNBXAOUWCcjs.yc.call(void 0, n,s,g);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Pulling manual enrichment requests, filtered for actions: ${f.join(",")}`));let d=await _chunkNBXAOUWCcjs.od.call(void 0, o,{actions:f,statuses:[_privacytypes.RequestStatus.Enriching]}),i=[];await _bluebird.map.call(void 0, d,async t=>{let c=await _chunkNBXAOUWCcjs.id.call(void 0, o,{requestId:t.id});if(c.filter(({status:m})=>m==="ACTION_REQUIRED")){let m=await _chunkNBXAOUWCcjs.ld.call(void 0, o,e,{requestId:t.id});i.push({...t,requestIdentifiers:m,requestEnrichers:c})}},{concurrency:p});let l=i.map(({attributeValues:t,requestIdentifiers:c,requestEnrichers:w,...m})=>({...m,...Object.entries(_chunkF7QE6D3Tcjs.d.call(void 0, c,"name")).reduce((I,[P,$])=>Object.assign(I,{[P]:$.map(({value:C})=>C).join(",")}),{}),...Object.entries(_chunkF7QE6D3Tcjs.d.call(void 0, t,"attributeKey.name")).reduce((I,[P,$])=>Object.assign(I,{[P]:$.map(({name:C})=>C).join(",")}),{})})),a=_chunkF7QE6D3Tcjs.j.call(void 0, l.map(t=>Object.keys(t)).flat());return await _chunkNBXAOUWCcjs.rg.call(void 0, u,l,a),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully wrote ${i.length} requests to file "${u}"`)),i}var _iots = require('io-ts'); var R = _interopRequireWildcard(_iots);var T="https://app.transcend.io/privacy-requests/incoming-requests/",F= exports.b =R.record(R.string,R.string);async function M(u,{id:s,...g},f,p){if(!s){let e=`Request ID must be provided to enricher request.${p?` Found error in row: ${p}`:""}`;throw _chunkZUNVPK23cjs.a.error(_colors2.default.red(e)),new Error(e)}let n=s.toLowerCase(),o=Object.entries(g).reduce((e,[d,i])=>_chunkF7QE6D3Tcjs.j.call(void 0, _chunkNBXAOUWCcjs.pc.call(void 0, i)).length===0?e:Object.assign(e,{[d]:_chunkF7QE6D3Tcjs.j.call(void 0, _chunkNBXAOUWCcjs.pc.call(void 0, i)).map(a=>({value:d==="email"?a.toLowerCase():a}))}),{});try{return await u.post("v1/enrich-identifiers",{headers:{"x-transcend-request-id":n,"x-transcend-enricher-id":f},json:{enrichedIdentifiers:o}}).json(),_chunkZUNVPK23cjs.a.error(_colors2.default.green(`Successfully enriched request: ${T}${n}`)),!0}catch(e){if(typeof e.response.body=="string"&&e.response.body.includes("Cannot update a resolved RequestEnricher"))return _chunkZUNVPK23cjs.a.warn(_colors2.default.magenta(`Skipped enrichment for request: ${T}${n}, request is no longer in the enriching phase.`)),!1;throw _chunkZUNVPK23cjs.a.error(_colors2.default.red(`Failed to enricher identifiers for request with id: ${T}${n} - ${e.message} - ${e.response.body}`)),e}}async function ge({file:u,auth:s,sombraAuth:g,enricherId:f,markSilent:p,concurrency:n=100,transcendUrl:o=_chunkF7QE6D3Tcjs.r}){let e=await _chunkNBXAOUWCcjs.yc.call(void 0, o,s,g),d=_chunkNBXAOUWCcjs.xc.call(void 0, o,s);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Reading "${u}" from disk`));let i=_chunkNBXAOUWCcjs.sc.call(void 0, u,F);_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Enriching "${i.length}" privacy requests.`));let l=0,a=0,t=0;if(await _bluebird.map.call(void 0, i,async(c,w)=>{try{p&&(await _chunkNBXAOUWCcjs.ug.call(void 0, d,_chunkNBXAOUWCcjs.Z,{input:{id:c.id,isSilent:!0}}),_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Mark request as silent mode - ${c.id}`))),await M(e,c,f,w)?l+=1:a+=1}catch (e2){t+=1}},{concurrency:n}),_chunkZUNVPK23cjs.a.info(_colors2.default.green(`Successfully notified Transcend!
|
|
2
2
|
Success count: ${l}.`)),a>0&&_chunkZUNVPK23cjs.a.info(_colors2.default.magenta(`Skipped count: ${a}.`)),t>0)throw _chunkZUNVPK23cjs.a.info(_colors2.default.red(`Error Count: ${t}.`)),new Error(`Failed to enrich: ${t} requests.`);return i.length}exports.a = te; exports.b = F; exports.c = M; exports.d = ge;
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
//# sourceMappingURL=chunk-BO6JY2EM.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-BO6JY2EM.cjs","../src/lib/manual-enrichment/pullManualEnrichmentIdentifiersToCsv.ts","../src/lib/manual-enrichment/pushManualEnrichmentIdentifiersFromCsv.ts"],"names":["pullManualEnrichmentIdentifiersToCsv","file","auth","sombraAuth","requestActions","concurrency","transcendUrl","DEFAULT_TRANSCEND_API","client","buildTranscendGraphQLClient","sombra","createSombraGotInstance","logger","colors"],"mappings":"AAAA,mfAAgH,wDAAyC,wDAAuD,2DCAnK,oCACzB,gFACD,MA6BnB,SAAsBA,EAAAA,CAAqC,CACzD,IAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CAAiB,CAAC,CAAA,CAClB,WAAA,CAAAC,CAAAA,CAAc,GAAA,CACd,YAAA,CAAAC,CAAAA,CAAeC,mBACjB,CAAA,CAa6C,CAE3C,IAAMC,CAAAA,CAASC,kCAAAA,CAA4BH,CAAcJ,CAAI,CAAA,CACvDQ,CAAAA,CAAS,MAAMC,kCAAAA,CAAwBL,CAAcJ,CAAAA,CAAMC,CAAU,CAAA,CAE3ES,mBAAAA,CAAO,IAAA,CACLC,gBAAAA,CAAO,OAAA,CACL,CAAA,0DAAA,EAA6DT,CAAAA,CAAe,IAAA,CAC1E,GACF,CAAC,CAAA,CAAA;ACuDP,gBAAA","file":"/home/runner/work/cli/cli/dist/chunk-BO6JY2EM.cjs","sourcesContent":[null,"import { RequestAction, RequestStatus } from '@transcend-io/privacy-types';\nimport { map } from 'bluebird';\nimport colors from 'colors';\nimport { groupBy, uniq } from 'lodash-es';\nimport { DEFAULT_TRANSCEND_API } from '../../constants';\nimport { writeCsv } from '../helpers/writeCsv';\nimport {\n PrivacyRequest,\n RequestEnricher,\n RequestIdentifier,\n buildTranscendGraphQLClient,\n createSombraGotInstance,\n fetchAllRequestEnrichers,\n fetchAllRequestIdentifiers,\n fetchAllRequests,\n} from '../graphql';\nimport { logger } from '../../logger';\n\nexport interface PrivacyRequestWithIdentifiers extends PrivacyRequest {\n /** Request Enrichers */\n requestEnrichers: RequestEnricher[];\n /** Request Identifiers */\n requestIdentifiers: RequestIdentifier[];\n}\n\n/**\n * Pull the set of manual enrichment jobs to CSV\n *\n * @param options - Options\n * @returns List of requests with identifiers\n */\nexport async function pullManualEnrichmentIdentifiersToCsv({\n file,\n auth,\n sombraAuth,\n requestActions = [],\n concurrency = 100,\n transcendUrl = DEFAULT_TRANSCEND_API,\n}: {\n /** CSV file path */\n file: string;\n /** Transcend API key authentication */\n auth: string;\n /** Sombra API key */\n sombraAuth?: string;\n /** Concurrency */\n concurrency?: number;\n /** The request actions to fetch */\n requestActions?: RequestAction[];\n /** API URL for Transcend backend */\n transcendUrl?: string;\n}): Promise<PrivacyRequestWithIdentifiers[]> {\n // Find all requests made before createdAt that are in a removing data state\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n const sombra = await createSombraGotInstance(transcendUrl, auth, sombraAuth);\n\n logger.info(\n colors.magenta(\n `Pulling manual enrichment requests, filtered for actions: ${requestActions.join(\n ',',\n )}`,\n ),\n );\n\n // Pull all privacy requests\n const allRequests = await fetchAllRequests(client, {\n actions: requestActions,\n statuses: [RequestStatus.Enriching],\n });\n\n // Requests to save\n const savedRequests: PrivacyRequestWithIdentifiers[] = [];\n\n // Filter down requests to what is needed\n await map(\n allRequests,\n async (request) => {\n // Fetch enrichers\n const requestEnrichers = await fetchAllRequestEnrichers(client, {\n requestId: request.id,\n });\n\n // Check if manual enrichment exists for that request\n const hasManualEnrichment = requestEnrichers.filter(\n ({ status }) => status === 'ACTION_REQUIRED',\n );\n\n // Save request to queue\n if (hasManualEnrichment) {\n const requestIdentifiers = await fetchAllRequestIdentifiers(\n client,\n sombra,\n {\n requestId: request.id,\n },\n );\n savedRequests.push({\n ...request,\n requestIdentifiers,\n requestEnrichers,\n });\n }\n },\n {\n concurrency,\n },\n );\n\n const data = savedRequests.map(\n ({\n attributeValues,\n requestIdentifiers,\n requestEnrichers, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...request\n }) => ({\n ...request,\n // flatten identifiers\n ...Object.entries(groupBy(requestIdentifiers, 'name')).reduce(\n (acc, [key, values]) =>\n Object.assign(acc, {\n [key]: values.map(({ value }) => value).join(','),\n }),\n {},\n ),\n // flatten attributes\n ...Object.entries(groupBy(attributeValues, 'attributeKey.name')).reduce(\n (acc, [key, values]) =>\n Object.assign(acc, {\n [key]: values.map(({ name }) => name).join(','),\n }),\n {},\n ),\n }),\n );\n\n // Write out to CSV\n const headers = uniq(data.map((d) => Object.keys(d)).flat());\n await writeCsv(file, data, headers);\n\n logger.info(\n colors.green(\n `Successfully wrote ${savedRequests.length} requests to file \"${file}\"`,\n ),\n );\n\n return savedRequests;\n}\n","import colors from 'colors';\nimport { map } from 'bluebird';\nimport { logger } from '../../logger';\nimport {\n UPDATE_PRIVACY_REQUEST,\n buildTranscendGraphQLClient,\n createSombraGotInstance,\n makeGraphQLRequest,\n} from '../graphql';\nimport {\n enrichPrivacyRequest,\n EnrichPrivacyRequest,\n} from './enrichPrivacyRequest';\nimport { readCsv } from '../requests';\nimport { DEFAULT_TRANSCEND_API } from '../../constants';\n\n/**\n * Push a CSV of enriched requests back into Transcend\n *\n * @param options - Options\n * @returns Number of items processed\n */\nexport async function pushManualEnrichmentIdentifiersFromCsv({\n file,\n auth,\n sombraAuth,\n enricherId,\n markSilent,\n concurrency = 100,\n transcendUrl = DEFAULT_TRANSCEND_API,\n}: {\n /** CSV file path */\n file: string;\n /** Transcend API key authentication */\n auth: string;\n /** ID of enricher being uploaded to */\n enricherId: string;\n /** Sombra API key authentication */\n sombraAuth?: string;\n /** Concurrency */\n concurrency?: number;\n /** API URL for Transcend backend */\n transcendUrl?: string;\n /** Mark requests in silent mode before enriching */\n markSilent?: boolean;\n}): Promise<number> {\n // Create sombra instance to communicate with\n const sombra = await createSombraGotInstance(transcendUrl, auth, sombraAuth);\n const client = buildTranscendGraphQLClient(transcendUrl, auth);\n\n // Read from CSV\n logger.info(colors.magenta(`Reading \"${file}\" from disk`));\n const activeResults = readCsv(file, EnrichPrivacyRequest);\n\n // Notify Transcend\n logger.info(\n colors.magenta(`Enriching \"${activeResults.length}\" privacy requests.`),\n );\n\n let successCount = 0;\n let skippedCount = 0;\n let errorCount = 0;\n\n await map(\n activeResults,\n async (request, index) => {\n try {\n // Mark requests in silent mode before a certain date\n if (markSilent) {\n await makeGraphQLRequest(client, UPDATE_PRIVACY_REQUEST, {\n input: {\n id: request.id,\n isSilent: true,\n },\n });\n\n logger.info(\n colors.magenta(`Mark request as silent mode - ${request.id}`),\n );\n }\n\n const result = await enrichPrivacyRequest(\n sombra,\n request,\n enricherId,\n index,\n );\n if (result) {\n successCount += 1;\n } else {\n skippedCount += 1;\n }\n } catch (err) {\n errorCount += 1;\n }\n },\n { concurrency },\n );\n\n logger.info(\n colors.green(\n `Successfully notified Transcend! \\n Success count: ${successCount}.`,\n ),\n );\n\n if (skippedCount > 0) {\n logger.info(colors.magenta(`Skipped count: ${skippedCount}.`));\n }\n\n if (errorCount > 0) {\n logger.info(colors.red(`Error Count: ${errorCount}.`));\n throw new Error(`Failed to enrich: ${errorCount} requests.`);\n }\n\n return activeResults.length;\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkLU3DKRNKcjs = require('./chunk-LU3DKRNK.cjs');var _typeutils = require('@transcend-io/type-utils');var _jsyaml = require('js-yaml'); var _jsyaml2 = _interopRequireDefault(_jsyaml);var _fs = require('fs');var s=/<<parameters\.(.+?)>>/,i= exports.b ="parameters";function u(e,t,a=""){let r=e;if(Object.entries(t).forEach(([n,p])=>{r=r.split(`<<${i}.${n}>>`).join(p)}),s.test(r)){let[,n]=s.exec(r)||[];throw new Error(`Found variable that was not set: ${n}.
|
|
2
2
|
Make sure you are passing all parameters through the --${i}=${n}:value-for-param flag.
|
|
3
|
-
${a}`)}return r}function b(e,t={}){let a=_fs.readFileSync.call(void 0, e,"utf-8"),r=u(a,t,`Also check that there are no extra variables defined in your yaml: ${e}`);return _typeutils.decodeCodec.call(void 0,
|
|
4
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
${a}`)}return r}function b(e,t={}){let a=_fs.readFileSync.call(void 0, e,"utf-8"),r=u(a,t,`Also check that there are no extra variables defined in your yaml: ${e}`);return _typeutils.decodeCodec.call(void 0, _chunkLU3DKRNKcjs.ha,_jsyaml2.default.load(r))}function h(e,t){_fs.writeFileSync.call(void 0, e,_jsyaml2.default.dump(_typeutils.decodeCodec.call(void 0, _chunkLU3DKRNKcjs.ha,t)))}exports.a = s; exports.b = i; exports.c = u; exports.d = b; exports.e = h;
|
|
4
|
+
//# sourceMappingURL=chunk-BQSBPO63.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/cli/cli/dist/chunk-BQSBPO63.cjs","../src/lib/readTranscendYaml.ts"],"names":["VARIABLE_PARAMETERS_REGEXP","VARIABLE_PARAMETERS_NAME","replaceVariablesInYaml","input","variables","extraErrorMessage","contents","name","value"],"mappings":"AAAA,iOAAyC,qDCAA,iFACxB,wBAC2B,IAG/BA,CAAAA,CAA6B,uBAAA,CAC7BC,CAAAA,aAA2B,YAAA,CAWjC,SAASC,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CAAoB,EAAA,CACZ,CACR,IAAIC,CAAAA,CAAWH,CAAAA,CASf,EAAA,CAPA,MAAA,CAAO,OAAA,CAAQC,CAAS,CAAA,CAAE,OAAA,CAAQ,CAAC,CAACG,CAAAA,CAAMC,CAAK,CAAA,CAAA,EAAM,CACnDF,CAAAA,CAAWA,CAAAA,CACR,KAAA,CAAM,CAAA,EAAA,EAAKL,CAAwB,CAAA,CAAA,EAAIM,CAAI,CAAA,EAAA,CAAI,CAAA,CAC/C,IAAA,CAAKC,CAAK,CACf,CAAC,CAAA,CAGGR,CAAAA,CAA2B,IAAA,CAAKM,CAAQ,CAAA,CAAG,CAC7C,GAAM,CAAC,CAAEC,CAAI,CAAA,CAAIP,CAAAA,CAA2B,IAAA,CAAKM,CAAQ,CAAA,EAAK,CAAC,CAAA,CAC/D,MAAM,IAAI,KAAA,CACR,CAAA,iCAAA,EAAoCC,CAAI,CAAA;AAAA,uDAAA,EACWN,CAAwB,CAAA,CAAA,EAAIM,CAAI,CAAA;AAAA,EACvFF,CAAiB,CAAA,CAAA","file":"/home/runner/work/cli/cli/dist/chunk-BQSBPO63.cjs","sourcesContent":[null,"import { decodeCodec, ObjByString } from '@transcend-io/type-utils';\nimport yaml from 'js-yaml';\nimport { readFileSync, writeFileSync } from 'node:fs';\nimport { TranscendInput } from '../codecs';\n\nexport const VARIABLE_PARAMETERS_REGEXP = /<<parameters\\.(.+?)>>/;\nexport const VARIABLE_PARAMETERS_NAME = 'parameters';\n\n/**\n * Function that replaces variables in a text file.\n * Throws error if there are variables that have not been replaced\n *\n * @param input - Input text\n * @param variables - Variables to replace\n * @param extraErrorMessage - Additional error message text\n * @returns Output text\n */\nexport function replaceVariablesInYaml(\n input: string,\n variables: ObjByString,\n extraErrorMessage = '',\n): string {\n let contents = input;\n // Replace variables\n Object.entries(variables).forEach(([name, value]) => {\n contents = contents\n .split(`<<${VARIABLE_PARAMETERS_NAME}.${name}>>`)\n .join(value);\n });\n\n // Throw error if unfilled variables\n if (VARIABLE_PARAMETERS_REGEXP.test(contents)) {\n const [, name] = VARIABLE_PARAMETERS_REGEXP.exec(contents) || [];\n throw new Error(\n `Found variable that was not set: ${name}.\nMake sure you are passing all parameters through the --${VARIABLE_PARAMETERS_NAME}=${name}:value-for-param flag.\n${extraErrorMessage}`,\n );\n }\n\n return contents;\n}\n\n/**\n * Read in the contents of a yaml file and validate that the shape\n * of the yaml file matches the codec API\n *\n * @param filePath - Path to yaml file\n * @param variables - Variables to fill in\n * @returns The contents of the yaml file, type-checked\n */\nexport function readTranscendYaml(\n filePath: string,\n variables: ObjByString = {},\n): TranscendInput {\n // Read in contents\n const fileContents = readFileSync(filePath, 'utf-8');\n\n // Replace variables\n const replacedVariables = replaceVariablesInYaml(\n fileContents,\n variables,\n `Also check that there are no extra variables defined in your yaml: ${filePath}`,\n );\n\n // Validate shape\n return decodeCodec(TranscendInput, yaml.load(replacedVariables));\n}\n\n/**\n * Write a Transcend configuration to disk\n *\n * @param filePath - Path to yaml file\n * @param input - The input to write out\n */\nexport function writeTranscendYaml(\n filePath: string,\n input: TranscendInput,\n): void {\n writeFileSync(filePath, yaml.dump(decodeCodec(TranscendInput, input)));\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }function Jo(e,t,r){var o=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var n=Array(a);++o<a;)n[o]=e[o+t];return n}var ye=Jo;function Yo(e,t){return e===t||e!==e&&t!==t}var k=Yo;var Xo=typeof global=="object"&&global&&global.Object===Object&&global,_e=Xo;var Qo=typeof self=="object"&&self&&self.Object===Object&&self,ea=_e||Qo||Function("return this")(),g=ea;var ta=g.Symbol,h=ta;var et=Object.prototype,ra=et.hasOwnProperty,oa=et.toString,de=h?h.toStringTag:void 0;function aa(e){var t=ra.call(e,de),r=e[de];try{e[de]=void 0;var o=!0}catch (e2){}var a=oa.call(e);return o&&(t?e[de]=r:delete e[de]),a}var tt=aa;var na=Object.prototype,fa=na.toString;function sa(e){return fa.call(e)}var rt=sa;var ia="[object Null]",pa="[object Undefined]",ot=h?h.toStringTag:void 0;function ua(e){return e==null?e===void 0?pa:ia:ot&&ot in Object(e)?tt(e):rt(e)}var v=ua;function ma(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var S=ma;var da="[object AsyncFunction]",la="[object Function]",ca="[object GeneratorFunction]",xa="[object Proxy]";function ga(e){if(!S(e))return!1;var t=v(e);return t==la||t==ca||t==da||t==xa}var Ae=ga;var ha=9007199254740991;function ba(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ha}var z=ba;function ya(e){return e!=null&&z(e.length)&&!Ae(e)}var T=ya;var _a=9007199254740991,Aa=/^(?:0|[1-9]\d*)$/;function va(e,t){var r=typeof e;return t=_nullishCoalesce(t, () => (_a)),!!t&&(r=="number"||r!="symbol"&&Aa.test(e))&&e>-1&&e%1==0&&e<t}var K=va;function Sa(e,t,r){if(!S(r))return!1;var o=typeof t;return(o=="number"?T(r)&&K(t,r.length):o=="string"&&t in r)?k(r[t],e):!1}var le=Sa;var wa=/\s/;function Ta(e){for(var t=e.length;t--&&wa.test(e.charAt(t)););return t}var at=Ta;var Oa=/^\s+/;function Pa(e){return e&&e.slice(0,at(e)+1).replace(Oa,"")}var nt=Pa;function Ca(e){return e!=null&&typeof e=="object"}var y=Ca;var Ia="[object Symbol]";function Ma(e){return typeof e=="symbol"||y(e)&&v(e)==Ia}var w=Ma;var ft=NaN,Ea=/^[-+]0x[0-9a-f]+$/i,ja=/^0b[01]+$/i,Ra=/^0o[0-7]+$/i,Da=parseInt;function La(e){if(typeof e=="number")return e;if(w(e))return ft;if(S(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=S(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=nt(e);var r=ja.test(e);return r||Ra.test(e)?Da(e.slice(2),r?2:8):Ea.test(e)?ft:+e}var st=La;var it=1/0,Na=17976931348623157e292;function Fa(e){if(!e)return e===0?e:0;if(e=st(e),e===it||e===-it){var t=e<0?-1:1;return t*Na}return e===e?e:0}var pt=Fa;function Ua(e){var t=pt(e),r=t%1;return t===t?r?t-r:t:0}var ut=Ua;var Ba=Math.ceil,qa=Math.max;function Ga(e,t,r){(r?le(e,t,r):t===void 0)?t=1:t=qa(ut(t),0);var o=e==null?0:e.length;if(!o||t<1)return[];for(var a=0,n=0,f=Array(Ba(o/t));a<o;)f[n++]=ye(e,a,a+=t);return f}var Wa=Ga;var Va=g["__core-js_shared__"],ve=Va;var mt=function(){var e=/[^.]+$/.exec(ve&&ve.keys&&ve.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ha(e){return!!mt&&mt in e}var dt=Ha;var ka=Function.prototype,za=ka.toString;function Ka(e){if(e!=null){try{return za.call(e)}catch (e3){}try{return e+""}catch (e4){}}return""}var P=Ka;var Za=/[\\^$.*+?()[\]{}|]/g,$a=/^\[object .+?Constructor\]$/,Ja=Function.prototype,Ya=Object.prototype,Xa=Ja.toString,Qa=Ya.hasOwnProperty,en=RegExp("^"+Xa.call(Qa).replace(Za,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tn(e){if(!S(e)||dt(e))return!1;var t=Ae(e)?en:$a;return t.test(P(e))}var lt=tn;function rn(e,t){return _optionalChain([e, 'optionalAccess', _2 => _2[t]])}var ct=rn;function on(e,t){var r=ct(e,t);return lt(r)?r:void 0}var b=on;var an=b(Object,"create"),C=an;function nn(){this.__data__=C?C(null):{},this.size=0}var xt=nn;function fn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gt=fn;var sn="__lodash_hash_undefined__",pn=Object.prototype,un=pn.hasOwnProperty;function mn(e){var t=this.__data__;if(C){var r=t[e];return r===sn?void 0:r}return un.call(t,e)?t[e]:void 0}var ht=mn;var dn=Object.prototype,ln=dn.hasOwnProperty;function cn(e){var t=this.__data__;return C?t[e]!==void 0:ln.call(t,e)}var bt=cn;var xn="__lodash_hash_undefined__";function gn(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=C&&t===void 0?xn:t,this}var yt=gn;function Z(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}Z.prototype.clear=xt;Z.prototype.delete=gt;Z.prototype.get=ht;Z.prototype.has=bt;Z.prototype.set=yt;var Ge=Z;function hn(){this.__data__=[],this.size=0}var _t=hn;function bn(e,t){for(var r=e.length;r--;)if(k(e[r][0],t))return r;return-1}var M=bn;var yn=Array.prototype,_n=yn.splice;function An(e){var t=this.__data__,r=M(t,e);if(r<0)return!1;var o=t.length-1;return r==o?t.pop():_n.call(t,r,1),--this.size,!0}var At=An;function vn(e){var t=this.__data__,r=M(t,e);return r<0?void 0:t[r][1]}var vt=vn;function Sn(e){return M(this.__data__,e)>-1}var St=Sn;function wn(e,t){var r=this.__data__,o=M(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var wt=wn;function $(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}$.prototype.clear=_t;$.prototype.delete=At;$.prototype.get=vt;$.prototype.has=St;$.prototype.set=wt;var E=$;var Tn=b(g,"Map"),j=Tn;function On(){this.size=0,this.__data__={hash:new Ge,map:new(j||E),string:new Ge}}var Tt=On;function Pn(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ot=Pn;function Cn(e,t){var r=e.__data__;return Ot(t)?r[typeof t=="string"?"string":"hash"]:r.map}var R=Cn;function In(e){var t=R(this,e).delete(e);return this.size-=t?1:0,t}var Pt=In;function Mn(e){return R(this,e).get(e)}var Ct=Mn;function En(e){return R(this,e).has(e)}var It=En;function jn(e,t){var r=R(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Mt=jn;function J(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}J.prototype.clear=Tt;J.prototype.delete=Pt;J.prototype.get=Ct;J.prototype.has=It;J.prototype.set=Mt;var V=J;var Rn="__lodash_hash_undefined__";function Dn(e){return this.__data__.set(e,Rn),this}var Et=Dn;function Ln(e){return this.__data__.has(e)}var jt=Ln;function Se(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new V;++t<r;)this.add(e[t])}Se.prototype.add=Se.prototype.push=Et;Se.prototype.has=jt;var Y=Se;function Nn(e,t,r,o){for(var a=e.length,n=r+(o?1:-1);o?n--:++n<a;)if(t(e[n],n,e))return n;return-1}var Rt=Nn;function Fn(e){return e!==e}var Dt=Fn;function Un(e,t,r){for(var o=r-1,a=e.length;++o<a;)if(e[o]===t)return o;return-1}var Lt=Un;function Bn(e,t,r){return t===t?Lt(e,t,r):Rt(e,Dt,r)}var Nt=Bn;function qn(e,t){var r=e==null?0:e.length;return!!r&&Nt(e,t,0)>-1}var we=qn;function Gn(e,t,r){for(var o=-1,a=e==null?0:e.length;++o<a;)if(r(t,e[o]))return!0;return!1}var Te=Gn;function Wn(e,t){for(var r=-1,o=e==null?0:e.length,a=Array(o);++r<o;)a[r]=t(e[r],r,e);return a}var D=Wn;function Vn(e){return function(t){return e(t)}}var X=Vn;function Hn(e,t){return e.has(t)}var Q=Hn;var kn=200;function zn(e,t,r,o){var a=-1,n=we,f=!0,i=e.length,p=[],u=t.length;if(!i)return p;r&&(t=D(t,X(r))),o?(n=Te,f=!1):t.length>=kn&&(n=Q,f=!1,t=new Y(t));e:for(;++a<i;){var m=e[a],d=r==null?m:r(m);if(m=o||m!==0?m:0,f&&d===d){for(var l=u;l--;)if(t[l]===d)continue e;p.push(m)}else n(t,d,o)||p.push(m)}return p}var Ft=zn;function Kn(e,t){for(var r=-1,o=t.length,a=e.length;++r<o;)e[a+r]=t[r];return e}var Oe=Kn;var Zn="[object Arguments]";function $n(e){return y(e)&&v(e)==Zn}var We=$n;var Ut=Object.prototype,Jn=Ut.hasOwnProperty,Yn=Ut.propertyIsEnumerable,Xn=We(function(){return arguments}())?We:function(e){return y(e)&&Jn.call(e,"callee")&&!Yn.call(e,"callee")},ee=Xn;var Qn=Array.isArray,x=Qn;var Bt=h?h.isConcatSpreadable:void 0;function ef(e){return x(e)||ee(e)||!!(Bt&&e&&e[Bt])}var qt=ef;function Gt(e,t,r,o,a){var n=-1,f=e.length;for(r||(r=qt),a||(a=[]);++n<f;){var i=e[n];t>0&&r(i)?t>1?Gt(i,t-1,r,o,a):Oe(a,i):o||(a[a.length]=i)}return a}var L=Gt;function tf(e){return e}var N=tf;function rf(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var Wt=rf;var Vt=Math.max;function of(e,t,r){return t=Vt(t===void 0?e.length-1:t,0),function(){for(var o=arguments,a=-1,n=Vt(o.length-t,0),f=Array(n);++a<n;)f[a]=o[t+a];a=-1;for(var i=Array(t+1);++a<t;)i[a]=o[a];return i[t]=r(f),Wt(e,this,i)}}var Ht=of;function af(e){return function(){return e}}var kt=af;var nf=function(){try{var e=b(Object,"defineProperty");return e({},"",{}),e}catch (e5){}}(),te=nf;var ff=te?function(e,t){return te(e,"toString",{configurable:!0,enumerable:!1,value:kt(t),writable:!0})}:N,zt=ff;var sf=800,pf=16,uf=Date.now;function mf(e){var t=0,r=0;return function(){var o=uf(),a=pf-(o-r);if(r=o,a>0){if(++t>=sf)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Kt=mf;var df=Kt(zt),Zt=df;function lf(e,t){return Zt(Ht(e,t,N),e+"")}var re=lf;function cf(e){return y(e)&&T(e)}var ce=cf;var xf=re(function(e,t){return ce(e)?Ft(e,L(t,1,ce,!0)):[]}),gf= exports.c =xf;function hf(e,t,r){t=="__proto__"&&te?te(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var oe=hf;function bf(e,t,r,o){for(var a=-1,n=e==null?0:e.length;++a<n;){var f=e[a];t(o,f,r(f),e)}return o}var $t=bf;function yf(e){return function(t,r,o){for(var a=-1,n=Object(t),f=o(t),i=f.length;i--;){var p=f[e?i:++a];if(r(n[p],p,n)===!1)break}return t}}var Jt=yf;var _f=Jt(),Yt=_f;function Af(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var Xt=Af;function vf(){return!1}var Qt=vf;var rr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,er=rr&&typeof module=="object"&&module&&!module.nodeType&&module,Sf=er&&er.exports===rr,tr=Sf?g.Buffer:void 0,wf=tr?tr.isBuffer:void 0,Tf=wf||Qt,xe=Tf;var Of="[object Arguments]",Pf="[object Array]",Cf="[object Boolean]",If="[object Date]",Mf="[object Error]",Ef="[object Function]",jf="[object Map]",Rf="[object Number]",Df="[object Object]",Lf="[object RegExp]",Nf="[object Set]",Ff="[object String]",Uf="[object WeakMap]",Bf="[object ArrayBuffer]",qf="[object DataView]",Gf="[object Float32Array]",Wf="[object Float64Array]",Vf="[object Int8Array]",Hf="[object Int16Array]",kf="[object Int32Array]",zf="[object Uint8Array]",Kf="[object Uint8ClampedArray]",Zf="[object Uint16Array]",$f="[object Uint32Array]",c={};c[Gf]=c[Wf]=c[Vf]=c[Hf]=c[kf]=c[zf]=c[Kf]=c[Zf]=c[$f]=!0;c[Of]=c[Pf]=c[Bf]=c[Cf]=c[qf]=c[If]=c[Mf]=c[Ef]=c[jf]=c[Rf]=c[Df]=c[Lf]=c[Nf]=c[Ff]=c[Uf]=!1;function Jf(e){return y(e)&&z(e.length)&&!!c[v(e)]}var or=Jf;var ar=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ge=ar&&typeof module=="object"&&module&&!module.nodeType&&module,Yf=ge&&ge.exports===ar,Ve=Yf&&_e.process,Xf=function(){try{var e=ge&&ge.require&&ge.require("util").types;return e||Ve&&Ve.binding&&Ve.binding("util")}catch (e6){}}(),He=Xf;var nr=He&&He.isTypedArray,Qf=nr?X(nr):or,Pe=Qf;var es=Object.prototype,ts=es.hasOwnProperty;function rs(e,t){var r=x(e),o=!r&&ee(e),a=!r&&!o&&xe(e),n=!r&&!o&&!a&&Pe(e),f=r||o||a||n,i=f?Xt(e.length,String):[],p=i.length;for(var u in e)(t||ts.call(e,u))&&!(f&&(u=="length"||a&&(u=="offset"||u=="parent")||n&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||K(u,p)))&&i.push(u);return i}var fr=rs;var os=Object.prototype;function as(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||os;return e===r}var sr=as;function ns(e,t){return function(r){return e(t(r))}}var ir=ns;var fs=ir(Object.keys,Object),pr=fs;var ss=Object.prototype,is=ss.hasOwnProperty;function ps(e){if(!sr(e))return pr(e);var t=[];for(var r in Object(e))is.call(e,r)&&r!="constructor"&&t.push(r);return t}var ur=ps;function us(e){return T(e)?fr(e):ur(e)}var ae=us;function ms(e,t){return e&&Yt(e,t,ae)}var Ce=ms;function ds(e,t){return function(r,o){if(r==null)return r;if(!T(r))return e(r,o);for(var a=r.length,n=t?a:-1,f=Object(r);(t?n--:++n<a)&&o(f[n],n,f)!==!1;);return r}}var mr=ds;var ls=mr(Ce),Ie=ls;function cs(e,t,r,o){return Ie(e,function(a,n,f){t(o,a,r(a),f)}),o}var dr=cs;function xs(){this.__data__=new E,this.size=0}var lr=xs;function gs(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cr=gs;function hs(e){return this.__data__.get(e)}var xr=hs;function bs(e){return this.__data__.has(e)}var gr=bs;var ys=200;function _s(e,t){var r=this.__data__;if(r instanceof E){var o=r.__data__;if(!j||o.length<ys-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new V(o)}return r.set(e,t),this.size=r.size,this}var hr=_s;function ne(e){var t=this.__data__=new E(e);this.size=t.size}ne.prototype.clear=lr;ne.prototype.delete=cr;ne.prototype.get=xr;ne.prototype.has=gr;ne.prototype.set=hr;var fe=ne;function As(e,t){for(var r=-1,o=e==null?0:e.length;++r<o;)if(t(e[r],r,e))return!0;return!1}var br=As;var vs=1,Ss=2;function ws(e,t,r,o,a,n){var f=r&vs,i=e.length,p=t.length;if(i!=p&&!(f&&p>i))return!1;var u=n.get(e),m=n.get(t);if(u&&m)return u==t&&m==e;var d=-1,l=!0,O=r&Ss?new Y:void 0;for(n.set(e,t),n.set(t,e);++d<i;){var _=e[d],A=t[d];if(o)var I=f?o(A,_,d,t,e,n):o(_,A,d,e,t,n);if(I!==void 0){if(I)continue;l=!1;break}if(O){if(!br(t,function(G,W){if(!Q(O,W)&&(_===G||a(_,G,r,o,n)))return O.push(W)})){l=!1;break}}else if(!(_===A||a(_,A,r,o,n))){l=!1;break}}return n.delete(e),n.delete(t),l}var Me=ws;var Ts=g.Uint8Array,ke=Ts;function Os(e){var t=-1,r=Array(e.size);return e.forEach(function(o,a){r[++t]=[a,o]}),r}var yr=Os;function Ps(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o}),r}var se=Ps;var Cs=1,Is=2,Ms="[object Boolean]",Es="[object Date]",js="[object Error]",Rs="[object Map]",Ds="[object Number]",Ls="[object RegExp]",Ns="[object Set]",Fs="[object String]",Us="[object Symbol]",Bs="[object ArrayBuffer]",qs="[object DataView]",_r=h?h.prototype:void 0,ze=_r?_r.valueOf:void 0;function Gs(e,t,r,o,a,n,f){switch(r){case qs:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Bs:return!(e.byteLength!=t.byteLength||!n(new ke(e),new ke(t)));case Ms:case Es:case Ds:return k(+e,+t);case js:return e.name==t.name&&e.message==t.message;case Ls:case Fs:return e==t+"";case Rs:var i=yr;case Ns:var p=o&Cs;if(i||(i=se),e.size!=t.size&&!p)return!1;var u=f.get(e);if(u)return u==t;o|=Is,f.set(e,t);var m=Me(i(e),i(t),o,a,n,f);return f.delete(e),m;case Us:if(ze)return ze.call(e)==ze.call(t)}return!1}var Ar=Gs;function Ws(e,t,r){var o=t(e);return x(e)?o:Oe(o,r(e))}var vr=Ws;function Vs(e,t){for(var r=-1,o=e==null?0:e.length,a=0,n=[];++r<o;){var f=e[r];t(f,r,e)&&(n[a++]=f)}return n}var Sr=Vs;function Hs(){return[]}var wr=Hs;var ks=Object.prototype,zs=ks.propertyIsEnumerable,Tr=Object.getOwnPropertySymbols,Ks=Tr?function(e){return e==null?[]:(e=Object(e),Sr(Tr(e),function(t){return zs.call(e,t)}))}:wr,Or=Ks;function Zs(e){return vr(e,ae,Or)}var Ke=Zs;var $s=1,Js=Object.prototype,Ys=Js.hasOwnProperty;function Xs(e,t,r,o,a,n){var f=r&$s,i=Ke(e),p=i.length,u=Ke(t),m=u.length;if(p!=m&&!f)return!1;for(var d=p;d--;){var l=i[d];if(!(f?l in t:Ys.call(t,l)))return!1}var O=n.get(e),_=n.get(t);if(O&&_)return O==t&&_==e;var A=!0;n.set(e,t),n.set(t,e);for(var I=f;++d<p;){l=i[d];var G=e[l],W=t[l];if(o)var Qe=f?o(W,G,l,t,e,n):o(G,W,l,e,t,n);if(!(Qe===void 0?G===W||a(G,W,r,o,n):Qe)){A=!1;break}I||(I=l=="constructor")}if(A&&!I){var he=e.constructor,be=t.constructor;he!=be&&"constructor"in e&&"constructor"in t&&!(typeof he=="function"&&he instanceof he&&typeof be=="function"&&be instanceof be)&&(A=!1)}return n.delete(e),n.delete(t),A}var Pr=Xs;var Qs=b(g,"DataView"),Ee=Qs;var ei=b(g,"Promise"),je=ei;var ti=b(g,"Set"),F=ti;var ri=b(g,"WeakMap"),Re=ri;var Cr="[object Map]",oi="[object Object]",Ir="[object Promise]",Mr="[object Set]",Er="[object WeakMap]",jr="[object DataView]",ai=P(Ee),ni=P(j),fi=P(je),si=P(F),ii=P(Re),H=v;(Ee&&H(new Ee(new ArrayBuffer(1)))!=jr||j&&H(new j)!=Cr||je&&H(je.resolve())!=Ir||F&&H(new F)!=Mr||Re&&H(new Re)!=Er)&&(H=function(e){var t=v(e),r=t==oi?e.constructor:void 0,o=r?P(r):"";if(o)switch(o){case ai:return jr;case ni:return Cr;case fi:return Ir;case si:return Mr;case ii:return Er}return t});var Ze=H;var pi=1,Rr="[object Arguments]",Dr="[object Array]",De="[object Object]",ui=Object.prototype,Lr=ui.hasOwnProperty;function mi(e,t,r,o,a,n){var f=x(e),i=x(t),p=f?Dr:Ze(e),u=i?Dr:Ze(t);p=p==Rr?De:p,u=u==Rr?De:u;var m=p==De,d=u==De,l=p==u;if(l&&xe(e)){if(!xe(t))return!1;f=!0,m=!1}if(l&&!m)return n||(n=new fe),f||Pe(e)?Me(e,t,r,o,a,n):Ar(e,t,p,r,o,a,n);if(!(r&pi)){var O=m&&Lr.call(e,"__wrapped__"),_=d&&Lr.call(t,"__wrapped__");if(O||_){var A=O?e.value():e,I=_?t.value():t;return n||(n=new fe),a(A,I,r,o,n)}}return l?(n||(n=new fe),Pr(e,t,r,o,a,n)):!1}var Nr=mi;function Fr(e,t,r,o,a){return e===t?!0:e==null||t==null||!y(e)&&!y(t)?e!==e&&t!==t:Nr(e,t,r,o,Fr,a)}var Le=Fr;var di=1,li=2;function ci(e,t,r,o){var a=r.length,n=a,f=!o;if(e==null)return!n;for(e=Object(e);a--;){var i=r[a];if(f&&i[2]?i[1]!==e[i[0]]:!(i[0]in e))return!1}for(;++a<n;){i=r[a];var p=i[0],u=e[p],m=i[1];if(f&&i[2]){if(u===void 0&&!(p in e))return!1}else{var d=new fe;if(o)var l=o(u,m,p,e,t,d);if(!(l===void 0?Le(m,u,di|li,o,d):l))return!1}}return!0}var Ur=ci;function xi(e){return e===e&&!S(e)}var Ne=xi;function gi(e){for(var t=ae(e),r=t.length;r--;){var o=t[r],a=e[o];t[r]=[o,a,Ne(a)]}return t}var Br=gi;function hi(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}var Fe=hi;function bi(e){var t=Br(e);return t.length==1&&t[0][2]?Fe(t[0][0],t[0][1]):function(r){return r===e||Ur(r,e,t)}}var qr=bi;var yi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_i=/^\w*$/;function Ai(e,t){if(x(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||w(e)?!0:_i.test(e)||!yi.test(e)||t!=null&&e in Object(t)}var ie=Ai;var vi="Expected a function";function $e(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(vi);var r=function(){var o=arguments,a=t?t.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var f=e.apply(this,o);return r.cache=n.set(a,f)||n,f};return r.cache=new($e.Cache||V),r}$e.Cache=V;var Gr=$e;var Si=500;function wi(e){var t=Gr(e,function(o){return r.size===Si&&r.clear(),o}),r=t.cache;return t}var Wr=wi;var Ti=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Oi=/\\(\\)?/g,Pi=Wr(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ti,function(r,o,a,n){t.push(a?n.replace(Oi,"$1"):o||r)}),t}),Vr=Pi;var Ci=1/0,Hr=h?h.prototype:void 0,kr=Hr?Hr.toString:void 0;function zr(e){if(typeof e=="string")return e;if(x(e))return D(e,zr)+"";if(w(e))return kr?kr.call(e):"";var t=e+"";return t=="0"&&1/e==-Ci?"-0":t}var Kr=zr;function Ii(e){return e==null?"":Kr(e)}var U=Ii;function Mi(e,t){return x(e)?e:ie(e,t)?[e]:Vr(U(e))}var Ue=Mi;var Ei=1/0;function ji(e){if(typeof e=="string"||w(e))return e;var t=e+"";return t=="0"&&1/e==-Ei?"-0":t}var B=ji;function Ri(e,t){t=Ue(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[B(t[r++])];return r&&r==o?e:void 0}var pe=Ri;function Di(e,t,r){var o=e==null?void 0:pe(e,t);return o===void 0?r:o}var Zr=Di;function Li(e,t){return e!=null&&t in Object(e)}var $r=Li;function Ni(e,t,r){t=Ue(t,e);for(var o=-1,a=t.length,n=!1;++o<a;){var f=B(t[o]);if(!(n=e!=null&&r(e,f)))break;e=e[f]}return n||++o!=a?n:(a=e==null?0:e.length,!!a&&z(a)&&K(f,a)&&(x(e)||ee(e)))}var Jr=Ni;function Fi(e,t){return e!=null&&Jr(e,t,$r)}var Yr=Fi;var Ui=1,Bi=2;function qi(e,t){return ie(e)&&Ne(t)?Fe(B(e),t):function(r){var o=Zr(r,e);return o===void 0&&o===t?Yr(r,e):Le(t,o,Ui|Bi)}}var Xr=qi;function Gi(e){return function(t){return _optionalChain([t, 'optionalAccess', _3 => _3[e]])}}var Qr=Gi;function Wi(e){return function(t){return pe(t,e)}}var eo=Wi;function Vi(e){return ie(e)?Qr(B(e)):eo(e)}var to=Vi;function Hi(e){return typeof e=="function"?e:e==null?N:typeof e=="object"?x(e)?Xr(e[0],e[1]):qr(e):to(e)}var q=Hi;function ki(e,t){return function(r,o){var a=x(r)?$t:dr,n=t?t():{};return a(r,e,q(o,2),n)}}var Be=ki;var zi=Object.prototype,Ki=zi.hasOwnProperty,Zi=Be(function(e,t,r){Ki.call(e,r)?e[r].push(t):oe(e,r,[t])}),$i= exports.d =Zi;function Ji(){}var ro=Ji;var Yi=1/0,Xi=F&&1/se(new F([,-0]))[1]==Yi?function(e){return new F(e)}:ro,oo=Xi;var Qi=200;function ep(e,t,r){var o=-1,a=we,n=e.length,f=!0,i=[],p=i;if(r)f=!1,a=Te;else if(n>=Qi){var u=t?null:oo(e);if(u)return se(u);f=!1,a=Q,p=new Y}else p=t?[]:i;e:for(;++o<n;){var m=e[o],d=t?t(m):m;if(m=r||m!==0?m:0,f&&d===d){for(var l=p.length;l--;)if(p[l]===d)continue e;t&&p.push(d),i.push(m)}else a(p,d,r)||(p!==i&&p.push(d),i.push(m))}return i}var ue=ep;function tp(e){return e&&e.length?ue(e):[]}var rp=tp;function op(e){var t=e==null?0:e.length;return t?L(e,1):[]}var ap=op;function np(e,t,r){var o=e.length;return r=r===void 0?o:r,!t&&r>=o?e:ye(e,t,r)}var ao=np;var fp="\\ud800-\\udfff",sp="\\u0300-\\u036f",ip="\\ufe20-\\ufe2f",pp="\\u20d0-\\u20ff",up=sp+ip+pp,mp="\\ufe0e\\ufe0f",dp="\\u200d",lp=RegExp("["+dp+fp+up+mp+"]");function cp(e){return lp.test(e)}var qe=cp;function xp(e){return e.split("")}var no=xp;var fo="\\ud800-\\udfff",gp="\\u0300-\\u036f",hp="\\ufe20-\\ufe2f",bp="\\u20d0-\\u20ff",yp=gp+hp+bp,_p="\\ufe0e\\ufe0f",Ap="["+fo+"]",Je="["+yp+"]",Ye="\\ud83c[\\udffb-\\udfff]",vp="(?:"+Je+"|"+Ye+")",so="[^"+fo+"]",io="(?:\\ud83c[\\udde6-\\uddff]){2}",po="[\\ud800-\\udbff][\\udc00-\\udfff]",Sp="\\u200d",uo=vp+"?",mo="["+_p+"]?",wp="(?:"+Sp+"(?:"+[so,io,po].join("|")+")"+mo+uo+")*",Tp=mo+uo+wp,Op="(?:"+[so+Je+"?",Je,io,po,Ap].join("|")+")",Pp=RegExp(Ye+"(?="+Ye+")|"+Op+Tp,"g");function Cp(e){return e.match(Pp)||[]}var lo=Cp;function Ip(e){return qe(e)?lo(e):no(e)}var co=Ip;function Mp(e){return function(t){t=U(t);var r=qe(t)?co(t):void 0,o=r?r[0]:t.charAt(0),a=r?ao(r,1).join(""):t.slice(1);return o[e]()+a}}var xo=Mp;var Ep=xo("toUpperCase"),go=Ep;function jp(e,t,r,o){var a=-1,n=e==null?0:e.length;for(o&&n&&(r=e[++a]);++a<n;)r=t(r,e[a],a,e);return r}var ho=jp;function Rp(e){return function(t){return _optionalChain([e, 'optionalAccess', _4 => _4[t]])}}var bo=Rp;var Dp={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Lp=bo(Dp),yo=Lp;var Np=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Fp="\\u0300-\\u036f",Up="\\ufe20-\\ufe2f",Bp="\\u20d0-\\u20ff",qp=Fp+Up+Bp,Gp="["+qp+"]",Wp=RegExp(Gp,"g");function Vp(e){return e=U(e),e&&e.replace(Np,yo).replace(Wp,"")}var _o=Vp;var Hp=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function kp(e){return e.match(Hp)||[]}var Ao=kp;var zp=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Kp(e){return zp.test(e)}var vo=Kp;var Po="\\ud800-\\udfff",Zp="\\u0300-\\u036f",$p="\\ufe20-\\ufe2f",Jp="\\u20d0-\\u20ff",Yp=Zp+$p+Jp,Co="\\u2700-\\u27bf",Io="a-z\\xdf-\\xf6\\xf8-\\xff",Xp="\\xac\\xb1\\xd7\\xf7",Qp="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",eu="\\u2000-\\u206f",tu=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Mo="A-Z\\xc0-\\xd6\\xd8-\\xde",ru="\\ufe0e\\ufe0f",Eo=Xp+Qp+eu+tu,jo="['\u2019]",So="["+Eo+"]",ou="["+Yp+"]",Ro="\\d+",au="["+Co+"]",Do="["+Io+"]",Lo="[^"+Po+Eo+Ro+Co+Io+Mo+"]",nu="\\ud83c[\\udffb-\\udfff]",fu="(?:"+ou+"|"+nu+")",su="[^"+Po+"]",No="(?:\\ud83c[\\udde6-\\uddff]){2}",Fo="[\\ud800-\\udbff][\\udc00-\\udfff]",me="["+Mo+"]",iu="\\u200d",wo="(?:"+Do+"|"+Lo+")",pu="(?:"+me+"|"+Lo+")",To="(?:"+jo+"(?:d|ll|m|re|s|t|ve))?",Oo="(?:"+jo+"(?:D|LL|M|RE|S|T|VE))?",Uo=fu+"?",Bo="["+ru+"]?",uu="(?:"+iu+"(?:"+[su,No,Fo].join("|")+")"+Bo+Uo+")*",mu="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",du="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",lu=Bo+Uo+uu,cu="(?:"+[au,No,Fo].join("|")+")"+lu,xu=RegExp([me+"?"+Do+"+"+To+"(?="+[So,me,"$"].join("|")+")",pu+"+"+Oo+"(?="+[So,me+wo,"$"].join("|")+")",me+"?"+wo+"+"+To,me+"+"+Oo,du,mu,Ro,cu].join("|"),"g");function gu(e){return e.match(xu)||[]}var qo=gu;function hu(e,t,r){return e=U(e),t=r?void 0:t,t===void 0?vo(e)?qo(e):Ao(e):e.match(t)||[]}var Go=hu;var bu="['\u2019]",yu=RegExp(bu,"g");function _u(e){return function(t){return ho(Go(_o(t).replace(yu,"")),e,"")}}var Wo=_u;function Au(e,t){var r=-1,o=T(e)?Array(e.length):[];return Ie(e,function(a,n,f){o[++r]=t(a,n,f)}),o}var Vo=Au;var vu=Be(function(e,t,r){oe(e,r,t)}),Xe= exports.e =vu;function Su(e,t){var r={};return t=q(t,3),Ce(e,function(o,a,n){oe(r,a,t(o,a,n))}),r}var wu=Su;function Tu(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}var Ho=Tu;function Ou(e,t){if(e!==t){var r=e!==void 0,o=e===null,a=e===e,n=w(e),f=t!==void 0,i=t===null,p=t===t,u=w(t);if(!i&&!u&&!n&&e>t||n&&f&&p&&!i&&!u||o&&f&&p||!r&&p||!a)return 1;if(!o&&!n&&!u&&e<t||u&&r&&a&&!o&&!n||i&&r&&a||!f&&a||!p)return-1}return 0}var ko=Ou;function Pu(e,t,r){for(var o=-1,a=e.criteria,n=t.criteria,f=a.length,i=r.length;++o<f;){var p=ko(a[o],n[o]);if(p){if(o>=i)return p;var u=r[o];return p*(u=="desc"?-1:1)}}return e.index-t.index}var zo=Pu;function Cu(e,t,r){t.length?t=D(t,function(n){return x(n)?function(f){return pe(f,n.length===1?n[0]:n)}:n}):t=[N];var o=-1;t=D(t,X(q));var a=Vo(e,function(n,f,i){var p=D(t,function(u){return u(n)});return{criteria:p,index:++o,value:n}});return Ho(a,function(n,f){return zo(n,f,r)})}var Ko=Cu;var Iu=re(function(e,t){if(e==null)return[];var r=t.length;return r>1&&le(e,t[0],t[1])?t=[]:r>2&&le(t[0],t[1],t[2])&&(t=[t[0]]),Ko(e,L(t,1),[])}),Mu= exports.g =Iu;var Eu=Wo(function(e,t,r){return e+(r?" ":"")+go(t)}),ju= exports.h =Eu;var Ru=re(function(e){return ue(L(e,1,ce,!0))}),Du= exports.i =Ru;function Lu(e,t){return e&&e.length?ue(e,q(t,2)):[]}var Nu=Lu;var Fu="A command line interface for programmatic operations across Transcend.",Uu= exports.m ="8.27.0";var _privacytypes = require('@transcend-io/privacy-types');var fy="transcend",$o= exports.o ="https://app.transcend.io",sy= exports.p =`${$o}/infrastructure/integrations`,iy= exports.q =`${$o}/data-map/data-inventory/data-points`,py= exports.r =process.env.TRANSCEND_API_URL||"https://api.transcend.io",uy= exports.s =process.env.TRANSCEND_CONSENT_API_URL||"https://consent.transcend.io",my= exports.t ={apiKeys:[_privacytypes.ScopeName.ViewApiKeys],templates:[_privacytypes.ScopeName.ManageEmailTemplates],dataSilos:[_privacytypes.ScopeName.ManageDataMap,_privacytypes.ScopeName.ConnectDataSilos],enrichers:[_privacytypes.ScopeName.ManageRequestIdentities],businessEntities:[_privacytypes.ScopeName.ManageDataInventory],processingActivities:[_privacytypes.ScopeName.ManageDataMap],identifiers:[_privacytypes.ScopeName.ManageRequestIdentities],customFields:[_privacytypes.ScopeName.ManageGlobalAttributes],dataFlows:[_privacytypes.ScopeName.ManageDataFlow],cookies:[_privacytypes.ScopeName.ManageDataFlow],consentManager:[_privacytypes.ScopeName.ManageConsentManagerDeveloperSettings],partitions:[_privacytypes.ScopeName.ManageConsentManagerDeveloperSettings],actions:[_privacytypes.ScopeName.ManageDataSubjectRequestSettings],dataSubjects:[_privacytypes.ScopeName.ManageDataSubjectRequestSettings],prompts:[_privacytypes.ScopeName.ManagePrompts],promptPartials:[_privacytypes.ScopeName.ManagePrompts],promptGroups:[_privacytypes.ScopeName.ManagePrompts],agents:[_privacytypes.ScopeName.ManagePathfinder],agentFunctions:[_privacytypes.ScopeName.ManagePathfinder],agentFiles:[_privacytypes.ScopeName.ManagePathfinder],vendors:[_privacytypes.ScopeName.ManageDataInventory],dataCategories:[_privacytypes.ScopeName.ManageDataInventory],processingPurposes:[_privacytypes.ScopeName.ManageDataInventory],actionItems:[_privacytypes.ScopeName.ManageAllActionItems,_privacytypes.ScopeName.ViewGlobalAttributes],actionItemCollections:[_privacytypes.ScopeName.ManageActionItemCollections],teams:[_privacytypes.ScopeName.ManageAccessControl],messages:[_privacytypes.ScopeName.ManageIntlMessages],privacyCenters:[_privacytypes.ScopeName.ManagePrivacyCenter],policies:[_privacytypes.ScopeName.ManagePolicies],assessments:[_privacytypes.ScopeName.ManageAssessments],assessmentTemplates:[_privacytypes.ScopeName.ManageAssessments],purposes:[_privacytypes.ScopeName.ManageConsentManager,_privacytypes.ScopeName.ManagePreferenceStoreSettings]},dy= exports.u ={apiKeys:[_privacytypes.ScopeName.ViewApiKeys],templates:[_privacytypes.ScopeName.ViewEmailTemplates],dataSilos:[_privacytypes.ScopeName.ViewDataMap,_privacytypes.ScopeName.ViewDataSubjectRequestSettings],enrichers:[_privacytypes.ScopeName.ViewRequestIdentitySettings],businessEntities:[_privacytypes.ScopeName.ViewDataInventory],processingActivities:[_privacytypes.ScopeName.ViewDataInventory],identifiers:[_privacytypes.ScopeName.ViewRequestIdentitySettings],customFields:[_privacytypes.ScopeName.ViewGlobalAttributes],dataFlows:[_privacytypes.ScopeName.ViewDataFlow],cookies:[_privacytypes.ScopeName.ViewDataFlow],consentManager:[_privacytypes.ScopeName.ViewConsentManager],partitions:[_privacytypes.ScopeName.ViewConsentManager],actions:[_privacytypes.ScopeName.ViewDataSubjectRequestSettings],dataSubjects:[_privacytypes.ScopeName.ViewDataSubjectRequestSettings],prompts:[_privacytypes.ScopeName.ViewPrompts],promptPartials:[_privacytypes.ScopeName.ViewPrompts],promptGroups:[_privacytypes.ScopeName.ViewPrompts],agents:[_privacytypes.ScopeName.ViewPathfinder],agentFunctions:[_privacytypes.ScopeName.ViewPathfinder],agentFiles:[_privacytypes.ScopeName.ViewPathfinder],vendors:[_privacytypes.ScopeName.ViewDataInventory],dataCategories:[_privacytypes.ScopeName.ViewDataInventory],processingPurposes:[_privacytypes.ScopeName.ViewDataInventory],actionItemCollections:[_privacytypes.ScopeName.ViewAllActionItems],actionItems:[_privacytypes.ScopeName.ViewAllActionItems],teams:[_privacytypes.ScopeName.ViewScopes],messages:[_privacytypes.ScopeName.ViewIntlMessages],privacyCenters:[_privacytypes.ScopeName.ViewPrivacyCenter],policies:[_privacytypes.ScopeName.ViewPolicies],assessments:[_privacytypes.ScopeName.ViewAssessments],assessmentTemplates:[_privacytypes.ScopeName.ViewAssessments],purposes:[_privacytypes.ScopeName.ViewConsentManager,_privacytypes.ScopeName.ViewPreferenceStoreSettings]},ly= exports.v ={apiKeys:"api-keys",customFields:"attributes",dataFlows:"data-flows",cookies:"cookies",consentManager:"consent-manager",partitions:"partitions",actions:"actions",dataSubjects:"data-subjects",businessEntities:"business-entities",processingActivities:"processing-activities",identifiers:"identifiers",enrichers:"enrichers",dataSilos:"data-silos",templates:"templates",prompts:"prompts",promptPartials:"prompt-partials",promptGroups:"prompt-groups",agents:"agents",agentFunctions:"agent-functions",agentFiles:"agent-files",vendors:"vendors",dataCategories:"data-categories",processingPurposes:"processing-purposes",actionItems:"action-items",actionItemCollections:"action-item-collections",teams:"teams",messages:"messages",privacyCenters:"privacy-center",policies:"policies",assessments:"assessments",assessmentTemplates:"assessment-templates",purposes:"purposes"},qu= exports.w =Xe(Object.entries(_privacytypes.TRANSCEND_SCOPES).map(([e,t])=>({...t,name:e})),"title"),cy= exports.x =Object.keys(qu),xy= exports.y =new Set([429,502,500,504,329]),gy= exports.z =process.env.DEBUG==="1";exports.a = ap; exports.b = Wa; exports.c = gf; exports.d = $i; exports.e = Xe; exports.f = wu; exports.g = Mu; exports.h = ju; exports.i = Du; exports.j = rp; exports.k = Nu; exports.l = Fu; exports.m = Uu; exports.n = fy; exports.o = $o; exports.p = sy; exports.q = iy; exports.r = py; exports.s = uy; exports.t = my; exports.u = dy; exports.v = ly; exports.w = qu; exports.x = cy; exports.y = xy; exports.z = gy;
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }function Jo(e,t,r){var o=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var n=Array(a);++o<a;)n[o]=e[o+t];return n}var ye=Jo;function Yo(e,t){return e===t||e!==e&&t!==t}var k=Yo;var Xo=typeof global=="object"&&global&&global.Object===Object&&global,_e=Xo;var Qo=typeof self=="object"&&self&&self.Object===Object&&self,ea=_e||Qo||Function("return this")(),g=ea;var ta=g.Symbol,h=ta;var et=Object.prototype,ra=et.hasOwnProperty,oa=et.toString,de=h?h.toStringTag:void 0;function aa(e){var t=ra.call(e,de),r=e[de];try{e[de]=void 0;var o=!0}catch (e2){}var a=oa.call(e);return o&&(t?e[de]=r:delete e[de]),a}var tt=aa;var na=Object.prototype,fa=na.toString;function sa(e){return fa.call(e)}var rt=sa;var ia="[object Null]",pa="[object Undefined]",ot=h?h.toStringTag:void 0;function ua(e){return e==null?e===void 0?pa:ia:ot&&ot in Object(e)?tt(e):rt(e)}var v=ua;function ma(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var S=ma;var da="[object AsyncFunction]",la="[object Function]",ca="[object GeneratorFunction]",xa="[object Proxy]";function ga(e){if(!S(e))return!1;var t=v(e);return t==la||t==ca||t==da||t==xa}var Ae=ga;var ha=9007199254740991;function ba(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ha}var z=ba;function ya(e){return e!=null&&z(e.length)&&!Ae(e)}var T=ya;var _a=9007199254740991,Aa=/^(?:0|[1-9]\d*)$/;function va(e,t){var r=typeof e;return t=_nullishCoalesce(t, () => (_a)),!!t&&(r=="number"||r!="symbol"&&Aa.test(e))&&e>-1&&e%1==0&&e<t}var K=va;function Sa(e,t,r){if(!S(r))return!1;var o=typeof t;return(o=="number"?T(r)&&K(t,r.length):o=="string"&&t in r)?k(r[t],e):!1}var le=Sa;var wa=/\s/;function Ta(e){for(var t=e.length;t--&&wa.test(e.charAt(t)););return t}var at=Ta;var Oa=/^\s+/;function Pa(e){return e&&e.slice(0,at(e)+1).replace(Oa,"")}var nt=Pa;function Ca(e){return e!=null&&typeof e=="object"}var y=Ca;var Ia="[object Symbol]";function Ma(e){return typeof e=="symbol"||y(e)&&v(e)==Ia}var w=Ma;var ft=NaN,Ea=/^[-+]0x[0-9a-f]+$/i,ja=/^0b[01]+$/i,Ra=/^0o[0-7]+$/i,Da=parseInt;function La(e){if(typeof e=="number")return e;if(w(e))return ft;if(S(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=S(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=nt(e);var r=ja.test(e);return r||Ra.test(e)?Da(e.slice(2),r?2:8):Ea.test(e)?ft:+e}var st=La;var it=1/0,Na=17976931348623157e292;function Fa(e){if(!e)return e===0?e:0;if(e=st(e),e===it||e===-it){var t=e<0?-1:1;return t*Na}return e===e?e:0}var pt=Fa;function Ua(e){var t=pt(e),r=t%1;return t===t?r?t-r:t:0}var ut=Ua;var Ba=Math.ceil,qa=Math.max;function Ga(e,t,r){(r?le(e,t,r):t===void 0)?t=1:t=qa(ut(t),0);var o=e==null?0:e.length;if(!o||t<1)return[];for(var a=0,n=0,f=Array(Ba(o/t));a<o;)f[n++]=ye(e,a,a+=t);return f}var Wa=Ga;var Va=g["__core-js_shared__"],ve=Va;var mt=function(){var e=/[^.]+$/.exec(ve&&ve.keys&&ve.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ha(e){return!!mt&&mt in e}var dt=Ha;var ka=Function.prototype,za=ka.toString;function Ka(e){if(e!=null){try{return za.call(e)}catch (e3){}try{return e+""}catch (e4){}}return""}var P=Ka;var Za=/[\\^$.*+?()[\]{}|]/g,$a=/^\[object .+?Constructor\]$/,Ja=Function.prototype,Ya=Object.prototype,Xa=Ja.toString,Qa=Ya.hasOwnProperty,en=RegExp("^"+Xa.call(Qa).replace(Za,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function tn(e){if(!S(e)||dt(e))return!1;var t=Ae(e)?en:$a;return t.test(P(e))}var lt=tn;function rn(e,t){return _optionalChain([e, 'optionalAccess', _2 => _2[t]])}var ct=rn;function on(e,t){var r=ct(e,t);return lt(r)?r:void 0}var b=on;var an=b(Object,"create"),C=an;function nn(){this.__data__=C?C(null):{},this.size=0}var xt=nn;function fn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var gt=fn;var sn="__lodash_hash_undefined__",pn=Object.prototype,un=pn.hasOwnProperty;function mn(e){var t=this.__data__;if(C){var r=t[e];return r===sn?void 0:r}return un.call(t,e)?t[e]:void 0}var ht=mn;var dn=Object.prototype,ln=dn.hasOwnProperty;function cn(e){var t=this.__data__;return C?t[e]!==void 0:ln.call(t,e)}var bt=cn;var xn="__lodash_hash_undefined__";function gn(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=C&&t===void 0?xn:t,this}var yt=gn;function Z(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}Z.prototype.clear=xt;Z.prototype.delete=gt;Z.prototype.get=ht;Z.prototype.has=bt;Z.prototype.set=yt;var Ge=Z;function hn(){this.__data__=[],this.size=0}var _t=hn;function bn(e,t){for(var r=e.length;r--;)if(k(e[r][0],t))return r;return-1}var M=bn;var yn=Array.prototype,_n=yn.splice;function An(e){var t=this.__data__,r=M(t,e);if(r<0)return!1;var o=t.length-1;return r==o?t.pop():_n.call(t,r,1),--this.size,!0}var At=An;function vn(e){var t=this.__data__,r=M(t,e);return r<0?void 0:t[r][1]}var vt=vn;function Sn(e){return M(this.__data__,e)>-1}var St=Sn;function wn(e,t){var r=this.__data__,o=M(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var wt=wn;function $(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}$.prototype.clear=_t;$.prototype.delete=At;$.prototype.get=vt;$.prototype.has=St;$.prototype.set=wt;var E=$;var Tn=b(g,"Map"),j=Tn;function On(){this.size=0,this.__data__={hash:new Ge,map:new(j||E),string:new Ge}}var Tt=On;function Pn(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Ot=Pn;function Cn(e,t){var r=e.__data__;return Ot(t)?r[typeof t=="string"?"string":"hash"]:r.map}var R=Cn;function In(e){var t=R(this,e).delete(e);return this.size-=t?1:0,t}var Pt=In;function Mn(e){return R(this,e).get(e)}var Ct=Mn;function En(e){return R(this,e).has(e)}var It=En;function jn(e,t){var r=R(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Mt=jn;function J(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}J.prototype.clear=Tt;J.prototype.delete=Pt;J.prototype.get=Ct;J.prototype.has=It;J.prototype.set=Mt;var V=J;var Rn="__lodash_hash_undefined__";function Dn(e){return this.__data__.set(e,Rn),this}var Et=Dn;function Ln(e){return this.__data__.has(e)}var jt=Ln;function Se(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new V;++t<r;)this.add(e[t])}Se.prototype.add=Se.prototype.push=Et;Se.prototype.has=jt;var Y=Se;function Nn(e,t,r,o){for(var a=e.length,n=r+(o?1:-1);o?n--:++n<a;)if(t(e[n],n,e))return n;return-1}var Rt=Nn;function Fn(e){return e!==e}var Dt=Fn;function Un(e,t,r){for(var o=r-1,a=e.length;++o<a;)if(e[o]===t)return o;return-1}var Lt=Un;function Bn(e,t,r){return t===t?Lt(e,t,r):Rt(e,Dt,r)}var Nt=Bn;function qn(e,t){var r=e==null?0:e.length;return!!r&&Nt(e,t,0)>-1}var we=qn;function Gn(e,t,r){for(var o=-1,a=e==null?0:e.length;++o<a;)if(r(t,e[o]))return!0;return!1}var Te=Gn;function Wn(e,t){for(var r=-1,o=e==null?0:e.length,a=Array(o);++r<o;)a[r]=t(e[r],r,e);return a}var D=Wn;function Vn(e){return function(t){return e(t)}}var X=Vn;function Hn(e,t){return e.has(t)}var Q=Hn;var kn=200;function zn(e,t,r,o){var a=-1,n=we,f=!0,i=e.length,p=[],u=t.length;if(!i)return p;r&&(t=D(t,X(r))),o?(n=Te,f=!1):t.length>=kn&&(n=Q,f=!1,t=new Y(t));e:for(;++a<i;){var m=e[a],d=r==null?m:r(m);if(m=o||m!==0?m:0,f&&d===d){for(var l=u;l--;)if(t[l]===d)continue e;p.push(m)}else n(t,d,o)||p.push(m)}return p}var Ft=zn;function Kn(e,t){for(var r=-1,o=t.length,a=e.length;++r<o;)e[a+r]=t[r];return e}var Oe=Kn;var Zn="[object Arguments]";function $n(e){return y(e)&&v(e)==Zn}var We=$n;var Ut=Object.prototype,Jn=Ut.hasOwnProperty,Yn=Ut.propertyIsEnumerable,Xn=We(function(){return arguments}())?We:function(e){return y(e)&&Jn.call(e,"callee")&&!Yn.call(e,"callee")},ee=Xn;var Qn=Array.isArray,x=Qn;var Bt=h?h.isConcatSpreadable:void 0;function ef(e){return x(e)||ee(e)||!!(Bt&&e&&e[Bt])}var qt=ef;function Gt(e,t,r,o,a){var n=-1,f=e.length;for(r||(r=qt),a||(a=[]);++n<f;){var i=e[n];t>0&&r(i)?t>1?Gt(i,t-1,r,o,a):Oe(a,i):o||(a[a.length]=i)}return a}var L=Gt;function tf(e){return e}var N=tf;function rf(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var Wt=rf;var Vt=Math.max;function of(e,t,r){return t=Vt(t===void 0?e.length-1:t,0),function(){for(var o=arguments,a=-1,n=Vt(o.length-t,0),f=Array(n);++a<n;)f[a]=o[t+a];a=-1;for(var i=Array(t+1);++a<t;)i[a]=o[a];return i[t]=r(f),Wt(e,this,i)}}var Ht=of;function af(e){return function(){return e}}var kt=af;var nf=function(){try{var e=b(Object,"defineProperty");return e({},"",{}),e}catch (e5){}}(),te=nf;var ff=te?function(e,t){return te(e,"toString",{configurable:!0,enumerable:!1,value:kt(t),writable:!0})}:N,zt=ff;var sf=800,pf=16,uf=Date.now;function mf(e){var t=0,r=0;return function(){var o=uf(),a=pf-(o-r);if(r=o,a>0){if(++t>=sf)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var Kt=mf;var df=Kt(zt),Zt=df;function lf(e,t){return Zt(Ht(e,t,N),e+"")}var re=lf;function cf(e){return y(e)&&T(e)}var ce=cf;var xf=re(function(e,t){return ce(e)?Ft(e,L(t,1,ce,!0)):[]}),gf= exports.c =xf;function hf(e,t,r){t=="__proto__"&&te?te(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var oe=hf;function bf(e,t,r,o){for(var a=-1,n=e==null?0:e.length;++a<n;){var f=e[a];t(o,f,r(f),e)}return o}var $t=bf;function yf(e){return function(t,r,o){for(var a=-1,n=Object(t),f=o(t),i=f.length;i--;){var p=f[e?i:++a];if(r(n[p],p,n)===!1)break}return t}}var Jt=yf;var _f=Jt(),Yt=_f;function Af(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var Xt=Af;function vf(){return!1}var Qt=vf;var rr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,er=rr&&typeof module=="object"&&module&&!module.nodeType&&module,Sf=er&&er.exports===rr,tr=Sf?g.Buffer:void 0,wf=tr?tr.isBuffer:void 0,Tf=wf||Qt,xe=Tf;var Of="[object Arguments]",Pf="[object Array]",Cf="[object Boolean]",If="[object Date]",Mf="[object Error]",Ef="[object Function]",jf="[object Map]",Rf="[object Number]",Df="[object Object]",Lf="[object RegExp]",Nf="[object Set]",Ff="[object String]",Uf="[object WeakMap]",Bf="[object ArrayBuffer]",qf="[object DataView]",Gf="[object Float32Array]",Wf="[object Float64Array]",Vf="[object Int8Array]",Hf="[object Int16Array]",kf="[object Int32Array]",zf="[object Uint8Array]",Kf="[object Uint8ClampedArray]",Zf="[object Uint16Array]",$f="[object Uint32Array]",c={};c[Gf]=c[Wf]=c[Vf]=c[Hf]=c[kf]=c[zf]=c[Kf]=c[Zf]=c[$f]=!0;c[Of]=c[Pf]=c[Bf]=c[Cf]=c[qf]=c[If]=c[Mf]=c[Ef]=c[jf]=c[Rf]=c[Df]=c[Lf]=c[Nf]=c[Ff]=c[Uf]=!1;function Jf(e){return y(e)&&z(e.length)&&!!c[v(e)]}var or=Jf;var ar=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ge=ar&&typeof module=="object"&&module&&!module.nodeType&&module,Yf=ge&&ge.exports===ar,Ve=Yf&&_e.process,Xf=function(){try{var e=ge&&ge.require&&ge.require("util").types;return e||Ve&&Ve.binding&&Ve.binding("util")}catch (e6){}}(),He=Xf;var nr=He&&He.isTypedArray,Qf=nr?X(nr):or,Pe=Qf;var es=Object.prototype,ts=es.hasOwnProperty;function rs(e,t){var r=x(e),o=!r&&ee(e),a=!r&&!o&&xe(e),n=!r&&!o&&!a&&Pe(e),f=r||o||a||n,i=f?Xt(e.length,String):[],p=i.length;for(var u in e)(t||ts.call(e,u))&&!(f&&(u=="length"||a&&(u=="offset"||u=="parent")||n&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||K(u,p)))&&i.push(u);return i}var fr=rs;var os=Object.prototype;function as(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||os;return e===r}var sr=as;function ns(e,t){return function(r){return e(t(r))}}var ir=ns;var fs=ir(Object.keys,Object),pr=fs;var ss=Object.prototype,is=ss.hasOwnProperty;function ps(e){if(!sr(e))return pr(e);var t=[];for(var r in Object(e))is.call(e,r)&&r!="constructor"&&t.push(r);return t}var ur=ps;function us(e){return T(e)?fr(e):ur(e)}var ae=us;function ms(e,t){return e&&Yt(e,t,ae)}var Ce=ms;function ds(e,t){return function(r,o){if(r==null)return r;if(!T(r))return e(r,o);for(var a=r.length,n=t?a:-1,f=Object(r);(t?n--:++n<a)&&o(f[n],n,f)!==!1;);return r}}var mr=ds;var ls=mr(Ce),Ie=ls;function cs(e,t,r,o){return Ie(e,function(a,n,f){t(o,a,r(a),f)}),o}var dr=cs;function xs(){this.__data__=new E,this.size=0}var lr=xs;function gs(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var cr=gs;function hs(e){return this.__data__.get(e)}var xr=hs;function bs(e){return this.__data__.has(e)}var gr=bs;var ys=200;function _s(e,t){var r=this.__data__;if(r instanceof E){var o=r.__data__;if(!j||o.length<ys-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new V(o)}return r.set(e,t),this.size=r.size,this}var hr=_s;function ne(e){var t=this.__data__=new E(e);this.size=t.size}ne.prototype.clear=lr;ne.prototype.delete=cr;ne.prototype.get=xr;ne.prototype.has=gr;ne.prototype.set=hr;var fe=ne;function As(e,t){for(var r=-1,o=e==null?0:e.length;++r<o;)if(t(e[r],r,e))return!0;return!1}var br=As;var vs=1,Ss=2;function ws(e,t,r,o,a,n){var f=r&vs,i=e.length,p=t.length;if(i!=p&&!(f&&p>i))return!1;var u=n.get(e),m=n.get(t);if(u&&m)return u==t&&m==e;var d=-1,l=!0,O=r&Ss?new Y:void 0;for(n.set(e,t),n.set(t,e);++d<i;){var _=e[d],A=t[d];if(o)var I=f?o(A,_,d,t,e,n):o(_,A,d,e,t,n);if(I!==void 0){if(I)continue;l=!1;break}if(O){if(!br(t,function(G,W){if(!Q(O,W)&&(_===G||a(_,G,r,o,n)))return O.push(W)})){l=!1;break}}else if(!(_===A||a(_,A,r,o,n))){l=!1;break}}return n.delete(e),n.delete(t),l}var Me=ws;var Ts=g.Uint8Array,ke=Ts;function Os(e){var t=-1,r=Array(e.size);return e.forEach(function(o,a){r[++t]=[a,o]}),r}var yr=Os;function Ps(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o}),r}var se=Ps;var Cs=1,Is=2,Ms="[object Boolean]",Es="[object Date]",js="[object Error]",Rs="[object Map]",Ds="[object Number]",Ls="[object RegExp]",Ns="[object Set]",Fs="[object String]",Us="[object Symbol]",Bs="[object ArrayBuffer]",qs="[object DataView]",_r=h?h.prototype:void 0,ze=_r?_r.valueOf:void 0;function Gs(e,t,r,o,a,n,f){switch(r){case qs:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Bs:return!(e.byteLength!=t.byteLength||!n(new ke(e),new ke(t)));case Ms:case Es:case Ds:return k(+e,+t);case js:return e.name==t.name&&e.message==t.message;case Ls:case Fs:return e==t+"";case Rs:var i=yr;case Ns:var p=o&Cs;if(i||(i=se),e.size!=t.size&&!p)return!1;var u=f.get(e);if(u)return u==t;o|=Is,f.set(e,t);var m=Me(i(e),i(t),o,a,n,f);return f.delete(e),m;case Us:if(ze)return ze.call(e)==ze.call(t)}return!1}var Ar=Gs;function Ws(e,t,r){var o=t(e);return x(e)?o:Oe(o,r(e))}var vr=Ws;function Vs(e,t){for(var r=-1,o=e==null?0:e.length,a=0,n=[];++r<o;){var f=e[r];t(f,r,e)&&(n[a++]=f)}return n}var Sr=Vs;function Hs(){return[]}var wr=Hs;var ks=Object.prototype,zs=ks.propertyIsEnumerable,Tr=Object.getOwnPropertySymbols,Ks=Tr?function(e){return e==null?[]:(e=Object(e),Sr(Tr(e),function(t){return zs.call(e,t)}))}:wr,Or=Ks;function Zs(e){return vr(e,ae,Or)}var Ke=Zs;var $s=1,Js=Object.prototype,Ys=Js.hasOwnProperty;function Xs(e,t,r,o,a,n){var f=r&$s,i=Ke(e),p=i.length,u=Ke(t),m=u.length;if(p!=m&&!f)return!1;for(var d=p;d--;){var l=i[d];if(!(f?l in t:Ys.call(t,l)))return!1}var O=n.get(e),_=n.get(t);if(O&&_)return O==t&&_==e;var A=!0;n.set(e,t),n.set(t,e);for(var I=f;++d<p;){l=i[d];var G=e[l],W=t[l];if(o)var Qe=f?o(W,G,l,t,e,n):o(G,W,l,e,t,n);if(!(Qe===void 0?G===W||a(G,W,r,o,n):Qe)){A=!1;break}I||(I=l=="constructor")}if(A&&!I){var he=e.constructor,be=t.constructor;he!=be&&"constructor"in e&&"constructor"in t&&!(typeof he=="function"&&he instanceof he&&typeof be=="function"&&be instanceof be)&&(A=!1)}return n.delete(e),n.delete(t),A}var Pr=Xs;var Qs=b(g,"DataView"),Ee=Qs;var ei=b(g,"Promise"),je=ei;var ti=b(g,"Set"),F=ti;var ri=b(g,"WeakMap"),Re=ri;var Cr="[object Map]",oi="[object Object]",Ir="[object Promise]",Mr="[object Set]",Er="[object WeakMap]",jr="[object DataView]",ai=P(Ee),ni=P(j),fi=P(je),si=P(F),ii=P(Re),H=v;(Ee&&H(new Ee(new ArrayBuffer(1)))!=jr||j&&H(new j)!=Cr||je&&H(je.resolve())!=Ir||F&&H(new F)!=Mr||Re&&H(new Re)!=Er)&&(H=function(e){var t=v(e),r=t==oi?e.constructor:void 0,o=r?P(r):"";if(o)switch(o){case ai:return jr;case ni:return Cr;case fi:return Ir;case si:return Mr;case ii:return Er}return t});var Ze=H;var pi=1,Rr="[object Arguments]",Dr="[object Array]",De="[object Object]",ui=Object.prototype,Lr=ui.hasOwnProperty;function mi(e,t,r,o,a,n){var f=x(e),i=x(t),p=f?Dr:Ze(e),u=i?Dr:Ze(t);p=p==Rr?De:p,u=u==Rr?De:u;var m=p==De,d=u==De,l=p==u;if(l&&xe(e)){if(!xe(t))return!1;f=!0,m=!1}if(l&&!m)return n||(n=new fe),f||Pe(e)?Me(e,t,r,o,a,n):Ar(e,t,p,r,o,a,n);if(!(r&pi)){var O=m&&Lr.call(e,"__wrapped__"),_=d&&Lr.call(t,"__wrapped__");if(O||_){var A=O?e.value():e,I=_?t.value():t;return n||(n=new fe),a(A,I,r,o,n)}}return l?(n||(n=new fe),Pr(e,t,r,o,a,n)):!1}var Nr=mi;function Fr(e,t,r,o,a){return e===t?!0:e==null||t==null||!y(e)&&!y(t)?e!==e&&t!==t:Nr(e,t,r,o,Fr,a)}var Le=Fr;var di=1,li=2;function ci(e,t,r,o){var a=r.length,n=a,f=!o;if(e==null)return!n;for(e=Object(e);a--;){var i=r[a];if(f&&i[2]?i[1]!==e[i[0]]:!(i[0]in e))return!1}for(;++a<n;){i=r[a];var p=i[0],u=e[p],m=i[1];if(f&&i[2]){if(u===void 0&&!(p in e))return!1}else{var d=new fe;if(o)var l=o(u,m,p,e,t,d);if(!(l===void 0?Le(m,u,di|li,o,d):l))return!1}}return!0}var Ur=ci;function xi(e){return e===e&&!S(e)}var Ne=xi;function gi(e){for(var t=ae(e),r=t.length;r--;){var o=t[r],a=e[o];t[r]=[o,a,Ne(a)]}return t}var Br=gi;function hi(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}var Fe=hi;function bi(e){var t=Br(e);return t.length==1&&t[0][2]?Fe(t[0][0],t[0][1]):function(r){return r===e||Ur(r,e,t)}}var qr=bi;var yi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_i=/^\w*$/;function Ai(e,t){if(x(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||w(e)?!0:_i.test(e)||!yi.test(e)||t!=null&&e in Object(t)}var ie=Ai;var vi="Expected a function";function $e(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(vi);var r=function(){var o=arguments,a=t?t.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var f=e.apply(this,o);return r.cache=n.set(a,f)||n,f};return r.cache=new($e.Cache||V),r}$e.Cache=V;var Gr=$e;var Si=500;function wi(e){var t=Gr(e,function(o){return r.size===Si&&r.clear(),o}),r=t.cache;return t}var Wr=wi;var Ti=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Oi=/\\(\\)?/g,Pi=Wr(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ti,function(r,o,a,n){t.push(a?n.replace(Oi,"$1"):o||r)}),t}),Vr=Pi;var Ci=1/0,Hr=h?h.prototype:void 0,kr=Hr?Hr.toString:void 0;function zr(e){if(typeof e=="string")return e;if(x(e))return D(e,zr)+"";if(w(e))return kr?kr.call(e):"";var t=e+"";return t=="0"&&1/e==-Ci?"-0":t}var Kr=zr;function Ii(e){return e==null?"":Kr(e)}var U=Ii;function Mi(e,t){return x(e)?e:ie(e,t)?[e]:Vr(U(e))}var Ue=Mi;var Ei=1/0;function ji(e){if(typeof e=="string"||w(e))return e;var t=e+"";return t=="0"&&1/e==-Ei?"-0":t}var B=ji;function Ri(e,t){t=Ue(t,e);for(var r=0,o=t.length;e!=null&&r<o;)e=e[B(t[r++])];return r&&r==o?e:void 0}var pe=Ri;function Di(e,t,r){var o=e==null?void 0:pe(e,t);return o===void 0?r:o}var Zr=Di;function Li(e,t){return e!=null&&t in Object(e)}var $r=Li;function Ni(e,t,r){t=Ue(t,e);for(var o=-1,a=t.length,n=!1;++o<a;){var f=B(t[o]);if(!(n=e!=null&&r(e,f)))break;e=e[f]}return n||++o!=a?n:(a=e==null?0:e.length,!!a&&z(a)&&K(f,a)&&(x(e)||ee(e)))}var Jr=Ni;function Fi(e,t){return e!=null&&Jr(e,t,$r)}var Yr=Fi;var Ui=1,Bi=2;function qi(e,t){return ie(e)&&Ne(t)?Fe(B(e),t):function(r){var o=Zr(r,e);return o===void 0&&o===t?Yr(r,e):Le(t,o,Ui|Bi)}}var Xr=qi;function Gi(e){return function(t){return _optionalChain([t, 'optionalAccess', _3 => _3[e]])}}var Qr=Gi;function Wi(e){return function(t){return pe(t,e)}}var eo=Wi;function Vi(e){return ie(e)?Qr(B(e)):eo(e)}var to=Vi;function Hi(e){return typeof e=="function"?e:e==null?N:typeof e=="object"?x(e)?Xr(e[0],e[1]):qr(e):to(e)}var q=Hi;function ki(e,t){return function(r,o){var a=x(r)?$t:dr,n=t?t():{};return a(r,e,q(o,2),n)}}var Be=ki;var zi=Object.prototype,Ki=zi.hasOwnProperty,Zi=Be(function(e,t,r){Ki.call(e,r)?e[r].push(t):oe(e,r,[t])}),$i= exports.d =Zi;function Ji(){}var ro=Ji;var Yi=1/0,Xi=F&&1/se(new F([,-0]))[1]==Yi?function(e){return new F(e)}:ro,oo=Xi;var Qi=200;function ep(e,t,r){var o=-1,a=we,n=e.length,f=!0,i=[],p=i;if(r)f=!1,a=Te;else if(n>=Qi){var u=t?null:oo(e);if(u)return se(u);f=!1,a=Q,p=new Y}else p=t?[]:i;e:for(;++o<n;){var m=e[o],d=t?t(m):m;if(m=r||m!==0?m:0,f&&d===d){for(var l=p.length;l--;)if(p[l]===d)continue e;t&&p.push(d),i.push(m)}else a(p,d,r)||(p!==i&&p.push(d),i.push(m))}return i}var ue=ep;function tp(e){return e&&e.length?ue(e):[]}var rp=tp;function op(e){var t=e==null?0:e.length;return t?L(e,1):[]}var ap=op;function np(e,t,r){var o=e.length;return r=r===void 0?o:r,!t&&r>=o?e:ye(e,t,r)}var ao=np;var fp="\\ud800-\\udfff",sp="\\u0300-\\u036f",ip="\\ufe20-\\ufe2f",pp="\\u20d0-\\u20ff",up=sp+ip+pp,mp="\\ufe0e\\ufe0f",dp="\\u200d",lp=RegExp("["+dp+fp+up+mp+"]");function cp(e){return lp.test(e)}var qe=cp;function xp(e){return e.split("")}var no=xp;var fo="\\ud800-\\udfff",gp="\\u0300-\\u036f",hp="\\ufe20-\\ufe2f",bp="\\u20d0-\\u20ff",yp=gp+hp+bp,_p="\\ufe0e\\ufe0f",Ap="["+fo+"]",Je="["+yp+"]",Ye="\\ud83c[\\udffb-\\udfff]",vp="(?:"+Je+"|"+Ye+")",so="[^"+fo+"]",io="(?:\\ud83c[\\udde6-\\uddff]){2}",po="[\\ud800-\\udbff][\\udc00-\\udfff]",Sp="\\u200d",uo=vp+"?",mo="["+_p+"]?",wp="(?:"+Sp+"(?:"+[so,io,po].join("|")+")"+mo+uo+")*",Tp=mo+uo+wp,Op="(?:"+[so+Je+"?",Je,io,po,Ap].join("|")+")",Pp=RegExp(Ye+"(?="+Ye+")|"+Op+Tp,"g");function Cp(e){return e.match(Pp)||[]}var lo=Cp;function Ip(e){return qe(e)?lo(e):no(e)}var co=Ip;function Mp(e){return function(t){t=U(t);var r=qe(t)?co(t):void 0,o=r?r[0]:t.charAt(0),a=r?ao(r,1).join(""):t.slice(1);return o[e]()+a}}var xo=Mp;var Ep=xo("toUpperCase"),go=Ep;function jp(e,t,r,o){var a=-1,n=e==null?0:e.length;for(o&&n&&(r=e[++a]);++a<n;)r=t(r,e[a],a,e);return r}var ho=jp;function Rp(e){return function(t){return _optionalChain([e, 'optionalAccess', _4 => _4[t]])}}var bo=Rp;var Dp={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Lp=bo(Dp),yo=Lp;var Np=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Fp="\\u0300-\\u036f",Up="\\ufe20-\\ufe2f",Bp="\\u20d0-\\u20ff",qp=Fp+Up+Bp,Gp="["+qp+"]",Wp=RegExp(Gp,"g");function Vp(e){return e=U(e),e&&e.replace(Np,yo).replace(Wp,"")}var _o=Vp;var Hp=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function kp(e){return e.match(Hp)||[]}var Ao=kp;var zp=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Kp(e){return zp.test(e)}var vo=Kp;var Po="\\ud800-\\udfff",Zp="\\u0300-\\u036f",$p="\\ufe20-\\ufe2f",Jp="\\u20d0-\\u20ff",Yp=Zp+$p+Jp,Co="\\u2700-\\u27bf",Io="a-z\\xdf-\\xf6\\xf8-\\xff",Xp="\\xac\\xb1\\xd7\\xf7",Qp="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",eu="\\u2000-\\u206f",tu=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Mo="A-Z\\xc0-\\xd6\\xd8-\\xde",ru="\\ufe0e\\ufe0f",Eo=Xp+Qp+eu+tu,jo="['\u2019]",So="["+Eo+"]",ou="["+Yp+"]",Ro="\\d+",au="["+Co+"]",Do="["+Io+"]",Lo="[^"+Po+Eo+Ro+Co+Io+Mo+"]",nu="\\ud83c[\\udffb-\\udfff]",fu="(?:"+ou+"|"+nu+")",su="[^"+Po+"]",No="(?:\\ud83c[\\udde6-\\uddff]){2}",Fo="[\\ud800-\\udbff][\\udc00-\\udfff]",me="["+Mo+"]",iu="\\u200d",wo="(?:"+Do+"|"+Lo+")",pu="(?:"+me+"|"+Lo+")",To="(?:"+jo+"(?:d|ll|m|re|s|t|ve))?",Oo="(?:"+jo+"(?:D|LL|M|RE|S|T|VE))?",Uo=fu+"?",Bo="["+ru+"]?",uu="(?:"+iu+"(?:"+[su,No,Fo].join("|")+")"+Bo+Uo+")*",mu="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",du="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",lu=Bo+Uo+uu,cu="(?:"+[au,No,Fo].join("|")+")"+lu,xu=RegExp([me+"?"+Do+"+"+To+"(?="+[So,me,"$"].join("|")+")",pu+"+"+Oo+"(?="+[So,me+wo,"$"].join("|")+")",me+"?"+wo+"+"+To,me+"+"+Oo,du,mu,Ro,cu].join("|"),"g");function gu(e){return e.match(xu)||[]}var qo=gu;function hu(e,t,r){return e=U(e),t=r?void 0:t,t===void 0?vo(e)?qo(e):Ao(e):e.match(t)||[]}var Go=hu;var bu="['\u2019]",yu=RegExp(bu,"g");function _u(e){return function(t){return ho(Go(_o(t).replace(yu,"")),e,"")}}var Wo=_u;function Au(e,t){var r=-1,o=T(e)?Array(e.length):[];return Ie(e,function(a,n,f){o[++r]=t(a,n,f)}),o}var Vo=Au;var vu=Be(function(e,t,r){oe(e,r,t)}),Xe= exports.e =vu;function Su(e,t){var r={};return t=q(t,3),Ce(e,function(o,a,n){oe(r,a,t(o,a,n))}),r}var wu=Su;function Tu(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}var Ho=Tu;function Ou(e,t){if(e!==t){var r=e!==void 0,o=e===null,a=e===e,n=w(e),f=t!==void 0,i=t===null,p=t===t,u=w(t);if(!i&&!u&&!n&&e>t||n&&f&&p&&!i&&!u||o&&f&&p||!r&&p||!a)return 1;if(!o&&!n&&!u&&e<t||u&&r&&a&&!o&&!n||i&&r&&a||!f&&a||!p)return-1}return 0}var ko=Ou;function Pu(e,t,r){for(var o=-1,a=e.criteria,n=t.criteria,f=a.length,i=r.length;++o<f;){var p=ko(a[o],n[o]);if(p){if(o>=i)return p;var u=r[o];return p*(u=="desc"?-1:1)}}return e.index-t.index}var zo=Pu;function Cu(e,t,r){t.length?t=D(t,function(n){return x(n)?function(f){return pe(f,n.length===1?n[0]:n)}:n}):t=[N];var o=-1;t=D(t,X(q));var a=Vo(e,function(n,f,i){var p=D(t,function(u){return u(n)});return{criteria:p,index:++o,value:n}});return Ho(a,function(n,f){return zo(n,f,r)})}var Ko=Cu;var Iu=re(function(e,t){if(e==null)return[];var r=t.length;return r>1&&le(e,t[0],t[1])?t=[]:r>2&&le(t[0],t[1],t[2])&&(t=[t[0]]),Ko(e,L(t,1),[])}),Mu= exports.g =Iu;var Eu=Wo(function(e,t,r){return e+(r?" ":"")+go(t)}),ju= exports.h =Eu;var Ru=re(function(e){return ue(L(e,1,ce,!0))}),Du= exports.i =Ru;function Lu(e,t){return e&&e.length?ue(e,q(t,2)):[]}var Nu=Lu;var Fu="A command line interface for programmatic operations across Transcend.",Uu= exports.m ="8.29.0";var _privacytypes = require('@transcend-io/privacy-types');var fy="transcend",$o= exports.o ="https://app.transcend.io",sy= exports.p =`${$o}/infrastructure/integrations`,iy= exports.q =`${$o}/data-map/data-inventory/data-points`,py= exports.r =process.env.TRANSCEND_API_URL||"https://api.transcend.io",uy= exports.s =process.env.TRANSCEND_CONSENT_API_URL||"https://consent.transcend.io",my= exports.t ={apiKeys:[_privacytypes.ScopeName.ViewApiKeys],templates:[_privacytypes.ScopeName.ManageEmailTemplates],dataSilos:[_privacytypes.ScopeName.ManageDataMap,_privacytypes.ScopeName.ConnectDataSilos],enrichers:[_privacytypes.ScopeName.ManageRequestIdentities],businessEntities:[_privacytypes.ScopeName.ManageDataInventory],processingActivities:[_privacytypes.ScopeName.ManageDataMap],identifiers:[_privacytypes.ScopeName.ManageRequestIdentities],customFields:[_privacytypes.ScopeName.ManageGlobalAttributes],dataFlows:[_privacytypes.ScopeName.ManageDataFlow],cookies:[_privacytypes.ScopeName.ManageDataFlow],consentManager:[_privacytypes.ScopeName.ManageConsentManagerDeveloperSettings],partitions:[_privacytypes.ScopeName.ManageConsentManagerDeveloperSettings],actions:[_privacytypes.ScopeName.ManageDataSubjectRequestSettings],dataSubjects:[_privacytypes.ScopeName.ManageDataSubjectRequestSettings],prompts:[_privacytypes.ScopeName.ManagePrompts],promptPartials:[_privacytypes.ScopeName.ManagePrompts],promptGroups:[_privacytypes.ScopeName.ManagePrompts],agents:[_privacytypes.ScopeName.ManagePathfinder],agentFunctions:[_privacytypes.ScopeName.ManagePathfinder],agentFiles:[_privacytypes.ScopeName.ManagePathfinder],vendors:[_privacytypes.ScopeName.ManageDataInventory],dataCategories:[_privacytypes.ScopeName.ManageDataInventory],processingPurposes:[_privacytypes.ScopeName.ManageDataInventory],actionItems:[_privacytypes.ScopeName.ManageAllActionItems,_privacytypes.ScopeName.ViewGlobalAttributes],actionItemCollections:[_privacytypes.ScopeName.ManageActionItemCollections],teams:[_privacytypes.ScopeName.ManageAccessControl],messages:[_privacytypes.ScopeName.ManageIntlMessages],privacyCenters:[_privacytypes.ScopeName.ManagePrivacyCenter],policies:[_privacytypes.ScopeName.ManagePolicies],assessments:[_privacytypes.ScopeName.ManageAssessments],assessmentTemplates:[_privacytypes.ScopeName.ManageAssessments],purposes:[_privacytypes.ScopeName.ManageConsentManager,_privacytypes.ScopeName.ManagePreferenceStoreSettings],siloDiscoveryResults:[_privacytypes.ScopeName.ManageDataMap]},dy= exports.u ={apiKeys:[_privacytypes.ScopeName.ViewApiKeys],templates:[_privacytypes.ScopeName.ViewEmailTemplates],dataSilos:[_privacytypes.ScopeName.ViewDataMap,_privacytypes.ScopeName.ViewDataSubjectRequestSettings],enrichers:[_privacytypes.ScopeName.ViewRequestIdentitySettings],businessEntities:[_privacytypes.ScopeName.ViewDataInventory],processingActivities:[_privacytypes.ScopeName.ViewDataInventory],identifiers:[_privacytypes.ScopeName.ViewRequestIdentitySettings],customFields:[_privacytypes.ScopeName.ViewGlobalAttributes],dataFlows:[_privacytypes.ScopeName.ViewDataFlow],cookies:[_privacytypes.ScopeName.ViewDataFlow],consentManager:[_privacytypes.ScopeName.ViewConsentManager],partitions:[_privacytypes.ScopeName.ViewConsentManager],actions:[_privacytypes.ScopeName.ViewDataSubjectRequestSettings],dataSubjects:[_privacytypes.ScopeName.ViewDataSubjectRequestSettings],prompts:[_privacytypes.ScopeName.ViewPrompts],promptPartials:[_privacytypes.ScopeName.ViewPrompts],promptGroups:[_privacytypes.ScopeName.ViewPrompts],agents:[_privacytypes.ScopeName.ViewPathfinder],agentFunctions:[_privacytypes.ScopeName.ViewPathfinder],agentFiles:[_privacytypes.ScopeName.ViewPathfinder],vendors:[_privacytypes.ScopeName.ViewDataInventory],dataCategories:[_privacytypes.ScopeName.ViewDataInventory],processingPurposes:[_privacytypes.ScopeName.ViewDataInventory],actionItemCollections:[_privacytypes.ScopeName.ViewAllActionItems],actionItems:[_privacytypes.ScopeName.ViewAllActionItems],teams:[_privacytypes.ScopeName.ViewScopes],messages:[_privacytypes.ScopeName.ViewIntlMessages],privacyCenters:[_privacytypes.ScopeName.ViewPrivacyCenter],policies:[_privacytypes.ScopeName.ViewPolicies],assessments:[_privacytypes.ScopeName.ViewAssessments],assessmentTemplates:[_privacytypes.ScopeName.ViewAssessments],purposes:[_privacytypes.ScopeName.ViewConsentManager,_privacytypes.ScopeName.ViewPreferenceStoreSettings],siloDiscoveryResults:[_privacytypes.ScopeName.ViewDataMap]},ly= exports.v ={apiKeys:"api-keys",customFields:"attributes",dataFlows:"data-flows",cookies:"cookies",consentManager:"consent-manager",partitions:"partitions",actions:"actions",dataSubjects:"data-subjects",businessEntities:"business-entities",processingActivities:"processing-activities",identifiers:"identifiers",enrichers:"enrichers",dataSilos:"data-silos",templates:"templates",prompts:"prompts",promptPartials:"prompt-partials",promptGroups:"prompt-groups",agents:"agents",agentFunctions:"agent-functions",agentFiles:"agent-files",vendors:"vendors",dataCategories:"data-categories",processingPurposes:"processing-purposes",actionItems:"action-items",actionItemCollections:"action-item-collections",teams:"teams",messages:"messages",privacyCenters:"privacy-center",policies:"policies",assessments:"assessments",assessmentTemplates:"assessment-templates",purposes:"purposes",siloDiscoveryResults:"siloDiscoveryResults"},qu= exports.w =Xe(Object.entries(_privacytypes.TRANSCEND_SCOPES).map(([e,t])=>({...t,name:e})),"title"),cy= exports.x =Object.keys(qu),xy= exports.y =new Set([429,502,500,504,329]),gy= exports.z =process.env.DEBUG==="1";exports.a = ap; exports.b = Wa; exports.c = gf; exports.d = $i; exports.e = Xe; exports.f = wu; exports.g = Mu; exports.h = ju; exports.i = Du; exports.j = rp; exports.k = Nu; exports.l = Fu; exports.m = Uu; exports.n = fy; exports.o = $o; exports.p = sy; exports.q = iy; exports.r = py; exports.s = uy; exports.t = my; exports.u = dy; exports.v = ly; exports.w = qu; exports.x = cy; exports.y = xy; exports.z = gy;
|
|
2
2
|
/*! Bundled license information:
|
|
3
3
|
|
|
4
4
|
lodash-es/lodash.js:
|
|
@@ -12,4 +12,4 @@ lodash-es/lodash.js:
|
|
|
12
12
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
13
13
|
*)
|
|
14
14
|
*/
|
|
15
|
-
//# sourceMappingURL=chunk-
|
|
15
|
+
//# sourceMappingURL=chunk-F7QE6D3T.cjs.map
|