@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
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.FileAppender = void 0;
|
|
40
|
+
const lodash_1 = require("lodash");
|
|
41
|
+
const Path = __importStar(require("path"));
|
|
42
|
+
const Fs = __importStar(require("fs"));
|
|
43
|
+
const prelude_ts_1 = require("@3fv/prelude-ts");
|
|
44
|
+
const buffer_1 = require("buffer");
|
|
45
|
+
const debug_1 = __importDefault(require("debug"));
|
|
46
|
+
const bluebird_1 = __importDefault(require("bluebird"));
|
|
47
|
+
const FsAsync = Fs.promises;
|
|
48
|
+
const debug = (0, debug_1.default)("3fv:logger:FileAppender");
|
|
49
|
+
const osTempDir = process.env.TMP ?? process.env.TEMP ?? "/tmp";
|
|
50
|
+
const tempDir = Fs.mkdtempSync(Path.join(osTempDir, "logger-proxy-example")); //
|
|
51
|
+
const getDefaultConfig = () => ({
|
|
52
|
+
filename: Path.join(tempDir, "app.log"),
|
|
53
|
+
prettyPrint: process.env.NODE_ENV !== "production",
|
|
54
|
+
maxSize: -1,
|
|
55
|
+
maxFiles: 5,
|
|
56
|
+
enableRolling: false,
|
|
57
|
+
sync: false
|
|
58
|
+
});
|
|
59
|
+
function applyConfigDefaults(options) {
|
|
60
|
+
return (0, lodash_1.defaults)(options, getDefaultConfig());
|
|
61
|
+
}
|
|
62
|
+
class FileAppender {
|
|
63
|
+
config;
|
|
64
|
+
state = {
|
|
65
|
+
archivedFilenames: [],
|
|
66
|
+
filename: undefined,
|
|
67
|
+
file: undefined,
|
|
68
|
+
ready: false,
|
|
69
|
+
currentSize: 0,
|
|
70
|
+
flushing: false,
|
|
71
|
+
queue: []
|
|
72
|
+
};
|
|
73
|
+
get enableRolling() {
|
|
74
|
+
return this.config.enableRolling;
|
|
75
|
+
}
|
|
76
|
+
isReady() {
|
|
77
|
+
return this.state.ready;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Initialize and setup the appender
|
|
81
|
+
*
|
|
82
|
+
* @returns {FileAppender<Record>}
|
|
83
|
+
*/
|
|
84
|
+
setup() {
|
|
85
|
+
const { state } = this;
|
|
86
|
+
if (!!state.ready) {
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
const { filename } = this;
|
|
91
|
+
const file = Fs.openSync(filename, "a");
|
|
92
|
+
(0, lodash_1.assign)(state, {
|
|
93
|
+
filename,
|
|
94
|
+
file,
|
|
95
|
+
ready: true
|
|
96
|
+
});
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
(0, lodash_1.assign)(state, {
|
|
101
|
+
error: err,
|
|
102
|
+
file: undefined,
|
|
103
|
+
ready: false
|
|
104
|
+
});
|
|
105
|
+
throw err;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Only exposed for the sake of tests & examples
|
|
110
|
+
* DO NOT USE
|
|
111
|
+
*
|
|
112
|
+
* This should all be async, but i was in a rush :(
|
|
113
|
+
*
|
|
114
|
+
* @returns
|
|
115
|
+
*/
|
|
116
|
+
rollFile() {
|
|
117
|
+
const { state, config } = this;
|
|
118
|
+
let { file, filename, archivedFilenames } = state;
|
|
119
|
+
if (!this.isReady() || !file) {
|
|
120
|
+
debug(`Can not roll file before ready`);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (!this.enableRolling) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const fileCount = archivedFilenames.length + 1;
|
|
127
|
+
if (config.maxFiles < 1 || fileCount < config.maxFiles) {
|
|
128
|
+
archivedFilenames.push(filename + "." + (0, lodash_1.padStart)(fileCount.toString(10), 4, "0"));
|
|
129
|
+
}
|
|
130
|
+
Fs.fdatasyncSync(file);
|
|
131
|
+
Fs.closeSync(file);
|
|
132
|
+
file = state.file = undefined;
|
|
133
|
+
const filenames = [filename, ...archivedFilenames];
|
|
134
|
+
let dest = filenames.pop();
|
|
135
|
+
while (filenames.length) {
|
|
136
|
+
let src = filenames.pop();
|
|
137
|
+
if (!Fs.existsSync(src)) {
|
|
138
|
+
debug(`src does not exist, skipping ${src}`);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
debug(`Moving src (${src}) to dest (${dest})`);
|
|
142
|
+
if (Fs.existsSync(dest)) {
|
|
143
|
+
Fs.unlinkSync(dest);
|
|
144
|
+
}
|
|
145
|
+
Fs.renameSync(src, dest);
|
|
146
|
+
// if (src === filename) {
|
|
147
|
+
// Fs.copyFileSync(src, dest)
|
|
148
|
+
// Fs.truncateSync(src, 0)
|
|
149
|
+
// } else {
|
|
150
|
+
// Fs.renameSync(src, dest)
|
|
151
|
+
// }
|
|
152
|
+
}
|
|
153
|
+
dest = src;
|
|
154
|
+
}
|
|
155
|
+
(0, lodash_1.assign)(state, {
|
|
156
|
+
currentSize: 0,
|
|
157
|
+
file: Fs.openSync(filename, "a")
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Close the handler
|
|
162
|
+
*
|
|
163
|
+
* @returns {Promise<void>}
|
|
164
|
+
*/
|
|
165
|
+
close() {
|
|
166
|
+
return this.flush()
|
|
167
|
+
.onComplete(() => prelude_ts_1.Option.of(this.state.file).map(Fs.closeSync))
|
|
168
|
+
.toPromise();
|
|
169
|
+
}
|
|
170
|
+
get queue() {
|
|
171
|
+
return this.state.queue;
|
|
172
|
+
}
|
|
173
|
+
get file() {
|
|
174
|
+
return this.state.file;
|
|
175
|
+
}
|
|
176
|
+
get flushing() {
|
|
177
|
+
return this.state.flushing;
|
|
178
|
+
}
|
|
179
|
+
get filename() {
|
|
180
|
+
return (this.state.filename = this.state.filename ?? this.config.filename);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Appends the log queue records to the file
|
|
184
|
+
*/
|
|
185
|
+
flush() {
|
|
186
|
+
const { state } = this;
|
|
187
|
+
return prelude_ts_1.Future.do(async () => {
|
|
188
|
+
state.flushing = true;
|
|
189
|
+
try {
|
|
190
|
+
const { file } = this;
|
|
191
|
+
if (!file) {
|
|
192
|
+
throw Error(`${this.filename} was not opened properly`);
|
|
193
|
+
}
|
|
194
|
+
while (this.queue.length) {
|
|
195
|
+
const buf = this.queue.shift();
|
|
196
|
+
await bluebird_1.default.fromCallback(cb => Fs.appendFile(file, buf, "utf-8", cb));
|
|
197
|
+
state.currentSize += buf.byteLength;
|
|
198
|
+
}
|
|
199
|
+
const { maxSize } = this.config;
|
|
200
|
+
if (maxSize > 0 && state.currentSize >= maxSize) {
|
|
201
|
+
this.rollFile();
|
|
202
|
+
}
|
|
203
|
+
//await Bluebird.fromCallback((cb) => Fs.fdatasync(this.file, cb))
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
console.error(`Failed to append file ${this.filename}`, err);
|
|
207
|
+
}
|
|
208
|
+
finally {
|
|
209
|
+
this.state.flushing = false;
|
|
210
|
+
if (this.queue.length) {
|
|
211
|
+
queueMicrotask(() => this.flush());
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Handle log records, transform, push to ES
|
|
218
|
+
*
|
|
219
|
+
* @param record
|
|
220
|
+
*/
|
|
221
|
+
append(record) {
|
|
222
|
+
try {
|
|
223
|
+
const { queue, filename } = this.state;
|
|
224
|
+
const count = queue.length;
|
|
225
|
+
if (count > 999) {
|
|
226
|
+
debug(`Too many log records (${count}) are in the queue without the file (${filename}) opening, skipping %O`, record);
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const data = this.config.prettyPrint
|
|
230
|
+
? JSON.stringify(record, null, 2)
|
|
231
|
+
: JSON.stringify(record);
|
|
232
|
+
queue.push(buffer_1.Buffer.from(data + "\n", "utf-8"));
|
|
233
|
+
this.flush();
|
|
234
|
+
}
|
|
235
|
+
catch (err) {
|
|
236
|
+
console.warn(`Failed to synchronize `, err);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
*
|
|
241
|
+
* @param {Partial<FileAppenderOptions<Record>>} options
|
|
242
|
+
*/
|
|
243
|
+
constructor(options = {}) {
|
|
244
|
+
this.config = applyConfigDefaults(options);
|
|
245
|
+
(0, lodash_1.assign)(this.state, {
|
|
246
|
+
filename: this.config.filename
|
|
247
|
+
});
|
|
248
|
+
this.setup();
|
|
249
|
+
debug(`File appender is ready, logging to ${this.state.filename}`);
|
|
250
|
+
// return this
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
exports.FileAppender = FileAppender;
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUFwcGVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xvZ2dpbmcvYXBwZW5kZXJzL0ZpbGVBcHBlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBbUQ7QUFDbkQsMkNBQTRCO0FBQzVCLHVDQUF3QjtBQUd4QixnREFBZ0Q7QUFDaEQsbUNBQStCO0FBQy9CLGtEQUF5QjtBQUN6Qix3REFBK0I7QUFFL0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQTtBQUUzQixNQUFNLEtBQUssR0FBRyxJQUFBLGVBQUssRUFBQyx5QkFBeUIsQ0FBQyxDQUFBO0FBQzlDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQTtBQUMvRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQSxDQUFDLEVBQUU7QUFDL0UsTUFBTSxnQkFBZ0IsR0FBRyxHQUF1QixFQUFFLENBQUMsQ0FBQztJQUNsRCxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDO0lBQ3ZDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxZQUFZO0lBQ2xELE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDWCxRQUFRLEVBQUUsQ0FBQztJQUNYLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLElBQUksRUFBRSxLQUFLO0NBQ1osQ0FBQyxDQUFBO0FBRUYsU0FBUyxtQkFBbUIsQ0FBQyxPQUE0QjtJQUN2RCxPQUFPLElBQUEsaUJBQVEsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO0FB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QUMsSUFBSSxHQUFHLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1lBQzdDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNkLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksVUFBZ0QsRUFBRTtRQUM1RCxJQUFJLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTFDLElBQUEsZUFBTSxFQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtTQUMvQixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDWixLQUFLLENBQUMsc0NBQXNDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUNsRSxtQkFBbUI7SUFDckIsQ0FBQztDQUNGO0FBdE9ELG9DQXNPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2lnbiwgZGVmYXVsdHMsIHBhZFN0YXJ0IH0gZnJvbSBcImxvZGFzaFwiXG5pbXBvcnQgKiBhcyBQYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCAqIGFzIEZzIGZyb20gXCJmc1wiXG5pbXBvcnQgdHlwZSB7IExvZ1JlY29yZCB9IGZyb20gXCIuLi9Mb2dSZWNvcmRcIlxuaW1wb3J0IHR5cGUgeyBBcHBlbmRlciB9IGZyb20gXCIuLi9BcHBlbmRlclwiXG5pbXBvcnQgeyBPcHRpb24sIEZ1dHVyZSB9IGZyb20gXCJAM2Z2L3ByZWx1ZGUtdHNcIlxuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSBcImJ1ZmZlclwiXG5pbXBvcnQgRGVidWcgZnJvbSBcImRlYnVnXCJcbmltcG9ydCBCbHVlYmlyZCBmcm9tIFwiYmx1ZWJpcmRcIlxuXG5jb25zdCBGc0FzeW5jID0gRnMucHJvbWlzZXNcblxuY29uc3QgZGVidWcgPSBEZWJ1ZyhcIjNmdjpsb2dnZXI6RmlsZUFwcGVuZGVyXCIpXG5jb25zdCBvc1RlbXBEaXIgPSBwcm9jZXNzLmVudi5UTVAgPz8gcHJvY2Vzcy5lbnYuVEVNUCA/PyBcIi90bXBcIlxuY29uc3QgdGVtcERpciA9IEZzLm1rZHRlbXBTeW5jKFBhdGguam9pbihvc1RlbXBEaXIsIFwibG9nZ2VyLXByb3h5LWV4YW1wbGVcIikpIC8vXG5jb25zdCBnZXREZWZhdWx0Q29uZmlnID0gKCk6IEZpbGVBcHBlbmRlckNvbmZpZyA9PiAoe1xuICBmaWxlbmFtZTogUGF0aC5qb2luKHRlbXBEaXIsIFwiYXBwLmxvZ1wiKSxcbiAgcHJldHR5UHJpbnQ6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIixcbiAgbWF4U2l6ZTogLTEsXG4gIG1heEZpbGVzOiA1LFxuICBlbmFibGVSb2xsaW5nOiBmYWxzZSxcbiAgc3luYzogZmFsc2Vcbn0pXG5cbmZ1bmN0aW9uIGFwcGx5Q29uZmlnRGVmYXVsdHMob3B0aW9uczogRmlsZUFwcGVuZGVyT3B0aW9ucyk6IEZpbGVBcHBlbmRlckNvbmZpZyB7XG4gIHJldHVybiBkZWZhdWx0cyhvcHRpb25zLCBnZXREZWZhdWx0Q29uZmlnKCkpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUFwcGVuZGVyQ29uZmlnPFJlY29yZCBleHRlbmRzIExvZ1JlY29yZCA9IGFueT4ge1xuICBmaWxlbmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEZvciByb2xsaW5nXG4gICAqL1xuICBtYXhGaWxlczogbnVtYmVyXG5cbiAgLyoqXG4gICAqIEZvciByb2xsaW5nXG4gICAqL1xuICBtYXhTaXplOiBudW1iZXJcblxuICBlbmFibGVSb2xsaW5nOiBib29sZWFuXG4gIHByZXR0eVByaW50OiBib29sZWFuXG4gIHN5bmM6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgRmlsZUFwcGVuZGVyT3B0aW9uczxSZWNvcmQgZXh0ZW5kcyBMb2dSZWNvcmQgPSBhbnk+ID0gUGFydGlhbDxcbiAgRmlsZUFwcGVuZGVyQ29uZmlnPFJlY29yZD5cbj5cblxuZXhwb3J0IGNsYXNzIEZpbGVBcHBlbmRlcjxcbiAgUmVjb3JkIGV4dGVuZHMgTG9nUmVjb3JkXG4+IGltcGxlbWVudHMgQXBwZW5kZXI8UmVjb3JkPiB7XG4gIHJlYWRvbmx5IGNvbmZpZzogRmlsZUFwcGVuZGVyQ29uZmlnPFJlY29yZD5cblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlOiB7XG4gICAgZmlsZW5hbWU6IHN0cmluZ1xuICAgIGZpbGU6IG51bWJlclxuICAgIGZsdXNoaW5nOiBib29sZWFuXG4gICAgcXVldWU6IEFycmF5PEJ1ZmZlcj5cbiAgICByZWFkeTogYm9vbGVhblxuICAgIGVycm9yPzogRXJyb3JcbiAgICBjdXJyZW50U2l6ZTogbnVtYmVyXG4gICAgYXJjaGl2ZWRGaWxlbmFtZXM6IHN0cmluZ1tdXG4gIH0gPSB7XG4gICAgYXJjaGl2ZWRGaWxlbmFtZXM6IFtdLFxuICAgIGZpbGVuYW1lOiB1bmRlZmluZWQsXG4gICAgZmlsZTogdW5kZWZpbmVkLFxuICAgIHJlYWR5OiBmYWxzZSxcbiAgICBjdXJyZW50U2l6ZTogMCxcbiAgICBmbHVzaGluZzogZmFsc2UsXG4gICAgcXVldWU6IFtdXG4gIH1cblxuICBnZXQgZW5hYmxlUm9sbGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZW5hYmxlUm9sbGluZ1xuICB9XG5cbiAgaXNSZWFkeSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5yZWFkeVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgYW5kIHNldHVwIHRoZSBhcHBlbmRlclxuICAgKlxuICAgKiBAcmV0dXJucyB7RmlsZUFwcGVuZGVyPFJlY29yZD59XG4gICAqL1xuICBzZXR1cCgpOiBGaWxlQXBwZW5kZXI8UmVjb3JkPiB7XG4gICAgY29uc3QgeyBzdGF0ZSB9ID0gdGhpc1xuICAgIGlmICghIXN0YXRlLnJlYWR5KSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGZpbGVuYW1lIH0gPSB0aGlzXG4gICAgICBjb25zdCBmaWxlID0gRnMub3BlblN5bmMoZmlsZW5hbWUsIFwiYVwiKVxuXG4gICAgICBhc3NpZ24oc3RhdGUsIHtcbiAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgIGZpbGUsXG4gICAgICAgIHJlYWR5OiB0cnVlXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4gdGhpc1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgYXNzaWduKHN0YXRlLCB7XG4gICAgICAgIGVycm9yOiBlcnIsXG4gICAgICAgIGZpbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgcmVhZHk6IGZhbHNlXG4gICAgICB9KVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9ubHkgZXhwb3NlZCBmb3IgdGhlIHNha2Ugb2YgdGVzdHMgJiBleGFtcGxlc1xuICAgKiBETyBOT1QgVVNFXG4gICAqXG4gICAqIFRoaXMgc2hvdWxkIGFsbCBiZSBhc3luYywgYnV0IGkgd2FzIGluIGEgcnVzaCA6KFxuICAgKlxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcm9sbEZpbGUoKSB7XG4gICAgY29uc3QgeyBzdGF0ZSwgY29uZmlnIH0gPSB0aGlzXG4gICAgbGV0IHsgZmlsZSwgZmlsZW5hbWUsIGFyY2hpdmVkRmlsZW5hbWVzIH0gPSBzdGF0ZVxuICAgIGlmICghdGhpcy5pc1JlYWR5KCkgfHwgIWZpbGUpIHtcbiAgICAgIGRlYnVnKGBDYW4gbm90IHJvbGwgZmlsZSBiZWZvcmUgcmVhZHlgKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmVuYWJsZVJvbGxpbmcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGZpbGVDb3VudCA9IGFyY2hpdmVkRmlsZW5hbWVzLmxlbmd0aCArIDFcbiAgICBpZiAoY29uZmlnLm1heEZpbGVzIDwgMSB8fCBmaWxlQ291bnQgPCBjb25maWcubWF4RmlsZXMpIHtcbiAgICAgIGFyY2hpdmVkRmlsZW5hbWVzLnB1c2goXG4gICAgICAgIGZpbGVuYW1lICsgXCIuXCIgKyBwYWRTdGFydChmaWxlQ291bnQudG9TdHJpbmcoMTApLCA0LCBcIjBcIilcbiAgICAgIClcbiAgICB9XG4gICAgRnMuZmRhdGFzeW5jU3luYyhmaWxlKVxuICAgIEZzLmNsb3NlU3luYyhmaWxlKVxuICAgIGZpbGUgPSBzdGF0ZS5maWxlID0gdW5kZWZpbmVkXG4gICAgY29uc3QgZmlsZW5hbWVzID0gW2ZpbGVuYW1lLCAuLi5hcmNoaXZlZEZpbGVuYW1lc11cblxuICAgIGxldCBkZXN0OiBzdHJpbmcgPSBmaWxlbmFtZXMucG9wKClcbiAgICB3aGlsZSAoZmlsZW5hbWVzLmxlbmd0aCkge1xuICAgICAgbGV0IHNyYyA9IGZpbGVuYW1lcy5wb3AoKVxuICAgICAgaWYgKCFGcy5leGlzdHNTeW5jKHNyYykpIHtcbiAgICAgICAgZGVidWcoYHNyYyBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcgJHtzcmN9YClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlYnVnKGBNb3Zpbmcgc3JjICgke3NyY30pIHRvIGRlc3QgKCR7ZGVzdH0pYClcbiAgICAgICAgaWYgKEZzLmV4aXN0c1N5bmMoZGVzdCkpIHtcbiAgICAgICAgICBGcy51bmxpbmtTeW5jKGRlc3QpXG4gICAgICAgIH1cbiAgICAgICAgRnMucmVuYW1lU3luYyhzcmMsIGRlc3QpXG4gICAgICAgIC8vIGlmIChzcmMgPT09IGZpbGVuYW1lKSB7XG4gICAgICAgIC8vICAgRnMuY29weUZpbGVTeW5jKHNyYywgZGVzdClcbiAgICAgICAgLy8gICBGcy50cnVuY2F0ZVN5bmMoc3JjLCAwKVxuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgIEZzLnJlbmFtZVN5bmMoc3JjLCBkZXN0KVxuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgICBkZXN0ID0gc3JjXG4gICAgfVxuXG4gICAgYXNzaWduKHN0YXRlLCB7XG4gICAgICBjdXJyZW50U2l6ZTogMCxcbiAgICAgIGZpbGU6IEZzLm9wZW5TeW5jKGZpbGVuYW1lLCBcImFcIilcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSBoYW5kbGVyXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmx1c2goKVxuICAgICAgLm9uQ29tcGxldGUoKCkgPT4gT3B0aW9uLm9mKHRoaXMuc3RhdGUuZmlsZSkubWFwKEZzLmNsb3NlU3luYykpXG4gICAgICAudG9Qcm9taXNlKClcbiAgfVxuXG4gIGdldCBxdWV1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5xdWV1ZVxuICB9XG5cbiAgZ2V0IGZpbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZVxuICB9XG5cbiAgZ2V0IGZsdXNoaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmZsdXNoaW5nXG4gIH1cblxuICBnZXQgZmlsZW5hbWUoKSB7XG4gICAgcmV0dXJuICh0aGlzLnN0YXRlLmZpbGVuYW1lID0gdGhpcy5zdGF0ZS5maWxlbmFtZSA/PyB0aGlzLmNvbmZpZy5maWxlbmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIHRoZSBsb2cgcXVldWUgcmVjb3JkcyB0byB0aGUgZmlsZVxuICAgKi9cbiAgcHJpdmF0ZSBmbHVzaCgpIHtcbiAgICBjb25zdCB7IHN0YXRlIH0gPSB0aGlzXG4gICAgcmV0dXJuIEZ1dHVyZS5kbyhhc3luYyAoKSA9PiB7XG4gICAgICBzdGF0ZS5mbHVzaGluZyA9IHRydWVcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgZmlsZSB9ID0gdGhpc1xuICAgICAgICBpZiAoIWZpbGUpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgJHt0aGlzLmZpbGVuYW1lfSB3YXMgbm90IG9wZW5lZCBwcm9wZXJseWApXG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKHRoaXMucXVldWUubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgYnVmOiBCdWZmZXIgPSB0aGlzLnF1ZXVlLnNoaWZ0KClcblxuICAgICAgICAgIGF3YWl0IEJsdWViaXJkLmZyb21DYWxsYmFjayhjYiA9PlxuICAgICAgICAgICAgRnMuYXBwZW5kRmlsZShmaWxlLCBidWYsIFwidXRmLThcIiwgY2IpXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgc3RhdGUuY3VycmVudFNpemUgKz0gYnVmLmJ5dGVMZW5ndGhcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgbWF4U2l6ZSB9ID0gdGhpcy5jb25maWdcbiAgICAgICAgaWYgKG1heFNpemUgPiAwICYmIHN0YXRlLmN1cnJlbnRTaXplID49IG1heFNpemUpIHtcbiAgICAgICAgICB0aGlzLnJvbGxGaWxlKClcbiAgICAgICAgfVxuXG4gICAgICAgIC8vYXdhaXQgQmx1ZWJpcmQuZnJvbUNhbGxiYWNrKChjYikgPT4gRnMuZmRhdGFzeW5jKHRoaXMuZmlsZSwgY2IpKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBhcHBlbmQgZmlsZSAke3RoaXMuZmlsZW5hbWV9YCwgZXJyKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5zdGF0ZS5mbHVzaGluZyA9IGZhbHNlXG4gICAgICAgIGlmICh0aGlzLnF1ZXVlLmxlbmd0aCkge1xuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZmx1c2goKSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGxvZyByZWNvcmRzLCB0cmFuc2Zvcm0sIHB1c2ggdG8gRVNcbiAgICpcbiAgICogQHBhcmFtIHJlY29yZFxuICAgKi9cbiAgYXBwZW5kKHJlY29yZDogUmVjb3JkKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgcXVldWUsIGZpbGVuYW1lIH0gPSB0aGlzLnN0YXRlXG4gICAgICBjb25zdCBjb3VudCA9IHF1ZXVlLmxlbmd0aFxuICAgICAgaWYgKGNvdW50ID4gOTk5KSB7XG4gICAgICAgIGRlYnVnKFxuICAgICAgICAgIGBUb28gbWFueSBsb2cgcmVjb3JkcyAoJHtjb3VudH0pIGFyZSBpbiB0aGUgcXVldWUgd2l0aG91dCB0aGUgZmlsZSAoJHtmaWxlbmFtZX0pIG9wZW5pbmcsIHNraXBwaW5nICVPYCxcbiAgICAgICAgICByZWNvcmRcbiAgICAgICAgKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuY29uZmlnLnByZXR0eVByaW50XG4gICAgICAgID8gSlNPTi5zdHJpbmdpZnkocmVjb3JkLCBudWxsLCAyKVxuICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHJlY29yZClcbiAgICAgIHF1ZXVlLnB1c2goQnVmZmVyLmZyb20oZGF0YSArIFwiXFxuXCIsIFwidXRmLThcIikpXG4gICAgICB0aGlzLmZsdXNoKClcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIHN5bmNocm9uaXplIGAsIGVycilcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWFsPEZpbGVBcHBlbmRlck9wdGlvbnM8UmVjb3JkPj59IG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBhcnRpYWw8RmlsZUFwcGVuZGVyT3B0aW9uczxSZWNvcmQ+PiA9IHt9KSB7XG4gICAgdGhpcy5jb25maWcgPSBhcHBseUNvbmZpZ0RlZmF1bHRzKG9wdGlvbnMpXG5cbiAgICBhc3NpZ24odGhpcy5zdGF0ZSwge1xuICAgICAgZmlsZW5hbWU6IHRoaXMuY29uZmlnLmZpbGVuYW1lXG4gICAgfSlcblxuICAgIHRoaXMuc2V0dXAoKVxuICAgIGRlYnVnKGBGaWxlIGFwcGVuZGVyIGlzIHJlYWR5LCBsb2dnaW5nIHRvICR7dGhpcy5zdGF0ZS5maWxlbmFtZX1gKVxuICAgIC8vICAgICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AWSFirehoseAppender = void 0;
|
|
7
|
+
const client_firehose_1 = require("@aws-sdk/client-firehose");
|
|
8
|
+
const client_sts_1 = require("@aws-sdk/client-sts");
|
|
9
|
+
const AWSFirehoseCredentialManager_js_1 = __importDefault(require("./AWSFirehoseCredentialManager.js"));
|
|
10
|
+
const InternalLogger_js_1 = require("../../InternalLogger.js");
|
|
11
|
+
const lodash_1 = require("lodash");
|
|
12
|
+
const index_js_1 = require("../../../helpers/index.js");
|
|
13
|
+
const LogQueueMaxRecords = 10000;
|
|
14
|
+
const log = (0, InternalLogger_js_1.getInternalLogger)();
|
|
15
|
+
class AWSFirehoseAppender {
|
|
16
|
+
credentialEndpointUrl;
|
|
17
|
+
pendingRecords = Array();
|
|
18
|
+
flushDeferred;
|
|
19
|
+
flushIntervalMs = 1000;
|
|
20
|
+
credentialManager;
|
|
21
|
+
constructor(credentialEndpointUrl) {
|
|
22
|
+
this.credentialEndpointUrl = credentialEndpointUrl;
|
|
23
|
+
this.credentialManager = new AWSFirehoseCredentialManager_js_1.default(credentialEndpointUrl);
|
|
24
|
+
this.credentialManager.on("received", () => {
|
|
25
|
+
log.info("Credentials received, initializing firehose client");
|
|
26
|
+
if (!this.pendingRecords.length || !!this.flushDeferred) {
|
|
27
|
+
log.debug("Nothing to flush upon credential receipt OR flush already in progress");
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.flush()
|
|
31
|
+
.catch((e) => {
|
|
32
|
+
log.error(`Error flushing logs after credential receipt: ${e.message}`, e);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
append(record) {
|
|
37
|
+
const pendingCount = this.pendingRecords.length + 1, removeCount = LogQueueMaxRecords - pendingCount;
|
|
38
|
+
if (removeCount < 0) {
|
|
39
|
+
this.pendingRecords.splice(0, Math.abs(removeCount));
|
|
40
|
+
}
|
|
41
|
+
this.pendingRecords.push({
|
|
42
|
+
timestamp: Date.now(),
|
|
43
|
+
...record,
|
|
44
|
+
app: record.app?.length > 0 ? record.app : "UNKNOWN",
|
|
45
|
+
env: record.env?.length > 0 ? record.env : "UNKNOWN",
|
|
46
|
+
url: typeof window === "undefined" ? "local://" : window.location.href,
|
|
47
|
+
});
|
|
48
|
+
this.flush();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create the firehose client and return
|
|
52
|
+
*
|
|
53
|
+
* @param {IAWSTemporaryCredentials} credentials
|
|
54
|
+
* @param {boolean} flush
|
|
55
|
+
* @returns {Firehose}
|
|
56
|
+
*/
|
|
57
|
+
getFirehose() {
|
|
58
|
+
const creds = this.credentialManager.getCredentials();
|
|
59
|
+
if (!creds) {
|
|
60
|
+
log.warn("No credentials available for flush");
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const { region, streamName } = creds;
|
|
64
|
+
if (!region || !streamName) {
|
|
65
|
+
throw new Error("Region or stream name not available");
|
|
66
|
+
}
|
|
67
|
+
const client = new client_firehose_1.FirehoseClient({
|
|
68
|
+
region: creds.region,
|
|
69
|
+
credentials: (0, lodash_1.pick)(creds, "accessKeyId", "secretAccessKey", "sessionToken"),
|
|
70
|
+
});
|
|
71
|
+
return client;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Flush pending records
|
|
75
|
+
*
|
|
76
|
+
* @returns {Promise<void>}
|
|
77
|
+
*/
|
|
78
|
+
async flush() {
|
|
79
|
+
if (!!this.flushDeferred) {
|
|
80
|
+
log.debug("Flush already in progress, skipping");
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (!this.pendingRecords.length) {
|
|
84
|
+
log.debug("No pending records to flush");
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const creds = this.credentialManager.getCredentials();
|
|
88
|
+
if (!creds) {
|
|
89
|
+
log.warn("No credentials available for flush");
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const { streamName } = creds, client = this.getFirehose();
|
|
93
|
+
if (!client) {
|
|
94
|
+
log.warn("No firehose client available, skipping flush");
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const deferred = this.flushDeferred = new index_js_1.Deferred();
|
|
98
|
+
try {
|
|
99
|
+
while (this.pendingRecords.length) {
|
|
100
|
+
const chunkSize = Math.min(this.pendingRecords.length, 10), records = this.pendingRecords.splice(0, chunkSize), recordJsons = records.map(record => JSON.stringify(record));
|
|
101
|
+
if (log.isDebugEnabled())
|
|
102
|
+
log.debug("Records", records);
|
|
103
|
+
const textEncoder = new TextEncoder(), batch = recordJsons.map(jsonStr => ({
|
|
104
|
+
Data: textEncoder.encode(jsonStr)
|
|
105
|
+
}));
|
|
106
|
+
log.info(`Pushing ${records.length} records to firehose`);
|
|
107
|
+
const cmd = new client_firehose_1.PutRecordBatchCommand({
|
|
108
|
+
DeliveryStreamName: streamName,
|
|
109
|
+
Records: batch,
|
|
110
|
+
});
|
|
111
|
+
const resp = await client.send(cmd);
|
|
112
|
+
const failed = resp.FailedPutCount || 0;
|
|
113
|
+
if (failed) {
|
|
114
|
+
const rr = resp.RequestResponses || [];
|
|
115
|
+
for (let i = 0; i < rr.length; i++) {
|
|
116
|
+
if (rr[i].ErrorCode) {
|
|
117
|
+
log.warn(`Record failed: ${rr[i].ErrorCode} ${rr[i].ErrorMessage}`);
|
|
118
|
+
//this.pendingRecords.unshift(records[i])
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
log.info(`PutRecordBatch failed=${failed}; requeued failed records`);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
log.info(`PutRecordBatch ok count=${records.length}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (err) {
|
|
129
|
+
log.error("Failed to push logs", err);
|
|
130
|
+
if (err.code === client_sts_1.ExpiredTokenException) {
|
|
131
|
+
this.credentialManager.forceUpdateCredentials();
|
|
132
|
+
}
|
|
133
|
+
deferred.reject(err);
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
this.flushDeferred = null;
|
|
137
|
+
// if (this.pendingRecords.length)
|
|
138
|
+
// this.flush()
|
|
139
|
+
}
|
|
140
|
+
return deferred.promise;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.AWSFirehoseAppender = AWSFirehoseAppender;
|
|
144
|
+
exports.default = AWSFirehoseAppender;
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQVdTRmlyZWhvc2VBcHBlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dnaW5nL2FwcGVuZGVycy9hd3MtZmlyZWhvc2UvQVdTRmlyZWhvc2VBcHBlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSw4REFBcUc7QUFDckcsb0RBRzRCO0FBRzVCLHdHQUE0RTtBQUM1RSwrREFBMkQ7QUFFM0QsbUNBQXNDO0FBQ3RDLHdEQUFvRDtBQUlwRCxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQTtBQUVoQyxNQUFNLEdBQUcsR0FBRyxJQUFBLHFDQUFpQixHQUFFLENBQUE7QUFFL0IsTUFBYSxtQkFBbUI7SUFTWjtJQVBWLGNBQWMsR0FBRyxLQUFLLEVBQWEsQ0FBQTtJQUNuQyxhQUFhLENBQWdCO0lBQzdCLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFFZixpQkFBaUIsQ0FBOEI7SUFFL0QsWUFDa0IscUJBQTZCO1FBQTdCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUTtRQUM3QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSx5Q0FBNEIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQ2hGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUN6QyxHQUFHLENBQUMsSUFBSSxDQUFDLG9EQUFvRCxDQUFDLENBQUE7WUFDOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hELEdBQUcsQ0FBQyxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQTtnQkFDbEYsT0FBTTtZQUNSLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFO2lCQUNULEtBQUssQ0FBQyxDQUFDLENBQVEsRUFBRSxFQUFFO2dCQUNsQixHQUFHLENBQUMsS0FBSyxDQUFDLGlEQUFpRCxD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LGtDQUFrQztZQUNsQyxpQkFBaUI7UUFDbkIsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQTtJQUN6QixDQUFDO0NBR0Y7QUE1SkQsa0RBNEpDO0FBRUQsa0JBQWUsbUJBQW1CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSB0eXBlc2NyaXB0L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuLi8uLi8uLi9ndWFyZHMvcHJpbWl0aXZlLmpzJ1xuaW1wb3J0IHsgRmlyZWhvc2VDbGllbnQsIFB1dFJlY29yZEJhdGNoQ29tbWFuZCwgUHV0UmVjb3JkQmF0Y2hJbnB1dCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtZmlyZWhvc2VcIlxuaW1wb3J0IHtcbiAgQ3JlZGVudGlhbHMgYXMgSUFXU1RlbXBvcmFyeUNyZWRlbnRpYWxzLFxuICBFeHBpcmVkVG9rZW5FeGNlcHRpb24sXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtc3RzXCJcbmltcG9ydCB7IExldmVsIH0gZnJvbSBcIi4uLy4uL0xldmVsLmpzXCJcblxuaW1wb3J0IEFXU0ZpcmVob3NlQ3JlZGVudGlhbE1hbmFnZXIgZnJvbSBcIi4vQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlci5qc1wiXG5pbXBvcnQgeyBnZXRJbnRlcm5hbExvZ2dlciB9IGZyb20gXCIuLi8uLi9JbnRlcm5hbExvZ2dlci5qc1wiXG5pbXBvcnQgeyBnZXRWYWx1ZSwgZ3VhcmQgfSBmcm9tIFwiLi4vLi4vLi4vZ3VhcmRzL2luZGV4LmpzXCJcbmltcG9ydCB7IGlzRW1wdHksIHBpY2sgfSBmcm9tIFwibG9kYXNoXCJcbmltcG9ydCB7IERlZmVycmVkIH0gZnJvbSBcIi4uLy4uLy4uL2hlbHBlcnMvaW5kZXguanNcIlxuaW1wb3J0IHsgTG9nUmVjb3JkIH0gZnJvbSBcIi4uLy4uL0xvZ1JlY29yZC5qc1wiXG5pbXBvcnQgeyBBcHBlbmRlciB9IGZyb20gXCIuLi8uLi9BcHBlbmRlci5qc1wiXG5cbmNvbnN0IExvZ1F1ZXVlTWF4UmVjb3JkcyA9IDEwMDAwXG5cbmNvbnN0IGxvZyA9IGdldEludGVybmFsTG9nZ2VyKClcblxuZXhwb3J0IGNsYXNzIEFXU0ZpcmVob3NlQXBwZW5kZXI8UmVjb3JkIGV4dGVuZHMgTG9nUmVjb3JkID0gTG9nUmVjb3JkPlxuICBpbXBsZW1lbnRzIEFwcGVuZGVyPFJlY29yZD4ge1xuICBwcml2YXRlIHBlbmRpbmdSZWNvcmRzID0gQXJyYXk8TG9nUmVjb3JkPigpXG4gIHByaXZhdGUgZmx1c2hEZWZlcnJlZDogRGVmZXJyZWQ8dm9pZD5cbiAgcHJpdmF0ZSBmbHVzaEludGVydmFsTXMgPSAxMDAwO1xuXG4gIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsTWFuYWdlcjogQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlclxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsRW5kcG9pbnRVcmw6IHN0cmluZykge1xuICAgIHRoaXMuY3JlZGVudGlhbE1hbmFnZXIgPSBuZXcgQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlcihjcmVkZW50aWFsRW5kcG9pbnRVcmwpXG4gICAgdGhpcy5jcmVkZW50aWFsTWFuYWdlci5vbihcInJlY2VpdmVkXCIsICgpID0+IHtcbiAgICAgIGxvZy5pbmZvKFwiQ3JlZGVudGlhbHMgcmVjZWl2ZWQsIGluaXRpYWxpemluZyBmaXJlaG9zZSBjbGllbnRcIilcbiAgICAgIGlmICghdGhpcy5wZW5kaW5nUmVjb3Jkcy5sZW5ndGggfHwgISF0aGlzLmZsdXNoRGVmZXJyZWQpIHtcbiAgICAgICAgbG9nLmRlYnVnKFwiTm90aGluZyB0byBmbHVzaCB1cG9uIGNyZWRlbnRpYWwgcmVjZWlwdCBPUiBmbHVzaCBhbHJlYWR5IGluIHByb2dyZXNzXCIpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgdGhpcy5mbHVzaCgpXG4gICAgICAgIC5jYXRjaCgoZTogRXJyb3IpID0+IHtcbiAgICAgICAgICBsb2cuZXJyb3IoYEVycm9yIGZsdXNoaW5nIGxvZ3MgYWZ0ZXIgY3JlZGVudGlhbCByZWNlaXB0OiAke2UubWVzc2FnZX1gLCBlKVxuICAgICAgICB9KVxuICAgIH0pXG4gIH1cbiAgYXBwZW5kKHJlY29yZDogUmVjb3JkKTogdm9pZCB7XG4gICAgY29uc3RcbiAgICAgIHBlbmRpbmdDb3VudCA9IHRoaXMucGVuZGluZ1JlY29yZHMubGVuZ3RoICsgMSxcbiAgICAgIHJlbW92ZUNvdW50ID0gTG9nUXVldWVNYXhSZWNvcmRzIC0gcGVuZGluZ0NvdW50XG5cbiAgICBpZiAocmVtb3ZlQ291bnQgPCAwKSB7XG4gICAgICB0aGlzLnBlbmRpbmdSZWNvcmRzLnNwbGljZSgwLCBNYXRoLmFicyhyZW1vdmVDb3VudCkpXG4gICAgfVxuXG4gICAgdGhpcy5wZW5kaW5nUmVjb3Jkcy5wdXNoKHtcbiAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgIC4uLnJlY29yZCxcbiAgICAgIGFwcDogcmVjb3JkLmFwcD8ubGVuZ3RoID4gMCA/IHJlY29yZC5hcHAgOiBcIlVOS05PV05cIixcbiAgICAgIGVudjogcmVjb3JkLmVudj8ubGVuZ3RoID4gMCA/IHJlY29yZC5lbnYgOiBcIlVOS05PV05cIixcbiAgICAgIHVybDogdHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiA/IFwibG9jYWw6Ly9cIiA6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgIH0pXG5cbiAgICB0aGlzLmZsdXNoKClcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIGZpcmVob3NlIGNsaWVudCBhbmQgcmV0dXJuXG4gICAqXG4gICAqIEBwYXJhbSB7SUFXU1RlbXBvcmFyeUNyZWRlbnRpYWxzfSBjcmVkZW50aWFsc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGZsdXNoXG4gICAqIEByZXR1cm5zIHtGaXJlaG9zZX1cbiAgICovXG4gIHByaXZhdGUgZ2V0RmlyZWhvc2UoKTogRmlyZWhvc2VDbGllbnQge1xuICAgIGNvbnN0IGNyZWRzID0gdGhpcy5jcmVkZW50aWFsTWFuYWdlci5nZXRDcmVkZW50aWFscygpXG5cbiAgICBpZiAoIWNyZWRzKSB7XG4gICAgICBsb2cud2FybihcIk5vIGNyZWRlbnRpYWxzIGF2YWlsYWJsZSBmb3IgZmx1c2hcIilcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgeyByZWdpb24sIHN0cmVhbU5hbWUgfSA9IGNyZWRzXG5cbiAgICBpZiAoIXJlZ2lvbiB8fCAhc3RyZWFtTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVnaW9uIG9yIHN0cmVhbSBuYW1lIG5vdCBhdmFpbGFibGVcIilcbiAgICB9XG5cbiAgICBjb25zdCBjbGllbnQgPSBuZXcgRmlyZWhvc2VDbGllbnQoe1xuICAgICAgcmVnaW9uOiBjcmVkcy5yZWdpb24sXG4gICAgICBjcmVkZW50aWFsczogcGljayhjcmVkcywgXCJhY2Nlc3NLZXlJZFwiLCBcInNlY3JldEFjY2Vzc0tleVwiLCBcInNlc3Npb25Ub2tlblwiKSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIGNsaWVudFxuICB9XG5cbiAgLyoqXG4gICAqIEZsdXNoIHBlbmRpbmcgcmVjb3Jkc1xuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCEhdGhpcy5mbHVzaERlZmVycmVkKSB7XG4gICAgICBsb2cuZGVidWcoXCJGbHVzaCBhbHJlYWR5IGluIHByb2dyZXNzLCBza2lwcGluZ1wiKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnBlbmRpbmdSZWNvcmRzLmxlbmd0aCkge1xuICAgICAgbG9nLmRlYnVnKFwiTm8gcGVuZGluZyByZWNvcmRzIHRvIGZsdXNoXCIpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3QgY3JlZHMgPSB0aGlzLmNyZWRlbnRpYWxNYW5hZ2VyLmdldENyZWRlbnRpYWxzKClcbiAgICBpZiAoIWNyZWRzKSB7XG4gICAgICBsb2cud2FybihcIk5vIGNyZWRlbnRpYWxzIGF2YWlsYWJsZSBmb3IgZmx1c2hcIilcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB7IHN0cmVhbU5hbWUgfSA9IGNyZWRzLFxuICAgICAgY2xpZW50ID0gdGhpcy5nZXRGaXJlaG9zZSgpXG4gICAgaWYgKCFjbGllbnQpIHtcbiAgICAgIGxvZy53YXJuKFwiTm8gZmlyZWhvc2UgY2xpZW50IGF2YWlsYWJsZSwgc2tpcHBpbmcgZmx1c2hcIilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGRlZmVycmVkID0gdGhpcy5mbHVzaERlZmVycmVkID0gbmV3IERlZmVycmVkPHZvaWQ+KClcbiAgICB0cnkge1xuICAgICAgd2hpbGUgKHRoaXMucGVuZGluZ1JlY29yZHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0XG4gICAgICAgICAgY2h1bmtTaXplID0gTWF0aC5taW4odGhpcy5wZW5kaW5nUmVjb3Jkcy5sZW5ndGgsIDEwKSxcbiAgICAgICAgICByZWNvcmRzID0gdGhpcy5wZW5kaW5nUmVjb3Jkcy5zcGxpY2UoMCwgY2h1bmtTaXplKSxcbiAgICAgICAgICByZWNvcmRKc29ucyA9IHJlY29yZHMubWFwKHJlY29yZCA9PiBKU09OLnN0cmluZ2lmeShyZWNvcmQpKVxuXG4gICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSlcbiAgICAgICAgICBsb2cuZGVidWcoXCJSZWNvcmRzXCIsIHJlY29yZHMpXG5cbiAgICAgICAgY29uc3RcbiAgICAgICAgICB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpLFxuICAgICAgICAgIGJhdGNoOiBQdXRSZWNvcmRCYXRjaElucHV0W1wiUmVjb3Jkc1wiXSA9IHJlY29yZEpzb25zLm1hcChqc29uU3RyID0+ICh7XG4gICAgICAgICAgICBEYXRhOiB0ZXh0RW5jb2Rlci5lbmNvZGUoanNvblN0cilcbiAgICAgICAgICB9KSlcblxuICAgICAgICBsb2cuaW5mbyhgUHVzaGluZyAke3JlY29yZHMubGVuZ3RofSByZWNvcmRzIHRvIGZpcmVob3NlYClcblxuICAgICAgICBjb25zdCBjbWQgPSBuZXcgUHV0UmVjb3JkQmF0Y2hDb21tYW5kKHtcbiAgICAgICAgICBEZWxpdmVyeVN0cmVhbU5hbWU6IHN0cmVhbU5hbWUsXG4gICAgICAgICAgUmVjb3JkczogYmF0Y2gsXG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IGNsaWVudC5zZW5kKGNtZClcbiAgICAgICAgY29uc3QgZmFpbGVkID0gcmVzcC5GYWlsZWRQdXRDb3VudCB8fCAwXG4gICAgICAgIGlmIChmYWlsZWQpIHtcbiAgICAgICAgICBjb25zdCByciA9IHJlc3AuUmVxdWVzdFJlc3BvbnNlcyB8fCBbXVxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChycltpXS5FcnJvckNvZGUpIHtcbiAgICAgICAgICAgICAgbG9nLndhcm4oYFJlY29yZCBmYWlsZWQ6ICR7cnJbaV0uRXJyb3JDb2RlfSAke3JyW2ldLkVycm9yTWVzc2FnZX1gKVxuICAgICAgICAgICAgICAvL3RoaXMucGVuZGluZ1JlY29yZHMudW5zaGlmdChyZWNvcmRzW2ldKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBsb2cuaW5mbyhgUHV0UmVjb3JkQmF0Y2ggZmFpbGVkPSR7ZmFpbGVkfTsgcmVxdWV1ZWQgZmFpbGVkIHJlY29yZHNgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5pbmZvKGBQdXRSZWNvcmRCYXRjaCBvayBjb3VudD0ke3JlY29yZHMubGVuZ3RofWApXG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nLmVycm9yKFwiRmFpbGVkIHRvIHB1c2ggbG9nc1wiLCBlcnIpXG4gICAgICBpZiAoZXJyLmNvZGUgPT09IEV4cGlyZWRUb2tlbkV4Y2VwdGlvbikge1xuICAgICAgICB0aGlzLmNyZWRlbnRpYWxNYW5hZ2VyLmZvcmNlVXBkYXRlQ3JlZGVudGlhbHMoKVxuICAgICAgfVxuICAgICAgZGVmZXJyZWQucmVqZWN0KGVycilcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5mbHVzaERlZmVycmVkID0gbnVsbFxuXG4gICAgICAvLyBpZiAodGhpcy5wZW5kaW5nUmVjb3Jkcy5sZW5ndGgpXG4gICAgICAvLyAgIHRoaXMuZmx1c2goKVxuICAgIH1cblxuICAgIHJldHVybiBkZWZlcnJlZC5wcm9taXNlXG4gIH1cblxuXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFXU0ZpcmVob3NlQXBwZW5kZXJcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AWSFirehoseCredentialManager = void 0;
|
|
7
|
+
const index_js_1 = require("../../../helpers/index.js");
|
|
8
|
+
const InternalLogger_js_1 = require("../../InternalLogger.js");
|
|
9
|
+
const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
10
|
+
const CRED_BUFFER_PADDING_MS = 3 * 60 * 1000; // 3 minutes
|
|
11
|
+
const log = (0, InternalLogger_js_1.getInternalLogger)();
|
|
12
|
+
class AWSFirehoseCredentialManager extends eventemitter3_1.default {
|
|
13
|
+
credentialEndpointUrl;
|
|
14
|
+
refreshTimer = null;
|
|
15
|
+
loadDeferred = null;
|
|
16
|
+
constructor(credentialEndpointUrl) {
|
|
17
|
+
super();
|
|
18
|
+
this.credentialEndpointUrl = credentialEndpointUrl;
|
|
19
|
+
}
|
|
20
|
+
forceUpdateCredentials() {
|
|
21
|
+
if (this.loadDeferred && !this.loadDeferred.isSettled()) {
|
|
22
|
+
this.loadDeferred.reject(new Error("force update"));
|
|
23
|
+
}
|
|
24
|
+
this.loadDeferred = null;
|
|
25
|
+
this.scheduleRefresh(1);
|
|
26
|
+
}
|
|
27
|
+
getCredentials() {
|
|
28
|
+
if (this.loadDeferred && this.loadDeferred.isFulfilled()) {
|
|
29
|
+
const creds = this.loadDeferred.getResult(), expMs = Date.parse(creds.expiration);
|
|
30
|
+
if (expMs <= Date.now()) {
|
|
31
|
+
log.info("Credentials expired");
|
|
32
|
+
this.loadDeferred = null;
|
|
33
|
+
this.scheduleRefresh(1);
|
|
34
|
+
this.emit("expired");
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return creds;
|
|
38
|
+
}
|
|
39
|
+
this.scheduleRefresh(1);
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
hasCredentials() {
|
|
43
|
+
return this.getCredentials() != null;
|
|
44
|
+
}
|
|
45
|
+
async load() {
|
|
46
|
+
if (this.loadDeferred && !this.loadDeferred.isRejected())
|
|
47
|
+
return this.loadDeferred.promise;
|
|
48
|
+
const deferred = this.loadDeferred = new index_js_1.Deferred();
|
|
49
|
+
try {
|
|
50
|
+
const r = await fetch(this.credentialEndpointUrl, {
|
|
51
|
+
method: "GET",
|
|
52
|
+
credentials: "include",
|
|
53
|
+
});
|
|
54
|
+
if (!r.ok)
|
|
55
|
+
throw new Error(`creds http ${r.status}`);
|
|
56
|
+
const creds = await r.json();
|
|
57
|
+
this.scheduleRefresh(creds);
|
|
58
|
+
log.info(`Got creds, expire=${creds.expiration}, stream=${creds.streamName}, region=${creds.region}`);
|
|
59
|
+
deferred.resolve(creds);
|
|
60
|
+
this.emit("received", creds);
|
|
61
|
+
return deferred.promise;
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
deferred.reject(e);
|
|
65
|
+
this.loadDeferred = null;
|
|
66
|
+
throw e;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
scheduleRefresh(credsOrMillis) {
|
|
70
|
+
if (this.refreshTimer) {
|
|
71
|
+
clearTimeout(this.refreshTimer);
|
|
72
|
+
this.refreshTimer = null;
|
|
73
|
+
}
|
|
74
|
+
if (!credsOrMillis)
|
|
75
|
+
return;
|
|
76
|
+
let refreshInMs;
|
|
77
|
+
if (typeof credsOrMillis === "number") {
|
|
78
|
+
refreshInMs = credsOrMillis;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const creds = credsOrMillis, expMs = Date.parse(creds.expiration);
|
|
82
|
+
refreshInMs = expMs - Date.now() - CRED_BUFFER_PADDING_MS;
|
|
83
|
+
}
|
|
84
|
+
refreshInMs = Math.max(100, refreshInMs);
|
|
85
|
+
this.refreshTimer = setTimeout(() => {
|
|
86
|
+
this.loadDeferred = null;
|
|
87
|
+
this.load().catch((e) => log.error(`refresh failed: ${e.message}`, e));
|
|
88
|
+
}, refreshInMs);
|
|
89
|
+
}
|
|
90
|
+
getStreamName() {
|
|
91
|
+
return this.getCredentials()?.streamName;
|
|
92
|
+
}
|
|
93
|
+
getRegion() {
|
|
94
|
+
return this.getCredentials()?.region;
|
|
95
|
+
}
|
|
96
|
+
destroy() {
|
|
97
|
+
this.scheduleRefresh(null);
|
|
98
|
+
if (!this.loadDeferred.isSettled())
|
|
99
|
+
this.loadDeferred.reject(new Error("destroyed"));
|
|
100
|
+
this.loadDeferred = null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.AWSFirehoseCredentialManager = AWSFirehoseCredentialManager;
|
|
104
|
+
exports.default = AWSFirehoseCredentialManager;
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dnaW5nL2FwcGVuZGVycy9hd3MtZmlyZWhvc2UvQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx3REFBb0Q7QUFDcEQsK0RBQTJEO0FBQzNELGtFQUF5QztBQUV6QyxNQUFNLHNCQUFzQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBLENBQUMsWUFBWTtBQUV6RCxNQUFNLEdBQUcsR0FBRyxJQUFBLHFDQUFpQixHQUFFLENBQUE7QUFnQi9CLE1BQWEsNEJBQTZCLFNBQVEsdUJBQW1EO0lBTWpGO0lBSlYsWUFBWSxHQUFrQyxJQUFJLENBQUM7SUFDbkQsWUFBWSxHQUE2QixJQUFJLENBQUM7SUFFdEQsWUFDa0IscUJBQTZCO1FBRTdDLEtBQUssRUFBRSxDQUFBO1FBRlMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFRO0lBRy9DLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7UUFDckQsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEVB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QUFDO1FBRUQsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBRXhDLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtZQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMvRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxVQUFVLENBQUE7SUFDMUMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLENBQUE7SUFDdEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO0lBQzFCLENBQUM7Q0FDRjtBQTlHRCxvRUE4R0M7QUFHRCxrQkFBZSw0QkFBNEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpcmVob3NlQ2xpZW50LCBQdXRSZWNvcmRCYXRjaENvbW1hbmQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWZpcmVob3NlXCJcbmltcG9ydCB7IERlZmVycmVkIH0gZnJvbSBcIi4uLy4uLy4uL2hlbHBlcnMvaW5kZXguanNcIlxuaW1wb3J0IHsgZ2V0SW50ZXJuYWxMb2dnZXIgfSBmcm9tIFwiLi4vLi4vSW50ZXJuYWxMb2dnZXIuanNcIlxuaW1wb3J0IEV2ZW50RW1pdHRlcjMgZnJvbSBcImV2ZW50ZW1pdHRlcjNcIlxuXG5jb25zdCBDUkVEX0JVRkZFUl9QQURESU5HX01TID0gMyAqIDYwICogMTAwMCAvLyAzIG1pbnV0ZXNcblxuY29uc3QgbG9nID0gZ2V0SW50ZXJuYWxMb2dnZXIoKVxuXG5leHBvcnQgaW50ZXJmYWNlIEFXU0NyZWRlbnRpYWxzIHtcbiAgYWNjZXNzS2V5SWQ6IHN0cmluZ1xuICBzZWNyZXRBY2Nlc3NLZXk6IHN0cmluZ1xuICBzZXNzaW9uVG9rZW46IHN0cmluZ1xuICBzdHJlYW1OYW1lOiBzdHJpbmdcbiAgcmVnaW9uOiBzdHJpbmdcbiAgZXhwaXJhdGlvbjogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlckV2ZW50TWFwIHtcbiAgcmVjZWl2ZWQ6IChjcmVkczogQVdTQ3JlZGVudGlhbHMpID0+IHZvaWRcbiAgZXhwaXJlZDogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY2xhc3MgQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlciBleHRlbmRzIEV2ZW50RW1pdHRlcjM8QVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlckV2ZW50TWFwPiB7XG5cbiAgcHJpdmF0ZSByZWZyZXNoVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+ID0gbnVsbDtcbiAgcHJpdmF0ZSBsb2FkRGVmZXJyZWQ6IERlZmVycmVkPEFXU0NyZWRlbnRpYWxzPiA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxFbmRwb2ludFVybDogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcigpXG4gIH1cblxuICBmb3JjZVVwZGF0ZUNyZWRlbnRpYWxzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWREZWZlcnJlZCAmJiAhdGhpcy5sb2FkRGVmZXJyZWQuaXNTZXR0bGVkKCkpIHtcbiAgICAgIHRoaXMubG9hZERlZmVycmVkLnJlamVjdChuZXcgRXJyb3IoXCJmb3JjZSB1cGRhdGVcIikpXG4gICAgfVxuXG4gICAgdGhpcy5sb2FkRGVmZXJyZWQgPSBudWxsXG4gICAgdGhpcy5zY2hlZHVsZVJlZnJlc2goMSlcbiAgfVxuXG4gIGdldENyZWRlbnRpYWxzKCk6IEFXU0NyZWRlbnRpYWxzIHtcbiAgICBpZiAodGhpcy5sb2FkRGVmZXJyZWQgJiYgdGhpcy5sb2FkRGVmZXJyZWQuaXNGdWxmaWxsZWQoKSkge1xuICAgICAgY29uc3QgY3JlZHMgPSB0aGlzLmxvYWREZWZlcnJlZC5nZXRSZXN1bHQoKSxcbiAgICAgICAgZXhwTXMgPSBEYXRlLnBhcnNlKGNyZWRzLmV4cGlyYXRpb24pXG5cbiAgICAgIGlmIChleHBNcyA8PSBEYXRlLm5vdygpKSB7XG4gICAgICAgIGxvZy5pbmZvKFwiQ3JlZGVudGlhbHMgZXhwaXJlZFwiKVxuICAgICAgICB0aGlzLmxvYWREZWZlcnJlZCA9IG51bGxcbiAgICAgICAgdGhpcy5zY2hlZHVsZVJlZnJlc2goMSlcbiAgICAgICAgdGhpcy5lbWl0KFwiZXhwaXJlZFwiKVxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgICAgcmV0dXJuIGNyZWRzXG4gICAgfVxuXG4gICAgdGhpcy5zY2hlZHVsZVJlZnJlc2goMSlcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgaGFzQ3JlZGVudGlhbHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q3JlZGVudGlhbHMoKSAhPSBudWxsXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWQoKTogUHJvbWlzZTxBV1NDcmVkZW50aWFscz4ge1xuICAgIGlmICh0aGlzLmxvYWREZWZlcnJlZCAmJiAhdGhpcy5sb2FkRGVmZXJyZWQuaXNSZWplY3RlZCgpKVxuICAgICAgcmV0dXJuIHRoaXMubG9hZERlZmVycmVkLnByb21pc2VcblxuICAgIGNvbnN0IGRlZmVycmVkID0gdGhpcy5sb2FkRGVmZXJyZWQgPSBuZXcgRGVmZXJyZWQ8QVdTQ3JlZGVudGlhbHM+KClcbiAgICB0cnkge1xuICAgICAgY29uc3QgciA9IGF3YWl0IGZldGNoKHRoaXMuY3JlZGVudGlhbEVuZHBvaW50VXJsLCB7XG4gICAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgICAgY3JlZGVudGlhbHM6IFwiaW5jbHVkZVwiLFxuICAgICAgfSlcbiAgICAgIGlmICghci5vaykgdGhyb3cgbmV3IEVycm9yKGBjcmVkcyBodHRwICR7ci5zdGF0dXN9YClcbiAgICAgIGNvbnN0IGNyZWRzOiBBV1NDcmVkZW50aWFscyA9IGF3YWl0IHIuanNvbigpXG5cblxuICAgICAgdGhpcy5zY2hlZHVsZVJlZnJlc2goY3JlZHMpXG4gICAgICBsb2cuaW5mbyhgR290IGNyZWRzLCBleHBpcmU9JHtjcmVkcy5leHBpcmF0aW9ufSwgc3RyZWFtPSR7Y3JlZHMuc3RyZWFtTmFtZX0sIHJlZ2lvbj0ke2NyZWRzLnJlZ2lvbn1gKVxuICAgICAgZGVmZXJyZWQucmVzb2x2ZShjcmVkcylcbiAgICAgIHRoaXMuZW1pdChcInJlY2VpdmVkXCIsIGNyZWRzKVxuICAgICAgcmV0dXJuIGRlZmVycmVkLnByb21pc2VcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBkZWZlcnJlZC5yZWplY3QoZSlcbiAgICAgIHRoaXMubG9hZERlZmVycmVkID0gbnVsbFxuICAgICAgdGhyb3cgZVxuICAgIH1cbiAgfVxuICBzY2hlZHVsZVJlZnJlc2goY3JlZHNPck1pbGxpczogQVdTQ3JlZGVudGlhbHMgfCBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWZyZXNoVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlZnJlc2hUaW1lcilcbiAgICAgIHRoaXMucmVmcmVzaFRpbWVyID0gbnVsbFxuICAgIH1cbiAgICBpZiAoIWNyZWRzT3JNaWxsaXMpXG4gICAgICByZXR1cm5cblxuICAgIGxldCByZWZyZXNoSW5NczogbnVtYmVyXG4gICAgaWYgKHR5cGVvZiBjcmVkc09yTWlsbGlzID09PSBcIm51bWJlclwiKSB7XG4gICAgICByZWZyZXNoSW5NcyA9IGNyZWRzT3JNaWxsaXNcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3RcbiAgICAgICAgY3JlZHMgPSBjcmVkc09yTWlsbGlzLFxuICAgICAgICBleHBNcyA9IERhdGUucGFyc2UoY3JlZHMuZXhwaXJhdGlvbilcblxuICAgICAgcmVmcmVzaEluTXMgPSBleHBNcyAtIERhdGUubm93KCkgLSBDUkVEX0JVRkZFUl9QQURESU5HX01TXG5cbiAgICB9XG5cbiAgICByZWZyZXNoSW5NcyA9IE1hdGgubWF4KDEwMCwgcmVmcmVzaEluTXMpXG5cbiAgICB0aGlzLnJlZnJlc2hUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkRGVmZXJyZWQgPSBudWxsXG4gICAgICB0aGlzLmxvYWQoKS5jYXRjaCgoZTogRXJyb3IpID0+IGxvZy5lcnJvcihgcmVmcmVzaCBmYWlsZWQ6ICR7ZS5tZXNzYWdlfWAsIGUpKVxuICAgIH0sIHJlZnJlc2hJbk1zKVxuICB9XG5cbiAgZ2V0U3RyZWFtTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldENyZWRlbnRpYWxzKCk/LnN0cmVhbU5hbWVcbiAgfVxuXG4gIGdldFJlZ2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldENyZWRlbnRpYWxzKCk/LnJlZ2lvblxuICB9XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNjaGVkdWxlUmVmcmVzaChudWxsKVxuICAgIGlmICghdGhpcy5sb2FkRGVmZXJyZWQuaXNTZXR0bGVkKCkpXG4gICAgICB0aGlzLmxvYWREZWZlcnJlZC5yZWplY3QobmV3IEVycm9yKFwiZGVzdHJveWVkXCIpKVxuICAgIHRoaXMubG9hZERlZmVycmVkID0gbnVsbFxuICB9XG59XG5cblxuZXhwb3J0IGRlZmF1bHQgQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlclxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./aws-firehose/AWSFirehoseAppender.js"), exports);
|
|
18
|
+
__exportStar(require("./ConsoleAppender.js"), exports);
|
|
19
|
+
__exportStar(require("./push/PushLogRecordsAppender.js"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbG9nZ2luZy9hcHBlbmRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdFQUFxRDtBQUNyRCx1REFBb0M7QUFDcEMsbUVBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYXdzLWZpcmVob3NlL0FXU0ZpcmVob3NlQXBwZW5kZXIuanNcIlxuZXhwb3J0ICogZnJvbSBcIi4vQ29uc29sZUFwcGVuZGVyLmpzXCJcbmV4cG9ydCAqIGZyb20gXCIuL3B1c2gvUHVzaExvZ1JlY29yZHNBcHBlbmRlci5qc1wiXG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|