@vymalo/opencode-oauth2 0.12.0 → 0.14.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.
Files changed (57) hide show
  1. package/dist/cache.d.ts +6 -6
  2. package/dist/cache.js +100 -104
  3. package/dist/cache.js.map +1 -1
  4. package/dist/config.d.ts +107 -107
  5. package/dist/config.js +173 -182
  6. package/dist/config.js.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib.js +1 -0
  10. package/dist/lib.js.map +1 -1
  11. package/dist/logging.d.ts +6 -6
  12. package/dist/logging.js +57 -56
  13. package/dist/logging.js.map +1 -1
  14. package/dist/model-discovery.d.ts +3 -3
  15. package/dist/model-discovery.js +61 -66
  16. package/dist/model-discovery.js.map +1 -1
  17. package/dist/model-normalization.js +84 -73
  18. package/dist/model-normalization.js.map +1 -1
  19. package/dist/oauth/browser.js +29 -25
  20. package/dist/oauth/browser.js.map +1 -1
  21. package/dist/oauth/client.d.ts +46 -46
  22. package/dist/oauth/client.js +411 -430
  23. package/dist/oauth/client.js.map +1 -1
  24. package/dist/oauth/device-code.d.ts +23 -23
  25. package/dist/oauth/device-code.js +225 -235
  26. package/dist/oauth/device-code.js.map +1 -1
  27. package/dist/oauth/discovery.d.ts +5 -5
  28. package/dist/oauth/discovery.js +34 -34
  29. package/dist/oauth/discovery.js.map +1 -1
  30. package/dist/oauth/http-utils.d.ts +27 -27
  31. package/dist/oauth/http-utils.js +96 -107
  32. package/dist/oauth/http-utils.js.map +1 -1
  33. package/dist/oauth/local-callback.d.ts +5 -5
  34. package/dist/oauth/local-callback.js +76 -74
  35. package/dist/oauth/local-callback.js.map +1 -1
  36. package/dist/oauth/pkce.d.ts +2 -2
  37. package/dist/oauth/pkce.js +9 -5
  38. package/dist/oauth/pkce.js.map +1 -1
  39. package/dist/oauth/subject-token.d.ts +15 -15
  40. package/dist/oauth/subject-token.js +68 -73
  41. package/dist/oauth/subject-token.js.map +1 -1
  42. package/dist/opencode.d.ts +15 -15
  43. package/dist/opencode.js +477 -497
  44. package/dist/opencode.js.map +1 -1
  45. package/dist/plugin.d.ts +39 -39
  46. package/dist/plugin.js +270 -277
  47. package/dist/plugin.js.map +1 -1
  48. package/dist/responses-repair.d.ts +12 -35
  49. package/dist/responses-repair.js +119 -125
  50. package/dist/responses-repair.js.map +1 -1
  51. package/dist/scheduler.d.ts +5 -5
  52. package/dist/scheduler.js +43 -45
  53. package/dist/scheduler.js.map +1 -1
  54. package/dist/types.d.ts +25 -25
  55. package/dist/types.js +1 -0
  56. package/dist/types.js.map +1 -1
  57. package/package.json +3 -3
package/dist/config.js CHANGED
@@ -1,205 +1,196 @@
1
1
  export const DEFAULT_SYNC_INTERVAL_MINUTES = 60;
2
- export const DEFAULT_HTTP_TIMEOUT_MS = 15_000;
3
- export const DEFAULT_TOKEN_EXPIRY_SKEW_MS = 30_000;
2
+ export const DEFAULT_HTTP_TIMEOUT_MS = 15e3;
3
+ export const DEFAULT_TOKEN_EXPIRY_SKEW_MS = 3e4;
4
4
  export const DEFAULT_LOG_LEVEL = "info";
5
5
  export const DEFAULT_AUTH_FLOW = "authorization_code";
6
6
  export const DEFAULT_K8S_SA_TOKEN_PATH = "/var/run/secrets/tokens/oauth2/token";
7
7
  function ensureString(value, path) {
8
- if (typeof value !== "string" || value.trim().length === 0) {
9
- throw new Error(`${path} must be a non-empty string`);
10
- }
11
- return value.trim();
8
+ if (typeof value !== "string" || value.trim().length === 0) {
9
+ throw new Error(`${path} must be a non-empty string`);
10
+ }
11
+ return value.trim();
12
12
  }
13
13
  function ensureStringArray(value, path) {
14
- if (!Array.isArray(value) || value.length === 0) {
15
- throw new Error(`${path} must be a non-empty array of strings`);
16
- }
17
- return value.map((item, index) => ensureString(item, `${path}[${index}]`));
14
+ if (!Array.isArray(value) || value.length === 0) {
15
+ throw new Error(`${path} must be a non-empty array of strings`);
16
+ }
17
+ return value.map((item, index) => ensureString(item, `${path}[${index}]`));
18
18
  }
19
19
  function validateRedirectPort(value, path) {
20
- if (value === undefined || value === null) {
21
- return undefined;
22
- }
23
- if (typeof value !== "number" || !Number.isInteger(value) || value <= 0 || value >= 65536) {
24
- throw new Error(`${path} must be a positive integer less than 65536`);
25
- }
26
- return value;
20
+ if (value === undefined || value === null) {
21
+ return undefined;
22
+ }
23
+ if (typeof value !== "number" || !Number.isInteger(value) || value <= 0 || value >= 65536) {
24
+ throw new Error(`${path} must be a positive integer less than 65536`);
25
+ }
26
+ return value;
27
27
  }
28
28
  function validateLogLevel(value, path) {
29
- if (value === undefined || value === null) {
30
- return DEFAULT_LOG_LEVEL;
31
- }
32
- if (value === "trace" ||
33
- value === "debug" ||
34
- value === "info" ||
35
- value === "warn" ||
36
- value === "error") {
37
- return value;
38
- }
39
- throw new Error(`${path} must be one of "trace" | "debug" | "info" | "warn" | "error" (received ${JSON.stringify(value)})`);
29
+ if (value === undefined || value === null) {
30
+ return DEFAULT_LOG_LEVEL;
31
+ }
32
+ if (value === "trace" || value === "debug" || value === "info" || value === "warn" || value === "error") {
33
+ return value;
34
+ }
35
+ throw new Error(`${path} must be one of "trace" | "debug" | "info" | "warn" | "error" (received ${JSON.stringify(value)})`);
40
36
  }
41
37
  function validatePkce(value, path) {
42
- if (value === undefined || value === null) {
43
- return true;
44
- }
45
- if (typeof value !== "boolean") {
46
- throw new Error(`${path} must be a boolean (received ${JSON.stringify(value)})`);
47
- }
48
- return value;
38
+ if (value === undefined || value === null) {
39
+ return true;
40
+ }
41
+ if (typeof value !== "boolean") {
42
+ throw new Error(`${path} must be a boolean (received ${JSON.stringify(value)})`);
43
+ }
44
+ return value;
49
45
  }
50
46
  function validateAuthFlow(value, path) {
51
- if (value === undefined || value === null) {
52
- return DEFAULT_AUTH_FLOW;
53
- }
54
- if (value === "authorization_code" ||
55
- value === "device_code" ||
56
- value === "client_credentials" ||
57
- value === "jwt_bearer" ||
58
- value === "token_exchange") {
59
- return value;
60
- }
61
- throw new Error(`${path} must be one of "authorization_code" | "device_code" | "client_credentials" | "jwt_bearer" | "token_exchange" (received ${JSON.stringify(value)})`);
47
+ if (value === undefined || value === null) {
48
+ return DEFAULT_AUTH_FLOW;
49
+ }
50
+ if (value === "authorization_code" || value === "device_code" || value === "client_credentials" || value === "jwt_bearer" || value === "token_exchange") {
51
+ return value;
52
+ }
53
+ throw new Error(`${path} must be one of "authorization_code" | "device_code" | "client_credentials" | "jwt_bearer" | "token_exchange" (received ${JSON.stringify(value)})`);
62
54
  }
63
55
  function validateSubjectTokenSource(value, path) {
64
- if (value === undefined || value === null) {
65
- return undefined;
66
- }
67
- if (typeof value !== "object" || Array.isArray(value)) {
68
- throw new Error(`${path} must be an object`);
69
- }
70
- const record = value;
71
- const type = record.type;
72
- switch (type) {
73
- case "github_actions": {
74
- const audience = record.audience;
75
- if (typeof audience !== "string" || audience.trim().length === 0) {
76
- throw new Error(`${path}.audience must be a non-empty string when type is "github_actions"`);
77
- }
78
- return { type: "github_actions", audience: audience.trim() };
79
- }
80
- case "kubernetes_sa": {
81
- const tokenPath = record.tokenPath;
82
- if (tokenPath !== undefined && tokenPath !== null) {
83
- if (typeof tokenPath !== "string" || tokenPath.trim().length === 0) {
84
- throw new Error(`${path}.tokenPath must be a non-empty string when provided`);
85
- }
86
- return { type: "kubernetes_sa", tokenPath: tokenPath.trim() };
87
- }
88
- return { type: "kubernetes_sa" };
89
- }
90
- case "file": {
91
- const filePath = record.path;
92
- if (typeof filePath !== "string" || filePath.trim().length === 0) {
93
- throw new Error(`${path}.path must be a non-empty string when type is "file"`);
94
- }
95
- return { type: "file", path: filePath.trim() };
96
- }
97
- case "env": {
98
- const varName = record.var;
99
- if (typeof varName !== "string" || varName.trim().length === 0) {
100
- throw new Error(`${path}.var must be a non-empty string when type is "env"`);
101
- }
102
- return { type: "env", var: varName.trim() };
103
- }
104
- default:
105
- throw new Error(`${path}.type must be one of "github_actions" | "kubernetes_sa" | "file" | "env" (received ${JSON.stringify(type)})`);
106
- }
56
+ if (value === undefined || value === null) {
57
+ return undefined;
58
+ }
59
+ if (typeof value !== "object" || Array.isArray(value)) {
60
+ throw new Error(`${path} must be an object`);
61
+ }
62
+ const record = value;
63
+ const type = record.type;
64
+ switch (type) {
65
+ case "github_actions": {
66
+ const audience = record.audience;
67
+ if (typeof audience !== "string" || audience.trim().length === 0) {
68
+ throw new Error(`${path}.audience must be a non-empty string when type is "github_actions"`);
69
+ }
70
+ return {
71
+ type: "github_actions",
72
+ audience: audience.trim()
73
+ };
74
+ }
75
+ case "kubernetes_sa": {
76
+ const tokenPath = record.tokenPath;
77
+ if (tokenPath !== undefined && tokenPath !== null) {
78
+ if (typeof tokenPath !== "string" || tokenPath.trim().length === 0) {
79
+ throw new Error(`${path}.tokenPath must be a non-empty string when provided`);
80
+ }
81
+ return {
82
+ type: "kubernetes_sa",
83
+ tokenPath: tokenPath.trim()
84
+ };
85
+ }
86
+ return { type: "kubernetes_sa" };
87
+ }
88
+ case "file": {
89
+ const filePath = record.path;
90
+ if (typeof filePath !== "string" || filePath.trim().length === 0) {
91
+ throw new Error(`${path}.path must be a non-empty string when type is "file"`);
92
+ }
93
+ return {
94
+ type: "file",
95
+ path: filePath.trim()
96
+ };
97
+ }
98
+ case "env": {
99
+ const varName = record.var;
100
+ if (typeof varName !== "string" || varName.trim().length === 0) {
101
+ throw new Error(`${path}.var must be a non-empty string when type is "env"`);
102
+ }
103
+ return {
104
+ type: "env",
105
+ var: varName.trim()
106
+ };
107
+ }
108
+ default: throw new Error(`${path}.type must be one of "github_actions" | "kubernetes_sa" | "file" | "env" (received ${JSON.stringify(type)})`);
109
+ }
107
110
  }
108
111
  function normalizeServerConfig(input, index) {
109
- const path = `servers[${index}]`;
110
- const id = ensureString(input.id, `${path}.id`);
111
- const name = input.name && input.name.trim().length > 0 ? input.name.trim() : id;
112
- const issuer = ensureString(input.issuer, `${path}.issuer`);
113
- const baseURL = ensureString(input.baseURL, `${path}.baseURL`);
114
- const clientId = ensureString(input.clientId, `${path}.clientId`);
115
- const scopes = ensureStringArray(input.scopes, `${path}.scopes`);
116
- const syncIntervalMinutes = typeof input.syncIntervalMinutes === "number" &&
117
- Number.isFinite(input.syncIntervalMinutes) &&
118
- input.syncIntervalMinutes > 0
119
- ? input.syncIntervalMinutes
120
- : DEFAULT_SYNC_INTERVAL_MINUTES;
121
- const redirectPort = validateRedirectPort(input.redirectPort, `${path}.redirectPort`);
122
- const authFlow = validateAuthFlow(input.authFlow, `${path}.authFlow`);
123
- const pkce = validatePkce(input.pkce, `${path}.pkce`);
124
- const subjectTokenSource = validateSubjectTokenSource(input.subjectTokenSource, `${path}.subjectTokenSource`);
125
- let clientSecret;
126
- if (input.clientSecret !== undefined && input.clientSecret !== null) {
127
- if (typeof input.clientSecret !== "string" || input.clientSecret.length === 0) {
128
- throw new Error(`${path}.clientSecret must be a non-empty string when provided`);
129
- }
130
- clientSecret = input.clientSecret;
131
- }
132
- if (authFlow === "client_credentials" && !clientSecret) {
133
- throw new Error(`${path}.clientSecret is required when authFlow is "client_credentials"`);
134
- }
135
- if ((authFlow === "jwt_bearer" || authFlow === "token_exchange") && !subjectTokenSource) {
136
- throw new Error(`${path}.subjectTokenSource is required when authFlow is "${authFlow}" set it to {type: "github_actions" | "kubernetes_sa" | "file" | "env", ...}`);
137
- }
138
- let tokenExchangeAudience;
139
- if (input.tokenExchangeAudience !== undefined && input.tokenExchangeAudience !== null) {
140
- if (typeof input.tokenExchangeAudience !== "string" ||
141
- input.tokenExchangeAudience.trim().length === 0) {
142
- throw new Error(`${path}.tokenExchangeAudience must be a non-empty string when provided`);
143
- }
144
- tokenExchangeAudience = input.tokenExchangeAudience.trim();
145
- }
146
- return {
147
- id,
148
- name,
149
- issuer,
150
- baseURL,
151
- clientId,
152
- clientSecret,
153
- scopes,
154
- syncIntervalMinutes,
155
- nameOverrides: input.nameOverrides ?? {},
156
- authorizationEndpoint: input.authorizationEndpoint,
157
- tokenEndpoint: input.tokenEndpoint,
158
- deviceAuthorizationEndpoint: input.deviceAuthorizationEndpoint,
159
- jwksUri: input.jwksUri,
160
- redirectPort,
161
- authFlow,
162
- pkce,
163
- subjectTokenSource,
164
- tokenExchangeAudience
165
- };
112
+ const path = `servers[${index}]`;
113
+ const id = ensureString(input.id, `${path}.id`);
114
+ const name = input.name && input.name.trim().length > 0 ? input.name.trim() : id;
115
+ const issuer = ensureString(input.issuer, `${path}.issuer`);
116
+ const baseURL = ensureString(input.baseURL, `${path}.baseURL`);
117
+ const clientId = ensureString(input.clientId, `${path}.clientId`);
118
+ const scopes = ensureStringArray(input.scopes, `${path}.scopes`);
119
+ const syncIntervalMinutes = typeof input.syncIntervalMinutes === "number" && Number.isFinite(input.syncIntervalMinutes) && input.syncIntervalMinutes > 0 ? input.syncIntervalMinutes : DEFAULT_SYNC_INTERVAL_MINUTES;
120
+ const redirectPort = validateRedirectPort(input.redirectPort, `${path}.redirectPort`);
121
+ const authFlow = validateAuthFlow(input.authFlow, `${path}.authFlow`);
122
+ const pkce = validatePkce(input.pkce, `${path}.pkce`);
123
+ const subjectTokenSource = validateSubjectTokenSource(input.subjectTokenSource, `${path}.subjectTokenSource`);
124
+ let clientSecret;
125
+ if (input.clientSecret !== undefined && input.clientSecret !== null) {
126
+ if (typeof input.clientSecret !== "string" || input.clientSecret.length === 0) {
127
+ throw new Error(`${path}.clientSecret must be a non-empty string when provided`);
128
+ }
129
+ clientSecret = input.clientSecret;
130
+ }
131
+ if (authFlow === "client_credentials" && !clientSecret) {
132
+ throw new Error(`${path}.clientSecret is required when authFlow is "client_credentials"`);
133
+ }
134
+ if ((authFlow === "jwt_bearer" || authFlow === "token_exchange") && !subjectTokenSource) {
135
+ throw new Error(`${path}.subjectTokenSource is required when authFlow is "${authFlow}" set it to {type: "github_actions" | "kubernetes_sa" | "file" | "env", ...}`);
136
+ }
137
+ let tokenExchangeAudience;
138
+ if (input.tokenExchangeAudience !== undefined && input.tokenExchangeAudience !== null) {
139
+ if (typeof input.tokenExchangeAudience !== "string" || input.tokenExchangeAudience.trim().length === 0) {
140
+ throw new Error(`${path}.tokenExchangeAudience must be a non-empty string when provided`);
141
+ }
142
+ tokenExchangeAudience = input.tokenExchangeAudience.trim();
143
+ }
144
+ return {
145
+ id,
146
+ name,
147
+ issuer,
148
+ baseURL,
149
+ clientId,
150
+ clientSecret,
151
+ scopes,
152
+ syncIntervalMinutes,
153
+ nameOverrides: input.nameOverrides ?? {},
154
+ authorizationEndpoint: input.authorizationEndpoint,
155
+ tokenEndpoint: input.tokenEndpoint,
156
+ deviceAuthorizationEndpoint: input.deviceAuthorizationEndpoint,
157
+ jwksUri: input.jwksUri,
158
+ redirectPort,
159
+ authFlow,
160
+ pkce,
161
+ subjectTokenSource,
162
+ tokenExchangeAudience
163
+ };
166
164
  }
167
165
  export function validateConfig(input) {
168
- if (!input || typeof input !== "object") {
169
- throw new Error("plugin config must be an object");
170
- }
171
- if (!Array.isArray(input.servers) || input.servers.length === 0) {
172
- throw new Error("servers must be a non-empty array");
173
- }
174
- const normalizedServers = input.servers.map(normalizeServerConfig);
175
- const ids = new Set();
176
- for (const server of normalizedServers) {
177
- if (ids.has(server.id)) {
178
- throw new Error(`duplicate server id detected: ${server.id}`);
179
- }
180
- ids.add(server.id);
181
- }
182
- let tokenExpirySkewMs = DEFAULT_TOKEN_EXPIRY_SKEW_MS;
183
- if (input.tokenExpirySkewMs !== undefined && input.tokenExpirySkewMs !== null) {
184
- if (typeof input.tokenExpirySkewMs !== "number" ||
185
- !Number.isFinite(input.tokenExpirySkewMs) ||
186
- input.tokenExpirySkewMs <= 0) {
187
- throw new Error("tokenExpirySkewMs must be a positive number");
188
- }
189
- tokenExpirySkewMs = input.tokenExpirySkewMs;
190
- }
191
- return {
192
- servers: normalizedServers,
193
- cacheNamespace: typeof input.cacheNamespace === "string" && input.cacheNamespace.trim().length > 0
194
- ? input.cacheNamespace.trim()
195
- : "oauth2-model-sync",
196
- httpTimeoutMs: typeof input.httpTimeoutMs === "number" &&
197
- Number.isFinite(input.httpTimeoutMs) &&
198
- input.httpTimeoutMs > 0
199
- ? input.httpTimeoutMs
200
- : DEFAULT_HTTP_TIMEOUT_MS,
201
- tokenExpirySkewMs,
202
- logLevel: validateLogLevel(input.logLevel, "logLevel")
203
- };
166
+ if (!input || typeof input !== "object") {
167
+ throw new Error("plugin config must be an object");
168
+ }
169
+ if (!Array.isArray(input.servers) || input.servers.length === 0) {
170
+ throw new Error("servers must be a non-empty array");
171
+ }
172
+ const normalizedServers = input.servers.map(normalizeServerConfig);
173
+ const ids = new Set();
174
+ for (const server of normalizedServers) {
175
+ if (ids.has(server.id)) {
176
+ throw new Error(`duplicate server id detected: ${server.id}`);
177
+ }
178
+ ids.add(server.id);
179
+ }
180
+ let tokenExpirySkewMs = DEFAULT_TOKEN_EXPIRY_SKEW_MS;
181
+ if (input.tokenExpirySkewMs !== undefined && input.tokenExpirySkewMs !== null) {
182
+ if (typeof input.tokenExpirySkewMs !== "number" || !Number.isFinite(input.tokenExpirySkewMs) || input.tokenExpirySkewMs <= 0) {
183
+ throw new Error("tokenExpirySkewMs must be a positive number");
184
+ }
185
+ tokenExpirySkewMs = input.tokenExpirySkewMs;
186
+ }
187
+ return {
188
+ servers: normalizedServers,
189
+ cacheNamespace: typeof input.cacheNamespace === "string" && input.cacheNamespace.trim().length > 0 ? input.cacheNamespace.trim() : "oauth2-model-sync",
190
+ httpTimeoutMs: typeof input.httpTimeoutMs === "number" && Number.isFinite(input.httpTimeoutMs) && input.httpTimeoutMs > 0 ? input.httpTimeoutMs : DEFAULT_HTTP_TIMEOUT_MS,
191
+ tokenExpirySkewMs,
192
+ logLevel: validateLogLevel(input.logLevel, "logLevel")
193
+ };
204
194
  }
195
+
205
196
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"mappings":"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","names":[],"sources":["../src/config.ts"],"version":3,"file":"config.js","sourceRoot":""}
package/dist/index.js CHANGED
@@ -3,4 +3,5 @@
3
3
  // Only the plugin function lives here; the library API is in ./lib.ts and is
4
4
  // exposed via the "./lib" subpath in package.json.
5
5
  export { default } from "./opencode.js";
6
+
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,mDAAmD;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
1
+ {"mappings":";;;;AAIA,SAAS,eAAe","names":[],"sources":["../src/index.ts"],"version":3,"file":"index.js","sourceRoot":""}
package/dist/lib.js CHANGED
@@ -5,4 +5,5 @@ export { diffModels, normalizeModelId, normalizeModelList } from "./model-normal
5
5
  export { OAuth2ModelSyncPlugin } from "./plugin.js";
6
6
  export { resolveCacheDir, FileCacheStore } from "./cache.js";
7
7
  export { createOpencodeOauth2Plugin } from "./opencode.js";
8
+
8
9
  //# sourceMappingURL=lib.js.map
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,6BAA6B,EAK7B,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,uBAAuB,EAA8B,MAAM,cAAc,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE5F,OAAO,EAAE,qBAAqB,EAAsB,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC"}
1
+ {"mappings":"AAAA,SACE,yBACA,mBACA,+BAKA,sBACK;AAEP,SAAS,+BAA2D;AAEpE,SAAS,gBAAgB,mBAAmB;AAE5C,SAAS,YAAY,kBAAkB,0BAA0B;AAEjE,SAAS,6BAAiD;AAE1D,SAAS,iBAAiB,sBAAsB;AAEhD,SAAS,kCAAkC","names":[],"sources":["../src/lib.ts"],"version":3,"file":"lib.js","sourceRoot":""}
package/dist/logging.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  export type LogLevel = "trace" | "debug" | "info" | "warn" | "error";
2
2
  export declare const LOG_LEVEL_PRIORITY: Record<LogLevel, number>;
3
3
  export interface LogFields {
4
- [key: string]: unknown;
4
+ [key: string]: unknown;
5
5
  }
6
6
  export interface Logger {
7
- trace(event: string, fields?: LogFields): void;
8
- debug(event: string, fields?: LogFields): void;
9
- info(event: string, fields?: LogFields): void;
10
- warn(event: string, fields?: LogFields): void;
11
- error(event: string, fields?: LogFields): void;
7
+ trace(event: string, fields?: LogFields): void;
8
+ debug(event: string, fields?: LogFields): void;
9
+ info(event: string, fields?: LogFields): void;
10
+ warn(event: string, fields?: LogFields): void;
11
+ error(event: string, fields?: LogFields): void;
12
12
  }
13
13
  export declare function createJsonConsoleLogger(minLevel?: LogLevel): Logger;
package/dist/logging.js CHANGED
@@ -1,63 +1,64 @@
1
1
  export const LOG_LEVEL_PRIORITY = {
2
- trace: 5,
3
- debug: 10,
4
- info: 20,
5
- warn: 30,
6
- error: 40
2
+ trace: 5,
3
+ debug: 10,
4
+ info: 20,
5
+ warn: 30,
6
+ error: 40
7
7
  };
8
8
  function redactFields(fields) {
9
- if (!fields) {
10
- return undefined;
11
- }
12
- const redacted = {};
13
- for (const [key, value] of Object.entries(fields)) {
14
- if (/token|secret|password/i.test(key)) {
15
- redacted[key] = "[redacted]";
16
- continue;
17
- }
18
- redacted[key] = value;
19
- }
20
- return redacted;
9
+ if (!fields) {
10
+ return undefined;
11
+ }
12
+ const redacted = {};
13
+ for (const [key, value] of Object.entries(fields)) {
14
+ if (/token|secret|password/i.test(key)) {
15
+ redacted[key] = "[redacted]";
16
+ continue;
17
+ }
18
+ redacted[key] = value;
19
+ }
20
+ return redacted;
21
21
  }
22
22
  export function createJsonConsoleLogger(minLevel = "info") {
23
- const minPriority = LOG_LEVEL_PRIORITY[minLevel];
24
- const log = (level, event, fields) => {
25
- if (LOG_LEVEL_PRIORITY[level] < minPriority) {
26
- return;
27
- }
28
- const payload = {
29
- ts: new Date().toISOString(),
30
- level,
31
- event,
32
- ...(redactFields(fields) ?? {})
33
- };
34
- const line = JSON.stringify(payload);
35
- if (level === "error") {
36
- console.error(line);
37
- return;
38
- }
39
- if (level === "warn") {
40
- console.warn(line);
41
- return;
42
- }
43
- console.log(line);
44
- };
45
- return {
46
- trace(event, fields) {
47
- log("trace", event, fields);
48
- },
49
- debug(event, fields) {
50
- log("debug", event, fields);
51
- },
52
- info(event, fields) {
53
- log("info", event, fields);
54
- },
55
- warn(event, fields) {
56
- log("warn", event, fields);
57
- },
58
- error(event, fields) {
59
- log("error", event, fields);
60
- }
61
- };
23
+ const minPriority = LOG_LEVEL_PRIORITY[minLevel];
24
+ const log = (level, event, fields) => {
25
+ if (LOG_LEVEL_PRIORITY[level] < minPriority) {
26
+ return;
27
+ }
28
+ const payload = {
29
+ ts: new Date().toISOString(),
30
+ level,
31
+ event,
32
+ ...redactFields(fields) ?? {}
33
+ };
34
+ const line = JSON.stringify(payload);
35
+ if (level === "error") {
36
+ console.error(line);
37
+ return;
38
+ }
39
+ if (level === "warn") {
40
+ console.warn(line);
41
+ return;
42
+ }
43
+ console.log(line);
44
+ };
45
+ return {
46
+ trace(event, fields) {
47
+ log("trace", event, fields);
48
+ },
49
+ debug(event, fields) {
50
+ log("debug", event, fields);
51
+ },
52
+ info(event, fields) {
53
+ log("info", event, fields);
54
+ },
55
+ warn(event, fields) {
56
+ log("warn", event, fields);
57
+ },
58
+ error(event, fields) {
59
+ log("error", event, fields);
60
+ }
61
+ };
62
62
  }
63
+
63
64
  //# sourceMappingURL=logging.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;CACV,CAAC;AAcF,SAAS,YAAY,CAAC,MAAkB;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAqB,MAAM;IACjE,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEjD,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,KAAa,EAAE,MAAkB,EAAQ,EAAE;QACvE,IAAI,kBAAkB,CAAC,KAAK,CAAC,GAAG,WAAW,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5B,KAAK;YACL,KAAK;YACL,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SAChC,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,KAAK,EAAE,MAAM;YACjB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,KAAK,EAAE,MAAM;YACjB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,MAAM;YAChB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,MAAM;YAChB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,CAAC,KAAK,EAAE,MAAM;YACjB,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"mappings":"AAEA,OAAO,MAAM,qBAA+C;CAC1D,OAAO;CACP,OAAO;CACP,MAAM;CACN,MAAM;CACN,OAAO;AACT;AAcA,SAAS,aAAa,QAA2C;CAC/D,IAAI,CAAC,QAAQ;EACX,OAAO;CACT;CAEA,MAAM,WAAsB,CAAC;CAC7B,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,GAAG;EACjD,IAAI,yBAAyB,KAAK,GAAG,GAAG;GACtC,SAAS,OAAO;GAChB;EACF;EACA,SAAS,OAAO;CAClB;CAEA,OAAO;AACT;AAEA,OAAO,SAAS,wBAAwB,WAAqB,QAAgB;CAC3E,MAAM,cAAc,mBAAmB;CAEvC,MAAM,OAAO,OAAiB,OAAe,WAA6B;EACxE,IAAI,mBAAmB,SAAS,aAAa;GAC3C;EACF;EAEA,MAAM,UAAU;GACd,IAAI,IAAI,KAAK,CAAC,CAAC,YAAY;GAC3B;GACA;GACA,GAAI,aAAa,MAAM,KAAK,CAAC;EAC/B;EAEA,MAAM,OAAO,KAAK,UAAU,OAAO;EACnC,IAAI,UAAU,SAAS;GACrB,QAAQ,MAAM,IAAI;GAClB;EACF;EAEA,IAAI,UAAU,QAAQ;GACpB,QAAQ,KAAK,IAAI;GACjB;EACF;EAEA,QAAQ,IAAI,IAAI;CAClB;CAEA,OAAO;EACL,MAAM,OAAO,QAAQ;GACnB,IAAI,SAAS,OAAO,MAAM;EAC5B;EACA,MAAM,OAAO,QAAQ;GACnB,IAAI,SAAS,OAAO,MAAM;EAC5B;EACA,KAAK,OAAO,QAAQ;GAClB,IAAI,QAAQ,OAAO,MAAM;EAC3B;EACA,KAAK,OAAO,QAAQ;GAClB,IAAI,QAAQ,OAAO,MAAM;EAC3B;EACA,MAAM,OAAO,QAAQ;GACnB,IAAI,SAAS,OAAO,MAAM;EAC5B;CACF;AACF","names":[],"sources":["../src/logging.ts"],"version":3,"file":"logging.js","sourceRoot":""}