sdk-logs 0.8.0 → 0.9.2

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 (26) hide show
  1. package/dist/domain.objects/LogMethods.d.ts +46 -0
  2. package/dist/domain.objects/LogMethods.js +3 -0
  3. package/dist/domain.objects/LogMethods.js.map +1 -0
  4. package/dist/domain.objects/LogOutlet.d.ts +2 -0
  5. package/dist/domain.objects/LogTrail.d.ts +3 -4
  6. package/dist/domain.operations/formatLogContentsForEnvironment.d.ts +2 -3
  7. package/dist/domain.operations/formatLogContentsForEnvironment.js.map +1 -1
  8. package/dist/domain.operations/genContextLogTrail.d.ts +6 -5
  9. package/dist/domain.operations/genContextLogTrail.js +5 -5
  10. package/dist/domain.operations/genContextLogTrail.js.map +1 -1
  11. package/dist/domain.operations/genLogMethods.d.ts +6 -34
  12. package/dist/domain.operations/genLogMethods.js +9 -1
  13. package/dist/domain.operations/genLogMethods.js.map +1 -1
  14. package/dist/domain.operations/generateLogMethod.d.ts +3 -4
  15. package/dist/domain.operations/generateLogMethod.js +8 -0
  16. package/dist/domain.operations/generateLogMethod.js.map +1 -1
  17. package/dist/domain.operations/outlets/cloudwatch/assertAwsCredentialsPresent.js +2 -2
  18. package/dist/domain.operations/outlets/cloudwatch/assertAwsCredentialsPresent.js.map +1 -1
  19. package/dist/domain.operations/outlets/cloudwatch/genCloudwatchOutlet.d.ts +30 -7
  20. package/dist/domain.operations/outlets/cloudwatch/genCloudwatchOutlet.js +18 -15
  21. package/dist/domain.operations/outlets/cloudwatch/genCloudwatchOutlet.js.map +1 -1
  22. package/dist/domain.operations/withLogTrail.js.map +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/package.json +32 -24
  26. package/readme.md +22 -0
@@ -0,0 +1,46 @@
1
+ import type { Environment } from 'sdk-environment';
2
+ import type { LogLevel } from '../domain.objects/constants';
3
+ /**
4
+ * .what = a log method that outputs a message with optional metadata
5
+ */
6
+ export type LogMethod = (message: string, metadata?: any) => void;
7
+ /**
8
+ * .what = the log methods available for use
9
+ */
10
+ export interface LogMethods {
11
+ /**
12
+ * `error` level logs are used to indicate a critical and urgent failure that requires immediate resolution
13
+ * - these logs are often associated with someone on-call being notified immediately, regardless of the time or day
14
+ * - when choosing to log something with a log level of "error", you are saying that someone should be woken up in the middle of the night if this occurs
15
+ */
16
+ error: LogMethod;
17
+ /**
18
+ * `warn` level logs are used to indicate that something is going wrong, but can wait to be resolved until a convenient time
19
+ * - these logs are often associated with someone following up on them during business hours
20
+ * - when choosing to log something with a log level of "warn", you are saying that someone should look at this as soon as reasonably possible
21
+ */
22
+ warn: LogMethod;
23
+ /**
24
+ * `info` level logs are used to indicate an interesting event that should be kept track of
25
+ * - these logs are often associated with health metrics, dashboard statistics, or custom log queries for investigations or reporting
26
+ * - when choosing to log something with a log level of "info", you are saying that someone will be interested in this information indefinitely
27
+ */
28
+ info: LogMethod;
29
+ /**
30
+ * `debug` level logs are used to output information that can aid users in tracking down bugs or confirming that things are working as expected
31
+ * - these logs are often associated with common actions that happen within code, that may only be relevant when debugging your applications
32
+ * - when choosing to log something with a log level of "debug", you are saying that someone will only be interested in this information when debugging
33
+ */
34
+ debug: LogMethod;
35
+ /**
36
+ * .what = internal config for log methods
37
+ */
38
+ readonly _: Readonly<{
39
+ level: LogLevel;
40
+ }>;
41
+ /**
42
+ * .what = the environment context baked into these log methods
43
+ * .why = enables withLogTrail to inherit env from outer log
44
+ */
45
+ readonly env?: Partial<Environment>;
46
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LogMethods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogMethods.js","sourceRoot":"","sources":["../../src/domain.objects/LogMethods.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
+ import type { Environment } from 'sdk-environment';
1
2
  import type { LogLevel } from './constants';
2
3
  /**
3
4
  * .what = a log event that flows through outlets
@@ -8,6 +9,7 @@ export interface LogEvent {
8
9
  timestamp: string;
9
10
  message: string;
10
11
  metadata?: Record<string, unknown>;
12
+ env?: Partial<Environment>;
11
13
  }
12
14
  /**
13
15
  * .what = an outlet that receives log events
@@ -1,5 +1,6 @@
1
1
  import type { Procedure, ProcedureContext } from 'domain-glossary-procedure';
2
- import type { LogMethods } from '../domain.operations/genLogMethods';
2
+ import type { Environment } from 'sdk-environment';
3
+ import type { LogMethods } from '../domain.objects/LogMethods';
3
4
  /**
4
5
  * .what = the procedure invocation trail with external identifier
5
6
  */
@@ -28,9 +29,7 @@ export interface ContextLogTrail {
28
29
  /**
29
30
  * .what = environment context for log output
30
31
  */
31
- env?: {
32
- commit: string;
33
- };
32
+ env?: Partial<Environment>;
34
33
  };
35
34
  }
36
35
  export type HasContextLogTrail<T extends Procedure> = ProcedureContext<T> extends ContextLogTrail ? T : never;
@@ -1,3 +1,4 @@
1
+ import type { Environment } from 'sdk-environment';
1
2
  import { type LogLevel } from '../domain.objects/constants';
2
3
  import type { LogTrail } from '../domain.objects/LogTrail';
3
4
  export declare const formatLogContentsForEnvironment: ({ level, timestamp, message, metadata, trail, env, }: {
@@ -6,9 +7,7 @@ export declare const formatLogContentsForEnvironment: ({ level, timestamp, messa
6
7
  message: string;
7
8
  metadata?: Record<string, any>;
8
9
  trail?: LogTrail;
9
- env?: {
10
- commit: string;
11
- };
10
+ env?: Partial<Environment>;
12
11
  }) => string | {
13
12
  env?: {
14
13
  commit: string;
@@ -1 +1 @@
1
- {"version":3,"file":"formatLogContentsForEnvironment.js","sourceRoot":"","sources":["../../src/domain.operations/formatLogContentsForEnvironment.ts"],"names":[],"mappings":";;;AAAA,mDAAyD;AAEzD,6DAGuC;AAGvC,+DAA4D;AAErD,MAAM,+BAA+B,GAAG,CAAC,EAC9C,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,EACR,KAAK,EACL,GAAG,GAQJ,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,IAAA,yCAAmB,GAAE,CAAC;IAE1C,8DAA8D;IAC9D,MAAM,WAAW,GAAG,KAAK;QACvB,CAAC,CAAC;YACE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,2DAA2D;IAC3D,MAAM,SAAS,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnE,0HAA0H;IAC1H,IAAI,WAAW,KAAK,gCAAoB,CAAC,KAAK,EAAE,CAAC;QAC/C,OAAO;YACL,KAAK;YACL,SAAS;YACT,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,mEAAmE;YACvG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,qKAAqK;IACrK,IAAI,WAAW,KAAK,gCAAoB,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK;YACL,SAAS;YACT,OAAO;YACP,QAAQ;YACR,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAED,wJAAwJ;IACxJ,IAAI,WAAW,KAAK,gCAAoB,CAAC,WAAW,EAAE,CAAC;QACrD,OAAO;YACL,KAAK;YACL,SAAS;YACT,OAAO;YACP,QAAQ;YACR,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,MAAM,IAAI,wCAAuB,CAC/B,0FAA0F,CAC3F,CAAC;AACJ,CAAC,CAAC;AApEW,QAAA,+BAA+B,mCAoE1C"}
1
+ {"version":3,"file":"formatLogContentsForEnvironment.js","sourceRoot":"","sources":["../../src/domain.operations/formatLogContentsForEnvironment.ts"],"names":[],"mappings":";;;AAAA,mDAAyD;AAGzD,6DAGuC;AAGvC,+DAA4D;AAErD,MAAM,+BAA+B,GAAG,CAAC,EAC9C,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,EACR,KAAK,EACL,GAAG,GAQJ,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,IAAA,yCAAmB,GAAE,CAAC;IAE1C,8DAA8D;IAC9D,MAAM,WAAW,GAAG,KAAK;QACvB,CAAC,CAAC;YACE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,2DAA2D;IAC3D,MAAM,SAAS,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnE,0HAA0H;IAC1H,IAAI,WAAW,KAAK,gCAAoB,CAAC,KAAK,EAAE,CAAC;QAC/C,OAAO;YACL,KAAK;YACL,SAAS;YACT,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,mEAAmE;YACvG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,qKAAqK;IACrK,IAAI,WAAW,KAAK,gCAAoB,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK;YACL,SAAS;YACT,OAAO;YACP,QAAQ;YACR,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAED,wJAAwJ;IACxJ,IAAI,WAAW,KAAK,gCAAoB,CAAC,WAAW,EAAE,CAAC;QACrD,OAAO;YACL,KAAK;YACL,SAAS;YACT,OAAO;YACP,QAAQ;YACR,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,MAAM,IAAI,wCAAuB,CAC/B,0FAA0F,CAC3F,CAAC;AACJ,CAAC,CAAC;AApEW,QAAA,+BAA+B,mCAoE1C"}
@@ -1,10 +1,11 @@
1
+ import type { Environment } from 'sdk-environment';
1
2
  import { LogLevel } from '../domain.objects/constants';
2
3
  import type { ContextLogTrail } from '../domain.objects/LogTrail';
3
4
  /**
4
5
  * .what = create a log context with trail and env injection
5
6
  * .why = enables request correlation via trail.exid and code version via env.commit
6
7
  */
7
- export declare const genContextLogTrail: ({ trail, env, minimalLogLevel, }: {
8
+ export declare const genContextLogTrail: ({ trail, env, level, }: {
8
9
  /**
9
10
  * .what = the trail context for log correlation
10
11
  * .why = forces caller to explicitly provide or pass null
@@ -17,12 +18,12 @@ export declare const genContextLogTrail: ({ trail, env, minimalLogLevel, }: {
17
18
  * .what = the environment context
18
19
  * .why = forces caller to explicitly provide or pass null
19
20
  */
20
- env: {
21
- commit: string | null;
22
- } | null;
21
+ env: Partial<Environment> | null;
23
22
  /**
24
23
  * .what = the minimum log level to emit
25
24
  * .why = allows filter of logs by level
26
25
  */
27
- minimalLogLevel?: LogLevel;
26
+ level?: {
27
+ minimum?: LogLevel;
28
+ };
28
29
  }) => ContextLogTrail;
@@ -8,15 +8,15 @@ const getRecommendedMinimalLogLevelForEnvironment_1 = require("./getRecommendedM
8
8
  * .what = create a log context with trail and env injection
9
9
  * .why = enables request correlation via trail.exid and code version via env.commit
10
10
  */
11
- const genContextLogTrail = ({ trail, env, minimalLogLevel = (0, getRecommendedMinimalLogLevelForEnvironment_1.getRecommendedMinimalLogLevelForEnvironment)(), }) => {
11
+ const genContextLogTrail = ({ trail, env, level, }) => {
12
+ // derive minimal log level
13
+ const minimalLogLevel = level?.minimum ?? (0, getRecommendedMinimalLogLevelForEnvironment_1.getRecommendedMinimalLogLevelForEnvironment)();
12
14
  // build the trail object: only include if provided
13
15
  const trailForLog = trail
14
16
  ? { exid: trail.exid, stack: trail.stack }
15
17
  : undefined;
16
- // build the env object: only include if commit is not null
17
- const envForLog = env?.commit !== null && env?.commit !== undefined
18
- ? { commit: env.commit }
19
- : undefined;
18
+ // build the env object: pass through if provided
19
+ const envForLog = env ?? undefined;
20
20
  // generate the log methods with trail/env injected
21
21
  const logMethods = {
22
22
  error: (0, generateLogMethod_1.generateLogMethod)({
@@ -1 +1 @@
1
- {"version":3,"file":"genContextLogTrail.js","sourceRoot":"","sources":["../../src/domain.operations/genContextLogTrail.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAGzD,2DAAwD;AACxD,+GAA4G;AAE5G;;;GAGG;AACI,MAAM,kBAAkB,GAAG,CAAC,EACjC,KAAK,EACL,GAAG,EACH,eAAe,GAAG,IAAA,yFAA2C,GAAE,GAwBhE,EAAmB,EAAE;IACpB,mDAAmD;IACnD,MAAM,WAAW,GAAyB,KAAK;QAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;QAC1C,CAAC,CAAC,SAAS,CAAC;IAEd,2DAA2D;IAC3D,MAAM,SAAS,GACb,GAAG,EAAE,MAAM,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,KAAK,SAAS;QAC/C,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;QACxB,CAAC,CAAC,SAAS,CAAC;IAEhB,mDAAmD;IACnD,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE,IAAA,qCAAiB,EAAC;YACvB,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,eAAe;YACf,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;SACf,CAAC;QACF,IAAI,EAAE,IAAA,qCAAiB,EAAC;YACtB,KAAK,EAAE,oBAAQ,CAAC,IAAI;YACpB,eAAe;YACf,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;SACf,CAAC;QACF,IAAI,EAAE,IAAA,qCAAiB,EAAC;YACtB,KAAK,EAAE,oBAAQ,CAAC,IAAI;YACpB,eAAe;YACf,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;SACf,CAAC;QACF,KAAK,EAAE,IAAA,qCAAiB,EAAC;YACvB,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,eAAe;YACf,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;SACf,CAAC;KACH,CAAC;IAEF,8DAA8D;IAC9D,OAAO;QACL,GAAG,EAAE;YACH,GAAG,UAAU;YACb,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;YACd,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;SAC7C;KACF,CAAC;AACJ,CAAC,CAAC;AA5EW,QAAA,kBAAkB,sBA4E7B"}
1
+ {"version":3,"file":"genContextLogTrail.js","sourceRoot":"","sources":["../../src/domain.operations/genContextLogTrail.ts"],"names":[],"mappings":";;;AAEA,6DAAyD;AAGzD,2DAAwD;AACxD,+GAA4G;AAE5G;;;GAGG;AACI,MAAM,kBAAkB,GAAG,CAAC,EACjC,KAAK,EACL,GAAG,EACH,KAAK,GAsBN,EAAmB,EAAE;IACpB,2BAA2B;IAC3B,MAAM,eAAe,GACnB,KAAK,EAAE,OAAO,IAAI,IAAA,yFAA2C,GAAE,CAAC;IAElE,mDAAmD;IACnD,MAAM,WAAW,GAAyB,KAAK;QAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;QAC1C,CAAC,CAAC,SAAS,CAAC;IAEd,iDAAiD;IACjD,MAAM,SAAS,GAAqC,GAAG,IAAI,SAAS,CAAC;IAErE,mDAAmD;IACnD,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE,IAAA,qCAAiB,EAAC;YACvB,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,eAAe;YACf,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;SACf,CAAC;QACF,IAAI,EAAE,IAAA,qCAAiB,EAAC;YACtB,KAAK,EAAE,oBAAQ,CAAC,IAAI;YACpB,eAAe;YACf,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;SACf,CAAC;QACF,IAAI,EAAE,IAAA,qCAAiB,EAAC;YACtB,KAAK,EAAE,oBAAQ,CAAC,IAAI;YACpB,eAAe;YACf,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;SACf,CAAC;QACF,KAAK,EAAE,IAAA,qCAAiB,EAAC;YACvB,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,eAAe;YACf,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;SACf,CAAC;KACH,CAAC;IAEF,8DAA8D;IAC9D,OAAO;QACL,GAAG,EAAE;YACH,GAAG,UAAU;YACb,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;YACd,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;SAC7C;KACF,CAAC;AACJ,CAAC,CAAC;AA3EW,QAAA,kBAAkB,sBA2E7B"}
@@ -1,47 +1,19 @@
1
+ import type { Environment } from 'sdk-environment';
1
2
  import { LogLevel } from '../domain.objects/constants';
3
+ import type { LogMethods } from '../domain.objects/LogMethods';
2
4
  import type { LogOutlet } from '../domain.objects/LogOutlet';
3
- import { type LogMethod } from './generateLogMethod';
4
- export interface LogMethods {
5
- /**
6
- * `error` level logs are used to indicate a critical and urgent failure that requires immediate resolution
7
- * - these logs are often associated with someone on-call being notified immediately, regardless of the time or day
8
- * - when choosing to log something with a log level of "error", you are saying that someone should be woken up in the middle of the night if this occurs
9
- */
10
- error: LogMethod;
11
- /**
12
- * `warn` level logs are used to indicate that something is going wrong, but can wait to be resolved until a convenient time
13
- * - these logs are often associated with someone following up on them during business hours
14
- * - when choosing to log something with a log level of "warn", you are saying that someone should look at this as soon as reasonably possible
15
- */
16
- warn: LogMethod;
17
- /**
18
- * `info` level logs are used to indicate an interesting event that should be kept track of
19
- * - these logs are often associated with health metrics, dashboard statistics, or custom log queries for investigations or reporting
20
- * - when choosing to log something with a log level of "info", you are saying that someone will be interested in this information indefinitely
21
- */
22
- info: LogMethod;
23
- /**
24
- * `debug` level logs are used to output information that can aid users in tracking down bugs or confirming that things are working as expected
25
- * - these logs are often associated with common actions that happen within code, that may only be relevant when debugging your applications
26
- * - when choosing to log something with a log level of "debug", you are saying that someone will only be interested in this information when debugging
27
- */
28
- debug: LogMethod;
29
- /**
30
- * .what = internal config for log methods
31
- */
32
- readonly _: Readonly<{
33
- level: LogLevel;
34
- }>;
35
- }
5
+ export type { LogMethod, LogMethods } from '../domain.objects/LogMethods';
36
6
  /**
37
7
  * define how to generate the log methods
38
8
  * - allows you to specify the minimal log level to use for your application
39
9
  * - defaults to recommended levels for the environment
40
10
  * - allows you to specify outlets for log events to flow to external destinations
11
+ * - allows you to specify env for environment context (e.g., commit hash)
41
12
  */
42
- export declare const genLogMethods: ({ level, outlets, }?: {
13
+ export declare const genLogMethods: ({ level, outlets, env, }?: {
43
14
  level?: {
44
15
  minimum?: LogLevel;
45
16
  };
46
17
  outlets?: LogOutlet[];
18
+ env?: Partial<Environment> | null;
47
19
  }) => LogMethods;
@@ -9,33 +9,41 @@ const getRecommendedMinimalLogLevelForEnvironment_1 = require("./getRecommendedM
9
9
  * - allows you to specify the minimal log level to use for your application
10
10
  * - defaults to recommended levels for the environment
11
11
  * - allows you to specify outlets for log events to flow to external destinations
12
+ * - allows you to specify env for environment context (e.g., commit hash)
12
13
  */
13
- const genLogMethods = ({ level, outlets, } = {}) => {
14
+ const genLogMethods = ({ level, outlets, env, } = {}) => {
14
15
  // derive minimal log level
15
16
  const derivedMinimalLogLevel = level?.minimum ?? (0, getRecommendedMinimalLogLevelForEnvironment_1.getRecommendedMinimalLogLevelForEnvironment)();
17
+ // convert null to undefined for internal use
18
+ const envForLog = env ?? undefined;
16
19
  // generate the methods
17
20
  return {
18
21
  error: (0, generateLogMethod_1.generateLogMethod)({
19
22
  level: constants_1.LogLevel.ERROR,
20
23
  minimalLogLevel: derivedMinimalLogLevel,
21
24
  outlets,
25
+ env: envForLog,
22
26
  }),
23
27
  warn: (0, generateLogMethod_1.generateLogMethod)({
24
28
  level: constants_1.LogLevel.WARN,
25
29
  minimalLogLevel: derivedMinimalLogLevel,
26
30
  outlets,
31
+ env: envForLog,
27
32
  }),
28
33
  info: (0, generateLogMethod_1.generateLogMethod)({
29
34
  level: constants_1.LogLevel.INFO,
30
35
  minimalLogLevel: derivedMinimalLogLevel,
31
36
  outlets,
37
+ env: envForLog,
32
38
  }),
33
39
  debug: (0, generateLogMethod_1.generateLogMethod)({
34
40
  level: constants_1.LogLevel.DEBUG,
35
41
  minimalLogLevel: derivedMinimalLogLevel,
36
42
  outlets,
43
+ env: envForLog,
37
44
  }),
38
45
  _: Object.freeze({ level: derivedMinimalLogLevel }),
46
+ env: envForLog,
39
47
  };
40
48
  };
41
49
  exports.genLogMethods = genLogMethods;
@@ -1 +1 @@
1
- {"version":3,"file":"genLogMethods.js","sourceRoot":"","sources":["../../src/domain.operations/genLogMethods.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAGzD,2DAAwE;AACxE,+GAA4G;AAqC5G;;;;;GAKG;AACI,MAAM,aAAa,GAAG,CAAC,EAC5B,KAAK,EACL,OAAO,MAIL,EAAE,EAAc,EAAE;IACpB,2BAA2B;IAC3B,MAAM,sBAAsB,GAC1B,KAAK,EAAE,OAAO,IAAI,IAAA,yFAA2C,GAAE,CAAC;IAElE,uBAAuB;IACvB,OAAO;QACL,KAAK,EAAE,IAAA,qCAAiB,EAAC;YACvB,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,eAAe,EAAE,sBAAsB;YACvC,OAAO;SACR,CAAC;QACF,IAAI,EAAE,IAAA,qCAAiB,EAAC;YACtB,KAAK,EAAE,oBAAQ,CAAC,IAAI;YACpB,eAAe,EAAE,sBAAsB;YACvC,OAAO;SACR,CAAC;QACF,IAAI,EAAE,IAAA,qCAAiB,EAAC;YACtB,KAAK,EAAE,oBAAQ,CAAC,IAAI;YACpB,eAAe,EAAE,sBAAsB;YACvC,OAAO;SACR,CAAC;QACF,KAAK,EAAE,IAAA,qCAAiB,EAAC;YACvB,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,eAAe,EAAE,sBAAsB;YACvC,OAAO;SACR,CAAC;QACF,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,aAAa,iBAmCxB"}
1
+ {"version":3,"file":"genLogMethods.js","sourceRoot":"","sources":["../../src/domain.operations/genLogMethods.ts"],"names":[],"mappings":";;;AAEA,6DAAyD;AAIzD,2DAAwD;AACxD,+GAA4G;AAK5G;;;;;;GAMG;AACI,MAAM,aAAa,GAAG,CAAC,EAC5B,KAAK,EACL,OAAO,EACP,GAAG,MAKD,EAAE,EAAc,EAAE;IACpB,2BAA2B;IAC3B,MAAM,sBAAsB,GAC1B,KAAK,EAAE,OAAO,IAAI,IAAA,yFAA2C,GAAE,CAAC;IAElE,6CAA6C;IAC7C,MAAM,SAAS,GAAG,GAAG,IAAI,SAAS,CAAC;IAEnC,uBAAuB;IACvB,OAAO;QACL,KAAK,EAAE,IAAA,qCAAiB,EAAC;YACvB,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,eAAe,EAAE,sBAAsB;YACvC,OAAO;YACP,GAAG,EAAE,SAAS;SACf,CAAC;QACF,IAAI,EAAE,IAAA,qCAAiB,EAAC;YACtB,KAAK,EAAE,oBAAQ,CAAC,IAAI;YACpB,eAAe,EAAE,sBAAsB;YACvC,OAAO;YACP,GAAG,EAAE,SAAS;SACf,CAAC;QACF,IAAI,EAAE,IAAA,qCAAiB,EAAC;YACtB,KAAK,EAAE,oBAAQ,CAAC,IAAI;YACpB,eAAe,EAAE,sBAAsB;YACvC,OAAO;YACP,GAAG,EAAE,SAAS;SACf,CAAC;QACF,KAAK,EAAE,IAAA,qCAAiB,EAAC;YACvB,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,eAAe,EAAE,sBAAsB;YACvC,OAAO;YACP,GAAG,EAAE,SAAS;SACf,CAAC;QACF,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QACnD,GAAG,EAAE,SAAS;KACf,CAAC;AACJ,CAAC,CAAC;AA7CW,QAAA,aAAa,iBA6CxB"}
@@ -1,13 +1,12 @@
1
+ import type { Environment } from 'sdk-environment';
1
2
  import { LogLevel } from '../domain.objects/constants';
2
3
  import type { LogOutlet } from '../domain.objects/LogOutlet';
3
4
  import type { LogTrail } from '../domain.objects/LogTrail';
4
- export type LogMethod = (message: string, metadata?: any) => void;
5
+ export type { LogMethod } from '../domain.objects/LogMethods';
5
6
  export declare const generateLogMethod: ({ level, minimalLogLevel, trail, env, outlets, }: {
6
7
  level: LogLevel;
7
8
  minimalLogLevel: LogLevel;
8
9
  trail?: LogTrail;
9
- env?: {
10
- commit: string;
11
- };
10
+ env?: Partial<Environment>;
12
11
  outlets?: LogOutlet[];
13
12
  }) => (message: string, metadata?: object) => void;
@@ -14,6 +14,13 @@ const logLevelPriorityOrder = [
14
14
  constants_1.LogLevel.DEBUG,
15
15
  ];
16
16
  const aIsEqualOrMoreImportantThanB = ({ a, b }) => logLevelPriorityOrder.indexOf(a) - logLevelPriorityOrder.indexOf(b) <= 0;
17
+ /*
18
+ define how to generate a log method
19
+ - i.e.,:
20
+ - define when allowed to emit a log (i.e., when level > minimalLogLevel)
21
+ - define the format of the log message (json w/ level, timestamp, message, metadata)
22
+ - define the transport of the message (console.log / console.warn)
23
+ */
17
24
  const generateLogMethod = ({ level, minimalLogLevel, trail, env, outlets, }) => {
18
25
  return (message, metadata) => {
19
26
  // check level threshold
@@ -44,6 +51,7 @@ const generateLogMethod = ({ level, minimalLogLevel, trail, env, outlets, }) =>
44
51
  timestamp,
45
52
  message,
46
53
  metadata: metadata,
54
+ env,
47
55
  };
48
56
  for (const outlet of outlets) {
49
57
  outlet.send(event);
@@ -1 +1 @@
1
- {"version":3,"file":"generateLogMethod.js","sourceRoot":"","sources":["../../src/domain.operations/generateLogMethod.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAIzD,mEAAgE;AAChE,uFAAoF;AAEpF;;EAEE;AACF,MAAM,qBAAqB,GAAG;IAC5B,oBAAQ,CAAC,KAAK;IACd,oBAAQ,CAAC,IAAI;IACb,oBAAQ,CAAC,IAAI;IACb,oBAAQ,CAAC,KAAK;CACf,CAAC;AACF,MAAM,4BAA4B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAgC,EAAE,EAAE,CAC9E,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAUpE,MAAM,iBAAiB,GAAG,CAAC,EAChC,KAAK,EACL,eAAe,EACf,KAAK,EACL,GAAG,EACH,OAAO,GAOR,EAAE,EAAE;IACH,OAAO,CAAC,OAAe,EAAE,QAAiB,EAAE,EAAE;QAC5C,wBAAwB;QACxB,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC;YAAE,OAAO;QAE5E,wCAAwC;QACxC,MAAM,SAAS,GAAG,IAAA,6CAAqB,GAAE,CAAC;QAE1C,yFAAyF;QACzF,MAAM,aAAa,GAAG,4BAA4B,CAAC;YACjD,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,oBAAQ,CAAC,IAAI;SACjB,CAAC;YACA,CAAC,CAAC,OAAO,CAAC,IAAI;YACd,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,iCAAiC;QAElD,wGAAwG;QACxG,aAAa,CACX,IAAA,iEAA+B,EAAC;YAC9B,KAAK;YACL,SAAS;YACT,OAAO;YACP,QAAQ;YACR,KAAK;YACL,GAAG;SACJ,CAAC,CACH,CAAC;QAEF,8DAA8D;QAC9D,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,GAAa;gBACtB,KAAK;gBACL,SAAS;gBACT,OAAO;gBACP,QAAQ,EAAE,QAA+C;aAC1D,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AArDW,QAAA,iBAAiB,qBAqD5B"}
1
+ {"version":3,"file":"generateLogMethod.js","sourceRoot":"","sources":["../../src/domain.operations/generateLogMethod.ts"],"names":[],"mappings":";;;AAEA,6DAAyD;AAIzD,mEAAgE;AAChE,uFAAoF;AAKpF;;EAEE;AACF,MAAM,qBAAqB,GAAG;IAC5B,oBAAQ,CAAC,KAAK;IACd,oBAAQ,CAAC,IAAI;IACb,oBAAQ,CAAC,IAAI;IACb,oBAAQ,CAAC,KAAK;CACf,CAAC;AACF,MAAM,4BAA4B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAgC,EAAE,EAAE,CAC9E,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAE3E;;;;;;EAME;AACK,MAAM,iBAAiB,GAAG,CAAC,EAChC,KAAK,EACL,eAAe,EACf,KAAK,EACL,GAAG,EACH,OAAO,GAOR,EAAE,EAAE;IACH,OAAO,CAAC,OAAe,EAAE,QAAiB,EAAE,EAAE;QAC5C,wBAAwB;QACxB,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC;YAAE,OAAO;QAE5E,wCAAwC;QACxC,MAAM,SAAS,GAAG,IAAA,6CAAqB,GAAE,CAAC;QAE1C,yFAAyF;QACzF,MAAM,aAAa,GAAG,4BAA4B,CAAC;YACjD,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,oBAAQ,CAAC,IAAI;SACjB,CAAC;YACA,CAAC,CAAC,OAAO,CAAC,IAAI;YACd,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,iCAAiC;QAElD,wGAAwG;QACxG,aAAa,CACX,IAAA,iEAA+B,EAAC;YAC9B,KAAK;YACL,SAAS;YACT,OAAO;YACP,QAAQ;YACR,KAAK;YACL,GAAG;SACJ,CAAC,CACH,CAAC;QAEF,8DAA8D;QAC9D,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,GAAa;gBACtB,KAAK;gBACL,SAAS;gBACT,OAAO;gBACP,QAAQ,EAAE,QAA+C;gBACzD,GAAG;aACJ,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAtDW,QAAA,iBAAiB,qBAsD5B"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assertAwsCredentialsPresent = void 0;
4
- const error_fns_1 = require("@ehmpathy/error-fns");
4
+ const helpful_errors_1 = require("helpful-errors");
5
5
  /**
6
6
  * .what = validates AWS credentials are available via common sources
7
7
  * .why = fail-fast at outlet creation rather than on first flush
@@ -30,7 +30,7 @@ const assertAwsCredentialsPresent = () => {
30
30
  !hasWebIdentity &&
31
31
  !hasContainerCredentials &&
32
32
  !hasMetadataService) {
33
- throw new error_fns_1.BadRequestError('AWS credentials not configured. genCloudwatchOutlet requires valid AWS credentials.', {
33
+ throw new helpful_errors_1.BadRequestError('AWS credentials not configured. genCloudwatchOutlet requires valid AWS credentials.', {
34
34
  hint: [
35
35
  'configure credentials via one of:',
36
36
  ' - env: AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY',
@@ -1 +1 @@
1
- {"version":3,"file":"assertAwsCredentialsPresent.js","sourceRoot":"","sources":["../../../../src/domain.operations/outlets/cloudwatch/assertAwsCredentialsPresent.ts"],"names":[],"mappings":";;;AAAA,mDAAsD;AAEtD;;;;;;GAMG;AACI,MAAM,2BAA2B,GAAG,GAAS,EAAE;IACpD,qEAAqE;IACrE,MAAM,iBAAiB,GACrB,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAErE,sEAAsE;IACtE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAE3C,gEAAgE;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAE5C,iDAAiD;IACjD,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAEtE,8DAA8D;IAC9D,MAAM,uBAAuB,GAC3B,OAAO,CAAC,GAAG,CAAC,sCAAsC;QAClD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC;IAEjD,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAEzD,kEAAkE;IAClE,IACE,CAAC,iBAAiB;QAClB,CAAC,UAAU;QACX,CAAC,UAAU;QACX,CAAC,cAAc;QACf,CAAC,uBAAuB;QACxB,CAAC,kBAAkB,EACnB,CAAC;QACD,MAAM,IAAI,2BAAe,CACvB,qFAAqF,EACrF;YACE,IAAI,EAAE;gBACJ,mCAAmC;gBACnC,oDAAoD;gBACpD,sDAAsD;gBACtD,oEAAoE;gBACpE,sDAAsD;gBACtD,kEAAkE;aACnE,CAAC,IAAI,CAAC,IAAI,CAAC;SACb,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AA9CW,QAAA,2BAA2B,+BA8CtC"}
1
+ {"version":3,"file":"assertAwsCredentialsPresent.js","sourceRoot":"","sources":["../../../../src/domain.operations/outlets/cloudwatch/assertAwsCredentialsPresent.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAEjD;;;;;;GAMG;AACI,MAAM,2BAA2B,GAAG,GAAS,EAAE;IACpD,qEAAqE;IACrE,MAAM,iBAAiB,GACrB,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAErE,sEAAsE;IACtE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAE3C,gEAAgE;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAE5C,iDAAiD;IACjD,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAEtE,8DAA8D;IAC9D,MAAM,uBAAuB,GAC3B,OAAO,CAAC,GAAG,CAAC,sCAAsC;QAClD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC;IAEjD,iEAAiE;IACjE,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAEzD,kEAAkE;IAClE,IACE,CAAC,iBAAiB;QAClB,CAAC,UAAU;QACX,CAAC,UAAU;QACX,CAAC,cAAc;QACf,CAAC,uBAAuB;QACxB,CAAC,kBAAkB,EACnB,CAAC;QACD,MAAM,IAAI,gCAAe,CACvB,qFAAqF,EACrF;YACE,IAAI,EAAE;gBACJ,mCAAmC;gBACnC,oDAAoD;gBACpD,sDAAsD;gBACtD,oEAAoE;gBACpE,sDAAsD;gBACtD,kEAAkE;aACnE,CAAC,IAAI,CAAC,IAAI,CAAC;SACb,CACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AA9CW,QAAA,2BAA2B,+BA8CtC"}
@@ -1,4 +1,20 @@
1
+ import type { CloudWatchLogsClient, CreateLogGroupCommand, CreateLogStreamCommand, PutLogEventsCommand, ResourceAlreadyExistsException } from '@aws-sdk/client-cloudwatch-logs';
1
2
  import type { LogOutlet } from '../../../domain.objects/LogOutlet';
3
+ /**
4
+ * .what = the AWS CloudWatch Logs SDK module
5
+ * .why = dependency injection removes runtime AWS SDK dependency from sdk-logs
6
+ *
7
+ * .usage
8
+ * import * as sdkAwsCloudwatch from '@aws-sdk/client-cloudwatch-logs';
9
+ * genCloudwatchOutlet({ ... }, { cloudwatch: { sdk: sdkAwsCloudwatch } });
10
+ */
11
+ export type SdkAwsCloudwatch = {
12
+ CloudWatchLogsClient: typeof CloudWatchLogsClient;
13
+ CreateLogGroupCommand: typeof CreateLogGroupCommand;
14
+ CreateLogStreamCommand: typeof CreateLogStreamCommand;
15
+ PutLogEventsCommand: typeof PutLogEventsCommand;
16
+ ResourceAlreadyExistsException: typeof ResourceAlreadyExistsException;
17
+ };
2
18
  /**
3
19
  * .what = generates a CloudWatch outlet for log events
4
20
  * .why = enables log events to flow to CloudWatch in environments without automatic collection
@@ -7,18 +23,25 @@ import type { LogOutlet } from '../../../domain.objects/LogOutlet';
7
23
  * AWS Lambda and CloudWatch Agent environments auto-collect console.log output.
8
24
  * in those environments, omit this outlet to avoid duplicate logs.
9
25
  *
10
- * @param region - AWS region (required: from option or AWS_REGION/AWS_DEFAULT_REGION env)
11
- * @param logGroup - CloudWatch log group name (default: /aws/lambda/{service}-{env})
12
- * @param logStream - CloudWatch log stream name (default: Lambda-style YYYY/MM/DD/[$LATEST]uuid)
13
- * @param skipLogGroupCreation - skip log group findsert (default: false)
14
- * @param flushInterval - auto-flush interval in ms (default: 5000)
15
- * @param maxBufferSize - buffer size threshold in bytes for force-flush (default: 256000)
26
+ * @param input.region - AWS region (required: from option or AWS_REGION/AWS_DEFAULT_REGION env)
27
+ * @param input.logGroup - CloudWatch log group name (default: /aws/lambda/{service}-{env})
28
+ * @param input.logStream - CloudWatch log stream name (default: Lambda-style YYYY/MM/DD/[$LATEST]uuid)
29
+ * @param input.skipLogGroupCreation - skip log group findsert (default: false)
30
+ * @param input.flushInterval - auto-flush interval in ms (default: 5000)
31
+ * @param input.maxBufferSize - buffer size threshold in bytes for force-flush (default: 256000)
32
+ * @param context.cloudwatch.sdk - the @aws-sdk/client-cloudwatch-logs module
33
+ * @param context.cloudwatch.client - optional pre-configured CloudWatchLogsClient
16
34
  */
17
- export declare const genCloudwatchOutlet: ({ region: regionOverride, logGroup, logStream, skipLogGroupCreation, flushInterval, maxBufferSize, }?: {
35
+ export declare const genCloudwatchOutlet: (input: {
18
36
  region?: string;
19
37
  logGroup?: string;
20
38
  logStream?: string;
21
39
  skipLogGroupCreation?: boolean;
22
40
  flushInterval?: number;
23
41
  maxBufferSize?: number;
42
+ }, context: {
43
+ cloudwatch: {
44
+ sdk: SdkAwsCloudwatch;
45
+ client?: CloudWatchLogsClient;
46
+ };
24
47
  }) => LogOutlet;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.genCloudwatchOutlet = void 0;
4
- const client_cloudwatch_logs_1 = require("@aws-sdk/client-cloudwatch-logs");
5
4
  const asCloudWatchBatches_1 = require("./asCloudWatchBatches");
6
5
  const asCloudWatchLogEvents_1 = require("./asCloudWatchLogEvents");
7
6
  const asDefaultLogStreamName_1 = require("./asDefaultLogStreamName");
@@ -17,14 +16,18 @@ const drainBuffer_1 = require("./drainBuffer");
17
16
  * AWS Lambda and CloudWatch Agent environments auto-collect console.log output.
18
17
  * in those environments, omit this outlet to avoid duplicate logs.
19
18
  *
20
- * @param region - AWS region (required: from option or AWS_REGION/AWS_DEFAULT_REGION env)
21
- * @param logGroup - CloudWatch log group name (default: /aws/lambda/{service}-{env})
22
- * @param logStream - CloudWatch log stream name (default: Lambda-style YYYY/MM/DD/[$LATEST]uuid)
23
- * @param skipLogGroupCreation - skip log group findsert (default: false)
24
- * @param flushInterval - auto-flush interval in ms (default: 5000)
25
- * @param maxBufferSize - buffer size threshold in bytes for force-flush (default: 256000)
19
+ * @param input.region - AWS region (required: from option or AWS_REGION/AWS_DEFAULT_REGION env)
20
+ * @param input.logGroup - CloudWatch log group name (default: /aws/lambda/{service}-{env})
21
+ * @param input.logStream - CloudWatch log stream name (default: Lambda-style YYYY/MM/DD/[$LATEST]uuid)
22
+ * @param input.skipLogGroupCreation - skip log group findsert (default: false)
23
+ * @param input.flushInterval - auto-flush interval in ms (default: 5000)
24
+ * @param input.maxBufferSize - buffer size threshold in bytes for force-flush (default: 256000)
25
+ * @param context.cloudwatch.sdk - the @aws-sdk/client-cloudwatch-logs module
26
+ * @param context.cloudwatch.client - optional pre-configured CloudWatchLogsClient
26
27
  */
27
- const genCloudwatchOutlet = ({ region: regionOverride, logGroup, logStream, skipLogGroupCreation, flushInterval, maxBufferSize, } = {}) => {
28
+ const genCloudwatchOutlet = (input, context) => {
29
+ const { region: regionOverride, logGroup, logStream, skipLogGroupCreation, flushInterval, maxBufferSize, } = input;
30
+ const { CloudWatchLogsClient: CloudWatchLogsClientClass, CreateLogGroupCommand, CreateLogStreamCommand, PutLogEventsCommand, ResourceAlreadyExistsException, } = context.cloudwatch.sdk;
28
31
  // validate AWS credentials are present (fail-fast)
29
32
  (0, assertAwsCredentialsPresent_1.assertAwsCredentialsPresent)();
30
33
  // derive region (explicit > env > fail-fast)
@@ -35,8 +38,8 @@ const genCloudwatchOutlet = ({ region: regionOverride, logGroup, logStream, skip
35
38
  // derive defaults
36
39
  const logGroupName = logGroup ?? (0, asLambdaStyleLogGroupName_1.asLambdaStyleLogGroupName)();
37
40
  const logStreamName = logStream ?? (0, asDefaultLogStreamName_1.asDefaultLogStreamName)();
38
- // create client
39
- const client = new client_cloudwatch_logs_1.CloudWatchLogsClient({ region });
41
+ // use provided client or create from sdk (sdk uses AWS_REGION env var)
42
+ const client = context.cloudwatch.client ?? new CloudWatchLogsClientClass({});
40
43
  // buffer for events
41
44
  const buffer = [];
42
45
  let bufferSize = 0; // track size incrementally for O(1) checks
@@ -98,10 +101,10 @@ const genCloudwatchOutlet = ({ region: regionOverride, logGroup, logStream, skip
98
101
  */
99
102
  const findsertLogGroup = async () => {
100
103
  try {
101
- await client.send(new client_cloudwatch_logs_1.CreateLogGroupCommand({ logGroupName }));
104
+ await client.send(new CreateLogGroupCommand({ logGroupName }));
102
105
  }
103
106
  catch (error) {
104
- if (error instanceof client_cloudwatch_logs_1.ResourceAlreadyExistsException)
107
+ if (error instanceof ResourceAlreadyExistsException)
105
108
  return;
106
109
  throw error;
107
110
  }
@@ -112,10 +115,10 @@ const genCloudwatchOutlet = ({ region: regionOverride, logGroup, logStream, skip
112
115
  */
113
116
  const findsertLogStream = async () => {
114
117
  try {
115
- await client.send(new client_cloudwatch_logs_1.CreateLogStreamCommand({ logGroupName, logStreamName }));
118
+ await client.send(new CreateLogStreamCommand({ logGroupName, logStreamName }));
116
119
  }
117
120
  catch (error) {
118
- if (error instanceof client_cloudwatch_logs_1.ResourceAlreadyExistsException)
121
+ if (error instanceof ResourceAlreadyExistsException)
119
122
  return;
120
123
  throw error;
121
124
  }
@@ -164,7 +167,7 @@ const genCloudwatchOutlet = ({ region: regionOverride, logGroup, logStream, skip
164
167
  // split into CloudWatch-compliant batches (max 1MB, 10k events each)
165
168
  const batches = (0, asCloudWatchBatches_1.asCloudWatchBatches)(events);
166
169
  for (const batch of batches) {
167
- await client.send(new client_cloudwatch_logs_1.PutLogEventsCommand({
170
+ await client.send(new PutLogEventsCommand({
168
171
  logGroupName,
169
172
  logStreamName,
170
173
  logEvents: (0, asCloudWatchLogEvents_1.asCloudWatchLogEvents)(batch),
@@ -1 +1 @@
1
- {"version":3,"file":"genCloudwatchOutlet.js","sourceRoot":"","sources":["../../../../src/domain.operations/outlets/cloudwatch/genCloudwatchOutlet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genCloudwatchOutlet.js","sourceRoot":"","sources":["../../../../src/domain.operations/outlets/cloudwatch/genCloudwatchOutlet.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"withLogTrail.js","sourceRoot":"","sources":["../../src/domain.operations/withLogTrail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withLogTrail.js","sourceRoot":"","sources":["../../src/domain.operations/withLogTrail.ts"],"names":[],"mappings":";;;AAKA,mDAAyD;AACzD,uCAA4D;AAE5D,uCAAuD;AAEvD,6DAAyD;AAGzD,2DAAwE;AAGxE,MAAM,IAAI,GAAG,CAAC,GAAG,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC;AACtC,MAAM,WAAW,GAAG,CAAC,GAAG,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,+CAA+C;AAChG,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,CAAC;IAC1C,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;CAClC,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,+CAA+C;AAEvH,MAAM,iCAAiC,GAAG,OAAO,CAAC,GAAG;KAClD,6BAA6B;IAC9B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;IACrD,CAAC,CAAC,IAAA,yBAAc,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAEnC;;;;;;GAMG;AACI,MAAM,YAAY,GAAG,CAC1B,KAAoD,EACpD,EACE,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,UAAU,EACf,QAAQ,GAAG;IACT,SAAS,EAAE,EAAE,YAAY,EAAE,iCAAiC,EAAE;CAC/D,GAiDF,EACa,EAAE;IAChB,8CAA8C;IAC9C,MAAM,IAAI,GAAkB,KAAK,CAAC,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC,CAAC,mEAAmE;IAEnI,+DAA+D;IAC/D,IAAI,CAAC,IAAI;QACP,MAAM,IAAI,wCAAuB,CAC/B,8CAA8C,CAC/C,CAAC;IAEJ,kGAAkG;IAClG,IAAI,YAAY,IAAI,IAAI,KAAK,YAAY;QACvC,MAAM,IAAI,wCAAuB,CAC/B,sEAAsE,EACtE,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CACpC,CAAC;IAEJ,uCAAuC;IACvC,MAAM,aAAa,GACjB,CAAC,OAAO,UAAU,EAAE,KAAK,KAAK,QAAQ;QACpC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;QACxB,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC;IACpC,MAAM,cAAc,GAClB,CAAC,OAAO,UAAU,EAAE,KAAK,KAAK,QAAQ;QACpC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM;QACzB,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC;IACpC,MAAM,aAAa;IACjB,iIAAiI;IACjI,CAAC,OAAO,UAAU,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,MAAM,CAAC;IAET,0BAA0B;IAC1B,MAAM,cAAc,GAAG,UAAU,EAAE,KAAK,IAAI,WAAW,CAAC;IACxD,MAAM,eAAe,GAAG,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC;IACnD,MAAM,cAAc,GAAG,UAAU,EAAE,KAAK,IAAI,gBAAgB,CAAC;IAE7D,gCAAgC;IAChC,MAAM,0BAA0B,GAAG,QAAQ,CAAC,SAAS,CAAC;IACtD,MAAM,mCAAmC,GACvC,IAAA,yBAAc,EAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC;IAEpD,oBAAoB;IACpB,OAAO,CACL,KAAmC,EACnC,OAAuC,EACR,EAAE;QACjC,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,QAAQ,EAAE;YAC1C,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;SACtC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,uBAAuB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAErD,+DAA+D;QAC/D,MAAM,YAAY,GAAa;YAC7B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI;YACrC,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;SACnD,CAAC;QAEF,gDAAgD;QAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAE5B,yBAAyB;QACzB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAE5C,6CAA6C;QAC7C,MAAM,SAAS,GAAG,IAAA,qCAAiB,EAAC;YAClC,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,eAAe;YACf,KAAK,EAAE,YAAY;YACnB,GAAG;SACJ,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAA,qCAAiB,EAAC;YACjC,KAAK,EAAE,oBAAQ,CAAC,IAAI;YACpB,eAAe;YACf,KAAK,EAAE,YAAY;YACnB,GAAG;SACJ,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAA,qCAAiB,EAAC;YACjC,KAAK,EAAE,oBAAQ,CAAC,IAAI;YACpB,eAAe;YACf,KAAK,EAAE,YAAY;YACnB,GAAG;SACJ,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,qCAAiB,EAAC;YAClC,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,eAAe;YACf,KAAK,EAAE,YAAY;YACnB,GAAG;SACJ,CAAC,CAAC;QAEH,gEAAgE;QAChE,MAAM,qBAAqB,GAGvB;YACF,iCAAiC;YACjC,KAAK,EAAE,YAAY;YACnB,GAAG;YACH,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;YAE5C,wBAAwB;YACxB,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG;YAExC,6CAA6C;YAC7C,KAAK,EAAE,CACL,OAAiC,EACjC,QAAkC,EAClC,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,cAAc,OAAO,EAAE,EAAE,QAAQ,CAAC;YACxD,IAAI,EAAE,CACJ,OAAiC,EACjC,QAAkC,EAClC,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,cAAc,OAAO,EAAE,EAAE,QAAQ,CAAC;YACvD,IAAI,EAAE,CACJ,OAAiC,EACjC,QAAkC,EAClC,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,cAAc,OAAO,EAAE,EAAE,QAAQ,CAAC;YACvD,KAAK,EAAE,CACL,OAAiC,EACjC,QAAkC,EAClC,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,cAAc,OAAO,EAAE,EAAE,QAAQ,CAAC;SACzD,CAAC;QAEF,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;YAChC,MAAM,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM,sBAAsB,GAC1B,qBAAqB,GAAG,uBAAuB,CAAC;YAClD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,sBAAsB,GAAG,GAAG,CAAC,CAAC,CAAC,+CAA+C;YAC1H,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,QAAQ,EAAE;gBAC1C,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;gBACrC,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC;gBAC7B,GAAG,CAAC,iBAAiB,IAAI,mCAAmC;oBAC1D,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,iBAAiB,MAAM,EAAE,CAAC,yDAAyD;oBACpG,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,uDAAuD;QACvD,IAAI,MAAqC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;gBACpB,GAAG,OAAO;gBACV,GAAG,EAAE,qBAAqB;aACf,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8CAA8C;YAC9C,IAAI,KAAK,YAAY,KAAK;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,KAAK,CAAC;QACd,CAAC;QAED,wCAAwC;QACxC,MAAM,SAAS,GAAG,CAAC,MAA8C,EAAE,EAAE;YACnE,MAAM,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM,sBAAsB,GAC1B,qBAAqB,GAAG,uBAAuB,CAAC;YAClD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,sBAAsB,GAAG,GAAG,CAAC,CAAC,CAAC,+CAA+C;YAC1H,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,SAAS,EAAE;gBAC5C,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;gBACrC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;gBAC/B,GAAG,CAAC,iBAAiB,IAAI,mCAAmC;oBAC1D,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,iBAAiB,MAAM,EAAE,CAAC,yDAAyD;oBACpG,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,iHAAiH;QACjH,IAAI,IAAA,qBAAU,EAAC,MAAM,CAAC,EAAE,CAAC;YACvB,0CAA0C;YAC1C,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,kBAAkB,EAAE;gBACrD,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;gBACrC,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,mCAAmC,MAAM,EAAE;aACpE,CAAC,CAAC;YAEL,4DAA4D;YAC5D,MAAM,eAAe,GAAG,UAAU,CAChC,gBAAgB,EAChB,mCAAmC,GAAG,IAAI,CAC3C,CAAC;YAEF,+DAA+D;YAC/D,OAAO,MAAM;iBACV,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;iBAC5C,IAAI,CAAC,CAAC,MAA8C,EAAE,EAAE;gBACvD,SAAS,CAAC,MAAM,CAAC,CAAC;gBAClB,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;gBACtB,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChB,MAAM,KAAK,CAAC;YACd,CAAC,CAAY,CAAC;QAClB,CAAC;QAED,oEAAoE;QACpE,SAAS,CAAC,MAAgD,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AAhQW,QAAA,YAAY,gBAgQvB"}
package/dist/index.d.ts CHANGED
@@ -7,5 +7,5 @@ export type { LogMethods } from './domain.operations/genLogMethods';
7
7
  export { genLogMethods } from './domain.operations/genLogMethods';
8
8
  export { asDefaultLogStreamName } from './domain.operations/outlets/cloudwatch/asDefaultLogStreamName';
9
9
  export { asLambdaStyleLogGroupName } from './domain.operations/outlets/cloudwatch/asLambdaStyleLogGroupName';
10
- export { genCloudwatchOutlet } from './domain.operations/outlets/cloudwatch/genCloudwatchOutlet';
10
+ export { genCloudwatchOutlet, type SdkAwsCloudwatch, } from './domain.operations/outlets/cloudwatch/genCloudwatchOutlet';
11
11
  export { withLogTrail } from './domain.operations/withLogTrail';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAAsD;AAA7C,qGAAA,QAAQ,OAAA;AAOjB,6EAA4E;AAAnE,wHAAA,kBAAkB,OAAA;AAG3B,mEAAkE;AAAzD,8GAAA,aAAa,OAAA;AACtB,wGAAuG;AAA9F,gIAAA,sBAAsB,OAAA;AAC/B,8GAA6G;AAApG,sIAAA,yBAAyB,OAAA;AAClC,kGAAiG;AAAxF,0HAAA,mBAAmB,OAAA;AAC5B,iEAAgE;AAAvD,4GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAAsD;AAA7C,qGAAA,QAAQ,OAAA;AAOjB,6EAA4E;AAAnE,wHAAA,kBAAkB,OAAA;AAG3B,mEAAkE;AAAzD,8GAAA,aAAa,OAAA;AACtB,wGAAuG;AAA9F,gIAAA,sBAAsB,OAAA;AAC/B,8GAA6G;AAApG,sIAAA,yBAAyB,OAAA;AAClC,kGAGoE;AAFlE,0HAAA,mBAAmB,OAAA;AAGrB,iEAAgE;AAAvD,4GAAA,YAAY,OAAA"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "sdk-logs",
3
3
  "author": "ehmpathy",
4
4
  "description": "a simple and opinionated logging library. plays well with aws lambda + cloudwatch.",
5
- "version": "0.8.0",
5
+ "version": "0.9.2",
6
6
  "repository": "ehmpathy/sdk-logs",
7
7
  "homepage": "https://github.com/ehmpathy/sdk-logs",
8
8
  "keywords": [
@@ -32,8 +32,11 @@
32
32
  "fix:format": "npm run fix:format:biome",
33
33
  "fix:lint": "biome check --write",
34
34
  "fix": "npm run fix:format && npm run fix:lint",
35
- "build:clean": "chmod -R u+w dist 2>/dev/null; rm -rf dist/",
36
- "build:compile": "tsc -p ./tsconfig.build.json && tsc-alias -p ./tsconfig.build.json",
35
+ "build:clean:bun": "rm -f ./bin/*.bc",
36
+ "build:clean:tsc": "(chmod -R u+w dist 2>/dev/null || true) && rm -rf dist/",
37
+ "build:clean": "npm run build:clean:tsc && npm run build:clean:bun",
38
+ "build:compile:tsc": "tsc -p ./tsconfig.build.json && tsc-alias -p ./tsconfig.build.json",
39
+ "build:compile": "npm run build:compile:tsc && npm run build:compile:bun --if-present",
37
40
  "build": "npm run build:clean && npm run build:compile && npm run build:complete --if-present",
38
41
  "test:commits": "LAST_TAG=$(git describe --tags --abbrev=0 @^ 2> /dev/null || git rev-list --max-parents=0 HEAD) && npx commitlint --from $LAST_TAG --to HEAD --verbose",
39
42
  "test:types": "tsc -p ./tsconfig.json --noEmit",
@@ -42,33 +45,36 @@
42
45
  "test:lint:deps": "npx depcheck -c ./.depcheckrc.yml",
43
46
  "test:lint:biome": "biome check --diagnostic-level=error",
44
47
  "test:lint:biome:all": "biome check",
45
- "test:lint": "npm run test:lint:biome && npm run test:lint:deps",
46
- "test:unit": "jest -c ./jest.unit.config.ts --forceExit --verbose --passWithNoTests $([ -z $THOROUGH ] && echo '--changedSince=main') $([ -n $RESNAP ] && echo '--updateSnapshot')",
47
- "test:integration": "jest -c ./jest.integration.config.ts --forceExit --verbose --passWithNoTests $([ -z $THOROUGH ] && echo '--changedSince=main') $([ -n $RESNAP ] && echo '--updateSnapshot')",
48
- "test:acceptance:locally": "npm run build && LOCALLY=true jest -c ./jest.acceptance.config.ts --forceExit --verbose --runInBand --passWithNoTests $([ -n $RESNAP ] && echo '--updateSnapshot')",
49
- "test": "npm run test:commits && npm run test:types && npm run test:format && npm run test:lint && npm run test:unit && npm run test:integration && npm run test:acceptance:locally",
50
- "test:acceptance": "npm run build && jest -c ./jest.acceptance.config.ts --forceExit --verbose --runInBand --passWithNoTests $([ -n $RESNAP ] && echo '--updateSnapshot')",
48
+ "test:lint": "npm run test:lint:biome && npm run test:lint:cycles && npm run test:lint:deps",
49
+ "test:unit": "set -eu && jest -c ./jest.unit.config.ts --forceExit --verbose --passWithNoTests $([ -n \"${CI:-}\" ] && echo '--ci') $([ \"${THOROUGH:-}\" != \"true\" ] && echo '--changedSince=main') $([ \"${RESNAP:-}\" = \"true\" ] && echo '--updateSnapshot')",
50
+ "test:integration": "set -eu && jest -c ./jest.integration.config.ts --forceExit --verbose --passWithNoTests $([ -n \"${CI:-}\" ] && echo '--ci') $([ \"${THOROUGH:-}\" != \"true\" ] && echo '--changedSince=main') $([ \"${RESNAP:-}\" = \"true\" ] && echo '--updateSnapshot')",
51
+ "test:acceptance:locally": "set -eu && npm run build && LOCALLY=true jest -c ./jest.acceptance.config.ts --forceExit --verbose --runInBand --passWithNoTests $([ \"${RESNAP:-}\" = \"true\" ] && echo '--updateSnapshot')",
52
+ "test": "set -eu && npm run test:commits && npm run test:types && npm run test:format && npm run test:lint && npm run test:unit && npm run test:integration && npm run test:acceptance:locally",
53
+ "test:acceptance": "set -eu && npm run build && jest -c ./jest.acceptance.config.ts --forceExit --verbose --runInBand --passWithNoTests $([ -n \"${CI:-}\" ] && echo '--ci') $([ \"${RESNAP:-}\" = \"true\" ] && echo '--updateSnapshot')",
51
54
  "prepush": "npm run test && npm run build",
52
55
  "prepublish": "npm run build",
53
56
  "preversion": "npm run prepush",
54
57
  "postversion": "git push origin HEAD --tags --no-verify",
55
58
  "prepare:husky": "husky install && chmod ug+x .husky/*",
56
- "prepare:rhachet": "rhachet init --hooks --roles mechanic behaver driver reviewer librarian ergonomist architect reflector dreamer dispatcher",
57
- "prepare": "if [ -e .git ] && [ -z $CI ]; then npm run prepare:husky && npm run prepare:rhachet; fi"
59
+ "prepare:rhachet": "rhachet init --hooks --roles mechanic behaver driver architect ergonomist reviewer dreamer dispatcher",
60
+ "prepare": "if [ -e .git ] && [ -z $CI ]; then npm run prepare:husky && npm run prepare:rhachet; fi",
61
+ "test:lint:cycles": "dpdm -T --no-warning --no-tree --exit-code circular:1 --exclude \"$(yq -r '.exclude | join(\"|\") // \"^$\"' .dpdmrc.yaml)\" 'src/**/!(*.test).ts'",
62
+ "upgrade:rhachet": "rhachet upgrade"
58
63
  },
59
64
  "dependencies": {
60
- "@aws-sdk/client-cloudwatch-logs": "3.1040.0",
61
65
  "@ehmpathy/error-fns": "^1.3.7",
62
66
  "domain-glossary-procedure": "^1.0.0",
63
- "domain-objects": "0.31.10",
67
+ "domain-objects": "0.31.13",
64
68
  "helpful-errors": "1.7.3",
65
69
  "iso-time": "^1.11.5",
66
70
  "type-fns": "1.21.2"
67
71
  },
68
72
  "devDependencies": {
73
+ "@aws-sdk/client-cloudwatch-logs": "3.1063.0",
69
74
  "@biomejs/biome": "2.3.8",
70
75
  "@commitlint/cli": "19.5.0",
71
76
  "@commitlint/config-conventional": "19.5.0",
77
+ "@jest/globals": "30.2.0",
72
78
  "@swc/core": "1.15.3",
73
79
  "@swc/jest": "0.2.39",
74
80
  "@tsconfig/node20": "20.1.5",
@@ -76,22 +82,24 @@
76
82
  "@types/jest": "30.0.0",
77
83
  "@types/node": "22.15.21",
78
84
  "cz-conventional-changelog": "3.3.0",
79
- "declapract": "^0.13.18",
80
- "declapract-typescript-ehmpathy": "^0.47.14",
81
- "declastruct": "1.7.3",
82
- "declastruct-github": "1.3.0",
85
+ "declapract": "^0.13.21",
86
+ "declapract-typescript-ehmpathy": "^0.47.74",
87
+ "declastruct": "1.9.1",
88
+ "declastruct-github": "1.4.0",
83
89
  "depcheck": "1.4.3",
90
+ "dpdm": "4.0.1",
84
91
  "esbuild-register": "3.6.0",
85
92
  "husky": "8.0.3",
86
93
  "jest": "30.2.0",
87
- "rhachet": "1.41.7",
88
- "rhachet-brains-anthropic": "^0.4.1",
89
- "rhachet-brains-xai": "^0.3.3",
90
- "rhachet-roles-bhrain": "0.27.6",
91
- "rhachet-roles-bhuild": "0.21.7",
92
- "rhachet-roles-ehmpathy": "1.35.5",
94
+ "rhachet": "1.41.18",
95
+ "rhachet-brains-anthropic": "0.4.1",
96
+ "rhachet-brains-xai": "0.3.3",
97
+ "rhachet-roles-bhrain": "0.29.0",
98
+ "rhachet-roles-bhuild": "0.21.15",
99
+ "rhachet-roles-ehmpathy": "1.35.12",
93
100
  "rhachet-roles-rhachet": "^0.1.7",
94
- "test-fns": "1.4.2",
101
+ "sdk-environment": "0.1.5",
102
+ "test-fns": "1.15.8",
95
103
  "tsc-alias": "1.8.10",
96
104
  "tsx": "4.20.6",
97
105
  "typescript": "5.4.5",
package/readme.md CHANGED
@@ -43,3 +43,25 @@ log.info(`we either want to or should keep track of this`, metadata); // use `.i
43
43
 
44
44
  log.debug(`this will help debug if things go wrong`, metadata); // use this for any information that could help debug when things go wrong (e.g., request/response data)
45
45
  ```
46
+
47
+ ### cloudwatch outlet
48
+
49
+ for environments without automatic log collection (e.g., non-Lambda compute), you can forward logs directly to CloudWatch:
50
+
51
+ ```ts
52
+ import * as sdkAwsCloudwatch from '@aws-sdk/client-cloudwatch-logs';
53
+ import { genCloudwatchOutlet, genLogMethods } from 'sdk-logs';
54
+
55
+ const outlet = genCloudwatchOutlet(
56
+ { region: 'us-east-1' },
57
+ { cloudwatch: { sdk: sdkAwsCloudwatch } },
58
+ );
59
+
60
+ const log = genLogMethods({ outlets: [outlet] });
61
+ ```
62
+
63
+ note: the AWS SDK is injected via context to keep it as a peer dependency. install it separately:
64
+
65
+ ```
66
+ npm install --save @aws-sdk/client-cloudwatch-logs
67
+ ```