@fjall/util 0.102.0 → 2.1.1

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/.minified CHANGED
@@ -1 +1 @@
1
- 57 files minified at 2026-05-23T08:39:30.171Z
1
+ 57 files minified at 2026-05-24T01:07:56.756Z
@@ -9,7 +9,7 @@
9
9
  * JSON-stringified array of strings on the migration container's env,
10
10
  * plus per-user `USER_<NAME>_PASSWORD` secretsImport entries.
11
11
  *
12
- * Consumer: `@fjall/clickhouse-migrations § provisionUsersFromEnv` parses the
12
+ * Consumer: `@fjall/clickhouse § provisionUsersFromEnv` parses the
13
13
  * env, reads each password from `process.env[USER_<NAME>_PASSWORD]` (injected
14
14
  * by ECS executionRole — no runtime SDK call), and issues
15
15
  * `CREATE USER IF NOT EXISTS … IDENTIFIED WITH sha256_password BY '<pw>'`
@@ -38,7 +38,7 @@ export declare const CLICKHOUSE_MANAGED_USERS_ENV: "CLICKHOUSE_MANAGED_USERS";
38
38
  * (the framework wires the executionRole `secretsmanager:GetSecretValue` grant
39
39
  * via the standard `secretsImport` path).
40
40
  *
41
- * Consumer: `@fjall/clickhouse-migrations § provisionUsersFromEnv` reads
41
+ * Consumer: `@fjall/clickhouse § provisionUsersFromEnv` reads
42
42
  * `process.env[userPasswordEnvName(name)]` for each entry in the manifest —
43
43
  * no runtime SDK call.
44
44
  *
@@ -1 +1 @@
1
- const E=new Set(["NODE_OPTIONS","NODE_PATH","NODE_EXTRA_CA_CERTS","NODE_DEBUG","NODE_PRESERVE_SYMLINKS","LD_PRELOAD","LD_LIBRARY_PATH","LD_AUDIT","LD_BIND_NOW","DYLD_INSERT_LIBRARIES","DYLD_LIBRARY_PATH","DYLD_FRAMEWORK_PATH","PYTHONPATH","PYTHONSTARTUP","PERL5LIB","PERL5OPT","RUBYLIB","RUBYOPT","HOME","XDG_CONFIG_HOME","AWS_SHARED_CREDENTIALS_FILE","AWS_CONFIG_FILE","SHELL","BASH_ENV","ENV","ZDOTDIR"]);function A(e){return Object.fromEntries(Object.entries(e).filter(([s])=>!E.has(s.toUpperCase())))}const c=/fjall_ak_[A-Z2-7]{16}\.[A-Z2-7]{40}/,i=/fjall_ak_[A-Z2-7]{16}\.[A-Z2-7]{40}/g;function o(e){return e.replace(/(\w+:\/\/[^:]+:)[^@]+(@)/gi,"$1***$2").replace(/(?<![a-zA-Z])(password|passwd|secret|api[_-]?key|token|auth|credential)([=:])["']?[^\s"']+/gi,"$1$2***").replace(/\b(ghu_|ghs_|ghp_|gho_|github_pat_)[A-Za-z0-9_]+/g,"$1***").replace(/(?<=Authorization:\s*Bearer\s+)[A-Za-z0-9._~+/=-]+/gi,"***").replace(/\b(AKIA|ASIA)[A-Z0-9]{12,}\b/g,"$1***").replace(/(?<=AWS_SECRET_ACCESS_KEY=|SecretAccessKey[=:]\s*|"secretAccessKey":\s*")[A-Za-z0-9/+=]{40,}/g,"***").replace(/(arn:aws[^:]*:[^:]*:[^:]*:)(\d{12})(:[^\s]*)/g,"$1***$3").replace(/(?<="(aws)?[Ss]essionToken":\s*")[^"]+/g,"***").replace(/(?<="(internal[Aa]piKey|fjallCallbackToken)":\s*")[^"]+/g,"***").replace(i,"fjall_ak_***")}function u(e){const s=[];let r="",t=!1,_=!1,l=!1,n=!1;for(const a of e){if(l){r+=a,l=!1;continue}if(a==="\\"&&!t){l=!0;continue}if(a==="'"&&!_){t=!t,n=!0;continue}if(a==='"'&&!t){_=!_,n=!0;continue}if(a===" "&&!t&&!_){(r||n)&&(s.push(r),r="",n=!1);continue}r+=a}if(t||_)throw new Error(`Unbalanced ${t?"single":"double"} quote in command: ${e.slice(0,80)}`);if(l)throw new Error(`Trailing backslash in command: ${e.slice(0,80)}`);return(r||n)&&s.push(r),s}export{E as DANGEROUS_ENV_VARS,c as SCOPED_TOKEN_REGEX,A as filterDangerousEnvVars,o as maskSensitiveOutput,u as parseShellArgs};
1
+ const n=new Set(["NODE_OPTIONS","NODE_PATH","NODE_EXTRA_CA_CERTS","NODE_DEBUG","NODE_PRESERVE_SYMLINKS","LD_PRELOAD","LD_LIBRARY_PATH","LD_AUDIT","LD_BIND_NOW","DYLD_INSERT_LIBRARIES","DYLD_LIBRARY_PATH","DYLD_FRAMEWORK_PATH","PYTHONPATH","PYTHONSTARTUP","PERL5LIB","PERL5OPT","RUBYLIB","RUBYOPT","HOME","XDG_CONFIG_HOME","AWS_SHARED_CREDENTIALS_FILE","AWS_CONFIG_FILE","SHELL","BASH_ENV","ENV","ZDOTDIR"]);function i(e){return Object.fromEntries(Object.entries(e).filter(([t])=>!n.has(t.toUpperCase())))}const c=/fjall_ak_[A-Z2-7]{16}\.[A-Z2-7]{40}/,l=/fjall_ak_[A-Z2-7]{16}\.[A-Z2-7]{40}/g;function o(e){return e.replace(/-----BEGIN [A-Z ]*PRIVATE KEY-----(?:[^"\\]|\\[\\nrt"])*?-----END [A-Z ]*PRIVATE KEY-----/g,"-----BEGIN [REDACTED] PRIVATE KEY-----...-----END [REDACTED] PRIVATE KEY-----").replace(/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g,"-----BEGIN [REDACTED] PRIVATE KEY-----...-----END [REDACTED] PRIVATE KEY-----").replace(/(\w+:\/\/[^:]+:)[^@]+(@)/gi,"$1***$2").replace(/(?<![a-zA-Z])(password|passwd|secret|api[_-]?key|token|auth|credential)([=:])["']?[^\s"']+/gi,"$1$2***").replace(/\b(ghu_|ghs_|ghp_|gho_|github_pat_)[A-Za-z0-9_]+/g,"$1***").replace(/(?<=Authorization:\s*Bearer\s+)[A-Za-z0-9._~+/=-]+/gi,"***").replace(/\b(AKIA|ASIA)[A-Z0-9]{12,}\b/g,"$1***").replace(/(?<=AWS_SECRET_ACCESS_KEY=|SecretAccessKey[=:]\s*|"secretAccessKey":\s*")[A-Za-z0-9/+=]{40,}/g,"***").replace(/(arn:aws[^:]*:[^:]*:[^:]*:)(\d{12})(:[^\s]*)/g,"$1***$3").replace(/(?<="(aws)?[Ss]essionToken":\s*")[^"]+/g,"***").replace(/(?<="(internal[Aa]piKey|fjallCallbackToken)":\s*")[^"]+/g,"***").replace(l,"fjall_ak_***")}function D(e){const t=[];let E="",r=!1,A=!1,_=!1,s=!1;for(const a of e){if(_){E+=a,_=!1;continue}if(a==="\\"&&!r){_=!0;continue}if(a==="'"&&!A){r=!r,s=!0;continue}if(a==='"'&&!r){A=!A,s=!0;continue}if(a===" "&&!r&&!A){(E||s)&&(t.push(E),E="",s=!1);continue}E+=a}if(r||A)throw new Error(`Unbalanced ${r?"single":"double"} quote in command: ${e.slice(0,80)}`);if(_)throw new Error(`Trailing backslash in command: ${e.slice(0,80)}`);return(E||s)&&t.push(E),t}export{n as DANGEROUS_ENV_VARS,c as SCOPED_TOKEN_REGEX,i as filterDangerousEnvVars,o as maskSensitiveOutput,D as parseShellArgs};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fjall/util",
3
- "version": "0.102.0",
3
+ "version": "2.1.1",
4
4
  "description": "Common utility methods",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -105,7 +105,7 @@
105
105
  "prettier": "^3.8.3",
106
106
  "tsc-watch": "^7.2.0",
107
107
  "typescript": "^6.0.3",
108
- "vitest": "^4.1.5"
108
+ "vitest": "^4.1.7"
109
109
  },
110
110
  "dependencies": {
111
111
  "@aws-sdk/client-organizations": "^3.1038.0",
@@ -117,5 +117,5 @@
117
117
  "engines": {
118
118
  "node": ">=22.0.0"
119
119
  },
120
- "gitHead": "04a4f13181c261cc063786eae527fa82c90a610e"
120
+ "gitHead": "971d9ed50c6a21d24e67c9c83b9c471a632bf284"
121
121
  }