@wireio/shared 1.0.18 → 1.0.19
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/lib/cjs/guards/applyTypeGuardExtras.d.ts.map +1 -0
- package/lib/cjs/guards/applyTypeGuardExtras.js +8 -0
- package/lib/cjs/guards/array.d.ts.map +1 -0
- package/lib/cjs/guards/array.js +7 -0
- package/lib/cjs/guards/assert.d.ts.map +1 -0
- package/lib/cjs/guards/assert.js +56 -0
- package/lib/cjs/guards/class.d.ts.map +1 -0
- package/lib/{guards → cjs/guards}/class.js +15 -7
- package/lib/cjs/guards/guard-tools.d.ts.map +1 -0
- package/lib/cjs/guards/guard-tools.js +55 -0
- package/lib/cjs/guards/index.d.ts.map +1 -0
- package/lib/cjs/guards/index.js +24 -0
- package/lib/cjs/guards/primitive.d.ts.map +1 -0
- package/lib/cjs/guards/primitive.js +65 -0
- package/lib/cjs/guards/types.d.ts.map +1 -0
- package/lib/cjs/guards/types.js +3 -0
- package/lib/cjs/helpers/Deferred.d.ts.map +1 -0
- package/lib/cjs/helpers/Deferred.js +115 -0
- package/lib/cjs/helpers/index.d.ts.map +1 -0
- package/lib/cjs/helpers/index.js +18 -0
- package/lib/cjs/index.d.ts.map +1 -0
- package/lib/cjs/index.js +20 -0
- package/lib/cjs/logging/Appender.d.ts.map +1 -0
- package/lib/cjs/logging/Appender.js +3 -0
- package/lib/cjs/logging/Formatter.d.ts.map +1 -0
- package/lib/cjs/logging/Formatter.js +3 -0
- package/lib/cjs/logging/InternalLogger.d.ts.map +1 -0
- package/lib/cjs/logging/InternalLogger.js +27 -0
- package/lib/cjs/logging/Level.d.ts.map +1 -0
- package/lib/cjs/logging/Level.js +16 -0
- package/lib/cjs/logging/LogRecord.d.ts.map +1 -0
- package/lib/cjs/logging/LogRecord.js +3 -0
- package/lib/cjs/logging/Logger.d.ts.map +1 -0
- package/lib/cjs/logging/Logger.js +190 -0
- package/lib/cjs/logging/LoggingManager.d.ts.map +1 -0
- package/lib/cjs/logging/LoggingManager.js +253 -0
- package/lib/cjs/logging/appenders/ConsoleAppender.d.ts.map +1 -0
- package/lib/cjs/logging/appenders/ConsoleAppender.js +78 -0
- package/lib/cjs/logging/appenders/FileAppender.d.ts.map +1 -0
- package/lib/cjs/logging/appenders/FileAppender.js +254 -0
- package/lib/cjs/logging/appenders/aws-firehose/AWSFirehoseAppender.d.ts.map +1 -0
- package/lib/cjs/logging/appenders/aws-firehose/AWSFirehoseAppender.js +145 -0
- package/lib/cjs/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts.map +1 -0
- package/lib/cjs/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.js +105 -0
- package/lib/cjs/logging/appenders/index.d.ts.map +1 -0
- package/lib/cjs/logging/appenders/index.js +20 -0
- package/lib/cjs/logging/appenders/push/PushLogRecordsAppender.d.ts.map +1 -0
- package/lib/cjs/logging/appenders/push/PushLogRecordsAppender.js +294 -0
- package/lib/cjs/logging/appenders/push/index.d.ts.map +1 -0
- package/lib/cjs/logging/appenders/push/index.js +18 -0
- package/lib/cjs/logging/context/LogContext.d.ts.map +1 -0
- package/lib/cjs/logging/context/LogContext.js +62 -0
- package/lib/cjs/logging/context/LogContextContainer.d.ts.map +1 -0
- package/lib/cjs/logging/context/LogContextContainer.js +28 -0
- package/lib/cjs/logging/context/LogContextProvider.d.ts.map +1 -0
- package/lib/cjs/logging/context/LogContextProvider.js +21 -0
- package/lib/cjs/logging/context/index.d.ts.map +1 -0
- package/lib/cjs/logging/context/index.js +20 -0
- package/lib/cjs/logging/context/providers/node/NodeContextProvider.d.ts.map +1 -0
- package/lib/cjs/logging/context/providers/node/NodeContextProvider.js +33 -0
- package/lib/cjs/logging/context/providers/node/index.d.ts.map +1 -0
- package/lib/cjs/logging/context/providers/node/index.js +4 -0
- package/lib/cjs/logging/examples/example-debug-appender.d.ts.map +1 -0
- package/lib/cjs/logging/examples/example-debug-appender.js +16 -0
- package/lib/cjs/logging/examples/example-file-appender.d.ts.map +1 -0
- package/lib/cjs/logging/examples/example-file-appender.js +18 -0
- package/lib/cjs/logging/getLogger.d.ts.map +1 -0
- package/lib/cjs/logging/getLogger.js +8 -0
- package/lib/cjs/logging/index-node.d.ts.map +1 -0
- package/lib/cjs/logging/index-node.js +19 -0
- package/lib/cjs/logging/index.d.ts.map +1 -0
- package/lib/cjs/logging/index.js +27 -0
- package/lib/cjs/logging/util.d.ts.map +1 -0
- package/lib/cjs/logging/util.js +9 -0
- package/lib/esm/guards/applyTypeGuardExtras.d.ts +3 -0
- package/lib/esm/guards/applyTypeGuardExtras.d.ts.map +1 -0
- package/lib/esm/guards/applyTypeGuardExtras.js +5 -0
- package/lib/esm/guards/array.d.ts +2 -0
- package/lib/esm/guards/array.d.ts.map +1 -0
- package/lib/esm/guards/array.js +4 -0
- package/lib/esm/guards/assert.d.ts +19 -0
- package/lib/esm/guards/assert.d.ts.map +1 -0
- package/lib/esm/guards/assert.js +50 -0
- package/lib/esm/guards/class.d.ts +27 -0
- package/lib/esm/guards/class.d.ts.map +1 -0
- package/lib/esm/guards/class.js +34 -0
- package/lib/esm/guards/guard-tools.d.ts +20 -0
- package/lib/esm/guards/guard-tools.d.ts.map +1 -0
- package/lib/esm/guards/guard-tools.js +50 -0
- package/lib/esm/guards/index.d.ts +8 -0
- package/lib/esm/guards/index.d.ts.map +1 -0
- package/lib/esm/guards/index.js +8 -0
- package/lib/esm/guards/primitive.d.ts +26 -0
- package/lib/esm/guards/primitive.d.ts.map +1 -0
- package/lib/esm/guards/primitive.js +47 -0
- package/lib/esm/guards/types.d.ts +10 -0
- package/lib/esm/guards/types.d.ts.map +1 -0
- package/lib/esm/guards/types.js +2 -0
- package/lib/esm/helpers/Deferred.d.ts +31 -0
- package/lib/esm/helpers/Deferred.d.ts.map +1 -0
- package/lib/esm/helpers/Deferred.js +111 -0
- package/lib/esm/helpers/index.d.ts +2 -0
- package/lib/esm/helpers/index.d.ts.map +1 -0
- package/lib/esm/helpers/index.js +2 -0
- package/lib/esm/index.d.ts +4 -0
- package/lib/esm/index.d.ts.map +1 -0
- package/lib/esm/index.js +4 -0
- package/lib/esm/logging/Appender.d.ts +5 -0
- package/lib/esm/logging/Appender.d.ts.map +1 -0
- package/lib/esm/logging/Appender.js +2 -0
- package/lib/esm/logging/Formatter.d.ts +3 -0
- package/lib/esm/logging/Formatter.d.ts.map +1 -0
- package/lib/esm/logging/Formatter.js +2 -0
- package/lib/esm/logging/InternalLogger.d.ts +5 -0
- package/lib/esm/logging/InternalLogger.d.ts.map +1 -0
- package/lib/esm/logging/InternalLogger.js +23 -0
- package/lib/esm/logging/Level.d.ts +14 -0
- package/lib/esm/logging/Level.d.ts.map +1 -0
- package/lib/esm/logging/Level.js +13 -0
- package/lib/esm/logging/LogRecord.d.ts +19 -0
- package/lib/esm/logging/LogRecord.d.ts.map +1 -0
- package/lib/esm/logging/LogRecord.js +2 -0
- package/lib/esm/logging/Logger.d.ts +81 -0
- package/lib/esm/logging/Logger.d.ts.map +1 -0
- package/lib/esm/logging/Logger.js +184 -0
- package/lib/esm/logging/LoggingManager.d.ts +131 -0
- package/lib/esm/logging/LoggingManager.d.ts.map +1 -0
- package/lib/esm/logging/LoggingManager.js +248 -0
- package/lib/esm/logging/appenders/ConsoleAppender.d.ts +55 -0
- package/lib/esm/logging/appenders/ConsoleAppender.d.ts.map +1 -0
- package/lib/esm/logging/appenders/ConsoleAppender.js +72 -0
- package/lib/esm/logging/appenders/FileAppender.d.ts +65 -0
- package/lib/esm/logging/appenders/FileAppender.d.ts.map +1 -0
- package/lib/esm/logging/appenders/FileAppender.js +214 -0
- package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseAppender.d.ts +28 -0
- package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseAppender.d.ts.map +1 -0
- package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseAppender.js +138 -0
- package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts +29 -0
- package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts.map +1 -0
- package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.js +98 -0
- package/lib/esm/logging/appenders/index.d.ts +4 -0
- package/lib/esm/logging/appenders/index.d.ts.map +1 -0
- package/lib/esm/logging/appenders/index.js +4 -0
- package/lib/esm/logging/appenders/push/PushLogRecordsAppender.d.ts +76 -0
- package/lib/esm/logging/appenders/push/PushLogRecordsAppender.d.ts.map +1 -0
- package/lib/esm/logging/appenders/push/PushLogRecordsAppender.js +286 -0
- package/lib/esm/logging/appenders/push/index.d.ts +2 -0
- package/lib/esm/logging/appenders/push/index.d.ts.map +1 -0
- package/lib/esm/logging/appenders/push/index.js +2 -0
- package/lib/esm/logging/context/LogContext.d.ts +48 -0
- package/lib/esm/logging/context/LogContext.d.ts.map +1 -0
- package/lib/esm/logging/context/LogContext.js +58 -0
- package/lib/esm/logging/context/LogContextContainer.d.ts +9 -0
- package/lib/esm/logging/context/LogContextContainer.d.ts.map +1 -0
- package/lib/esm/logging/context/LogContextContainer.js +25 -0
- package/lib/esm/logging/context/LogContextProvider.d.ts +24 -0
- package/lib/esm/logging/context/LogContextProvider.d.ts.map +1 -0
- package/lib/esm/logging/context/LogContextProvider.js +18 -0
- package/lib/esm/logging/context/index.d.ts +4 -0
- package/lib/esm/logging/context/index.d.ts.map +1 -0
- package/lib/esm/logging/context/index.js +4 -0
- package/lib/esm/logging/context/providers/node/NodeContextProvider.d.ts +2 -0
- package/lib/esm/logging/context/providers/node/NodeContextProvider.d.ts.map +1 -0
- package/lib/esm/logging/context/providers/node/NodeContextProvider.js +31 -0
- package/lib/esm/logging/context/providers/node/index.d.ts +3 -0
- package/lib/esm/logging/context/providers/node/index.d.ts.map +1 -0
- package/lib/esm/logging/context/providers/node/index.js +2 -0
- package/lib/esm/logging/examples/example-debug-appender.d.ts +2 -0
- package/lib/esm/logging/examples/example-debug-appender.d.ts.map +1 -0
- package/lib/esm/logging/examples/example-debug-appender.js +14 -0
- package/lib/esm/logging/examples/example-file-appender.d.ts +2 -0
- package/lib/esm/logging/examples/example-file-appender.d.ts.map +1 -0
- package/lib/esm/logging/examples/example-file-appender.js +16 -0
- package/lib/esm/logging/getLogger.d.ts +3 -0
- package/lib/esm/logging/getLogger.d.ts.map +1 -0
- package/lib/esm/logging/getLogger.js +5 -0
- package/lib/esm/logging/index-node.d.ts +3 -0
- package/lib/esm/logging/index-node.d.ts.map +1 -0
- package/lib/esm/logging/index-node.js +3 -0
- package/lib/esm/logging/index.d.ts +11 -0
- package/lib/esm/logging/index.d.ts.map +1 -0
- package/lib/esm/logging/index.js +11 -0
- package/lib/esm/logging/util.d.ts +3 -0
- package/lib/esm/logging/util.d.ts.map +1 -0
- package/lib/esm/logging/util.js +6 -0
- package/lib/test-cjs/guards/array.test.d.ts +2 -0
- package/lib/test-cjs/guards/array.test.d.ts.map +1 -0
- package/lib/test-cjs/guards/array.test.js +31 -0
- package/lib/test-cjs/guards/array.test.js.map +1 -0
- package/lib/test-cjs/guards/assert.test.d.ts +2 -0
- package/lib/test-cjs/guards/assert.test.d.ts.map +1 -0
- package/lib/test-cjs/guards/assert.test.js +78 -0
- package/lib/test-cjs/guards/assert.test.js.map +1 -0
- package/lib/test-cjs/guards/class.test.d.ts +2 -0
- package/lib/test-cjs/guards/class.test.d.ts.map +1 -0
- package/lib/test-cjs/guards/class.test.js +76 -0
- package/lib/test-cjs/guards/class.test.js.map +1 -0
- package/lib/test-cjs/guards/guard-tools.test.d.ts +2 -0
- package/lib/test-cjs/guards/guard-tools.test.d.ts.map +1 -0
- package/lib/test-cjs/guards/guard-tools.test.js +66 -0
- package/lib/test-cjs/guards/guard-tools.test.js.map +1 -0
- package/lib/test-cjs/guards/primitive.test.d.ts +2 -0
- package/lib/test-cjs/guards/primitive.test.d.ts.map +1 -0
- package/lib/test-cjs/guards/primitive.test.js +236 -0
- package/lib/test-cjs/guards/primitive.test.js.map +1 -0
- package/lib/test-cjs/helpers/Deferred.test.d.ts +2 -0
- package/lib/test-cjs/helpers/Deferred.test.d.ts.map +1 -0
- package/lib/test-cjs/helpers/Deferred.test.js +194 -0
- package/lib/test-cjs/helpers/Deferred.test.js.map +1 -0
- package/lib/test-cjs/logging/ConsoleAppender.test.d.ts +2 -0
- package/lib/test-cjs/logging/ConsoleAppender.test.d.ts.map +1 -0
- package/lib/test-cjs/logging/ConsoleAppender.test.js +93 -0
- package/lib/test-cjs/logging/ConsoleAppender.test.js.map +1 -0
- package/lib/test-cjs/logging/Level.test.d.ts +2 -0
- package/lib/test-cjs/logging/Level.test.d.ts.map +1 -0
- package/lib/test-cjs/logging/Level.test.js +40 -0
- package/lib/test-cjs/logging/Level.test.js.map +1 -0
- package/lib/test-cjs/logging/Logger.test.d.ts +2 -0
- package/lib/test-cjs/logging/Logger.test.d.ts.map +1 -0
- package/lib/test-cjs/logging/Logger.test.js +119 -0
- package/lib/test-cjs/logging/Logger.test.js.map +1 -0
- package/lib/test-cjs/logging/LoggingManager.test.d.ts +2 -0
- package/lib/test-cjs/logging/LoggingManager.test.d.ts.map +1 -0
- package/lib/test-cjs/logging/LoggingManager.test.js +122 -0
- package/lib/test-cjs/logging/LoggingManager.test.js.map +1 -0
- package/lib/test-cjs/logging/util.test.d.ts +2 -0
- package/lib/test-cjs/logging/util.test.d.ts.map +1 -0
- package/lib/test-cjs/logging/util.test.js +46 -0
- package/lib/test-cjs/logging/util.test.js.map +1 -0
- package/lib/tsconfig.cjs.jest.tsbuildinfo +1 -0
- package/lib/tsconfig.cjs.tsbuildinfo +1 -0
- package/lib/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +18 -5
- package/lib/guards/applyTypeGuardExtras.d.ts.map +0 -1
- package/lib/guards/applyTypeGuardExtras.js +0 -5
- package/lib/guards/array.d.ts.map +0 -1
- package/lib/guards/array.js +0 -4
- package/lib/guards/assert.d.ts.map +0 -1
- package/lib/guards/assert.js +0 -50
- package/lib/guards/class.d.ts.map +0 -1
- package/lib/guards/guard-tools.d.ts.map +0 -1
- package/lib/guards/guard-tools.js +0 -50
- package/lib/guards/index.d.ts.map +0 -1
- package/lib/guards/index.js +0 -8
- package/lib/guards/primitive.d.ts.map +0 -1
- package/lib/guards/primitive.js +0 -47
- package/lib/guards/types.d.ts.map +0 -1
- package/lib/guards/types.js +0 -2
- package/lib/helpers/Deferred.d.ts.map +0 -1
- package/lib/helpers/Deferred.js +0 -111
- package/lib/helpers/index.d.ts.map +0 -1
- package/lib/helpers/index.js +0 -2
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -4
- package/lib/logging/Appender.d.ts.map +0 -1
- package/lib/logging/Appender.js +0 -2
- package/lib/logging/Formatter.d.ts.map +0 -1
- package/lib/logging/Formatter.js +0 -2
- package/lib/logging/InternalLogger.d.ts.map +0 -1
- package/lib/logging/InternalLogger.js +0 -23
- package/lib/logging/Level.d.ts.map +0 -1
- package/lib/logging/Level.js +0 -13
- package/lib/logging/LogRecord.d.ts.map +0 -1
- package/lib/logging/LogRecord.js +0 -2
- package/lib/logging/Logger.d.ts.map +0 -1
- package/lib/logging/Logger.js +0 -183
- package/lib/logging/LoggingManager.d.ts.map +0 -1
- package/lib/logging/LoggingManager.js +0 -243
- package/lib/logging/appenders/ConsoleAppender.d.ts.map +0 -1
- package/lib/logging/appenders/ConsoleAppender.js +0 -72
- package/lib/logging/appenders/FileAppender.d.ts.map +0 -1
- package/lib/logging/appenders/FileAppender.js +0 -212
- package/lib/logging/appenders/aws-firehose/AWSFirehoseAppender.d.ts.map +0 -1
- package/lib/logging/appenders/aws-firehose/AWSFirehoseAppender.js +0 -138
- package/lib/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts.map +0 -1
- package/lib/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.js +0 -98
- package/lib/logging/appenders/index.d.ts.map +0 -1
- package/lib/logging/appenders/index.js +0 -4
- package/lib/logging/appenders/push/PushLogRecordsAppender.d.ts.map +0 -1
- package/lib/logging/appenders/push/PushLogRecordsAppender.js +0 -286
- package/lib/logging/appenders/push/index.d.ts.map +0 -1
- package/lib/logging/appenders/push/index.js +0 -2
- package/lib/logging/context/LogContext.d.ts.map +0 -1
- package/lib/logging/context/LogContext.js +0 -58
- package/lib/logging/context/LogContextContainer.d.ts.map +0 -1
- package/lib/logging/context/LogContextContainer.js +0 -25
- package/lib/logging/context/LogContextProvider.d.ts.map +0 -1
- package/lib/logging/context/LogContextProvider.js +0 -18
- package/lib/logging/context/index.d.ts.map +0 -1
- package/lib/logging/context/index.js +0 -4
- package/lib/logging/context/providers/node/NodeContextProvider.d.ts.map +0 -1
- package/lib/logging/context/providers/node/NodeContextProvider.js +0 -31
- package/lib/logging/context/providers/node/index.d.ts.map +0 -1
- package/lib/logging/context/providers/node/index.js +0 -2
- package/lib/logging/examples/example-debug-appender.d.ts.map +0 -1
- package/lib/logging/examples/example-debug-appender.js +0 -14
- package/lib/logging/examples/example-file-appender.d.ts.map +0 -1
- package/lib/logging/examples/example-file-appender.js +0 -16
- package/lib/logging/getLogger.d.ts.map +0 -1
- package/lib/logging/getLogger.js +0 -5
- package/lib/logging/index-node.d.ts.map +0 -1
- package/lib/logging/index-node.js +0 -3
- package/lib/logging/index.d.ts.map +0 -1
- package/lib/logging/index.js +0 -11
- package/lib/logging/util.d.ts.map +0 -1
- package/lib/logging/util.js +0 -6
- /package/lib/{guards → cjs/guards}/applyTypeGuardExtras.d.ts +0 -0
- /package/lib/{guards → cjs/guards}/array.d.ts +0 -0
- /package/lib/{guards → cjs/guards}/assert.d.ts +0 -0
- /package/lib/{guards → cjs/guards}/class.d.ts +0 -0
- /package/lib/{guards → cjs/guards}/guard-tools.d.ts +0 -0
- /package/lib/{guards → cjs/guards}/index.d.ts +0 -0
- /package/lib/{guards → cjs/guards}/primitive.d.ts +0 -0
- /package/lib/{guards → cjs/guards}/types.d.ts +0 -0
- /package/lib/{helpers → cjs/helpers}/Deferred.d.ts +0 -0
- /package/lib/{helpers → cjs/helpers}/index.d.ts +0 -0
- /package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/lib/{logging → cjs/logging}/Appender.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/Formatter.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/InternalLogger.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/Level.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/LogRecord.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/Logger.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/LoggingManager.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/appenders/ConsoleAppender.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/appenders/FileAppender.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/appenders/aws-firehose/AWSFirehoseAppender.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/appenders/index.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/appenders/push/PushLogRecordsAppender.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/appenders/push/index.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/context/LogContext.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/context/LogContextContainer.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/context/LogContextProvider.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/context/index.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/context/providers/node/NodeContextProvider.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/context/providers/node/index.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/examples/example-debug-appender.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/examples/example-file-appender.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/getLogger.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/index-node.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/index.d.ts +0 -0
- /package/lib/{logging → cjs/logging}/util.d.ts +0 -0
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
import { assign, defaults, padStart } from "lodash";
|
|
2
|
-
import * as Path from "path";
|
|
3
|
-
import * as Fs from "fs";
|
|
4
|
-
import { Option, Future } from "prelude-ts";
|
|
5
|
-
import { Buffer } from "buffer";
|
|
6
|
-
import Debug from "debug";
|
|
7
|
-
import Bluebird from "bluebird";
|
|
8
|
-
const FsAsync = Fs.promises;
|
|
9
|
-
const debug = Debug("3fv:logger:FileAppender");
|
|
10
|
-
const osTempDir = process.env.TMP ?? process.env.TEMP ?? "/tmp";
|
|
11
|
-
const tempDir = Fs.mkdtempSync(Path.join(osTempDir, "logger-proxy-example")); //
|
|
12
|
-
const getDefaultConfig = () => ({
|
|
13
|
-
filename: Path.join(tempDir, "app.log"),
|
|
14
|
-
prettyPrint: process.env.NODE_ENV !== "production",
|
|
15
|
-
maxSize: -1,
|
|
16
|
-
maxFiles: 5,
|
|
17
|
-
enableRolling: false,
|
|
18
|
-
sync: false
|
|
19
|
-
});
|
|
20
|
-
function applyConfigDefaults(options) {
|
|
21
|
-
return defaults(options, getDefaultConfig());
|
|
22
|
-
}
|
|
23
|
-
export class FileAppender {
|
|
24
|
-
config;
|
|
25
|
-
state = {
|
|
26
|
-
archivedFilenames: [],
|
|
27
|
-
filename: undefined,
|
|
28
|
-
file: undefined,
|
|
29
|
-
ready: false,
|
|
30
|
-
currentSize: 0,
|
|
31
|
-
flushing: false,
|
|
32
|
-
queue: []
|
|
33
|
-
};
|
|
34
|
-
get enableRolling() {
|
|
35
|
-
return this.config.enableRolling;
|
|
36
|
-
}
|
|
37
|
-
isReady() {
|
|
38
|
-
return this.state.ready;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Initialize and setup the appender
|
|
42
|
-
*
|
|
43
|
-
* @returns {FileAppender<Record>}
|
|
44
|
-
*/
|
|
45
|
-
setup() {
|
|
46
|
-
const { state } = this;
|
|
47
|
-
if (!!state.ready) {
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
try {
|
|
51
|
-
const { filename } = this;
|
|
52
|
-
const file = Fs.openSync(filename, "a");
|
|
53
|
-
assign(state, {
|
|
54
|
-
filename,
|
|
55
|
-
file,
|
|
56
|
-
ready: true
|
|
57
|
-
});
|
|
58
|
-
return this;
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
assign(state, {
|
|
62
|
-
error: err,
|
|
63
|
-
file: undefined,
|
|
64
|
-
ready: false
|
|
65
|
-
});
|
|
66
|
-
throw err;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Only exposed for the sake of tests & examples
|
|
71
|
-
* DO NOT USE
|
|
72
|
-
*
|
|
73
|
-
* This should all be async, but i was in a rush :(
|
|
74
|
-
*
|
|
75
|
-
* @returns
|
|
76
|
-
*/
|
|
77
|
-
rollFile() {
|
|
78
|
-
const { state, config } = this;
|
|
79
|
-
let { file, filename, archivedFilenames } = state;
|
|
80
|
-
if (!this.isReady() || !file) {
|
|
81
|
-
debug(`Can not roll file before ready`);
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
if (!this.enableRolling) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
const fileCount = archivedFilenames.length + 1;
|
|
88
|
-
if (config.maxFiles < 1 || fileCount < config.maxFiles) {
|
|
89
|
-
archivedFilenames.push(filename + "." + padStart(fileCount.toString(10), 4, "0"));
|
|
90
|
-
}
|
|
91
|
-
Fs.fdatasyncSync(file);
|
|
92
|
-
Fs.closeSync(file);
|
|
93
|
-
file = state.file = undefined;
|
|
94
|
-
const filenames = [filename, ...archivedFilenames];
|
|
95
|
-
let dest = filenames.pop();
|
|
96
|
-
while (filenames.length) {
|
|
97
|
-
let src = filenames.pop();
|
|
98
|
-
if (!Fs.existsSync(src)) {
|
|
99
|
-
debug(`src does not exist, skipping ${src}`);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
debug(`Moving src (${src}) to dest (${dest})`);
|
|
103
|
-
if (Fs.existsSync(dest)) {
|
|
104
|
-
Fs.unlinkSync(dest);
|
|
105
|
-
}
|
|
106
|
-
Fs.renameSync(src, dest);
|
|
107
|
-
// if (src === filename) {
|
|
108
|
-
// Fs.copyFileSync(src, dest)
|
|
109
|
-
// Fs.truncateSync(src, 0)
|
|
110
|
-
// } else {
|
|
111
|
-
// Fs.renameSync(src, dest)
|
|
112
|
-
// }
|
|
113
|
-
}
|
|
114
|
-
dest = src;
|
|
115
|
-
}
|
|
116
|
-
assign(state, {
|
|
117
|
-
currentSize: 0,
|
|
118
|
-
file: Fs.openSync(filename, "a")
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Close the handler
|
|
123
|
-
*
|
|
124
|
-
* @returns {Promise<void>}
|
|
125
|
-
*/
|
|
126
|
-
close() {
|
|
127
|
-
return this.flush().onComplete(() => Option.of(this.state.file).map(Fs.closeSync)).toPromise();
|
|
128
|
-
}
|
|
129
|
-
get queue() {
|
|
130
|
-
return this.state.queue;
|
|
131
|
-
}
|
|
132
|
-
get file() {
|
|
133
|
-
return this.state.file;
|
|
134
|
-
}
|
|
135
|
-
get flushing() {
|
|
136
|
-
return this.state.flushing;
|
|
137
|
-
}
|
|
138
|
-
get filename() {
|
|
139
|
-
return (this.state.filename = this.state.filename ?? this.config.filename);
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Appends the log queue records to the file
|
|
143
|
-
*/
|
|
144
|
-
flush() {
|
|
145
|
-
const { state } = this;
|
|
146
|
-
return Future.do(async () => {
|
|
147
|
-
state.flushing = true;
|
|
148
|
-
try {
|
|
149
|
-
const { file } = this;
|
|
150
|
-
if (!file) {
|
|
151
|
-
throw Error(`${this.filename} was not opened properly`);
|
|
152
|
-
}
|
|
153
|
-
while (this.queue.length) {
|
|
154
|
-
const buf = this.queue.shift();
|
|
155
|
-
await Bluebird.fromCallback((cb) => Fs.appendFile(file, buf, "utf-8", cb));
|
|
156
|
-
state.currentSize += buf.byteLength;
|
|
157
|
-
}
|
|
158
|
-
const { maxSize } = this.config;
|
|
159
|
-
if (maxSize > 0 && state.currentSize >= maxSize) {
|
|
160
|
-
this.rollFile();
|
|
161
|
-
}
|
|
162
|
-
//await Bluebird.fromCallback((cb) => Fs.fdatasync(this.file, cb))
|
|
163
|
-
}
|
|
164
|
-
catch (err) {
|
|
165
|
-
console.error(`Failed to append file ${this.filename}`, err);
|
|
166
|
-
}
|
|
167
|
-
finally {
|
|
168
|
-
this.state.flushing = false;
|
|
169
|
-
if (this.queue.length) {
|
|
170
|
-
queueMicrotask(() => this.flush());
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Handle log records, transform, push to ES
|
|
177
|
-
*
|
|
178
|
-
* @param record
|
|
179
|
-
*/
|
|
180
|
-
append(record) {
|
|
181
|
-
try {
|
|
182
|
-
const { queue, filename } = this.state;
|
|
183
|
-
const count = queue.length;
|
|
184
|
-
if (count > 999) {
|
|
185
|
-
debug(`Too many log records (${count}) are in the queue without the file (${filename}) opening, skipping %O`, record);
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
const data = this.config.prettyPrint
|
|
189
|
-
? JSON.stringify(record, null, 2)
|
|
190
|
-
: JSON.stringify(record);
|
|
191
|
-
queue.push(Buffer.from(data + "\n", "utf-8"));
|
|
192
|
-
this.flush();
|
|
193
|
-
}
|
|
194
|
-
catch (err) {
|
|
195
|
-
console.warn(`Failed to synchronize `, err);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
*
|
|
200
|
-
* @param {Partial<FileAppenderOptions<Record>>} options
|
|
201
|
-
*/
|
|
202
|
-
constructor(options = {}) {
|
|
203
|
-
this.config = applyConfigDefaults(options);
|
|
204
|
-
assign(this.state, {
|
|
205
|
-
filename: this.config.filename
|
|
206
|
-
});
|
|
207
|
-
this.setup();
|
|
208
|
-
debug(`File appender is ready, logging to ${this.state.filename}`);
|
|
209
|
-
// return this
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUFwcGVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xvZ2dpbmcvYXBwZW5kZXJzL0ZpbGVBcHBlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDbkQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUE7QUFDNUIsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFHeEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUE7QUFDekIsT0FBTyxRQUFRLE1BQU0sVUFBVSxDQUFBO0FBRS9CLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUE7QUFFM0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUE7QUFDOUMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFBO0FBQy9ELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFBLENBQUMsRUFBRTtBQUMvRSxNQUFNLGdCQUFnQixHQUFHLEdBQXVCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7SUFDdkMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFlBQVk7SUFDbEQsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNYLFFBQVEsRUFBRSxD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QUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQzFCLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7WUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2QsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxVQUFnRCxFQUFFO1FBQzVELElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtTQUMvQixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDWixLQUFLLENBQUMsc0NBQXNDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUNsRSxtQkFBbUI7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzaWduLCBkZWZhdWx0cywgcGFkU3RhcnQgfSBmcm9tIFwibG9kYXNoXCJcbmltcG9ydCAqIGFzIFBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0ICogYXMgRnMgZnJvbSBcImZzXCJcbmltcG9ydCB0eXBlIHsgTG9nUmVjb3JkIH0gZnJvbSBcIi4uL0xvZ1JlY29yZFwiXG5pbXBvcnQgdHlwZSB7IEFwcGVuZGVyIH0gZnJvbSBcIi4uL0FwcGVuZGVyXCJcbmltcG9ydCB7IE9wdGlvbiwgRnV0dXJlIH0gZnJvbSBcInByZWx1ZGUtdHNcIlxuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSBcImJ1ZmZlclwiXG5pbXBvcnQgRGVidWcgZnJvbSBcImRlYnVnXCJcbmltcG9ydCBCbHVlYmlyZCBmcm9tIFwiYmx1ZWJpcmRcIlxuXG5jb25zdCBGc0FzeW5jID0gRnMucHJvbWlzZXNcblxuY29uc3QgZGVidWcgPSBEZWJ1ZyhcIjNmdjpsb2dnZXI6RmlsZUFwcGVuZGVyXCIpXG5jb25zdCBvc1RlbXBEaXIgPSBwcm9jZXNzLmVudi5UTVAgPz8gcHJvY2Vzcy5lbnYuVEVNUCA/PyBcIi90bXBcIlxuY29uc3QgdGVtcERpciA9IEZzLm1rZHRlbXBTeW5jKFBhdGguam9pbihvc1RlbXBEaXIsIFwibG9nZ2VyLXByb3h5LWV4YW1wbGVcIikpIC8vXG5jb25zdCBnZXREZWZhdWx0Q29uZmlnID0gKCk6IEZpbGVBcHBlbmRlckNvbmZpZyA9PiAoe1xuICBmaWxlbmFtZTogUGF0aC5qb2luKHRlbXBEaXIsIFwiYXBwLmxvZ1wiKSxcbiAgcHJldHR5UHJpbnQ6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIixcbiAgbWF4U2l6ZTogLTEsXG4gIG1heEZpbGVzOiA1LFxuICBlbmFibGVSb2xsaW5nOiBmYWxzZSxcbiAgc3luYzogZmFsc2Vcbn0pXG5cbmZ1bmN0aW9uIGFwcGx5Q29uZmlnRGVmYXVsdHMob3B0aW9uczogRmlsZUFwcGVuZGVyT3B0aW9ucyk6IEZpbGVBcHBlbmRlckNvbmZpZyB7XG4gIHJldHVybiBkZWZhdWx0cyhvcHRpb25zLCBnZXREZWZhdWx0Q29uZmlnKCkpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUFwcGVuZGVyQ29uZmlnPFJlY29yZCBleHRlbmRzIExvZ1JlY29yZCA9IGFueT4ge1xuICBmaWxlbmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEZvciByb2xsaW5nXG4gICAqL1xuICBtYXhGaWxlczogbnVtYmVyXG5cbiAgLyoqXG4gICAqIEZvciByb2xsaW5nXG4gICAqL1xuICBtYXhTaXplOiBudW1iZXJcblxuICBlbmFibGVSb2xsaW5nOiBib29sZWFuXG4gIHByZXR0eVByaW50OiBib29sZWFuXG4gIHN5bmM6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgRmlsZUFwcGVuZGVyT3B0aW9uczxSZWNvcmQgZXh0ZW5kcyBMb2dSZWNvcmQgPSBhbnk+ID0gUGFydGlhbDxcbiAgRmlsZUFwcGVuZGVyQ29uZmlnPFJlY29yZD5cbj5cblxuZXhwb3J0IGNsYXNzIEZpbGVBcHBlbmRlcjxSZWNvcmQgZXh0ZW5kcyBMb2dSZWNvcmQ+XG4gIGltcGxlbWVudHMgQXBwZW5kZXI8UmVjb3JkPlxue1xuICByZWFkb25seSBjb25maWc6IEZpbGVBcHBlbmRlckNvbmZpZzxSZWNvcmQ+XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZToge1xuICAgIGZpbGVuYW1lOiBzdHJpbmdcbiAgICBmaWxlOiBudW1iZXJcbiAgICBmbHVzaGluZzogYm9vbGVhblxuICAgIHF1ZXVlOiBBcnJheTxCdWZmZXI+XG4gICAgcmVhZHk6IGJvb2xlYW5cbiAgICBlcnJvcj86IEVycm9yXG4gICAgY3VycmVudFNpemU6IG51bWJlclxuICAgIGFyY2hpdmVkRmlsZW5hbWVzOiBzdHJpbmdbXVxuICB9ID0ge1xuICAgIGFyY2hpdmVkRmlsZW5hbWVzOiBbXSxcbiAgICBmaWxlbmFtZTogdW5kZWZpbmVkLFxuICAgIGZpbGU6IHVuZGVmaW5lZCxcbiAgICByZWFkeTogZmFsc2UsXG4gICAgY3VycmVudFNpemU6IDAsXG4gICAgZmx1c2hpbmc6IGZhbHNlLFxuICAgIHF1ZXVlOiBbXVxuICB9XG5cbiAgZ2V0IGVuYWJsZVJvbGxpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmVuYWJsZVJvbGxpbmdcbiAgfVxuXG4gIGlzUmVhZHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUucmVhZHlcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGFuZCBzZXR1cCB0aGUgYXBwZW5kZXJcbiAgICpcbiAgICogQHJldHVybnMge0ZpbGVBcHBlbmRlcjxSZWNvcmQ+fVxuICAgKi9cbiAgc2V0dXAoKTogRmlsZUFwcGVuZGVyPFJlY29yZD4ge1xuICAgIGNvbnN0IHsgc3RhdGUgfSA9IHRoaXNcbiAgICBpZiAoISFzdGF0ZS5yZWFkeSkge1xuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBmaWxlbmFtZSB9ID0gdGhpc1xuICAgICAgY29uc3QgZmlsZSA9IEZzLm9wZW5TeW5jKGZpbGVuYW1lLCBcImFcIilcblxuICAgICAgYXNzaWduKHN0YXRlLCB7XG4gICAgICAgIGZpbGVuYW1lLFxuICAgICAgICBmaWxlLFxuICAgICAgICByZWFkeTogdHJ1ZVxuICAgICAgfSlcblxuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGFzc2lnbihzdGF0ZSwge1xuICAgICAgICBlcnJvcjogZXJyLFxuICAgICAgICBmaWxlOiB1bmRlZmluZWQsXG4gICAgICAgIHJlYWR5OiBmYWxzZVxuICAgICAgfSlcbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IGV4cG9zZWQgZm9yIHRoZSBzYWtlIG9mIHRlc3RzICYgZXhhbXBsZXNcbiAgICogRE8gTk9UIFVTRVxuICAgKlxuICAgKiBUaGlzIHNob3VsZCBhbGwgYmUgYXN5bmMsIGJ1dCBpIHdhcyBpbiBhIHJ1c2ggOihcbiAgICpcbiAgICogQHJldHVybnNcbiAgICovXG4gIHJvbGxGaWxlKCkge1xuICAgIGNvbnN0IHsgc3RhdGUsIGNvbmZpZyB9ID0gdGhpc1xuICAgIGxldCB7IGZpbGUsIGZpbGVuYW1lLCBhcmNoaXZlZEZpbGVuYW1lcyB9ID0gc3RhdGVcbiAgICBpZiAoIXRoaXMuaXNSZWFkeSgpIHx8ICFmaWxlKSB7XG4gICAgICBkZWJ1ZyhgQ2FuIG5vdCByb2xsIGZpbGUgYmVmb3JlIHJlYWR5YClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghdGhpcy5lbmFibGVSb2xsaW5nKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBmaWxlQ291bnQgPSBhcmNoaXZlZEZpbGVuYW1lcy5sZW5ndGggKyAxXG4gICAgaWYgKGNvbmZpZy5tYXhGaWxlcyA8IDEgfHwgZmlsZUNvdW50IDwgY29uZmlnLm1heEZpbGVzKSB7XG4gICAgICBhcmNoaXZlZEZpbGVuYW1lcy5wdXNoKFxuICAgICAgICBmaWxlbmFtZSArIFwiLlwiICsgcGFkU3RhcnQoZmlsZUNvdW50LnRvU3RyaW5nKDEwKSwgNCwgXCIwXCIpXG4gICAgICApXG4gICAgfVxuICAgIEZzLmZkYXRhc3luY1N5bmMoZmlsZSlcbiAgICBGcy5jbG9zZVN5bmMoZmlsZSlcbiAgICBmaWxlID0gc3RhdGUuZmlsZSA9IHVuZGVmaW5lZFxuICAgIGNvbnN0IGZpbGVuYW1lcyA9IFtmaWxlbmFtZSwgLi4uYXJjaGl2ZWRGaWxlbmFtZXNdXG5cbiAgICBsZXQgZGVzdDogc3RyaW5nID0gZmlsZW5hbWVzLnBvcCgpXG4gICAgd2hpbGUgKGZpbGVuYW1lcy5sZW5ndGgpIHtcbiAgICAgIGxldCBzcmMgPSBmaWxlbmFtZXMucG9wKClcbiAgICAgIGlmICghRnMuZXhpc3RzU3luYyhzcmMpKSB7XG4gICAgICAgIGRlYnVnKGBzcmMgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nICR7c3JjfWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWJ1ZyhgTW92aW5nIHNyYyAoJHtzcmN9KSB0byBkZXN0ICgke2Rlc3R9KWApXG4gICAgICAgIGlmIChGcy5leGlzdHNTeW5jKGRlc3QpKSB7XG4gICAgICAgICAgRnMudW5saW5rU3luYyhkZXN0KVxuICAgICAgICB9XG4gICAgICAgIEZzLnJlbmFtZVN5bmMoc3JjLCBkZXN0KVxuICAgICAgICAvLyBpZiAoc3JjID09PSBmaWxlbmFtZSkge1xuICAgICAgICAvLyAgIEZzLmNvcHlGaWxlU3luYyhzcmMsIGRlc3QpXG4gICAgICAgIC8vICAgRnMudHJ1bmNhdGVTeW5jKHNyYywgMClcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICBGcy5yZW5hbWVTeW5jKHNyYywgZGVzdClcbiAgICAgICAgLy8gfVxuICAgICAgfVxuICAgICAgZGVzdCA9IHNyY1xuICAgIH1cblxuICAgIGFzc2lnbihzdGF0ZSwge1xuICAgICAgY3VycmVudFNpemU6IDAsXG4gICAgICBmaWxlOiBGcy5vcGVuU3luYyhmaWxlbmFtZSwgXCJhXCIpXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgaGFuZGxlclxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGNsb3NlKCkge1xuICAgIHJldHVybiB0aGlzLmZsdXNoKCkub25Db21wbGV0ZSgoKSA9PlxuICAgICAgT3B0aW9uLm9mKHRoaXMuc3RhdGUuZmlsZSkubWFwKEZzLmNsb3NlU3luYylcbiAgICApLnRvUHJvbWlzZSgpXG4gIH1cblxuICBnZXQgcXVldWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUucXVldWVcbiAgfVxuXG4gIGdldCBmaWxlKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmZpbGVcbiAgfVxuXG4gIGdldCBmbHVzaGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5mbHVzaGluZ1xuICB9XG5cbiAgZ2V0IGZpbGVuYW1lKCkge1xuICAgIHJldHVybiAodGhpcy5zdGF0ZS5maWxlbmFtZSA9IHRoaXMuc3RhdGUuZmlsZW5hbWUgPz8gdGhpcy5jb25maWcuZmlsZW5hbWUpXG4gIH1cblxuICAvKipcbiAgICogQXBwZW5kcyB0aGUgbG9nIHF1ZXVlIHJlY29yZHMgdG8gdGhlIGZpbGVcbiAgICovXG4gIHByaXZhdGUgZmx1c2goKSB7XG4gICAgY29uc3QgeyBzdGF0ZSB9ID0gdGhpc1xuICAgIHJldHVybiBGdXR1cmUuZG8oYXN5bmMgKCkgPT4ge1xuICAgICAgc3RhdGUuZmx1c2hpbmcgPSB0cnVlXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGZpbGUgfSA9IHRoaXNcbiAgICAgICAgaWYgKCFmaWxlKSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoYCR7dGhpcy5maWxlbmFtZX0gd2FzIG5vdCBvcGVuZWQgcHJvcGVybHlgKVxuICAgICAgICB9XG4gICAgICAgIHdoaWxlICh0aGlzLnF1ZXVlLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGJ1ZjogQnVmZmVyID0gdGhpcy5xdWV1ZS5zaGlmdCgpXG5cbiAgICAgICAgICBhd2FpdCBCbHVlYmlyZC5mcm9tQ2FsbGJhY2soKGNiKSA9PlxuICAgICAgICAgICAgRnMuYXBwZW5kRmlsZShmaWxlLCBidWYsIFwidXRmLThcIiwgY2IpXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgc3RhdGUuY3VycmVudFNpemUgKz0gYnVmLmJ5dGVMZW5ndGhcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgbWF4U2l6ZSB9ID0gdGhpcy5jb25maWdcbiAgICAgICAgaWYgKG1heFNpemUgPiAwICYmIHN0YXRlLmN1cnJlbnRTaXplID49IG1heFNpemUpIHtcbiAgICAgICAgICB0aGlzLnJvbGxGaWxlKClcbiAgICAgICAgfVxuXG4gICAgICAgIC8vYXdhaXQgQmx1ZWJpcmQuZnJvbUNhbGxiYWNrKChjYikgPT4gRnMuZmRhdGFzeW5jKHRoaXMuZmlsZSwgY2IpKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBhcHBlbmQgZmlsZSAke3RoaXMuZmlsZW5hbWV9YCwgZXJyKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5zdGF0ZS5mbHVzaGluZyA9IGZhbHNlXG4gICAgICAgIGlmICh0aGlzLnF1ZXVlLmxlbmd0aCkge1xuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZmx1c2goKSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGxvZyByZWNvcmRzLCB0cmFuc2Zvcm0sIHB1c2ggdG8gRVNcbiAgICpcbiAgICogQHBhcmFtIHJlY29yZFxuICAgKi9cbiAgYXBwZW5kKHJlY29yZDogUmVjb3JkKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgcXVldWUsIGZpbGVuYW1lIH0gPSB0aGlzLnN0YXRlXG4gICAgICBjb25zdCBjb3VudCA9IHF1ZXVlLmxlbmd0aFxuICAgICAgaWYgKGNvdW50ID4gOTk5KSB7XG4gICAgICAgIGRlYnVnKFxuICAgICAgICAgIGBUb28gbWFueSBsb2cgcmVjb3JkcyAoJHtjb3VudH0pIGFyZSBpbiB0aGUgcXVldWUgd2l0aG91dCB0aGUgZmlsZSAoJHtmaWxlbmFtZX0pIG9wZW5pbmcsIHNraXBwaW5nICVPYCxcbiAgICAgICAgICByZWNvcmRcbiAgICAgICAgKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuY29uZmlnLnByZXR0eVByaW50XG4gICAgICAgID8gSlNPTi5zdHJpbmdpZnkocmVjb3JkLCBudWxsLCAyKVxuICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHJlY29yZClcbiAgICAgIHF1ZXVlLnB1c2goQnVmZmVyLmZyb20oZGF0YSArIFwiXFxuXCIsIFwidXRmLThcIikpXG4gICAgICB0aGlzLmZsdXNoKClcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIHN5bmNocm9uaXplIGAsIGVycilcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWFsPEZpbGVBcHBlbmRlck9wdGlvbnM8UmVjb3JkPj59IG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBhcnRpYWw8RmlsZUFwcGVuZGVyT3B0aW9uczxSZWNvcmQ+PiA9IHt9KSB7XG4gICAgdGhpcy5jb25maWcgPSBhcHBseUNvbmZpZ0RlZmF1bHRzKG9wdGlvbnMpXG5cbiAgICBhc3NpZ24odGhpcy5zdGF0ZSwge1xuICAgICAgZmlsZW5hbWU6IHRoaXMuY29uZmlnLmZpbGVuYW1lXG4gICAgfSlcblxuICAgIHRoaXMuc2V0dXAoKVxuICAgIGRlYnVnKGBGaWxlIGFwcGVuZGVyIGlzIHJlYWR5LCBsb2dnaW5nIHRvICR7dGhpcy5zdGF0ZS5maWxlbmFtZX1gKVxuICAgIC8vICAgICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AWSFirehoseAppender.d.ts","sourceRoot":"","sources":["../../../../src/logging/appenders/aws-firehose/AWSFirehoseAppender.ts"],"names":[],"mappings":"AASA,OAAO,4BAA4B,MAAM,mCAAmC,CAAA;AAK5E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAM5C,qBAAa,mBAAmB,CAAC,MAAM,SAAS,SAAS,GAAG,SAAS,CACnE,YAAW,QAAQ,CAAC,MAAM,CAAC;aAQT,qBAAqB,EAAE,MAAM;IAP/C,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAQ;IAE/B,SAAgB,iBAAiB,EAAE,4BAA4B,CAAA;gBAG7C,qBAAqB,EAAE,MAAM;IAc/C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAoB5B;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;OAIG;YACW,KAAK;CA+EpB;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { FirehoseClient, PutRecordBatchCommand } from "@aws-sdk/client-firehose";
|
|
2
|
-
import { ExpiredTokenException, } from "@aws-sdk/client-sts";
|
|
3
|
-
import AWSFirehoseCredentialManager from "./AWSFirehoseCredentialManager.js";
|
|
4
|
-
import { getInternalLogger } from "../../InternalLogger.js";
|
|
5
|
-
import { pick } from "lodash";
|
|
6
|
-
import { Deferred } from "../../../helpers/index.js";
|
|
7
|
-
const LogQueueMaxRecords = 10000;
|
|
8
|
-
const log = getInternalLogger();
|
|
9
|
-
export class AWSFirehoseAppender {
|
|
10
|
-
credentialEndpointUrl;
|
|
11
|
-
pendingRecords = Array();
|
|
12
|
-
flushDeferred;
|
|
13
|
-
flushIntervalMs = 1000;
|
|
14
|
-
credentialManager;
|
|
15
|
-
constructor(credentialEndpointUrl) {
|
|
16
|
-
this.credentialEndpointUrl = credentialEndpointUrl;
|
|
17
|
-
this.credentialManager = new AWSFirehoseCredentialManager(credentialEndpointUrl);
|
|
18
|
-
this.credentialManager.on("received", () => {
|
|
19
|
-
log.info("Credentials received, initializing firehose client");
|
|
20
|
-
if (!this.pendingRecords.length || !!this.flushDeferred) {
|
|
21
|
-
log.debug("Nothing to flush upon credential receipt OR flush already in progress");
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
this.flush()
|
|
25
|
-
.catch((e) => {
|
|
26
|
-
log.error(`Error flushing logs after credential receipt: ${e.message}`, e);
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
append(record) {
|
|
31
|
-
const pendingCount = this.pendingRecords.length + 1, removeCount = LogQueueMaxRecords - pendingCount;
|
|
32
|
-
if (removeCount < 0) {
|
|
33
|
-
this.pendingRecords.splice(0, Math.abs(removeCount));
|
|
34
|
-
}
|
|
35
|
-
this.pendingRecords.push({
|
|
36
|
-
timestamp: Date.now(),
|
|
37
|
-
...record,
|
|
38
|
-
app: record.app?.length > 0 ? record.app : "UNKNOWN",
|
|
39
|
-
env: record.env?.length > 0 ? record.env : "UNKNOWN",
|
|
40
|
-
url: typeof window === "undefined" ? "local://" : window.location.href,
|
|
41
|
-
});
|
|
42
|
-
this.flush();
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Create the firehose client and return
|
|
46
|
-
*
|
|
47
|
-
* @param {IAWSTemporaryCredentials} credentials
|
|
48
|
-
* @param {boolean} flush
|
|
49
|
-
* @returns {Firehose}
|
|
50
|
-
*/
|
|
51
|
-
getFirehose() {
|
|
52
|
-
const creds = this.credentialManager.getCredentials();
|
|
53
|
-
if (!creds) {
|
|
54
|
-
log.warn("No credentials available for flush");
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
const { region, streamName } = creds;
|
|
58
|
-
if (!region || !streamName) {
|
|
59
|
-
throw new Error("Region or stream name not available");
|
|
60
|
-
}
|
|
61
|
-
const client = new FirehoseClient({
|
|
62
|
-
region: creds.region,
|
|
63
|
-
credentials: pick(creds, "accessKeyId", "secretAccessKey", "sessionToken"),
|
|
64
|
-
});
|
|
65
|
-
return client;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Flush pending records
|
|
69
|
-
*
|
|
70
|
-
* @returns {Promise<void>}
|
|
71
|
-
*/
|
|
72
|
-
async flush() {
|
|
73
|
-
if (!!this.flushDeferred) {
|
|
74
|
-
log.debug("Flush already in progress, skipping");
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
if (!this.pendingRecords.length) {
|
|
78
|
-
log.debug("No pending records to flush");
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
const creds = this.credentialManager.getCredentials();
|
|
82
|
-
if (!creds) {
|
|
83
|
-
log.warn("No credentials available for flush");
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
const { streamName } = creds, client = this.getFirehose();
|
|
87
|
-
if (!client) {
|
|
88
|
-
log.warn("No firehose client available, skipping flush");
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
const deferred = this.flushDeferred = new Deferred();
|
|
92
|
-
try {
|
|
93
|
-
while (this.pendingRecords.length) {
|
|
94
|
-
const chunkSize = Math.min(this.pendingRecords.length, 10), records = this.pendingRecords.splice(0, chunkSize), recordJsons = records.map(record => JSON.stringify(record));
|
|
95
|
-
if (log.isDebugEnabled())
|
|
96
|
-
log.debug("Records", records);
|
|
97
|
-
const textEncoder = new TextEncoder(), batch = recordJsons.map(jsonStr => ({
|
|
98
|
-
Data: textEncoder.encode(jsonStr)
|
|
99
|
-
}));
|
|
100
|
-
log.info(`Pushing ${records.length} records to firehose`);
|
|
101
|
-
const cmd = new PutRecordBatchCommand({
|
|
102
|
-
DeliveryStreamName: streamName,
|
|
103
|
-
Records: batch,
|
|
104
|
-
});
|
|
105
|
-
const resp = await client.send(cmd);
|
|
106
|
-
const failed = resp.FailedPutCount || 0;
|
|
107
|
-
if (failed) {
|
|
108
|
-
const rr = resp.RequestResponses || [];
|
|
109
|
-
for (let i = 0; i < rr.length; i++) {
|
|
110
|
-
if (rr[i].ErrorCode) {
|
|
111
|
-
log.warn(`Record failed: ${rr[i].ErrorCode} ${rr[i].ErrorMessage}`);
|
|
112
|
-
//this.pendingRecords.unshift(records[i])
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
log.info(`PutRecordBatch failed=${failed}; requeued failed records`);
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
log.info(`PutRecordBatch ok count=${records.length}`);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
catch (err) {
|
|
123
|
-
log.error("Failed to push logs", err);
|
|
124
|
-
if (err.code === ExpiredTokenException) {
|
|
125
|
-
this.credentialManager.forceUpdateCredentials();
|
|
126
|
-
}
|
|
127
|
-
deferred.reject(err);
|
|
128
|
-
}
|
|
129
|
-
finally {
|
|
130
|
-
this.flushDeferred = null;
|
|
131
|
-
// if (this.pendingRecords.length)
|
|
132
|
-
// this.flush()
|
|
133
|
-
}
|
|
134
|
-
return deferred.promise;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
export default AWSFirehoseAppender;
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQVdTRmlyZWhvc2VBcHBlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sb2dnaW5nL2FwcGVuZGVycy9hd3MtZmlyZWhvc2UvQVdTRmlyZWhvc2VBcHBlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUF1QixNQUFNLDBCQUEwQixDQUFBO0FBQ3JHLE9BQU8sRUFFTCxxQkFBcUIsR0FDdEIsTUFBTSxxQkFBcUIsQ0FBQTtBQUc1QixPQUFPLDRCQUE0QixNQUFNLG1DQUFtQyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRTNELE9BQU8sRUFBVyxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBSXBELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFBO0FBRWhDLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixFQUFFLENBQUE7QUFFL0IsTUFBTSxPQUFPLG1CQUFtQjtJQVNaO0lBUFYsY0FBYyxHQUFHLEtBQUssRUFBYSxDQUFBO0lBQ25DLGFBQWEsQ0FBZ0I7SUFDN0IsZUFBZSxHQUFHLElBQUksQ0FBQztJQUVmLGlCQUFpQixDQUE4QjtJQUUvRCxZQUNrQixxQkFBNkI7UUFBN0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFRO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDaEYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ3pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtZQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FB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cUIsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtZQUNqRCxDQUFDO1lBQ0QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN0QixDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQTtZQUV6QixrQ0FBa0M7WUFDbEMsaUJBQWlCO1FBQ25CLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUE7SUFDekIsQ0FBQztDQUdGO0FBRUQsZUFBZSxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHR5cGVzY3JpcHQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJy4uLy4uLy4uL2d1YXJkcy9wcmltaXRpdmUuanMnXG5pbXBvcnQgeyBGaXJlaG9zZUNsaWVudCwgUHV0UmVjb3JkQmF0Y2hDb21tYW5kLCBQdXRSZWNvcmRCYXRjaElucHV0IH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1maXJlaG9zZVwiXG5pbXBvcnQge1xuICBDcmVkZW50aWFscyBhcyBJQVdTVGVtcG9yYXJ5Q3JlZGVudGlhbHMsXG4gIEV4cGlyZWRUb2tlbkV4Y2VwdGlvbixcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zdHNcIlxuaW1wb3J0IHsgTGV2ZWwgfSBmcm9tIFwiLi4vLi4vTGV2ZWwuanNcIlxuXG5pbXBvcnQgQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlciBmcm9tIFwiLi9BV1NGaXJlaG9zZUNyZWRlbnRpYWxNYW5hZ2VyLmpzXCJcbmltcG9ydCB7IGdldEludGVybmFsTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0ludGVybmFsTG9nZ2VyLmpzXCJcbmltcG9ydCB7IGdldFZhbHVlLCBndWFyZCB9IGZyb20gXCIuLi8uLi8uLi9ndWFyZHMvaW5kZXguanNcIlxuaW1wb3J0IHsgaXNFbXB0eSwgcGljayB9IGZyb20gXCJsb2Rhc2hcIlxuaW1wb3J0IHsgRGVmZXJyZWQgfSBmcm9tIFwiLi4vLi4vLi4vaGVscGVycy9pbmRleC5qc1wiXG5pbXBvcnQgeyBMb2dSZWNvcmQgfSBmcm9tIFwiLi4vLi4vTG9nUmVjb3JkLmpzXCJcbmltcG9ydCB7IEFwcGVuZGVyIH0gZnJvbSBcIi4uLy4uL0FwcGVuZGVyLmpzXCJcblxuY29uc3QgTG9nUXVldWVNYXhSZWNvcmRzID0gMTAwMDBcblxuY29uc3QgbG9nID0gZ2V0SW50ZXJuYWxMb2dnZXIoKVxuXG5leHBvcnQgY2xhc3MgQVdTRmlyZWhvc2VBcHBlbmRlcjxSZWNvcmQgZXh0ZW5kcyBMb2dSZWNvcmQgPSBMb2dSZWNvcmQ+XG4gIGltcGxlbWVudHMgQXBwZW5kZXI8UmVjb3JkPiB7XG4gIHByaXZhdGUgcGVuZGluZ1JlY29yZHMgPSBBcnJheTxMb2dSZWNvcmQ+KClcbiAgcHJpdmF0ZSBmbHVzaERlZmVycmVkOiBEZWZlcnJlZDx2b2lkPlxuICBwcml2YXRlIGZsdXNoSW50ZXJ2YWxNcyA9IDEwMDA7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxNYW5hZ2VyOiBBV1NGaXJlaG9zZUNyZWRlbnRpYWxNYW5hZ2VyXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxFbmRwb2ludFVybDogc3RyaW5nKSB7XG4gICAgdGhpcy5jcmVkZW50aWFsTWFuYWdlciA9IG5ldyBBV1NGaXJlaG9zZUNyZWRlbnRpYWxNYW5hZ2VyKGNyZWRlbnRpYWxFbmRwb2ludFVybClcbiAgICB0aGlzLmNyZWRlbnRpYWxNYW5hZ2VyLm9uKFwicmVjZWl2ZWRcIiwgKCkgPT4ge1xuICAgICAgbG9nLmluZm8oXCJDcmVkZW50aWFscyByZWNlaXZlZCwgaW5pdGlhbGl6aW5nIGZpcmVob3NlIGNsaWVudFwiKVxuICAgICAgaWYgKCF0aGlzLnBlbmRpbmdSZWNvcmRzLmxlbmd0aCB8fCAhIXRoaXMuZmx1c2hEZWZlcnJlZCkge1xuICAgICAgICBsb2cuZGVidWcoXCJOb3RoaW5nIHRvIGZsdXNoIHVwb24gY3JlZGVudGlhbCByZWNlaXB0IE9SIGZsdXNoIGFscmVhZHkgaW4gcHJvZ3Jlc3NcIilcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICB0aGlzLmZsdXNoKClcbiAgICAgICAgLmNhdGNoKChlOiBFcnJvcikgPT4ge1xuICAgICAgICAgIGxvZy5lcnJvcihgRXJyb3IgZmx1c2hpbmcgbG9ncyBhZnRlciBjcmVkZW50aWFsIHJlY2VpcHQ6ICR7ZS5tZXNzYWdlfWAsIGUpXG4gICAgICAgIH0pXG4gICAgfSlcbiAgfVxuICBhcHBlbmQocmVjb3JkOiBSZWNvcmQpOiB2b2lkIHtcbiAgICBjb25zdFxuICAgICAgcGVuZGluZ0NvdW50ID0gdGhpcy5wZW5kaW5nUmVjb3Jkcy5sZW5ndGggKyAxLFxuICAgICAgcmVtb3ZlQ291bnQgPSBMb2dRdWV1ZU1heFJlY29yZHMgLSBwZW5kaW5nQ291bnRcblxuICAgIGlmIChyZW1vdmVDb3VudCA8IDApIHtcbiAgICAgIHRoaXMucGVuZGluZ1JlY29yZHMuc3BsaWNlKDAsIE1hdGguYWJzKHJlbW92ZUNvdW50KSlcbiAgICB9XG5cbiAgICB0aGlzLnBlbmRpbmdSZWNvcmRzLnB1c2goe1xuICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgLi4ucmVjb3JkLFxuICAgICAgYXBwOiByZWNvcmQuYXBwPy5sZW5ndGggPiAwID8gcmVjb3JkLmFwcCA6IFwiVU5LTk9XTlwiLFxuICAgICAgZW52OiByZWNvcmQuZW52Py5sZW5ndGggPiAwID8gcmVjb3JkLmVudiA6IFwiVU5LTk9XTlwiLFxuICAgICAgdXJsOiB0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiID8gXCJsb2NhbDovL1wiIDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgfSlcblxuICAgIHRoaXMuZmx1c2goKVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgZmlyZWhvc2UgY2xpZW50IGFuZCByZXR1cm5cbiAgICpcbiAgICogQHBhcmFtIHtJQVdTVGVtcG9yYXJ5Q3JlZGVudGlhbHN9IGNyZWRlbnRpYWxzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZmx1c2hcbiAgICogQHJldHVybnMge0ZpcmVob3NlfVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRGaXJlaG9zZSgpOiBGaXJlaG9zZUNsaWVudCB7XG4gICAgY29uc3QgY3JlZHMgPSB0aGlzLmNyZWRlbnRpYWxNYW5hZ2VyLmdldENyZWRlbnRpYWxzKClcblxuICAgIGlmICghY3JlZHMpIHtcbiAgICAgIGxvZy53YXJuKFwiTm8gY3JlZGVudGlhbHMgYXZhaWxhYmxlIGZvciBmbHVzaFwiKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCB7IHJlZ2lvbiwgc3RyZWFtTmFtZSB9ID0gY3JlZHNcblxuICAgIGlmICghcmVnaW9uIHx8ICFzdHJlYW1OYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gb3Igc3RyZWFtIG5hbWUgbm90IGF2YWlsYWJsZVwiKVxuICAgIH1cblxuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBGaXJlaG9zZUNsaWVudCh7XG4gICAgICByZWdpb246IGNyZWRzLnJlZ2lvbixcbiAgICAgIGNyZWRlbnRpYWxzOiBwaWNrKGNyZWRzLCBcImFjY2Vzc0tleUlkXCIsIFwic2VjcmV0QWNjZXNzS2V5XCIsIFwic2Vzc2lvblRva2VuXCIpLFxuICAgIH0pXG5cbiAgICByZXR1cm4gY2xpZW50XG4gIH1cblxuICAvKipcbiAgICogRmx1c2ggcGVuZGluZyByZWNvcmRzXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBmbHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoISF0aGlzLmZsdXNoRGVmZXJyZWQpIHtcbiAgICAgIGxvZy5kZWJ1ZyhcIkZsdXNoIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHNraXBwaW5nXCIpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucGVuZGluZ1JlY29yZHMubGVuZ3RoKSB7XG4gICAgICBsb2cuZGVidWcoXCJObyBwZW5kaW5nIHJlY29yZHMgdG8gZmx1c2hcIilcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBjcmVkcyA9IHRoaXMuY3JlZGVudGlhbE1hbmFnZXIuZ2V0Q3JlZGVudGlhbHMoKVxuICAgIGlmICghY3JlZHMpIHtcbiAgICAgIGxvZy53YXJuKFwiTm8gY3JlZGVudGlhbHMgYXZhaWxhYmxlIGZvciBmbHVzaFwiKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHsgc3RyZWFtTmFtZSB9ID0gY3JlZHMsXG4gICAgICBjbGllbnQgPSB0aGlzLmdldEZpcmVob3NlKClcbiAgICBpZiAoIWNsaWVudCkge1xuICAgICAgbG9nLndhcm4oXCJObyBmaXJlaG9zZSBjbGllbnQgYXZhaWxhYmxlLCBza2lwcGluZyBmbHVzaFwiKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgZGVmZXJyZWQgPSB0aGlzLmZsdXNoRGVmZXJyZWQgPSBuZXcgRGVmZXJyZWQ8dm9pZD4oKVxuICAgIHRyeSB7XG4gICAgICB3aGlsZSAodGhpcy5wZW5kaW5nUmVjb3Jkcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3RcbiAgICAgICAgICBjaHVua1NpemUgPSBNYXRoLm1pbih0aGlzLnBlbmRpbmdSZWNvcmRzLmxlbmd0aCwgMTApLFxuICAgICAgICAgIHJlY29yZHMgPSB0aGlzLnBlbmRpbmdSZWNvcmRzLnNwbGljZSgwLCBjaHVua1NpemUpLFxuICAgICAgICAgIHJlY29yZEpzb25zID0gcmVjb3Jkcy5tYXAocmVjb3JkID0+IEpTT04uc3RyaW5naWZ5KHJlY29yZCkpXG5cbiAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKVxuICAgICAgICAgIGxvZy5kZWJ1ZyhcIlJlY29yZHNcIiwgcmVjb3JkcylcblxuICAgICAgICBjb25zdFxuICAgICAgICAgIHRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCksXG4gICAgICAgICAgYmF0Y2g6IFB1dFJlY29yZEJhdGNoSW5wdXRbXCJSZWNvcmRzXCJdID0gcmVjb3JkSnNvbnMubWFwKGpzb25TdHIgPT4gKHtcbiAgICAgICAgICAgIERhdGE6IHRleHRFbmNvZGVyLmVuY29kZShqc29uU3RyKVxuICAgICAgICAgIH0pKVxuXG4gICAgICAgIGxvZy5pbmZvKGBQdXNoaW5nICR7cmVjb3Jkcy5sZW5ndGh9IHJlY29yZHMgdG8gZmlyZWhvc2VgKVxuXG4gICAgICAgIGNvbnN0IGNtZCA9IG5ldyBQdXRSZWNvcmRCYXRjaENvbW1hbmQoe1xuICAgICAgICAgIERlbGl2ZXJ5U3RyZWFtTmFtZTogc3RyZWFtTmFtZSxcbiAgICAgICAgICBSZWNvcmRzOiBiYXRjaCxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCByZXNwID0gYXdhaXQgY2xpZW50LnNlbmQoY21kKVxuICAgICAgICBjb25zdCBmYWlsZWQgPSByZXNwLkZhaWxlZFB1dENvdW50IHx8IDBcbiAgICAgICAgaWYgKGZhaWxlZCkge1xuICAgICAgICAgIGNvbnN0IHJyID0gcmVzcC5SZXF1ZXN0UmVzcG9uc2VzIHx8IFtdXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHJyW2ldLkVycm9yQ29kZSkge1xuICAgICAgICAgICAgICBsb2cud2FybihgUmVjb3JkIGZhaWxlZDogJHtycltpXS5FcnJvckNvZGV9ICR7cnJbaV0uRXJyb3JNZXNzYWdlfWApXG4gICAgICAgICAgICAgIC8vdGhpcy5wZW5kaW5nUmVjb3Jkcy51bnNoaWZ0KHJlY29yZHNbaV0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5pbmZvKGBQdXRSZWNvcmRCYXRjaCBmYWlsZWQ9JHtmYWlsZWR9OyByZXF1ZXVlZCBmYWlsZWQgcmVjb3Jkc2ApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nLmluZm8oYFB1dFJlY29yZEJhdGNoIG9rIGNvdW50PSR7cmVjb3Jkcy5sZW5ndGh9YClcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cuZXJyb3IoXCJGYWlsZWQgdG8gcHVzaCBsb2dzXCIsIGVycilcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gRXhwaXJlZFRva2VuRXhjZXB0aW9uKSB7XG4gICAgICAgIHRoaXMuY3JlZGVudGlhbE1hbmFnZXIuZm9yY2VVcGRhdGVDcmVkZW50aWFscygpXG4gICAgICB9XG4gICAgICBkZWZlcnJlZC5yZWplY3QoZXJyKVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmZsdXNoRGVmZXJyZWQgPSBudWxsXG5cbiAgICAgIC8vIGlmICh0aGlzLnBlbmRpbmdSZWNvcmRzLmxlbmd0aClcbiAgICAgIC8vICAgdGhpcy5mbHVzaCgpXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmVycmVkLnByb21pc2VcbiAgfVxuXG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgQVdTRmlyZWhvc2VBcHBlbmRlclxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AWSFirehoseCredentialManager.d.ts","sourceRoot":"","sources":["../../../../src/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,eAAe,CAAA;AAMzC,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;IACzC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,qBAAa,4BAA6B,SAAQ,aAAa,CAAC,oCAAoC,CAAC;aAMjF,qBAAqB,EAAE,MAAM;IAJ/C,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,YAAY,CAAkC;gBAGpC,qBAAqB,EAAE,MAAM;IAK/C,sBAAsB,IAAI,IAAI;IAS9B,cAAc,IAAI,cAAc;IAmBhC,cAAc,IAAI,OAAO;YAIX,IAAI;IAyBlB,eAAe,CAAC,aAAa,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IA4B7D,aAAa,IAAI,MAAM;IAIvB,SAAS,IAAI,MAAM;IAInB,OAAO,IAAI,IAAI;CAMhB;AAGD,eAAe,4BAA4B,CAAA"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { Deferred } from "../../../helpers/index.js";
|
|
2
|
-
import { getInternalLogger } from "../../InternalLogger.js";
|
|
3
|
-
import EventEmitter3 from "eventemitter3";
|
|
4
|
-
const CRED_BUFFER_PADDING_MS = 3 * 60 * 1000; // 3 minutes
|
|
5
|
-
const log = getInternalLogger();
|
|
6
|
-
export class AWSFirehoseCredentialManager extends EventEmitter3 {
|
|
7
|
-
credentialEndpointUrl;
|
|
8
|
-
refreshTimer = null;
|
|
9
|
-
loadDeferred = null;
|
|
10
|
-
constructor(credentialEndpointUrl) {
|
|
11
|
-
super();
|
|
12
|
-
this.credentialEndpointUrl = credentialEndpointUrl;
|
|
13
|
-
}
|
|
14
|
-
forceUpdateCredentials() {
|
|
15
|
-
if (this.loadDeferred && !this.loadDeferred.isSettled()) {
|
|
16
|
-
this.loadDeferred.reject(new Error("force update"));
|
|
17
|
-
}
|
|
18
|
-
this.loadDeferred = null;
|
|
19
|
-
this.scheduleRefresh(1);
|
|
20
|
-
}
|
|
21
|
-
getCredentials() {
|
|
22
|
-
if (this.loadDeferred && this.loadDeferred.isFulfilled()) {
|
|
23
|
-
const creds = this.loadDeferred.getResult(), expMs = Date.parse(creds.expiration);
|
|
24
|
-
if (expMs <= Date.now()) {
|
|
25
|
-
log.info("Credentials expired");
|
|
26
|
-
this.loadDeferred = null;
|
|
27
|
-
this.scheduleRefresh(1);
|
|
28
|
-
this.emit("expired");
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
return creds;
|
|
32
|
-
}
|
|
33
|
-
this.scheduleRefresh(1);
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
hasCredentials() {
|
|
37
|
-
return this.getCredentials() != null;
|
|
38
|
-
}
|
|
39
|
-
async load() {
|
|
40
|
-
if (this.loadDeferred && !this.loadDeferred.isRejected())
|
|
41
|
-
return this.loadDeferred.promise;
|
|
42
|
-
const deferred = this.loadDeferred = new Deferred();
|
|
43
|
-
try {
|
|
44
|
-
const r = await fetch(this.credentialEndpointUrl, {
|
|
45
|
-
method: "GET",
|
|
46
|
-
credentials: "include",
|
|
47
|
-
});
|
|
48
|
-
if (!r.ok)
|
|
49
|
-
throw new Error(`creds http ${r.status}`);
|
|
50
|
-
const creds = await r.json();
|
|
51
|
-
this.scheduleRefresh(creds);
|
|
52
|
-
log.info(`Got creds, expire=${creds.expiration}, stream=${creds.streamName}, region=${creds.region}`);
|
|
53
|
-
deferred.resolve(creds);
|
|
54
|
-
this.emit("received", creds);
|
|
55
|
-
return deferred.promise;
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
deferred.reject(e);
|
|
59
|
-
this.loadDeferred = null;
|
|
60
|
-
throw e;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
scheduleRefresh(credsOrMillis) {
|
|
64
|
-
if (this.refreshTimer) {
|
|
65
|
-
clearTimeout(this.refreshTimer);
|
|
66
|
-
this.refreshTimer = null;
|
|
67
|
-
}
|
|
68
|
-
if (!credsOrMillis)
|
|
69
|
-
return;
|
|
70
|
-
let refreshInMs;
|
|
71
|
-
if (typeof credsOrMillis === "number") {
|
|
72
|
-
refreshInMs = credsOrMillis;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
const creds = credsOrMillis, expMs = Date.parse(creds.expiration);
|
|
76
|
-
refreshInMs = expMs - Date.now() - CRED_BUFFER_PADDING_MS;
|
|
77
|
-
}
|
|
78
|
-
refreshInMs = Math.max(100, refreshInMs);
|
|
79
|
-
this.refreshTimer = setTimeout(() => {
|
|
80
|
-
this.loadDeferred = null;
|
|
81
|
-
this.load().catch((e) => log.error(`refresh failed: ${e.message}`, e));
|
|
82
|
-
}, refreshInMs);
|
|
83
|
-
}
|
|
84
|
-
getStreamName() {
|
|
85
|
-
return this.getCredentials()?.streamName;
|
|
86
|
-
}
|
|
87
|
-
getRegion() {
|
|
88
|
-
return this.getCredentials()?.region;
|
|
89
|
-
}
|
|
90
|
-
destroy() {
|
|
91
|
-
this.scheduleRefresh(null);
|
|
92
|
-
if (!this.loadDeferred.isSettled())
|
|
93
|
-
this.loadDeferred.reject(new Error("destroyed"));
|
|
94
|
-
this.loadDeferred = null;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
export default AWSFirehoseCredentialManager;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sb2dnaW5nL2FwcGVuZGVycy9hd3MtZmlyZWhvc2UvQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxhQUFhLE1BQU0sZUFBZSxDQUFBO0FBRXpDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUEsQ0FBQyxZQUFZO0FBRXpELE1BQU0sR0FBRyxHQUFHLGlCQUFpQixFQUFFLENBQUE7QUFnQi9CLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxhQUFtRDtJQU1qRjtJQUpWLFlBQVksR0FBa0MsSUFBSSxDQUFDO0lBQ25ELFlBQVksR0FBNkIsSUFBSSxDQUFDO0lBRXRELFlBQ2tCLHFCQUE2QjtRQUU3QyxLQUFLLEVBQUUsQ0FBQTtRQUZTLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUTtJQUcvQyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FB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QUV0QyxXQUFXLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQTtRQUUzRCxDQUFDO1FBRUQsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBRXhDLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtZQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMvRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxVQUFVLENBQUE7SUFDMUMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLENBQUE7SUFDdEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO0lBQzFCLENBQUM7Q0FDRjtBQUdELGVBQWUsNEJBQTRCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXJlaG9zZUNsaWVudCwgUHV0UmVjb3JkQmF0Y2hDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1maXJlaG9zZVwiXG5pbXBvcnQgeyBEZWZlcnJlZCB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzL2luZGV4LmpzXCJcbmltcG9ydCB7IGdldEludGVybmFsTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0ludGVybmFsTG9nZ2VyLmpzXCJcbmltcG9ydCBFdmVudEVtaXR0ZXIzIGZyb20gXCJldmVudGVtaXR0ZXIzXCJcblxuY29uc3QgQ1JFRF9CVUZGRVJfUEFERElOR19NUyA9IDMgKiA2MCAqIDEwMDAgLy8gMyBtaW51dGVzXG5cbmNvbnN0IGxvZyA9IGdldEludGVybmFsTG9nZ2VyKClcblxuZXhwb3J0IGludGVyZmFjZSBBV1NDcmVkZW50aWFscyB7XG4gIGFjY2Vzc0tleUlkOiBzdHJpbmdcbiAgc2VjcmV0QWNjZXNzS2V5OiBzdHJpbmdcbiAgc2Vzc2lvblRva2VuOiBzdHJpbmdcbiAgc3RyZWFtTmFtZTogc3RyaW5nXG4gIHJlZ2lvbjogc3RyaW5nXG4gIGV4cGlyYXRpb246IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFXU0ZpcmVob3NlQ3JlZGVudGlhbE1hbmFnZXJFdmVudE1hcCB7XG4gIHJlY2VpdmVkOiAoY3JlZHM6IEFXU0NyZWRlbnRpYWxzKSA9PiB2b2lkXG4gIGV4cGlyZWQ6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNsYXNzIEFXU0ZpcmVob3NlQ3JlZGVudGlhbE1hbmFnZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIzPEFXU0ZpcmVob3NlQ3JlZGVudGlhbE1hbmFnZXJFdmVudE1hcD4ge1xuXG4gIHByaXZhdGUgcmVmcmVzaFRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiA9IG51bGw7XG4gIHByaXZhdGUgbG9hZERlZmVycmVkOiBEZWZlcnJlZDxBV1NDcmVkZW50aWFscz4gPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsRW5kcG9pbnRVcmw6IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoKVxuICB9XG5cbiAgZm9yY2VVcGRhdGVDcmVkZW50aWFscygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkRGVmZXJyZWQgJiYgIXRoaXMubG9hZERlZmVycmVkLmlzU2V0dGxlZCgpKSB7XG4gICAgICB0aGlzLmxvYWREZWZlcnJlZC5yZWplY3QobmV3IEVycm9yKFwiZm9yY2UgdXBkYXRlXCIpKVxuICAgIH1cblxuICAgIHRoaXMubG9hZERlZmVycmVkID0gbnVsbFxuICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKDEpXG4gIH1cblxuICBnZXRDcmVkZW50aWFscygpOiBBV1NDcmVkZW50aWFscyB7XG4gICAgaWYgKHRoaXMubG9hZERlZmVycmVkICYmIHRoaXMubG9hZERlZmVycmVkLmlzRnVsZmlsbGVkKCkpIHtcbiAgICAgIGNvbnN0IGNyZWRzID0gdGhpcy5sb2FkRGVmZXJyZWQuZ2V0UmVzdWx0KCksXG4gICAgICAgIGV4cE1zID0gRGF0ZS5wYXJzZShjcmVkcy5leHBpcmF0aW9uKVxuXG4gICAgICBpZiAoZXhwTXMgPD0gRGF0ZS5ub3coKSkge1xuICAgICAgICBsb2cuaW5mbyhcIkNyZWRlbnRpYWxzIGV4cGlyZWRcIilcbiAgICAgICAgdGhpcy5sb2FkRGVmZXJyZWQgPSBudWxsXG4gICAgICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKDEpXG4gICAgICAgIHRoaXMuZW1pdChcImV4cGlyZWRcIilcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIHJldHVybiBjcmVkc1xuICAgIH1cblxuICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKDEpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGhhc0NyZWRlbnRpYWxzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldENyZWRlbnRpYWxzKCkgIT0gbnVsbFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkKCk6IFByb21pc2U8QVdTQ3JlZGVudGlhbHM+IHtcbiAgICBpZiAodGhpcy5sb2FkRGVmZXJyZWQgJiYgIXRoaXMubG9hZERlZmVycmVkLmlzUmVqZWN0ZWQoKSlcbiAgICAgIHJldHVybiB0aGlzLmxvYWREZWZlcnJlZC5wcm9taXNlXG5cbiAgICBjb25zdCBkZWZlcnJlZCA9IHRoaXMubG9hZERlZmVycmVkID0gbmV3IERlZmVycmVkPEFXU0NyZWRlbnRpYWxzPigpXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHIgPSBhd2FpdCBmZXRjaCh0aGlzLmNyZWRlbnRpYWxFbmRwb2ludFVybCwge1xuICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICAgIGNyZWRlbnRpYWxzOiBcImluY2x1ZGVcIixcbiAgICAgIH0pXG4gICAgICBpZiAoIXIub2spIHRocm93IG5ldyBFcnJvcihgY3JlZHMgaHR0cCAke3Iuc3RhdHVzfWApXG4gICAgICBjb25zdCBjcmVkczogQVdTQ3JlZGVudGlhbHMgPSBhd2FpdCByLmpzb24oKVxuXG5cbiAgICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKGNyZWRzKVxuICAgICAgbG9nLmluZm8oYEdvdCBjcmVkcywgZXhwaXJlPSR7Y3JlZHMuZXhwaXJhdGlvbn0sIHN0cmVhbT0ke2NyZWRzLnN0cmVhbU5hbWV9LCByZWdpb249JHtjcmVkcy5yZWdpb259YClcbiAgICAgIGRlZmVycmVkLnJlc29sdmUoY3JlZHMpXG4gICAgICB0aGlzLmVtaXQoXCJyZWNlaXZlZFwiLCBjcmVkcylcbiAgICAgIHJldHVybiBkZWZlcnJlZC5wcm9taXNlXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZGVmZXJyZWQucmVqZWN0KGUpXG4gICAgICB0aGlzLmxvYWREZWZlcnJlZCA9IG51bGxcbiAgICAgIHRocm93IGVcbiAgICB9XG4gIH1cbiAgc2NoZWR1bGVSZWZyZXNoKGNyZWRzT3JNaWxsaXM6IEFXU0NyZWRlbnRpYWxzIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVmcmVzaFRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoVGltZXIpXG4gICAgICB0aGlzLnJlZnJlc2hUaW1lciA9IG51bGxcbiAgICB9XG4gICAgaWYgKCFjcmVkc09yTWlsbGlzKVxuICAgICAgcmV0dXJuXG5cbiAgICBsZXQgcmVmcmVzaEluTXM6IG51bWJlclxuICAgIGlmICh0eXBlb2YgY3JlZHNPck1pbGxpcyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgcmVmcmVzaEluTXMgPSBjcmVkc09yTWlsbGlzXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0XG4gICAgICAgIGNyZWRzID0gY3JlZHNPck1pbGxpcyxcbiAgICAgICAgZXhwTXMgPSBEYXRlLnBhcnNlKGNyZWRzLmV4cGlyYXRpb24pXG5cbiAgICAgIHJlZnJlc2hJbk1zID0gZXhwTXMgLSBEYXRlLm5vdygpIC0gQ1JFRF9CVUZGRVJfUEFERElOR19NU1xuXG4gICAgfVxuXG4gICAgcmVmcmVzaEluTXMgPSBNYXRoLm1heCgxMDAsIHJlZnJlc2hJbk1zKVxuXG4gICAgdGhpcy5yZWZyZXNoVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubG9hZERlZmVycmVkID0gbnVsbFxuICAgICAgdGhpcy5sb2FkKCkuY2F0Y2goKGU6IEVycm9yKSA9PiBsb2cuZXJyb3IoYHJlZnJlc2ggZmFpbGVkOiAke2UubWVzc2FnZX1gLCBlKSlcbiAgICB9LCByZWZyZXNoSW5NcylcbiAgfVxuXG4gIGdldFN0cmVhbU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDcmVkZW50aWFscygpPy5zdHJlYW1OYW1lXG4gIH1cblxuICBnZXRSZWdpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDcmVkZW50aWFscygpPy5yZWdpb25cbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zY2hlZHVsZVJlZnJlc2gobnVsbClcbiAgICBpZiAoIXRoaXMubG9hZERlZmVycmVkLmlzU2V0dGxlZCgpKVxuICAgICAgdGhpcy5sb2FkRGVmZXJyZWQucmVqZWN0KG5ldyBFcnJvcihcImRlc3Ryb3llZFwiKSlcbiAgICB0aGlzLmxvYWREZWZlcnJlZCA9IG51bGxcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IEFXU0ZpcmVob3NlQ3JlZGVudGlhbE1hbmFnZXJcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/logging/appenders/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AACrD,cAAc,sBAAsB,CAAA;AACpC,cAAc,kCAAkC,CAAA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from "./aws-firehose/AWSFirehoseAppender.js";
|
|
2
|
-
export * from "./ConsoleAppender.js";
|
|
3
|
-
export * from "./push/PushLogRecordsAppender.js";
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9nZ2luZy9hcHBlbmRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsa0NBQWtDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hd3MtZmlyZWhvc2UvQVdTRmlyZWhvc2VBcHBlbmRlci5qc1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Db25zb2xlQXBwZW5kZXIuanNcIlxuZXhwb3J0ICogZnJvbSBcIi4vcHVzaC9QdXNoTG9nUmVjb3Jkc0FwcGVuZGVyLmpzXCJcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PushLogRecordsAppender.d.ts","sourceRoot":"","sources":["../../../../src/logging/appenders/push/PushLogRecordsAppender.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAa5C,UAAU,uCAAuC;IAC/C,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,aAAa,CAAC,uCAAuC,CAAC;aAK7E,WAAW,EAAE,MAAM;IAJ/C,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,oBAAoB,CAAsB;gBAEtB,WAAW,EAAE,MAAM;IAI/C;;OAEG;IACH,cAAc,IAAI,OAAO;IAczB;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAoB3C;;OAEG;IACH,YAAY,IAAI,IAAI;IAkBpB;;OAEG;YACW,gBAAgB;IAoC9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,IAAI,IAAI;CAahB;AAED;;;GAGG;AACH,qBAAa,sBAAsB,CAAC,MAAM,SAAS,SAAS,GAAG,SAAS,CAAE,YAAW,QAAQ,CAAC,MAAM,CAAC;aAOvE,WAAW,EAAE,MAAM;IAN/C,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,UAAU,CAA6C;IAE/D,SAAgB,iBAAiB,EAAE,+BAA+B,CAAA;gBAEtC,WAAW,EAAE,MAAM;IAa/C;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA6B5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;YACW,KAAK;IAyDnB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC;;OAEG;IACH,OAAO,IAAI,IAAI;CAehB;AAED,eAAe,sBAAsB,CAAA"}
|