@miadi/tide-contract 0.3.4 → 0.3.6

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.
@@ -1,22 +0,0 @@
1
- export type TideSecretRuleKind = "token" | "labelled" | "block";
2
- export interface TideSecretRule {
3
- name: string;
4
- /** token: the whole match is redacted. labelled: group 1 is kept, group 2 is redacted. block: the whole match becomes `replacement`. */
5
- kind: TideSecretRuleKind;
6
- /** A regex in the subset JavaScript and Python share. */
7
- pattern: string;
8
- /** "" or "i". */
9
- flags: string;
10
- replacement?: string;
11
- }
12
- export declare const TIDE_SECRET_MASK = "***";
13
- /** Applied top to bottom. */
14
- export declare const TIDE_SECRET_RULES: readonly TideSecretRule[];
15
- /** A secret as its first 6 characters (4 when shorter than 7) followed by `***`. */
16
- export declare function redactSecretValue(value: string): string;
17
- /**
18
- * Text with every credential the rules know redacted. Running it again changes
19
- * nothing, so a capture ironsilk already redacted passes through unchanged.
20
- */
21
- export declare function sanitizeSecrets(text: string): string;
22
- //# sourceMappingURL=secret-redaction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secret-redaction.d.ts","sourceRoot":"","sources":["../src/secret-redaction.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAA;AAE/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,wIAAwI;IACxI,IAAI,EAAE,kBAAkB,CAAA;IACxB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,gBAAgB,QAAQ,CAAA;AAErC,6BAA6B;AAC7B,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAwBtD,CAAA;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGvD;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAapD"}
@@ -1,60 +0,0 @@
1
- // Credential redaction for pane captures (jgwill/Miadi#745).
2
- //
3
- // schema/secret-redaction.json is the rule list; TIDE_SECRET_RULES mirrors it
4
- // and test/secret-redaction.test.ts holds the two equal. Change the JSON first.
5
- // ironsilk carries its own copy (tide_runtime/secret_redaction.json), held equal
6
- // to the same JSON by its tests.
7
- export const TIDE_SECRET_MASK = "***";
8
- /** Applied top to bottom. */
9
- export const TIDE_SECRET_RULES = [
10
- { name: "private-key-block", kind: "block", pattern: "-----BEGIN [^-]*PRIVATE KEY-----[\\s\\S]*?-----END [^-]*PRIVATE KEY-----", flags: "", replacement: "-----BEGIN PRIVATE KEY-----***-----END PRIVATE KEY-----" },
11
- { name: "putty-key", kind: "block", pattern: "PuTTY-User-Key-File-[0-9][\\s\\S]*?(?:Private-MAC:[^\\n]*|$)", flags: "", replacement: "PuTTY-User-Key-File-***" },
12
- { name: "aws-access-key", kind: "token", pattern: "(?<![A-Za-z0-9])AKIA[0-9A-Z]{16}", flags: "" },
13
- { name: "aws-session-key", kind: "token", pattern: "(?<![A-Za-z0-9])ASIA[0-9A-Z]{16}", flags: "" },
14
- { name: "github-token", kind: "token", pattern: "(?<![A-Za-z0-9])gh[pousr]_[A-Za-z0-9_]{20,}", flags: "" },
15
- { name: "github-pat", kind: "token", pattern: "(?<![A-Za-z0-9])github_pat_[A-Za-z0-9_]{20,}", flags: "" },
16
- { name: "gitlab-pat", kind: "token", pattern: "(?<![A-Za-z0-9])glpat-[A-Za-z0-9_-]{18,}", flags: "" },
17
- { name: "anthropic-key", kind: "token", pattern: "(?<![A-Za-z0-9])sk-ant-[A-Za-z0-9_-]{20,}", flags: "" },
18
- { name: "openai-project-key", kind: "token", pattern: "(?<![A-Za-z0-9])sk-proj-[A-Za-z0-9_-]{20,}", flags: "" },
19
- { name: "openai-key", kind: "token", pattern: "(?<![A-Za-z0-9])sk-[A-Za-z0-9_-]{20,}", flags: "" },
20
- { name: "slack-token", kind: "token", pattern: "(?<![A-Za-z0-9])xox[baprs]-[A-Za-z0-9-]{10,}", flags: "" },
21
- { name: "google-api-key", kind: "token", pattern: "(?<![A-Za-z0-9])AIza[0-9A-Za-z_-]{35}", flags: "" },
22
- { name: "google-oauth-token", kind: "token", pattern: "(?<![A-Za-z0-9])ya29\\.[0-9A-Za-z_-]{20,}", flags: "" },
23
- { name: "huggingface-token", kind: "token", pattern: "(?<![A-Za-z0-9])hf_[A-Za-z0-9]{20,}", flags: "" },
24
- { name: "npm-token", kind: "token", pattern: "(?<![A-Za-z0-9])npm_[A-Za-z0-9]{30,}", flags: "" },
25
- { name: "stripe-live-key", kind: "token", pattern: "(?<![A-Za-z0-9])(?:sk|pk|rk)_live_[A-Za-z0-9]{20,}", flags: "" },
26
- { name: "digitalocean-token", kind: "token", pattern: "(?<![A-Za-z0-9])dop_v1_[A-Za-z0-9]{32,}", flags: "" },
27
- { name: "shopify-token", kind: "token", pattern: "(?<![A-Za-z0-9])shpat_[A-Za-z0-9]{32,}", flags: "" },
28
- { name: "medicine-wheel-token", kind: "token", pattern: "(?<![A-Za-z0-9])mwt_[A-Za-z0-9_-]{32,}", flags: "" },
29
- { name: "miadi-reader-token", kind: "token", pattern: "(?<![A-Za-z0-9])mr_[A-Za-z0-9]{32,}", flags: "" },
30
- { name: "jwt", kind: "token", pattern: "(?<![A-Za-z0-9])eyJ[A-Za-z0-9_-]{8,}\\.[A-Za-z0-9_-]{8,}\\.[A-Za-z0-9_-]{8,}", flags: "" },
31
- { name: "bearer", kind: "labelled", pattern: "(\\bBearer\\s+)([A-Za-z0-9._~+/=-]{12,})", flags: "i" },
32
- { name: "secret-assignment", kind: "labelled", pattern: "(\\b[A-Za-z0-9_.-]*(?:api[_-]?key|secret|token|passwd|password|client[_-]?secret|access[_-]?key|private[_-]?key|auth[_-]?token)[A-Za-z0-9_.-]*\\b[\"'\\s]*[:=]\\s*[\"']?)([A-Za-z0-9][A-Za-z0-9/_+.=~:-]{7,})", flags: "i" },
33
- ];
34
- /** A secret as its first 6 characters (4 when shorter than 7) followed by `***`. */
35
- export function redactSecretValue(value) {
36
- const keep = value.length >= 7 ? 6 : value.length >= 4 ? 4 : value.length;
37
- return value.slice(0, keep) + TIDE_SECRET_MASK;
38
- }
39
- const compiled = TIDE_SECRET_RULES.map(rule => ({ rule, regex: new RegExp(rule.pattern, rule.flags + "g") }));
40
- /**
41
- * Text with every credential the rules know redacted. Running it again changes
42
- * nothing, so a capture ironsilk already redacted passes through unchanged.
43
- */
44
- export function sanitizeSecrets(text) {
45
- let out = text;
46
- for (const { rule, regex } of compiled) {
47
- if (rule.kind === "block") {
48
- const replacement = rule.replacement ?? TIDE_SECRET_MASK;
49
- out = out.replace(regex, () => replacement);
50
- }
51
- else if (rule.kind === "labelled") {
52
- out = out.replace(regex, (_match, label, value) => label + redactSecretValue(value));
53
- }
54
- else {
55
- out = out.replace(regex, match => redactSecretValue(match));
56
- }
57
- }
58
- return out;
59
- }
60
- //# sourceMappingURL=secret-redaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secret-redaction.js","sourceRoot":"","sources":["../src/secret-redaction.ts"],"names":[],"mappings":"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"}