@autofleet/rabbit 1.5.5 → 1.5.7-1

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.
@@ -0,0 +1,5 @@
1
+ <component name="ProjectCodeStyleConfiguration">
2
+ <state>
3
+ <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
4
+ </state>
5
+ </component>
@@ -0,0 +1,158 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="AmdModulesDependencies" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
5
+ <inspection_tool class="BadExpressionStatementJS" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
6
+ <inspection_tool class="CallerJS" enabled="false" level="WARNING" enabled_by_default="false" />
7
+ <inspection_tool class="CommaExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
8
+ <inspection_tool class="ConstantConditionalExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
9
+ <inspection_tool class="ContinueOrBreakFromFinallyBlockJS" enabled="false" level="WARNING" enabled_by_default="false" />
10
+ <inspection_tool class="ES6AwaitOutsideAsyncFunction" enabled="false" level="ERROR" enabled_by_default="false" />
11
+ <inspection_tool class="ES6BindWithArrowFunction" enabled="false" level="WARNING" enabled_by_default="false" />
12
+ <inspection_tool class="ES6CheckImport" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
13
+ <inspection_tool class="ES6ClassMemberInitializationOrder" enabled="false" level="WARNING" enabled_by_default="false" />
14
+ <inspection_tool class="ES6ConvertLetToConst" enabled="false" level="INFORMATION" enabled_by_default="false" />
15
+ <inspection_tool class="ES6ConvertModuleExportToExport" enabled="false" level="INFORMATION" enabled_by_default="false" />
16
+ <inspection_tool class="ES6ConvertRequireIntoImport" enabled="false" level="INFORMATION" enabled_by_default="false" />
17
+ <inspection_tool class="ES6ConvertToForOf" enabled="false" level="INFORMATION" enabled_by_default="false" />
18
+ <inspection_tool class="ES6ConvertVarToLetConst" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
19
+ <inspection_tool class="ES6DestructuringVariablesMerge" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
20
+ <inspection_tool class="ES6MissingAwait" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
21
+ <inspection_tool class="ES6ModulesDependencies" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
22
+ <inspection_tool class="ES6PossiblyAsyncFunction" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
23
+ <inspection_tool class="ES6PreferShortImport" enabled="false" level="WARNING" enabled_by_default="false" />
24
+ <inspection_tool class="ES6RedundantAwait" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
25
+ <inspection_tool class="ES6RedundantNestingInTemplateLiteral" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
26
+ <inspection_tool class="ES6ShorthandObjectProperty" enabled="false" level="INFORMATION" enabled_by_default="false" />
27
+ <inspection_tool class="ES6UnusedImports" enabled="false" level="WARNING" enabled_by_default="false" />
28
+ <inspection_tool class="EmptyStatementBodyJS" enabled="false" level="WARNING" enabled_by_default="false">
29
+ <option name="m_reportEmptyBlocks" value="false" />
30
+ </inspection_tool>
31
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
32
+ <inspection_tool class="ExceptionCaughtLocallyJS" enabled="false" level="WARNING" enabled_by_default="false" />
33
+ <inspection_tool class="FallThroughInSwitchStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
34
+ <inspection_tool class="FlowJSConfig" enabled="false" level="WARNING" enabled_by_default="false" />
35
+ <inspection_tool class="FlowJSFlagCommentPlacement" enabled="false" level="WARNING" enabled_by_default="false" />
36
+ <inspection_tool class="IncompatibleMaskJS" enabled="false" level="WARNING" enabled_by_default="false" />
37
+ <inspection_tool class="InfiniteLoopJS" enabled="false" level="WARNING" enabled_by_default="false" />
38
+ <inspection_tool class="InfiniteRecursionJS" enabled="false" level="WARNING" enabled_by_default="false" />
39
+ <inspection_tool class="JSAccessibilityCheck" enabled="false" level="WARNING" enabled_by_default="false" />
40
+ <inspection_tool class="JSAnnotator" enabled="false" level="ERROR" enabled_by_default="false" />
41
+ <inspection_tool class="JSArrowFunctionBracesCanBeRemoved" enabled="false" level="INFORMATION" enabled_by_default="false" />
42
+ <inspection_tool class="JSAssignmentUsedAsCondition" enabled="false" level="WARNING" enabled_by_default="false" />
43
+ <inspection_tool class="JSBitwiseOperatorUsage" enabled="false" level="WARNING" enabled_by_default="false" />
44
+ <inspection_tool class="JSCheckFunctionSignatures" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
45
+ <inspection_tool class="JSClosureCompilerSyntax" enabled="false" level="WARNING" enabled_by_default="false" />
46
+ <inspection_tool class="JSCommentMatchesSignature" enabled="false" level="WARNING" enabled_by_default="false" />
47
+ <inspection_tool class="JSComparisonWithNaN" enabled="false" level="WARNING" enabled_by_default="false" />
48
+ <inspection_tool class="JSConsecutiveCommasInArrayLiteral" enabled="false" level="WARNING" enabled_by_default="false" />
49
+ <inspection_tool class="JSConstantReassignment" enabled="false" level="ERROR" enabled_by_default="false" />
50
+ <inspection_tool class="JSDeprecatedSymbols" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
51
+ <inspection_tool class="JSDuplicateCaseLabel" enabled="false" level="WARNING" enabled_by_default="false" />
52
+ <inspection_tool class="JSDuplicatedDeclaration" enabled="false" level="WARNING" enabled_by_default="false" />
53
+ <inspection_tool class="JSEqualityComparisonWithCoercion" enabled="false" level="WARNING" enabled_by_default="false" />
54
+ <inspection_tool class="JSFileReferences" enabled="false" level="WARNING" enabled_by_default="false" />
55
+ <inspection_tool class="JSFunctionExpressionToArrowFunction" enabled="false" level="INFORMATION" enabled_by_default="false" />
56
+ <inspection_tool class="JSIgnoredPromiseFromCall" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
57
+ <inspection_tool class="JSIncompatibleTypesComparison" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
58
+ <inspection_tool class="JSJQueryEfficiency" enabled="false" level="WARNING" enabled_by_default="false" />
59
+ <inspection_tool class="JSJoinVariableDeclarationAndAssignment" enabled="false" level="INFORMATION" enabled_by_default="false" />
60
+ <inspection_tool class="JSLastCommaInArrayLiteral" enabled="false" level="WARNING" enabled_by_default="false" />
61
+ <inspection_tool class="JSLastCommaInObjectLiteral" enabled="false" level="WARNING" enabled_by_default="false" />
62
+ <inspection_tool class="JSMethodCanBeStatic" enabled="false" level="WARNING" enabled_by_default="false" />
63
+ <inspection_tool class="JSMismatchedCollectionQueryUpdate" enabled="false" level="WARNING" enabled_by_default="false">
64
+ <option name="queries" value="trace,write,forEach,length,size" />
65
+ <option name="updates" value="pop,push,shift,splice,unshift,add,insert,remove,reverse,copyWithin,fill,sort" />
66
+ </inspection_tool>
67
+ <inspection_tool class="JSMissingSwitchBranches" enabled="false" level="INFORMATION" enabled_by_default="false" />
68
+ <inspection_tool class="JSMissingSwitchDefault" enabled="false" level="INFORMATION" enabled_by_default="false" />
69
+ <inspection_tool class="JSNonASCIINames" enabled="false" level="WARNING" enabled_by_default="false" />
70
+ <inspection_tool class="JSObjectNullOrUndefined" enabled="false" level="WARNING" enabled_by_default="false" />
71
+ <inspection_tool class="JSObsoletePrivateAccessSyntax" enabled="false" level="ERROR" enabled_by_default="false" />
72
+ <inspection_tool class="JSOctalInteger" enabled="false" level="ERROR" enabled_by_default="false" />
73
+ <inspection_tool class="JSPotentiallyInvalidConstructorUsage" enabled="false" level="WARNING" enabled_by_default="false">
74
+ <option name="myConsiderUppercaseFunctionsToBeConstructors" value="true" />
75
+ </inspection_tool>
76
+ <inspection_tool class="JSPotentiallyInvalidTargetOfIndexedPropertyAccess" enabled="false" level="WARNING" enabled_by_default="false" />
77
+ <inspection_tool class="JSPotentiallyInvalidUsageOfClassThis" enabled="false" level="WARNING" enabled_by_default="false" />
78
+ <inspection_tool class="JSPotentiallyInvalidUsageOfThis" enabled="false" level="WARNING" enabled_by_default="false" />
79
+ <inspection_tool class="JSPrimitiveTypeWrapperUsage" enabled="false" level="WARNING" enabled_by_default="false" />
80
+ <inspection_tool class="JSRedundantSwitchStatement" enabled="false" level="INFORMATION" enabled_by_default="false" />
81
+ <inspection_tool class="JSReferencingArgumentsOutsideOfFunction" enabled="false" level="ERROR" enabled_by_default="false" />
82
+ <inspection_tool class="JSReferencingMutableVariableFromClosure" enabled="false" level="WARNING" enabled_by_default="false" />
83
+ <inspection_tool class="JSRemoveUnnecessaryParentheses" enabled="false" level="INFORMATION" enabled_by_default="false" />
84
+ <inspection_tool class="JSStringConcatenationToES6Template" enabled="false" level="INFORMATION" enabled_by_default="false" />
85
+ <inspection_tool class="JSSuspiciousEqPlus" enabled="false" level="WARNING" enabled_by_default="false" />
86
+ <inspection_tool class="JSSuspiciousNameCombination" enabled="false" level="WARNING" enabled_by_default="false">
87
+ <group names="x,width,left,right" />
88
+ <group names="y,height,top,bottom" />
89
+ <exclude classes="Math" />
90
+ </inspection_tool>
91
+ <inspection_tool class="JSSwitchVariableDeclarationIssue" enabled="false" level="WARNING" enabled_by_default="false" />
92
+ <inspection_tool class="JSTestFailedLine" enabled="false" level="WARNING" enabled_by_default="false" />
93
+ <inspection_tool class="JSTypeOfValues" enabled="false" level="WARNING" enabled_by_default="false" />
94
+ <inspection_tool class="JSUndeclaredVariable" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
95
+ <inspection_tool class="JSUndefinedPropertyAssignment" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
96
+ <inspection_tool class="JSUnfilteredForInLoop" enabled="false" level="WARNING" enabled_by_default="false" />
97
+ <inspection_tool class="JSUnnecessarySemicolon" enabled="false" level="WARNING" enabled_by_default="false" />
98
+ <inspection_tool class="JSUnreachableSwitchBranches" enabled="false" level="WARNING" enabled_by_default="false" />
99
+ <inspection_tool class="JSUnresolvedExtXType" enabled="false" level="WARNING" enabled_by_default="false" />
100
+ <inspection_tool class="JSUnresolvedFunction" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
101
+ <inspection_tool class="JSUnresolvedLibraryURL" enabled="false" level="WARNING" enabled_by_default="false" />
102
+ <inspection_tool class="JSUnresolvedVariable" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
103
+ <inspection_tool class="JSUnusedAssignment" enabled="false" level="WARNING" enabled_by_default="false" />
104
+ <inspection_tool class="JSUnusedGlobalSymbols" enabled="false" level="WARNING" enabled_by_default="false" />
105
+ <inspection_tool class="JSUnusedLocalSymbols" enabled="false" level="WARNING" enabled_by_default="false" />
106
+ <inspection_tool class="JSValidateJSDoc" enabled="false" level="WARNING" enabled_by_default="false" />
107
+ <inspection_tool class="JSValidateTypes" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
108
+ <inspection_tool class="JSXNamespaceValidation" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
109
+ <inspection_tool class="KarmaConfigFile" enabled="false" level="WARNING" enabled_by_default="false" />
110
+ <inspection_tool class="LoopStatementThatDoesntLoopJS" enabled="false" level="WARNING" enabled_by_default="false" />
111
+ <inspection_tool class="NodeCoreCodingAssistance" enabled="false" level="WARNING" enabled_by_default="false" />
112
+ <inspection_tool class="NodeModulesDependencies" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
113
+ <inspection_tool class="NpmUsedModulesInstalled" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
114
+ <inspection_tool class="PackageJsonMismatchedDependency" enabled="false" level="WARNING" enabled_by_default="false" />
115
+ <inspection_tool class="PointlessArithmeticExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
116
+ <inspection_tool class="PointlessBooleanExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
117
+ <inspection_tool class="ReservedWordUsedAsNameJS" enabled="false" level="WARNING" enabled_by_default="false" />
118
+ <inspection_tool class="ReturnFromFinallyBlockJS" enabled="false" level="WARNING" enabled_by_default="false" />
119
+ <inspection_tool class="ShiftOutOfRangeJS" enabled="false" level="WARNING" enabled_by_default="false" />
120
+ <inspection_tool class="SillyAssignmentJS" enabled="false" level="WARNING" enabled_by_default="false" />
121
+ <inspection_tool class="SuspiciousTypeOfGuard" enabled="false" level="WARNING" enabled_by_default="false" />
122
+ <inspection_tool class="ThisExpressionReferencesGlobalObjectJS" enabled="false" level="WARNING" enabled_by_default="false" />
123
+ <inspection_tool class="ThrowFromFinallyBlockJS" enabled="false" level="WARNING" enabled_by_default="false" />
124
+ <inspection_tool class="TrivialConditionalJS" enabled="false" level="WARNING" enabled_by_default="false" />
125
+ <inspection_tool class="TrivialIfJS" enabled="false" level="WARNING" enabled_by_default="false" />
126
+ <inspection_tool class="TypeScriptAbstractClassConstructorCanBeMadeProtected" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
127
+ <inspection_tool class="TypeScriptAccessibilityCheck" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
128
+ <inspection_tool class="TypeScriptCheckImport" enabled="false" level="ERROR" enabled_by_default="false" />
129
+ <inspection_tool class="TypeScriptConfig" enabled="false" level="WARNING" enabled_by_default="false" />
130
+ <inspection_tool class="TypeScriptDuplicateUnionOrIntersectionType" enabled="false" level="WARNING" enabled_by_default="false" />
131
+ <inspection_tool class="TypeScriptExplicitMemberType" enabled="false" level="INFORMATION" enabled_by_default="false" />
132
+ <inspection_tool class="TypeScriptFieldCanBeMadeReadonly" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
133
+ <inspection_tool class="TypeScriptLibrary" enabled="false" level="ERROR" enabled_by_default="false" />
134
+ <inspection_tool class="TypeScriptMissingAugmentationImport" enabled="false" level="INFORMATION" enabled_by_default="false" />
135
+ <inspection_tool class="TypeScriptMissingConfigOption" enabled="false" level="WARNING" enabled_by_default="false" />
136
+ <inspection_tool class="TypeScriptRedundantGenericType" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
137
+ <inspection_tool class="TypeScriptSmartCast" enabled="false" level="WARNING" enabled_by_default="false" />
138
+ <inspection_tool class="TypeScriptSuspiciousConstructorParameterAssignment" enabled="false" level="WARNING" enabled_by_default="false" />
139
+ <inspection_tool class="TypeScriptUMDGlobal" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
140
+ <inspection_tool class="TypeScriptUnresolvedFunction" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
141
+ <inspection_tool class="TypeScriptUnresolvedVariable" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
142
+ <inspection_tool class="TypeScriptValidateGenericTypes" enabled="false" level="ERROR" enabled_by_default="false" />
143
+ <inspection_tool class="TypeScriptValidateJSTypes" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
144
+ <inspection_tool class="TypeScriptValidateTypes" enabled="false" level="ERROR" enabled_by_default="false" />
145
+ <inspection_tool class="UnnecessaryContinueJS" enabled="false" level="WARNING" enabled_by_default="false" />
146
+ <inspection_tool class="UnnecessaryLabelJS" enabled="false" level="WARNING" enabled_by_default="false" />
147
+ <inspection_tool class="UnnecessaryLabelOnBreakStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
148
+ <inspection_tool class="UnnecessaryLabelOnContinueStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
149
+ <inspection_tool class="UnnecessaryLocalVariableJS" enabled="false" level="WARNING" enabled_by_default="false">
150
+ <option name="m_ignoreImmediatelyReturnedVariables" value="false" />
151
+ <option name="m_ignoreAnnotatedVariables" value="false" />
152
+ </inspection_tool>
153
+ <inspection_tool class="UnnecessaryReturnJS" enabled="false" level="WARNING" enabled_by_default="false" />
154
+ <inspection_tool class="UnreachableCodeJS" enabled="false" level="WARNING" enabled_by_default="false" />
155
+ <inspection_tool class="WebpackConfigHighlighting" enabled="false" level="WARNING" enabled_by_default="false" />
156
+ <inspection_tool class="WithStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
157
+ </profile>
158
+ </component>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="EslintConfiguration">
4
+ <option name="fix-on-save" value="true" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/rabbit.iml" filepath="$PROJECT_DIR$/.idea/rabbit.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <excludeFolder url="file://$MODULE_DIR$/.tmp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/temp" />
7
+ <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+ </content>
9
+ <orderEntry type="inheritedJdk" />
10
+ <orderEntry type="sourceFolder" forTests="false" />
11
+ </component>
12
+ </module>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,506 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="AutoImportSettings">
4
+ <option name="autoReloadType" value="SELECTIVE" />
5
+ </component>
6
+ <component name="BranchesTreeState">
7
+ <expand>
8
+ <path>
9
+ <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
10
+ <item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
11
+ </path>
12
+ <path>
13
+ <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
14
+ <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
15
+ </path>
16
+ <path>
17
+ <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
18
+ <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
19
+ <item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
20
+ </path>
21
+ <path>
22
+ <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
23
+ <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
24
+ <item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
25
+ <item name="GROUP_NODE:dependabot" type="e8cecc67:BranchNodeDescriptor" />
26
+ </path>
27
+ <path>
28
+ <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
29
+ <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
30
+ <item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
31
+ <item name="GROUP_NODE:dependabot" type="e8cecc67:BranchNodeDescriptor" />
32
+ <item name="GROUP_NODE:npm_and_yarn" type="e8cecc67:BranchNodeDescriptor" />
33
+ </path>
34
+ <path>
35
+ <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
36
+ <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
37
+ <item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
38
+ <item name="GROUP_NODE:hot-fix" type="e8cecc67:BranchNodeDescriptor" />
39
+ </path>
40
+ </expand>
41
+ <select />
42
+ </component>
43
+ <component name="ChangeListManager">
44
+ <list default="true" id="1723b515-3530-42bb-82ff-6779499ab47b" name="Default Changelist" comment="">
45
+ <change beforePath="$PROJECT_DIR$/src/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/index.ts" afterDir="false" />
46
+ </list>
47
+ <option name="SHOW_DIALOG" value="false" />
48
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
49
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
50
+ <option name="LAST_RESOLUTION" value="IGNORE" />
51
+ </component>
52
+ <component name="Git.Settings">
53
+ <option name="PREVIOUS_COMMIT_AUTHORS">
54
+ <list>
55
+ <option value="q" />
56
+ </list>
57
+ </option>
58
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
59
+ <option name="RESET_MODE" value="HARD" />
60
+ </component>
61
+ <component name="ProjectId" id="1kkbq4cPpgJtXBPfswsGj3HyZyE" />
62
+ <component name="ProjectViewState">
63
+ <option name="compactDirectories" value="true" />
64
+ <option name="hideEmptyMiddlePackages" value="true" />
65
+ <option name="showLibraryContents" value="true" />
66
+ <option name="showMembers" value="true" />
67
+ </component>
68
+ <component name="PropertiesComponent">
69
+ <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
70
+ <property name="WebServerToolWindowFactoryState" value="false" />
71
+ <property name="add_unversioned_files" value="$PROJECT_DIR$/node_modules/@types/amqp-connection-manager/index.d.ts" />
72
+ <property name="com.intellij.ide.scratch.LRUPopupBuilder$1/New Scratch File" value="ECMAScript 6" />
73
+ <property name="editorconfig.notification" value="null" />
74
+ <property name="last_opened_file_path" value="$PROJECT_DIR$" />
75
+ <property name="node.js.detected.package.eslint" value="true" />
76
+ <property name="node.js.detected.package.standard" value="true" />
77
+ <property name="node.js.path.for.package.eslint" value="project" />
78
+ <property name="node.js.path.for.package.standard" value="project" />
79
+ <property name="node.js.selected.package.eslint" value="(autodetect)" />
80
+ <property name="node.js.selected.package.standard" value="" />
81
+ <property name="nodejs.jest.jest_package" value="$PROJECT_DIR$/node_modules/jest" />
82
+ <property name="nodejs_interpreter_path" value="$USER_HOME$/.nvm/versions/node/v11.14.0/bin/node" />
83
+ <property name="nodejs_package_manager_path" value="npm" />
84
+ <property name="run.code.analysis.last.selected.profile" value="pProject Default" />
85
+ <property name="settings.editor.selected.configurable" value="settings.nodejs" />
86
+ <property name="ts.external.directory.path" value="$PROJECT_DIR$/node_modules/typescript/lib" />
87
+ <property name="vue.rearranger.settings.migration" value="true" />
88
+ </component>
89
+ <component name="RecentsManager">
90
+ <key name="MoveFile.RECENT_KEYS">
91
+ <recent name="$PROJECT_DIR$/.github/workflows" />
92
+ </key>
93
+ <key name="CopyFile.RECENT_KEYS">
94
+ <recent name="$PROJECT_DIR$" />
95
+ </key>
96
+ </component>
97
+ <component name="RunAnythingCache">
98
+ <option name="myCommands">
99
+ <command value="open common-types" />
100
+ <command value="open placement-ms" />
101
+ </option>
102
+ </component>
103
+ <component name="RunManager" selected="Node.js.scratch_116.es6">
104
+ <configuration name="all" type="JavaScriptTestRunnerJest">
105
+ <node-interpreter value="project" />
106
+ <node-options value="" />
107
+ <jest-package value="$PROJECT_DIR$/node_modules/jest" />
108
+ <working-dir value="$PROJECT_DIR$" />
109
+ <envs>
110
+ <env name="RABBITMQ_SERVICE_HOST" value="34.76.223.229:5672" />
111
+ </envs>
112
+ <scope-kind value="ALL" />
113
+ <method v="2" />
114
+ </configuration>
115
+ <configuration name="scratch_115.es6" type="NodeJSConfigurationType" temporary="true" nameIsGenerated="true" path-to-js-file="$APPLICATION_CONFIG_DIR$/scratches/scratch_115.es6" working-dir="$PROJECT_DIR$">
116
+ <method v="2" />
117
+ </configuration>
118
+ <configuration name="scratch_116.es6" type="NodeJSConfigurationType" temporary="true" nameIsGenerated="true" path-to-js-file="$APPLICATION_CONFIG_DIR$/scratches/scratch_116.es6" working-dir="$PROJECT_DIR$">
119
+ <method v="2" />
120
+ </configuration>
121
+ <configuration name="coverage" type="js.build_tools.npm" nameIsGenerated="true">
122
+ <package-json value="$PROJECT_DIR$/package.json" />
123
+ <command value="run" />
124
+ <scripts>
125
+ <script value="coverage" />
126
+ </scripts>
127
+ <node-interpreter value="project" />
128
+ <envs>
129
+ <env name="RABBITMQ_SERVICE_HOST" value="34.76.223.229:5672" />
130
+ </envs>
131
+ <method v="2" />
132
+ </configuration>
133
+ <configuration name="prepublish" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
134
+ <package-json value="$PROJECT_DIR$/package.json" />
135
+ <command value="run" />
136
+ <scripts>
137
+ <script value="prepublish" />
138
+ </scripts>
139
+ <node-interpreter value="project" />
140
+ <envs />
141
+ <method v="2" />
142
+ </configuration>
143
+ <configuration name="test-local" type="js.build_tools.npm" temporary="true">
144
+ <package-json value="$PROJECT_DIR$/package.json" />
145
+ <command value="run" />
146
+ <scripts>
147
+ <script value="test-local" />
148
+ </scripts>
149
+ <node-interpreter value="project" />
150
+ <envs />
151
+ <method v="2" />
152
+ </configuration>
153
+ <configuration name="test" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
154
+ <package-json value="$PROJECT_DIR$/package.json" />
155
+ <command value="run" />
156
+ <scripts>
157
+ <script value="test" />
158
+ </scripts>
159
+ <node-interpreter value="project" />
160
+ <envs />
161
+ <method v="2" />
162
+ </configuration>
163
+ <list>
164
+ <item itemvalue="Jest.all" />
165
+ <item itemvalue="Node.js.scratch_115.es6" />
166
+ <item itemvalue="Node.js.scratch_116.es6" />
167
+ <item itemvalue="npm.coverage" />
168
+ <item itemvalue="npm.prepublish" />
169
+ <item itemvalue="npm.test-local" />
170
+ <item itemvalue="npm.test" />
171
+ </list>
172
+ <recent_temporary>
173
+ <list>
174
+ <item itemvalue="Node.js.scratch_116.es6" />
175
+ <item itemvalue="Node.js.scratch_115.es6" />
176
+ <item itemvalue="npm.test-local" />
177
+ <item itemvalue="npm.test" />
178
+ <item itemvalue="npm.prepublish" />
179
+ </list>
180
+ </recent_temporary>
181
+ </component>
182
+ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
183
+ <component name="TaskManager">
184
+ <task active="true" id="Default" summary="Default task">
185
+ <changelist id="1723b515-3530-42bb-82ff-6779499ab47b" name="Default Changelist" comment="" />
186
+ <created>1606247725673</created>
187
+ <option name="number" value="Default" />
188
+ <option name="presentableId" value="Default" />
189
+ <updated>1606247725673</updated>
190
+ <workItem from="1606247727265" duration="13430000" />
191
+ <workItem from="1606382729664" duration="198000" />
192
+ <workItem from="1606829370658" duration="21577000" />
193
+ <workItem from="1606917300059" duration="14413000" />
194
+ <workItem from="1607078177282" duration="104000" />
195
+ <workItem from="1607078303904" duration="125000" />
196
+ <workItem from="1607078775174" duration="236000" />
197
+ <workItem from="1607079027954" duration="199000" />
198
+ <workItem from="1607079531155" duration="17000" />
199
+ <workItem from="1607079570023" duration="2327000" />
200
+ <workItem from="1607336805742" duration="5378000" />
201
+ <workItem from="1608730385550" duration="1504000" />
202
+ <workItem from="1608732614257" duration="1797000" />
203
+ <workItem from="1609075001438" duration="5775000" />
204
+ <workItem from="1609106672294" duration="594000" />
205
+ <workItem from="1609146731453" duration="21000" />
206
+ <workItem from="1609193609209" duration="1486000" />
207
+ <workItem from="1609629219943" duration="3863000" />
208
+ </task>
209
+ <task id="LOCAL-00001" summary="validate name before usage">
210
+ <created>1606375684964</created>
211
+ <option name="number" value="00001" />
212
+ <option name="presentableId" value="LOCAL-00001" />
213
+ <option name="project" value="LOCAL" />
214
+ <updated>1606375684964</updated>
215
+ </task>
216
+ <task id="LOCAL-00002" summary="adding timeout to publish">
217
+ <created>1606835517532</created>
218
+ <option name="number" value="00002" />
219
+ <option name="presentableId" value="LOCAL-00002" />
220
+ <option name="project" value="LOCAL" />
221
+ <updated>1606835517532</updated>
222
+ </task>
223
+ <task id="LOCAL-00003" summary="adding ci">
224
+ <created>1606835975767</created>
225
+ <option name="number" value="00003" />
226
+ <option name="presentableId" value="LOCAL-00003" />
227
+ <option name="project" value="LOCAL" />
228
+ <updated>1606835975767</updated>
229
+ </task>
230
+ <task id="LOCAL-00004" summary="linter project fix">
231
+ <created>1606836614988</created>
232
+ <option name="number" value="00004" />
233
+ <option name="presentableId" value="LOCAL-00004" />
234
+ <option name="project" value="LOCAL" />
235
+ <updated>1606836614988</updated>
236
+ </task>
237
+ <task id="LOCAL-00005" summary="fix">
238
+ <created>1606836726909</created>
239
+ <option name="number" value="00005" />
240
+ <option name="presentableId" value="LOCAL-00005" />
241
+ <option name="project" value="LOCAL" />
242
+ <updated>1606836726909</updated>
243
+ </task>
244
+ <task id="LOCAL-00006" summary="fix">
245
+ <created>1606836810770</created>
246
+ <option name="number" value="00006" />
247
+ <option name="presentableId" value="LOCAL-00006" />
248
+ <option name="project" value="LOCAL" />
249
+ <updated>1606836810770</updated>
250
+ </task>
251
+ <task id="LOCAL-00007" summary="speedup">
252
+ <created>1606836887964</created>
253
+ <option name="number" value="00007" />
254
+ <option name="presentableId" value="LOCAL-00007" />
255
+ <option name="project" value="LOCAL" />
256
+ <updated>1606836887964</updated>
257
+ </task>
258
+ <task id="LOCAL-00008" summary="added exchange name">
259
+ <created>1606896219788</created>
260
+ <option name="number" value="00008" />
261
+ <option name="presentableId" value="LOCAL-00008" />
262
+ <option name="project" value="LOCAL" />
263
+ <updated>1606896219788</updated>
264
+ </task>
265
+ <task id="LOCAL-00009" summary="fix">
266
+ <created>1606896520899</created>
267
+ <option name="number" value="00009" />
268
+ <option name="presentableId" value="LOCAL-00009" />
269
+ <option name="project" value="LOCAL" />
270
+ <updated>1606896520899</updated>
271
+ </task>
272
+ <task id="LOCAL-00010" summary="fix">
273
+ <created>1606896542182</created>
274
+ <option name="number" value="00010" />
275
+ <option name="presentableId" value="LOCAL-00010" />
276
+ <option name="project" value="LOCAL" />
277
+ <updated>1606896542182</updated>
278
+ </task>
279
+ <task id="LOCAL-00011" summary="tests">
280
+ <created>1606897178798</created>
281
+ <option name="number" value="00011" />
282
+ <option name="presentableId" value="LOCAL-00011" />
283
+ <option name="project" value="LOCAL" />
284
+ <updated>1606897178798</updated>
285
+ </task>
286
+ <task id="LOCAL-00012" summary="lint">
287
+ <created>1606897323855</created>
288
+ <option name="number" value="00012" />
289
+ <option name="presentableId" value="LOCAL-00012" />
290
+ <option name="project" value="LOCAL" />
291
+ <updated>1606897323855</updated>
292
+ </task>
293
+ <task id="LOCAL-00013" summary="more tests">
294
+ <created>1606899570854</created>
295
+ <option name="number" value="00013" />
296
+ <option name="presentableId" value="LOCAL-00013" />
297
+ <option name="project" value="LOCAL" />
298
+ <updated>1606899570854</updated>
299
+ </task>
300
+ <task id="LOCAL-00014" summary="more tests">
301
+ <created>1606901258614</created>
302
+ <option name="number" value="00014" />
303
+ <option name="presentableId" value="LOCAL-00014" />
304
+ <option name="project" value="LOCAL" />
305
+ <updated>1606901258614</updated>
306
+ </task>
307
+ <task id="LOCAL-00015" summary="fix rebase">
308
+ <created>1606903555798</created>
309
+ <option name="number" value="00015" />
310
+ <option name="presentableId" value="LOCAL-00015" />
311
+ <option name="project" value="LOCAL" />
312
+ <updated>1606903555798</updated>
313
+ </task>
314
+ <task id="LOCAL-00016" summary="remove dry run">
315
+ <created>1606904172238</created>
316
+ <option name="number" value="00016" />
317
+ <option name="presentableId" value="LOCAL-00016" />
318
+ <option name="project" value="LOCAL" />
319
+ <updated>1606904172238</updated>
320
+ </task>
321
+ <task id="LOCAL-00017" summary="fix_setup_rebased">
322
+ <created>1606904762864</created>
323
+ <option name="number" value="00017" />
324
+ <option name="presentableId" value="LOCAL-00017" />
325
+ <option name="project" value="LOCAL" />
326
+ <updated>1606904762864</updated>
327
+ </task>
328
+ <task id="LOCAL-00018" summary="trying to deps issue">
329
+ <created>1606915494203</created>
330
+ <option name="number" value="00018" />
331
+ <option name="presentableId" value="LOCAL-00018" />
332
+ <option name="project" value="LOCAL" />
333
+ <updated>1606915494203</updated>
334
+ </task>
335
+ <task id="LOCAL-00019" summary="fix">
336
+ <created>1606915709197</created>
337
+ <option name="number" value="00019" />
338
+ <option name="presentableId" value="LOCAL-00019" />
339
+ <option name="project" value="LOCAL" />
340
+ <updated>1606915709197</updated>
341
+ </task>
342
+ <task id="LOCAL-00020" summary="fix jest version">
343
+ <created>1606917673879</created>
344
+ <option name="number" value="00020" />
345
+ <option name="presentableId" value="LOCAL-00020" />
346
+ <option name="project" value="LOCAL" />
347
+ <updated>1606917673879</updated>
348
+ </task>
349
+ <task id="LOCAL-00021" summary="fix bug">
350
+ <created>1606991487518</created>
351
+ <option name="number" value="00021" />
352
+ <option name="presentableId" value="LOCAL-00021" />
353
+ <option name="project" value="LOCAL" />
354
+ <updated>1606991487518</updated>
355
+ </task>
356
+ <task id="LOCAL-00022" summary="lint">
357
+ <created>1606991581442</created>
358
+ <option name="number" value="00022" />
359
+ <option name="presentableId" value="LOCAL-00022" />
360
+ <option name="project" value="LOCAL" />
361
+ <updated>1606991581442</updated>
362
+ </task>
363
+ <task id="LOCAL-00023" summary="adding getQueueLength">
364
+ <created>1607002290463</created>
365
+ <option name="number" value="00023" />
366
+ <option name="presentableId" value="LOCAL-00023" />
367
+ <option name="project" value="LOCAL" />
368
+ <updated>1607002290463</updated>
369
+ </task>
370
+ <task id="LOCAL-00024" summary="tests">
371
+ <created>1607003599348</created>
372
+ <option name="number" value="00024" />
373
+ <option name="presentableId" value="LOCAL-00024" />
374
+ <option name="project" value="LOCAL" />
375
+ <updated>1607003599348</updated>
376
+ </task>
377
+ <task id="LOCAL-00025" summary="fix ts">
378
+ <created>1608732876582</created>
379
+ <option name="number" value="00025" />
380
+ <option name="presentableId" value="LOCAL-00025" />
381
+ <option name="project" value="LOCAL" />
382
+ <updated>1608732876582</updated>
383
+ </task>
384
+ <task id="LOCAL-00026" summary="fix ts">
385
+ <created>1608732889194</created>
386
+ <option name="number" value="00026" />
387
+ <option name="presentableId" value="LOCAL-00026" />
388
+ <option name="project" value="LOCAL" />
389
+ <updated>1608732889194</updated>
390
+ </task>
391
+ <task id="LOCAL-00027" summary="add dead msg ttl option">
392
+ <created>1609077111668</created>
393
+ <option name="number" value="00027" />
394
+ <option name="presentableId" value="LOCAL-00027" />
395
+ <option name="project" value="LOCAL" />
396
+ <updated>1609077111668</updated>
397
+ </task>
398
+ <task id="LOCAL-00028" summary="fix">
399
+ <created>1609077372036</created>
400
+ <option name="number" value="00028" />
401
+ <option name="presentableId" value="LOCAL-00028" />
402
+ <option name="project" value="LOCAL" />
403
+ <updated>1609077372036</updated>
404
+ </task>
405
+ <task id="LOCAL-00029" summary="consumeFromExchange">
406
+ <created>1609078082651</created>
407
+ <option name="number" value="00029" />
408
+ <option name="presentableId" value="LOCAL-00029" />
409
+ <option name="project" value="LOCAL" />
410
+ <updated>1609078082651</updated>
411
+ </task>
412
+ <task id="LOCAL-00030" summary="consumeFromExchange">
413
+ <created>1609078249310</created>
414
+ <option name="number" value="00030" />
415
+ <option name="presentableId" value="LOCAL-00030" />
416
+ <option name="project" value="LOCAL" />
417
+ <updated>1609078249310</updated>
418
+ </task>
419
+ <option name="localTasksCounter" value="31" />
420
+ <servers />
421
+ </component>
422
+ <component name="TypeScriptGeneratedFilesManager">
423
+ <option name="version" value="3" />
424
+ </component>
425
+ <component name="Vcs.Log.Tabs.Properties">
426
+ <option name="TAB_STATES">
427
+ <map>
428
+ <entry key="MAIN">
429
+ <value>
430
+ <State>
431
+ <option name="FILTERS">
432
+ <map>
433
+ <entry key="branch">
434
+ <value>
435
+ <list>
436
+ <option value="HEAD" />
437
+ </list>
438
+ </value>
439
+ </entry>
440
+ </map>
441
+ </option>
442
+ </State>
443
+ </value>
444
+ </entry>
445
+ </map>
446
+ </option>
447
+ <option name="RECENT_FILTERS">
448
+ <map>
449
+ <entry key="Branch">
450
+ <value>
451
+ <list>
452
+ <RecentGroup>
453
+ <option name="FILTER_VALUES">
454
+ <option value="HEAD" />
455
+ </option>
456
+ </RecentGroup>
457
+ <RecentGroup>
458
+ <option name="FILTER_VALUES">
459
+ <option value="origin/fix_setup_rebased" />
460
+ </option>
461
+ </RecentGroup>
462
+ <RecentGroup>
463
+ <option name="FILTER_VALUES">
464
+ <option value="origin/fix_setup" />
465
+ </option>
466
+ </RecentGroup>
467
+ </list>
468
+ </value>
469
+ </entry>
470
+ </map>
471
+ </option>
472
+ <option name="oldMeFiltersMigrated" value="true" />
473
+ </component>
474
+ <component name="VcsManagerConfiguration">
475
+ <MESSAGE value="validate name before usage" />
476
+ <MESSAGE value="adding timeout to publish" />
477
+ <MESSAGE value="adding ci" />
478
+ <MESSAGE value="linter project fix" />
479
+ <MESSAGE value="speedup" />
480
+ <MESSAGE value="added exchange name" />
481
+ <MESSAGE value="more tests" />
482
+ <MESSAGE value="fix rebase" />
483
+ <MESSAGE value="remove dry run" />
484
+ <MESSAGE value="fix_setup_rebased" />
485
+ <MESSAGE value="trying to deps issue" />
486
+ <MESSAGE value="fix jest version" />
487
+ <MESSAGE value="fix bug" />
488
+ <MESSAGE value="lint" />
489
+ <MESSAGE value="adding getQueueLength" />
490
+ <MESSAGE value="tests" />
491
+ <MESSAGE value="bind queue fix" />
492
+ <MESSAGE value="new trace" />
493
+ <MESSAGE value="fix ts" />
494
+ <MESSAGE value="add dead msg ttl option" />
495
+ <MESSAGE value="consumeFromExchange" />
496
+ <MESSAGE value="fix" />
497
+ <option name="LAST_COMMIT_MESSAGE" value="fix" />
498
+ </component>
499
+ <component name="XSLT-Support.FileAssociations.UIState">
500
+ <expand />
501
+ <select />
502
+ </component>
503
+ <component name="com.intellij.coverage.CoverageDataManagerImpl">
504
+ <SUITE FILE_PATH="coverage/rabbit$RabbitMQ_cant_publish_to_unknown_exchange.info" NAME="all Coverage Results" MODIFIED="1606901213465" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="JestJavaScriptTestRunnerCoverage" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" />
505
+ </component>
506
+ </project>
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ import { Options } from 'amqplib';
2
3
  import { AmqpConnectionManager, ChannelWrapper } from 'amqp-connection-manager';
3
4
  import { EventEmitter } from 'events';
4
5
  interface ExchangesCache {
@@ -7,6 +8,10 @@ interface ExchangesCache {
7
8
  declare class RabbitMq {
8
9
  static parseMsg(msg: any): any;
9
10
  static validateName(type: string, name: string): void;
11
+ static consumeOptions(options?: any): {
12
+ limit: number;
13
+ deadMessageTtl: number;
14
+ };
10
15
  PUBLISH_TIMEOUT: number;
11
16
  PUBLISH_ERROR_MSG: string;
12
17
  DISCONNECT_MSG: string;
@@ -17,16 +22,16 @@ declare class RabbitMq {
17
22
  exchanges: ExchangesCache;
18
23
  constructor();
19
24
  ack: (msg: any) => Promise<void>;
20
- nack: (queue: string) => (msg: any, retries: number) => Promise<void>;
25
+ nack: (queue: string, options?: Options.AssertQueue | undefined) => (msg: any, retries: number) => Promise<void>;
21
26
  getConnection(): Promise<AmqpConnectionManager>;
22
27
  assertChannel(): Promise<ChannelWrapper>;
23
28
  assertExchange(exchangeName: string, options?: any): Promise<any>;
24
29
  getQueueLength(queue: string): Promise<any>;
25
30
  bindQueue(queue: string, exchange: string): Promise<any>;
26
- assertQueue(queue: string, options?: any): Promise<void>;
31
+ assertQueue(queue: string, options?: Options.AssertQueue): Promise<void>;
27
32
  consume(queue: string, callback: (msg: any, ack: Function, nack: Function) => any, options?: any): Promise<void>;
28
33
  consumeFromExchange(queue: string, exchange: string, callback: (msg: any, ack: Function, nack: Function) => any, options?: any): Promise<void>;
29
34
  publish(exchange: string, content: any): Promise<unknown>;
30
- sendToQueue(queue: string, content: any): Promise<void>;
35
+ sendToQueue(queue: string, content: any, options?: any): Promise<void>;
31
36
  }
32
37
  export default RabbitMq;
package/dist/index.js CHANGED
@@ -50,16 +50,19 @@ class RabbitMq {
50
50
  yield this.channel.ack(msg);
51
51
  }
52
52
  });
53
- this.nack = (queue) => (msg, retries) => __awaiter(this, void 0, void 0, function* () {
53
+ this.nack = (queue, options) => (msg, retries) => __awaiter(this, void 0, void 0, function* () {
54
+ if (options === null || options === void 0 ? void 0 : options.messageTtl) {
55
+ msg.content['x-message-ttl'] = options.messageTtl;
56
+ }
54
57
  if (this.channel) {
55
58
  if (!msg.content['x-retry-count'] || msg.content['x-retry-count'] <= retries) {
56
59
  msg.content['x-retry-count'] = msg.content['x-retry-count'] ? msg.content['x-retry-count'] + 1 : 1;
57
- yield this.sendToQueue(queue, msg.content);
60
+ yield this.sendToQueue(queue, msg.content, options);
58
61
  }
59
62
  else {
60
63
  const deadQueue = `${queue}-dead`;
61
- yield this.assertQueue(deadQueue);
62
- yield this.sendToQueue(deadQueue, msg.content);
64
+ yield this.assertQueue(deadQueue, options);
65
+ yield this.sendToQueue(deadQueue, msg.content, options);
63
66
  }
64
67
  yield this.channel.ack(msg);
65
68
  }
@@ -84,6 +87,9 @@ class RabbitMq {
84
87
  throw new rabbitError_1.default(`error while using ${type} with no name`);
85
88
  }
86
89
  }
90
+ static consumeOptions(options) {
91
+ return Object.assign({ limit: 1, deadMessageTtl: null }, options);
92
+ }
87
93
  getConnection() {
88
94
  return __awaiter(this, void 0, void 0, function* () {
89
95
  return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
@@ -156,30 +162,31 @@ class RabbitMq {
156
162
  return __awaiter(this, void 0, void 0, function* () {
157
163
  RabbitMq.validateName('queue', queue);
158
164
  const channel = yield this.assertChannel();
159
- return channel.addSetup((c) => c.assertQueue(queue));
165
+ return channel.addSetup((c) => c.assertQueue(queue, options));
160
166
  });
161
167
  }
162
168
  consume(queue, callback, options) {
163
169
  return __awaiter(this, void 0, void 0, function* () {
164
- outbreak_1.newTrace(outbreak_1.traceTypes.RABBIT);
165
170
  RabbitMq.validateName('queue', queue);
166
- const { limit } = (options && options.limit) ? options : { limit: 1 };
171
+ const { limit, deadMessageTtl } = RabbitMq.consumeOptions(options);
167
172
  const channel = yield this.assertChannel();
168
173
  return channel.addSetup((c) => __awaiter(this, void 0, void 0, function* () {
169
174
  yield c.assertQueue(queue);
170
175
  yield c.prefetch(limit, true);
171
176
  return Promise.all([
172
- c.consume(queue, (msg) => callback(RabbitMq.parseMsg(msg), this.ack, this.nack(queue))),
177
+ c.consume(queue, (msg) => {
178
+ outbreak_1.newTrace(outbreak_1.traceTypes.RABBIT);
179
+ callback(RabbitMq.parseMsg(msg), this.ack, this.nack(queue, { messageTtl: deadMessageTtl }));
180
+ }),
173
181
  ]);
174
182
  }));
175
183
  });
176
184
  }
177
185
  consumeFromExchange(queue, exchange, callback, options) {
178
186
  return __awaiter(this, void 0, void 0, function* () {
179
- outbreak_1.newTrace(outbreak_1.traceTypes.RABBIT);
180
187
  RabbitMq.validateName('queue', queue);
181
188
  RabbitMq.validateName('exchange', exchange);
182
- const { limit } = (options && options.limit) ? options : { limit: 1 };
189
+ const { limit, deadMessageTtl } = RabbitMq.consumeOptions(options);
183
190
  const channel = yield this.assertChannel();
184
191
  return channel.addSetup((c) => __awaiter(this, void 0, void 0, function* () {
185
192
  const assertExchange = yield assertExchangeFanout(c, exchange);
@@ -188,7 +195,10 @@ class RabbitMq {
188
195
  yield c.prefetch(limit, true);
189
196
  return Promise.all([
190
197
  c.bindQueue(queue, exchange, ''),
191
- c.consume(queue, (msg) => callback(RabbitMq.parseMsg(msg), this.ack, this.nack(queue))),
198
+ c.consume(queue, (msg) => {
199
+ outbreak_1.newTrace(outbreak_1.traceTypes.RABBIT);
200
+ callback(RabbitMq.parseMsg(msg), this.ack, this.nack(queue, { messageTtl: deadMessageTtl }));
201
+ }),
192
202
  ]);
193
203
  }));
194
204
  });
@@ -204,11 +214,11 @@ class RabbitMq {
204
214
  })).timeout(this.PUBLISH_TIMEOUT, `${this.PUBLISH_ERROR_MSG}${exchange}`);
205
215
  });
206
216
  }
207
- sendToQueue(queue, content) {
217
+ sendToQueue(queue, content, options) {
208
218
  return __awaiter(this, void 0, void 0, function* () {
209
219
  RabbitMq.validateName('queue', queue);
210
220
  const channel = yield this.assertChannel();
211
- yield this.assertQueue(queue);
221
+ yield this.assertQueue(queue, options);
212
222
  return channel.sendToQueue(queue, Buffer.from(JSON.stringify(content)));
213
223
  });
214
224
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autofleet/rabbit",
3
- "version": "1.5.5",
3
+ "version": "1.5.7-1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/ban-ts-comment,@typescript-eslint/ban-types,@typescript-eslint/no-unused-vars,consistent-return,no-async-promise-executor,no-param-reassign,no-empty */
2
2
  // eslint-disable-next-line max-classes-per-file
3
3
  import * as bluebird from 'bluebird';
4
- import { ConfirmChannel } from 'amqplib';
4
+ import { ConfirmChannel, Options } from 'amqplib';
5
5
  import { AmqpConnectionManager, ChannelWrapper, connect } from 'amqp-connection-manager';
6
6
  import { EventEmitter } from 'events';
7
7
  import { newTrace, traceTypes } from '@autofleet/outbreak';
@@ -35,6 +35,14 @@ class RabbitMq {
35
35
  }
36
36
  }
37
37
 
38
+ static consumeOptions(options?: any): {limit: number, deadMessageTtl: number} {
39
+ return {
40
+ limit: 1,
41
+ deadMessageTtl: null,
42
+ ...options,
43
+ };
44
+ }
45
+
38
46
  PUBLISH_TIMEOUT = Number(process.env.RABBITMQ_PUBLISH_TIMEOUT) || 60000;
39
47
 
40
48
  PUBLISH_ERROR_MSG = `rabbit: publish timeout(${this.PUBLISH_TIMEOUT}ms) has pass, exchange: `;
@@ -65,15 +73,18 @@ class RabbitMq {
65
73
  }
66
74
  }
67
75
 
68
- public nack = (queue: string) => async (msg: any, retries: number) => {
76
+ public nack = (queue: string, options?: Options.AssertQueue) => async (msg: any, retries: number) => {
77
+ if (options?.messageTtl) {
78
+ msg.content['x-message-ttl'] = options.messageTtl;
79
+ }
69
80
  if (this.channel) {
70
81
  if (!msg.content['x-retry-count'] || msg.content['x-retry-count'] <= retries) {
71
82
  msg.content['x-retry-count'] = msg.content['x-retry-count'] ? msg.content['x-retry-count'] + 1 : 1;
72
- await this.sendToQueue(queue, msg.content);
83
+ await this.sendToQueue(queue, msg.content, options);
73
84
  } else {
74
85
  const deadQueue = `${queue}-dead`;
75
- await this.assertQueue(deadQueue);
76
- await this.sendToQueue(deadQueue, msg.content);
86
+ await this.assertQueue(deadQueue, options);
87
+ await this.sendToQueue(deadQueue, msg.content, options);
77
88
  }
78
89
  await this.channel.ack(msg);
79
90
  }
@@ -144,31 +155,35 @@ class RabbitMq {
144
155
  return channel.bindQueue(queue, exchange, '');
145
156
  }
146
157
 
147
- async assertQueue(queue: string, options?: any) {
158
+ async assertQueue(queue: string, options?: Options.AssertQueue) {
148
159
  RabbitMq.validateName('queue', queue);
149
160
  const channel: ChannelWrapper = await this.assertChannel();
150
- return channel.addSetup((c: ConfirmChannel) => c.assertQueue(queue));
161
+ return channel.addSetup((c: ConfirmChannel) => c.assertQueue(queue, options));
151
162
  }
152
163
 
153
164
  async consume(queue: string, callback: (msg: any, ack: Function, nack: Function) => any, options?: any) {
154
- newTrace(traceTypes.RABBIT);
155
165
  RabbitMq.validateName('queue', queue);
156
- const { limit } = (options && options.limit) ? options : { limit: 1 };
166
+ const { limit, deadMessageTtl } = RabbitMq.consumeOptions(options);
157
167
  const channel: ChannelWrapper = await this.assertChannel();
158
168
  return channel.addSetup(async (c: ConfirmChannel) => {
159
169
  await c.assertQueue(queue);
160
170
  await c.prefetch(limit, true);
161
171
  return Promise.all([
162
- c.consume(queue, (msg: any) => callback(RabbitMq.parseMsg(msg), this.ack, this.nack(queue))),
172
+ c.consume(
173
+ queue,
174
+ (msg: any) => {
175
+ newTrace(traceTypes.RABBIT);
176
+ callback(RabbitMq.parseMsg(msg), this.ack, this.nack(queue, { messageTtl: deadMessageTtl }));
177
+ },
178
+ ),
163
179
  ]);
164
180
  });
165
181
  }
166
182
 
167
183
  async consumeFromExchange(queue: string, exchange: string, callback: (msg: any, ack: Function, nack: Function) => any, options?: any) {
168
- newTrace(traceTypes.RABBIT);
169
184
  RabbitMq.validateName('queue', queue);
170
185
  RabbitMq.validateName('exchange', exchange);
171
- const { limit } = (options && options.limit) ? options : { limit: 1 };
186
+ const { limit, deadMessageTtl } = RabbitMq.consumeOptions(options);
172
187
  const channel: ChannelWrapper = await this.assertChannel();
173
188
 
174
189
  return channel.addSetup(async (c: ConfirmChannel) => {
@@ -178,7 +193,13 @@ class RabbitMq {
178
193
  await c.prefetch(limit, true);
179
194
  return Promise.all([
180
195
  c.bindQueue(queue, exchange, ''),
181
- c.consume(queue, (msg: any) => callback(RabbitMq.parseMsg(msg), this.ack, this.nack(queue))),
196
+ c.consume(
197
+ queue,
198
+ (msg: any) => {
199
+ newTrace(traceTypes.RABBIT);
200
+ callback(RabbitMq.parseMsg(msg), this.ack, this.nack(queue, { messageTtl: deadMessageTtl }));
201
+ },
202
+ ),
182
203
  ]);
183
204
  });
184
205
  }
@@ -193,10 +214,10 @@ class RabbitMq {
193
214
  }).timeout(this.PUBLISH_TIMEOUT, `${this.PUBLISH_ERROR_MSG}${exchange}`);
194
215
  }
195
216
 
196
- async sendToQueue(queue: string, content: any) {
217
+ async sendToQueue(queue: string, content: any, options?: any) {
197
218
  RabbitMq.validateName('queue', queue);
198
219
  const channel: ChannelWrapper = await this.assertChannel();
199
- await this.assertQueue(queue);
220
+ await this.assertQueue(queue, options);
200
221
  return channel.sendToQueue(queue, Buffer.from(JSON.stringify(content)));
201
222
  }
202
223
  }