@opentdf/ctl 0.20.0-beta.199 → 0.20.0-beta.201

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/dist/src/cli.js CHANGED
@@ -601,4 +601,4 @@ function guessPolicyUrl({ kasEndpoint, policyEndpoint, }) {
601
601
  }
602
602
  return undefined;
603
603
  }
604
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFPTCxhQUFhLEVBQ2IsT0FBTyxFQUNQLGNBQWMsRUFDZCxPQUFPLEVBRVAsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsUUFBUSxFQUFTLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuRCxPQUFPLEtBQUssVUFBVSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQWdCaEQsTUFBTSxtQkFBbUI7SUFDdkIsS0FBSyxDQUFDLHFCQUFxQixLQUFtQixDQUFDO0lBQy9DLFNBQVM7UUFDUCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFeEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFO0lBQzFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMsQ0FBQztBQUVG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
604
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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","sourcesContent":["import { createWriteStream, openAsBlob } from 'node:fs';\nimport { stat } from 'node:fs/promises';\nimport { Writable } from 'node:stream';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport {\n type AuthProvider,\n type CreateOptions,\n type CreateTDFOptions,\n type HttpRequest,\n type ReadOptions,\n type Source,\n AuthProviders,\n version,\n tdfSpecVersion,\n OpenTDF,\n DecoratedStream,\n isPublicKeyAlgorithm,\n PUBLIC_KEY_ALGORITHMS,\n} from '@opentdf/sdk';\nimport { CLIError, Level, log } from './logger.js';\nimport * as assertions from '@opentdf/sdk/assertions';\nimport { base64 } from '@opentdf/sdk/encodings';\nimport { type KeyPair } from '@opentdf/sdk/singlecontainer';\n\ntype AuthToProcess = {\n auth?: string;\n clientId?: string;\n clientSecret?: string;\n concurrencyLimit?: number;\n oidcEndpoint?: string;\n userId?: string;\n};\n\ntype LoggedAuthProvider = AuthProvider & {\n requestLog: HttpRequest[];\n};\n\nclass InvalidAuthProvider {\n async updateClientPublicKey(): Promise<void> {}\n withCreds(): Promise<HttpRequest> {\n throw new Error('Method not implemented.');\n }\n}\n\nconst containerTypes = ['tdf3', 'ztdf'];\n\nconst parseJwt = (jwt: string, field = 1) => {\n return JSON.parse(base64.decode(jwt.split('.')[field]));\n};\n\nconst parseJwtComplete = (jwt: string) => {\n return { header: parseJwt(jwt, 0), payload: parseJwt(jwt) };\n};\n\nasync function processAuth({\n auth,\n clientId,\n clientSecret,\n concurrencyLimit,\n oidcEndpoint,\n userId,\n}: AuthToProcess): Promise<LoggedAuthProvider> {\n log('DEBUG', 'Processing auth params');\n if (!oidcEndpoint) {\n throw new CLIError('CRITICAL', 'oidcEndpoint must be specified');\n }\n if (auth) {\n log('DEBUG', 'Processing an auth string');\n const authParts = auth.split(':');\n if (authParts.length !== 2) {\n throw new CLIError('CRITICAL', `Auth expects <clientId>:<clientSecret>, received ${auth}`);\n }\n\n [clientId, clientSecret] = authParts;\n } else if (!clientId || !clientSecret) {\n throw new CLIError(\n 'CRITICAL',\n 'Auth expects clientId and clientSecret, or combined auth param'\n );\n }\n const actual = await AuthProviders.clientSecretAuthProvider({\n clientId,\n oidcOrigin: oidcEndpoint,\n exchange: 'client',\n clientSecret,\n });\n if (concurrencyLimit !== 1) {\n await actual.oidcAuth.get();\n }\n const requestLog: AuthProviders.HttpRequest[] = [];\n return {\n requestLog,\n updateClientPublicKey: async (signingKey: KeyPair) => {\n actual.updateClientPublicKey(signingKey);\n log('DEBUG', `updateClientPublicKey: [${signingKey?.publicKey}]`);\n },\n withCreds: async (httpReq: AuthProviders.HttpRequest) => {\n const credible = await actual.withCreds(httpReq);\n if (userId) {\n const url = new URL(credible.url);\n url.searchParams.set('userId', userId);\n credible.url = url.href;\n }\n log('DEBUG', `HTTP Requesting: ${JSON.stringify(credible)}`);\n requestLog.push(credible);\n return credible;\n },\n };\n}\n\nconst rstrip = (str: string, suffix = ' '): string => {\n while (str && suffix && str.endsWith(suffix)) {\n str = str.slice(0, -suffix.length);\n }\n return str;\n};\n\nasync function parseAssertionVerificationKeys(\n s: string\n): Promise<assertions.AssertionVerificationKeys> {\n let u: assertions.AssertionVerificationKeys;\n try {\n u = JSON.parse(s);\n } catch (err) {\n // try as file name:\n try {\n const jsonFile = await openAsBlob(s);\n u = JSON.parse(await jsonFile.text());\n } catch (err2) {\n throw new CLIError(\n 'CRITICAL',\n `Failed to open/parse assertion verification keys as string or file path ${err.message}`,\n err2\n );\n }\n }\n if (typeof u !== 'object' || u === null) {\n throw new Error('Invalid input: The input must be an object');\n }\n // handle both cases of \"keys\"\n if (!('Keys' in u && typeof u.Keys === 'object')) {\n if ('keys' in u && typeof u.keys === 'object') {\n u.Keys = u.keys as Record<string, assertions.AssertionKey>;\n } else {\n throw new CLIError(\n 'CRITICAL',\n 'Invalid input: invalid structure of assertionVerificationKeys'\n );\n }\n }\n for (const assertionName in u.Keys) {\n const assertionKey: assertions.AssertionKey = u.Keys[assertionName];\n // Ensure each entry has the required 'key' and 'alg' fields\n if (typeof assertionKey !== 'object' || assertionKey === null) {\n throw new CLIError('CRITICAL', `Invalid assertion for ${assertionName}: Must be an object`);\n }\n\n if (typeof assertionKey.alg !== 'string') {\n throw new CLIError(\n 'CRITICAL',\n `Invalid assertion for ${assertionName}: Missing or invalid 'key' or 'alg'`\n );\n }\n try {\n u.Keys[assertionName].key = await correctAssertionKeys(assertionKey);\n } catch (err) {\n throw new CLIError('CRITICAL', `Issue converting assertion key from string: ${err.message}`);\n }\n }\n return u;\n}\n\nasync function parseReadOptions(argv: Partial<mainArgs>): Promise<ReadOptions> {\n const r: ReadOptions = { source: await fileAsSource(argv.file as string) };\n if (argv.noVerifyAssertions) {\n r.noVerify = true;\n }\n if (argv.assertionVerificationKeys) {\n r.assertionVerificationKeys = await parseAssertionVerificationKeys(\n argv.assertionVerificationKeys\n );\n }\n if (argv.rewrapKeyType?.length) {\n if (!isPublicKeyAlgorithm(argv.rewrapKeyType)) {\n throw new CLIError('CRITICAL', `Unsupported rewrap key algorithm: [${argv.rewrapKeyType}]`);\n }\n r.wrappingKeyAlgorithm = argv.rewrapKeyType;\n }\n if (argv.concurrencyLimit) {\n r.concurrencyLimit = argv.concurrencyLimit;\n } else {\n r.concurrencyLimit = 100;\n }\n return r;\n}\n\nasync function correctAssertionKeys({\n alg,\n key,\n}: assertions.AssertionKey): Promise<string | Uint8Array> {\n if (alg === 'HS256') {\n // Convert key string to Uint8Array\n if (typeof key !== 'string') {\n throw new CLIError('CRITICAL', 'HS256 key must be a string');\n }\n return new TextEncoder().encode(key); // Update array element directly\n } else if (alg === 'RS256') {\n // Convert PEM string to a KeyLike object\n if (typeof key !== 'string') {\n throw new CLIError('CRITICAL', 'RS256 key must be a PEM string');\n }\n return key;\n }\n // Otherwise its an unsupported alg\n throw new CLIError('CRITICAL', `Unsupported signing key algorithm: ${alg}`); // Handle unsupported algs\n}\n\nasync function parseAssertionConfig(s: string): Promise<assertions.AssertionConfig[]> {\n let u;\n try {\n u = JSON.parse(s);\n } catch (err) {\n // try as file name:\n try {\n const jsonFile = await openAsBlob(s);\n u = JSON.parse(await jsonFile.text());\n } catch (err2) {\n throw new CLIError(\n 'CRITICAL',\n `Failed to open/parse assertions as string or file path ${err.message} [${err2}]`,\n err\n );\n }\n }\n\n // if u is null or empty, return an empty array\n if (!u) {\n return [];\n }\n const a = Array.isArray(u) ? u : [u];\n for (const assertion of a) {\n if (!assertions.isAssertionConfig(assertion)) {\n throw new CLIError('CRITICAL', `invalid assertion config ${JSON.stringify(assertion)}`);\n }\n if (!assertion.signingKey) {\n continue;\n }\n try {\n assertion.signingKey.key = await correctAssertionKeys(assertion.signingKey);\n } catch (err) {\n throw new CLIError(\n 'CRITICAL',\n `Issue converting assertion key from string: ${err.message}`,\n err\n );\n }\n }\n return a;\n}\n\nasync function parseCreateOptions(argv: Partial<mainArgs>): Promise<CreateOptions> {\n const c: CreateOptions = {\n source: await fileAsSource(argv.file as string),\n };\n if (argv.attributes?.length) {\n c.attributes = argv.attributes.split(',');\n }\n c.autoconfigure = !!argv.autoconfigure;\n return c;\n}\n\nasync function parseCreateTDFOptions(argv: Partial<mainArgs>): Promise<CreateTDFOptions> {\n const c: CreateTDFOptions = await parseCreateOptions(argv);\n if (argv.assertions?.length) {\n c.assertionConfigs = await parseAssertionConfig(argv.assertions);\n }\n if (argv.encapKeyType?.length) {\n if (!isPublicKeyAlgorithm(argv.encapKeyType)) {\n throw new CLIError('CRITICAL', `Unsupported rewrap key algorithm: [${argv.encapKeyType}]`);\n }\n c.wrappingKeyAlgorithm = argv.encapKeyType;\n }\n if (argv.mimeType?.length) {\n if (argv.mimeType && /^[a-z]+\\/[a-z0-9-+.]+$/.test(argv.mimeType)) {\n c.mimeType = argv.mimeType as `${string}/${string}`;\n } else {\n throw new CLIError('CRITICAL', 'Invalid mimeType format');\n }\n }\n if (argv.tdfSpecVersion) {\n c.tdfSpecVersion = argv.tdfSpecVersion as never;\n }\n log('DEBUG', `CreateTDFOptions: ${JSON.stringify(c)}`);\n return c;\n}\n\nasync function fileAsSource(file: string): Promise<Source> {\n if (!file) {\n throw new CLIError('CRITICAL', 'Must specify file or pipe');\n }\n try {\n const stats = await stat(file);\n if (!stats?.isFile()) {\n throw new CLIError('CRITICAL', `File does not exist [${file}]`);\n }\n } catch (e) {\n throw new CLIError('CRITICAL', `File is not accessable [${file}]`, e);\n }\n log('DEBUG', `Using input from file [${file}]`);\n return { type: 'file-browser', location: await openAsBlob(file) };\n}\n\nexport const handleArgs = (args: string[]) => {\n return (\n yargs(args)\n .middleware((argv) => {\n if (argv.silent) {\n log.level = 'CRITICAL';\n } else if (argv.logLevel) {\n const ll = argv.logLevel as string;\n log.level = ll.toUpperCase() as Level;\n }\n })\n .fail((msg, err, yargs) => {\n if (err instanceof CLIError) {\n log(err);\n process.exit(1);\n } else if (err) {\n log(err);\n process.exit(2);\n } else {\n console.error(`${msg}\\n\\n${yargs.help()}`);\n process.exit(1);\n }\n })\n\n // AUTH OPTIONS\n .option('kasEndpoint', {\n group: 'Server Endpoints:',\n type: 'string',\n description: 'URL to non-default KAS instance (https://mykas.net)',\n })\n .option('platformUrl', {\n group: 'Server Endpoints:',\n type: 'string',\n description: 'Location of policy service and KAS (https://opentdf.demo)',\n })\n .option('oidcEndpoint', {\n group: 'Server Endpoints:',\n type: 'string',\n description: 'URL to non-default OIDC IdP (https://myidp.net)',\n })\n .option('policyEndpoint', {\n group: 'Server Endpoints:',\n type: 'string',\n description: 'Attribute and key grant service endpoint',\n })\n .option('allowList', {\n group: 'Security:',\n desc: 'allowed KAS origins, comma separated; defaults to the list from \"/key-access-servers\" endpoint',\n type: 'string',\n validate: (uris: string) => uris.split(','),\n })\n .option('ignoreAllowList', {\n group: 'Security:',\n desc: 'disable KAS allowlist feature for decrypt',\n type: 'boolean',\n })\n .option('noVerifyAssertions', {\n alias: 'no-verify-assertions',\n group: 'Decrypt',\n desc: 'Do not verify assertions',\n type: 'boolean',\n })\n .option('assertionVerificationKeys', {\n alias: 'with-assertion-verification-keys',\n group: 'Decrypt',\n desc: 'keys for assertion verification or path to a json file containing keys for assertion verification',\n type: 'string',\n default: '',\n validate: parseAssertionVerificationKeys,\n })\n .option('concurrencyLimit', {\n alias: 'concurrency-limit',\n group: 'Decrypt',\n desc: 'Enable concurrent key split and share lookups',\n type: 'number',\n })\n .option('auth', {\n group: 'OAuth and OIDC:',\n type: 'string',\n description: 'Combined OAuth Client Credentials (<clientId>:<clientSecret>)',\n })\n .option('dpop', {\n group: 'Security:',\n desc: 'Use DPoP for token binding',\n type: 'boolean',\n })\n .implies('auth', '--no-clientId')\n .implies('auth', '--no-clientSecret')\n\n .option('clientId', {\n group: 'OAuth and OIDC:',\n alias: 'cid',\n type: 'string',\n description: 'OAuth Client Credentials: IdP-issued Client ID',\n })\n .implies('clientId', 'clientSecret')\n\n .option('clientSecret', {\n group: 'OAuth and OIDC:',\n alias: 'cs',\n type: 'string',\n description: 'OAuth Client Credentials: IdP-issued Client Secret',\n })\n .implies('clientSecret', 'clientId')\n\n .option('exchangeToken', {\n group: 'OAuth and OIDC:',\n alias: 'et',\n type: 'string',\n description: 'OAuth Token Exchange: Token issued by trusted external IdP',\n })\n .implies('exchangeToken', 'clientId')\n\n // Examples\n .example('$0 --auth ClientID123:Cli3nt$ecret', '# OIDC client credentials')\n\n .example('$0 --clientId ClientID123 --clientSecret Cli3nt$ecret', '# OIDC client credentials')\n\n // Policy, encryption, and container options\n .options({\n assertions: {\n group: 'Encrypt Options:',\n desc: 'ZTDF assertion config objects or path to a json file containing ZTDF assertion config objects',\n type: 'string',\n default: '',\n validate: parseAssertionConfig,\n },\n attributes: {\n group: 'Encrypt Options:',\n desc: 'Data attributes for the policy',\n type: 'string',\n default: '',\n validate: (attributes: string) => attributes.split(','),\n },\n autoconfigure: {\n group: 'Encrypt Options:',\n desc: 'Enable automatic configuration from attributes using policy service',\n type: 'boolean',\n default: false,\n },\n containerType: {\n group: 'Encrypt Options:',\n alias: 't',\n choices: containerTypes,\n description: 'Container format',\n default: 'ztdf',\n },\n encapKeyType: {\n alias: 'encapsulation-algorithm',\n group: 'Encrypt Options:',\n desc: 'Key type for wrapping keys',\n type: 'string',\n choices: PUBLIC_KEY_ALGORITHMS,\n default: 'rsa:2048',\n },\n mimeType: {\n group: 'Encrypt Options:',\n desc: 'Mime type for the plain text file',\n type: 'string',\n default: '',\n },\n rewrapKeyType: {\n alias: 'rewrap-encapsulation-algorithm',\n group: 'Decrypt Options:',\n desc: 'Key type for rewrap',\n type: 'string',\n choices: PUBLIC_KEY_ALGORITHMS,\n default: 'rsa:2048',\n },\n userId: {\n group: 'Encrypt Options:',\n type: 'string',\n description: 'Owner email address',\n },\n tdfSpecVersion: {\n group: 'Encrypt Options:',\n type: 'string',\n description: 'TDF spec version for file creation',\n default: tdfSpecVersion,\n },\n })\n\n .options({\n logLevel: {\n group: 'Verbosity:',\n alias: 'log-level',\n type: 'string',\n default: 'info',\n desc: 'Set logging level',\n },\n silent: {\n group: 'Verbosity:',\n type: 'boolean',\n default: false,\n desc: 'Disable logging',\n },\n })\n .option('output', {\n type: 'string',\n description: 'output file',\n })\n\n .command(\n 'inspect [file]',\n 'Inspect TDF and extract header information, without decrypting',\n (yargs) => {\n yargs.strict().positional('file', {\n describe: 'path to encrypted file',\n type: 'string',\n });\n },\n async (argv) => {\n log('DEBUG', 'Running inspect command');\n const ct = new OpenTDF({\n platformUrl: argv.platformUrl || guessPolicyUrl(argv),\n authProvider: new InvalidAuthProvider(),\n });\n try {\n const reader = ct.open(await parseReadOptions(argv));\n const manifest = await reader.manifest();\n try {\n const dataAttributes = await reader.attributes();\n console.log(JSON.stringify({ manifest, dataAttributes }, null, 2));\n } catch (err) {\n console.error(err);\n console.log(JSON.stringify({ manifest }, null, 2));\n }\n } finally {\n ct.close();\n }\n }\n )\n\n .command(\n 'decrypt [file]',\n 'Decrypt TDF to string',\n (yargs) => {\n yargs.strict().positional('file', {\n describe: 'path to plain text file',\n type: 'string',\n });\n },\n async (argv) => {\n log('DEBUG', 'Running decrypt command');\n const allowedKases = argv.allowList?.split(',');\n log('DEBUG', `Allowed KASes: ${allowedKases}`);\n const ignoreAllowList = !!argv.ignoreAllowList;\n if (!argv.oidcEndpoint) {\n throw new CLIError('CRITICAL', 'oidcEndpoint must be specified');\n }\n const authProvider = await processAuth(argv);\n log('DEBUG', `Initialized auth provider ${JSON.stringify(authProvider)}`);\n const guessedPolicyEndpoint = guessPolicyUrl(argv);\n const client = new OpenTDF({\n authProvider,\n defaultCreateOptions: {\n defaultKASEndpoint: argv.kasEndpoint,\n },\n defaultReadOptions: {\n allowedKASEndpoints: allowedKases,\n ignoreAllowlist: ignoreAllowList,\n noVerify: !!argv.noVerifyAssertions,\n },\n disableDPoP: !argv.dpop,\n policyEndpoint: guessedPolicyEndpoint,\n platformUrl: argv.platformUrl || guessedPolicyEndpoint,\n });\n try {\n log('SILLY', `Initialized client`);\n log('DEBUG', `About to TDF3 decrypt [${argv.file}]`);\n const ct = await client.read(await parseReadOptions(argv));\n const destination = argv.output ? createWriteStream(argv.output) : process.stdout;\n await ct.pipeTo(Writable.toWeb(destination));\n\n const lastRequest = authProvider.requestLog[authProvider.requestLog.length - 1];\n log('SILLY', `last request is ${JSON.stringify(lastRequest)}`);\n let accessToken = null;\n let dpopToken = null;\n for (const h of Object.keys(lastRequest.headers)) {\n switch (h.toLowerCase()) {\n case 'dpop':\n console.assert(!dpopToken, 'Multiple dpop headers found');\n dpopToken = parseJwtComplete(lastRequest.headers[h]);\n log('INFO', `dpop: ${JSON.stringify(dpopToken)}`);\n break;\n case 'authorization':\n console.assert(!accessToken, 'Multiple authorization headers found');\n accessToken = parseJwt(lastRequest.headers[h].split(' ')[1]);\n log('INFO', `Access Token: ${JSON.stringify(accessToken)}`);\n if (argv.dpop) {\n console.assert(accessToken.cnf?.jkt, 'Access token must have a cnf.jkt');\n }\n break;\n }\n }\n console.assert(accessToken, 'No access_token found');\n console.assert(!argv.dpop || dpopToken, 'DPoP requested but absent');\n } finally {\n client.close();\n }\n }\n )\n .command(\n 'encrypt [file]',\n 'Encrypt file or pipe to a TDF',\n (yargs) => {\n yargs.strict().positional('file', {\n describe: 'path to plain text file',\n type: 'string',\n });\n },\n async (argv) => {\n log('DEBUG', 'Running encrypt command');\n const authProvider = await processAuth(argv);\n log('DEBUG', `Initialized auth provider ${JSON.stringify(authProvider)}`);\n const guessedPolicyEndpoint = guessPolicyUrl(argv);\n\n const client = new OpenTDF({\n authProvider,\n defaultCreateOptions: {\n defaultKASEndpoint: argv.kasEndpoint,\n },\n disableDPoP: !argv.dpop,\n policyEndpoint: guessedPolicyEndpoint,\n platformUrl: argv.platformUrl || guessedPolicyEndpoint,\n });\n try {\n log('SILLY', `Initialized client`);\n log('DEBUG', `TDF Create`);\n const ct: DecoratedStream = await client.createTDF(await parseCreateTDFOptions(argv));\n if (!ct) {\n throw new CLIError('CRITICAL', 'Encrypt configuration error: No output?');\n }\n const destination = argv.output ? createWriteStream(argv.output) : process.stdout;\n await ct.pipeTo(Writable.toWeb(destination));\n } finally {\n client.close();\n }\n }\n )\n .usage('openTDF CLI\\n\\nUsage: $0 [options]')\n .alias('help', 'h')\n .demandCommand()\n .recommendCommands()\n .help('help')\n .options({\n env: {\n desc: 'Set the environment',\n },\n })\n\n .version(\n 'version',\n JSON.stringify({\n '@opentdf/sdk': version,\n tdfSpecVersion,\n })\n )\n .alias('version', 'V')\n .strict()\n .parseAsync()\n );\n};\n\nexport type mainArgs = Awaited<ReturnType<typeof handleArgs>>;\nexport const main = async (argsPromise: mainArgs) => {\n return argsPromise;\n};\n\nhandleArgs(hideBin(process.argv))\n .then(main)\n .then(() => {\n // Nothing;\n })\n .catch((err) => {\n console.error(err);\n });\n\nfunction guessPolicyUrl({\n kasEndpoint,\n policyEndpoint,\n}: {\n kasEndpoint?: string;\n policyEndpoint?: string;\n}): string | undefined {\n if (policyEndpoint) {\n return rstrip(policyEndpoint, '/');\n }\n if (kasEndpoint) {\n const uNoSlash = rstrip(kasEndpoint, '/');\n return uNoSlash.endsWith('/kas') ? uNoSlash.slice(0, -4) : uNoSlash;\n }\n return undefined;\n}\n"]}
@@ -61,4 +61,4 @@ export const log = Object.assign((thing, message) => {
61
61
  process.exit(1);
62
62
  }
63
63
  }, { level: 'INFO' });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRTFGLE1BQU0sT0FBTyxRQUFTLFNBQVEsS0FBSztJQUVqQyxZQUFZLE1BQWEsRUFBRSxPQUFlLEVBQUUsS0FBYTtRQUN2RCxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFPRCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FDdEMsQ0FBQyxLQUErQixFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUNwRCxJQUFJLENBQWUsQ0FBQztJQUNwQixJQUFJLENBQVMsQ0FBQztJQUNkLElBQUksQ0FBUSxDQUFDO0lBRWIsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDakIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDbEIsQ0FBQyxHQUFHLEtBQWMsQ0FBQztJQUNyQixDQUFDO1NBQU0sSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDbEMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUNmLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ2xCLENBQUMsR0FBRyxLQUFjLENBQUM7SUFDckIsQ0FBQztTQUFNLENBQUM7UUFDTixDQUFDLEdBQUcsS0FBYyxDQUFDO1FBQ25CLENBQUMsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2xCLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDL0IsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDVixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLENBQUM7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUjtnQkFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0QixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQyxFQUNELEVBQUUsS0FBSyxFQUFFLE1BQWUsRUFBRSxDQUMzQixDQUFDIn0=
64
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,MAAM,GAAY,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1F,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEjC,YAAY,MAAa,EAAE,OAAe,EAAE,KAAa;QACvD,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAOD,MAAM,CAAC,MAAM,GAAG,GAAW,MAAM,CAAC,MAAM,CACtC,CAAC,KAA+B,EAAE,OAAgB,EAAE,EAAE;IACpD,IAAI,CAAe,CAAC;IACpB,IAAI,CAAS,CAAC;IACd,IAAI,CAAQ,CAAC;IAEb,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACjB,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QAClB,CAAC,GAAG,KAAc,CAAC;IACrB,CAAC;SAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAClC,CAAC,GAAG,UAAU,CAAC;QACf,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QAClB,CAAC,GAAG,KAAc,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,KAAc,CAAC;QACnB,CAAC,GAAG,OAAO,IAAI,EAAE,CAAC;QAClB,CAAC,GAAG,IAAI,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,EAAE,CAAC;YACV,KAAK,UAAU,CAAC;YAChB,KAAK,OAAO;gBACV,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;gBACD,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,EAAE,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;gBACD,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtB,MAAM;QACV,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,EACD,EAAE,KAAK,EAAE,MAAe,EAAE,CAC3B,CAAC","sourcesContent":["export type Level = 'CRITICAL' | 'ERROR' | 'WARNING' | 'INFO' | 'DEBUG' | 'SILLY';\nexport const Levels: Level[] = ['CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG', 'SILLY'];\n\nexport class CLIError extends Error {\n prefix: Level;\n constructor(prefix: Level, message: string, cause?: Error) {\n super(message, { cause });\n this.prefix = prefix;\n this.message = message;\n }\n}\n\nexport type Logger = {\n (e: Error | CLIError | Level, message?: string): void;\n level: Level;\n};\n\nexport const log: Logger = Object.assign(\n (thing: Error | CLIError | Level, message?: string) => {\n let e: Error | null;\n let m: string;\n let l: Level;\n\n if (thing instanceof CLIError) {\n l = thing.prefix;\n m = thing.message;\n e = thing as Error;\n } else if (thing instanceof Error) {\n l = 'CRITICAL';\n m = thing.message;\n e = thing as Error;\n } else {\n l = thing as Level;\n m = message || '';\n e = null;\n }\n const prefixed = `[${l}] ${m}`;\n const i = Levels.indexOf(l);\n if (i <= Levels.indexOf(log.level)) {\n switch (l) {\n case 'CRITICAL':\n case 'ERROR':\n if (e && !(e instanceof CLIError)) {\n console.error(prefixed, e);\n } else {\n console.error(prefixed);\n }\n break;\n case 'WARNING':\n if (e) {\n console.warn(prefixed, e);\n } else {\n console.warn(prefixed);\n }\n break;\n case 'INFO':\n console.info(prefixed);\n break;\n default:\n console.log(prefixed);\n break;\n }\n }\n if (log.level === 'SILLY') {\n console.error(e);\n }\n if (l === 'CRITICAL') {\n process.exit(1);\n }\n },\n { level: 'INFO' as Level }\n);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentdf/ctl",
3
- "version": "0.20.0-beta.199",
3
+ "version": "0.20.0-beta.201",
4
4
  "description": "Node based CLI for opentdf",
5
5
  "repository": {
6
6
  "type": "git",
@@ -55,7 +55,7 @@
55
55
  "diff": "^8.0.3"
56
56
  },
57
57
  "dependencies": {
58
- "@opentdf/sdk": "^0.20.0-beta.199",
58
+ "@opentdf/sdk": "^0.20.0-beta.201",
59
59
  "yargs": "^18.0.0"
60
60
  }
61
61
  }