Compare View

switch
from
...
to
 
Commits (2)

Changes

Showing 22 changed files Inline Diff

1 ### Changelog 1 ### Changelog
2 2
3 All notable changes to this project will be documented in this file. Dates are displayed in UTC. 3 All notable changes to this project will be documented in this file. Dates are displayed in UTC.
4 4
5 Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). 5 Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6 6
7 #### [v1.43.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.42.3...v1.43.0)
8
9 - Remove reference to komodo-sdk/logger [`003038b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/003038ba0b0829fde47637bc38d831c6ef33da6b)
10
7 #### [v1.42.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.42.2...v1.42.3) 11 #### [v1.42.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.42.2...v1.42.3)
8 12
13 > 11 September 2021
14
9 - Update repository url to https [`f66fcdc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f66fcdc1a87930a9acdad980ea15156cab87d9c7) 15 - Update repository url to https [`f66fcdc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f66fcdc1a87930a9acdad980ea15156cab87d9c7)
10 16
11 #### [v1.42.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.42.1...v1.42.2) 17 #### [v1.42.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.42.1...v1.42.2)
12 18
13 > 11 September 2021 19 > 11 September 2021
14 20
15 - Bump to tektrans-logger@1.1.3 [`1681ebc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1681ebcca4126ff2eb087ccb4d59a72a7e8a7737) 21 - Bump to tektrans-logger@1.1.3 [`1681ebc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1681ebcca4126ff2eb087ccb4d59a72a7e8a7737)
16 22
17 #### [v1.42.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.42.0...v1.42.1) 23 #### [v1.42.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.42.0...v1.42.1)
18 24
19 > 11 September 2021 25 > 11 September 2021
20 26
21 - Bump tektrans-logger@1.0.6 [`565eef0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/565eef0784c4653e68c32ddd38ca63f9c3d3410e) 27 - Bump tektrans-logger@1.0.6 [`565eef0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/565eef0784c4653e68c32ddd38ca63f9c3d3410e)
22 28
23 #### [v1.42.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.41.0...v1.42.0) 29 #### [v1.42.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.41.0...v1.42.0)
24 30
25 > 11 September 2021 31 > 11 September 2021
26 32
27 - Remove winston dependency (except from tektrans-logger) [`1e87e4d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1e87e4dcd6ab96d36c790d0cbe9c532b489d4279) 33 - Remove winston dependency (except from tektrans-logger) [`1e87e4d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1e87e4dcd6ab96d36c790d0cbe9c532b489d4279)
28 34
29 #### [v1.41.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.7...v1.41.0) 35 #### [v1.41.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.7...v1.41.0)
30 36
31 > 11 September 2021 37 > 11 September 2021
32 38
33 - Start migrating to tektrans-logger [`976a6c5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/976a6c5f7f6f08961864ea2c0976522cea6a0a7b) 39 - Start migrating to tektrans-logger [`976a6c5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/976a6c5f7f6f08961864ea2c0976522cea6a0a7b)
34 40
35 #### [v1.40.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.6...v1.40.7) 41 #### [v1.40.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.6...v1.40.7)
36 42
37 > 22 August 2021 43 > 22 August 2021
38 44
39 - Fix logger required on apiserver request-logger [`a3bcb7f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a3bcb7fa009ef8c093028c38fa92a5d73b98ee11) 45 - Fix logger required on apiserver request-logger [`a3bcb7f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a3bcb7fa009ef8c093028c38fa92a5d73b98ee11)
40 46
41 #### [v1.40.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.5...v1.40.6) 47 #### [v1.40.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.5...v1.40.6)
42 48
43 > 22 August 2021 49 > 22 August 2021
44 50
45 - Add auto-changelog dependency [`c81d40a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c81d40ac1131eaf9e5b43751e415d4698d4a4f1e) 51 - Add auto-changelog dependency [`c81d40a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c81d40ac1131eaf9e5b43751e415d4698d4a4f1e)
46 - Add xid and request logger on apiserver [`414db82`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/414db82121aaf75e2e3c542736cfe6225c4e777a) 52 - Add xid and request logger on apiserver [`414db82`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/414db82121aaf75e2e3c542736cfe6225c4e777a)
47 - Remove some "use strict" [`7098d84`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7098d844dc21303927cc95e12cdadb20f9800ba1) 53 - Remove some "use strict" [`7098d84`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7098d844dc21303927cc95e12cdadb20f9800ba1)
48 54
49 #### [v1.40.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.4...v1.40.5) 55 #### [v1.40.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.4...v1.40.5)
50 56
51 > 4 August 2021 57 > 4 August 2021
52 58
53 - Update some deps to fulfill audit [`b828874`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b828874855b3f2b36c8afac24dc2ff4bcb24cdba) 59 - Update some deps to fulfill audit [`b828874`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b828874855b3f2b36c8afac24dc2ff4bcb24cdba)
54 60
55 #### [v1.40.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.3...v1.40.4) 61 #### [v1.40.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.3...v1.40.4)
56 62
57 > 11 June 2021 63 > 11 June 2021
58 64
59 - IS_DEBUG using var [`6a9e1ee`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6a9e1eecdd843e6ec0c3f9bea992010797926e35) 65 - IS_DEBUG using var [`6a9e1ee`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6a9e1eecdd843e6ec0c3f9bea992010797926e35)
60 66
61 #### [v1.40.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.2...v1.40.3) 67 #### [v1.40.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.2...v1.40.3)
62 68
63 > 23 February 2021 69 > 23 February 2021
64 70
65 - Update winston-daily-rotate-file [`ed14031`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ed140317344a499fd929bcdabe193ae2070b3fc8) 71 - Update winston-daily-rotate-file [`ed14031`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ed140317344a499fd929bcdabe193ae2070b3fc8)
66 72
67 #### [v1.40.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.1...v1.40.2) 73 #### [v1.40.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.1...v1.40.2)
68 74
69 > 21 January 2021 75 > 21 January 2021
70 76
71 - PULL: default value on unknown config.products [`a684ce0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a684ce0c561a96dcc2d90aa630d45ac505c9170d) 77 - PULL: default value on unknown config.products [`a684ce0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a684ce0c561a96dcc2d90aa630d45ac505c9170d)
72 78
73 #### [v1.40.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.0...v1.40.1) 79 #### [v1.40.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.40.0...v1.40.1)
74 80
75 > 2 December 2020 81 > 2 December 2020
76 82
77 - Try to remove circular dep on config and config-filler [`2cfdffb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2cfdffb1e084a56f18f8883ae535c28f0a1ec743) 83 - Try to remove circular dep on config and config-filler [`2cfdffb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2cfdffb1e084a56f18f8883ae535c28f0a1ec743)
78 84
79 #### [v1.40.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.39.1...v1.40.0) 85 #### [v1.40.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.39.1...v1.40.0)
80 86
81 > 9 November 2020 87 > 9 November 2020
82 88
83 - PULL.REPORT: detail param [`afaf00c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/afaf00c5a244ed6f8609eb92f42dbfb7e35b445d) 89 - PULL.REPORT: detail param [`afaf00c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/afaf00c5a244ed6f8609eb92f42dbfb7e35b445d)
84 90
85 #### [v1.39.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.39.0...v1.39.1) 91 #### [v1.39.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.39.0...v1.39.1)
86 92
87 > 25 September 2020 93 > 25 September 2020
88 94
89 - Only load control panel if it is defined on config [`c1e8c63`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c1e8c63515f207be1fbcdec27b94a75c1660dc7b) 95 - Only load control panel if it is defined on config [`c1e8c63`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c1e8c63515f207be1fbcdec27b94a75c1660dc7b)
90 96
91 #### [v1.39.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.38.1...v1.39.0) 97 #### [v1.39.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.38.1...v1.39.0)
92 98
93 > 15 July 2020 99 > 15 July 2020
94 100
95 - Update to winston 3.3.3 [`73fbb8c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/73fbb8c7c57548bc4b6333ef53234d3b9cd26d61) 101 - Update to winston 3.3.3 [`73fbb8c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/73fbb8c7c57548bc4b6333ef53234d3b9cd26d61)
96 102
97 #### [v1.38.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.38.0...v1.38.1) 103 #### [v1.38.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.38.0...v1.38.1)
98 104
99 > 17 April 2020 105 > 17 April 2020
100 106
101 - Update eslint and nunjucks to fullfill npm audit [`3192b12`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3192b128895912f3276488d00b5eb9f125344dc2) 107 - Update eslint and nunjucks to fullfill npm audit [`3192b12`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3192b128895912f3276488d00b5eb9f125344dc2)
102 - Remove use strict [`071b2d6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/071b2d6746adb1436e588ff3b576f42d8c217740) 108 - Remove use strict [`071b2d6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/071b2d6746adb1436e588ff3b576f42d8c217740)
103 109
104 #### [v1.38.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.18...v1.38.0) 110 #### [v1.38.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.18...v1.38.0)
105 111
106 > 13 March 2020 112 > 13 March 2020
107 113
108 - update npm packages [`442f31a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/442f31a0fecbf7c2e21ccff07f7a60f900580f64) 114 - update npm packages [`442f31a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/442f31a0fecbf7c2e21ccff07f7a60f900580f64)
109 115
110 #### [v1.37.18](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.17...v1.37.18) 116 #### [v1.37.18](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.17...v1.37.18)
111 117
112 > 12 February 2020 118 > 12 February 2020
113 119
114 - RC40 jika dapat prepaid padahal config.sdk_pull_only_postpaid [`976096e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/976096efe66e47e0af1523abe5bc55d3adc04593) 120 - RC40 jika dapat prepaid padahal config.sdk_pull_only_postpaid [`976096e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/976096efe66e47e0af1523abe5bc55d3adc04593)
115 121
116 #### [v1.37.17](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.16...v1.37.17) 122 #### [v1.37.17](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.16...v1.37.17)
117 123
118 > 20 December 2019 124 > 20 December 2019
119 125
120 - Warn on task [`99c8139`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/99c81398f93a1d0146425bb01d4e3f12a90a965d) 126 - Warn on task [`99c8139`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/99c81398f93a1d0146425bb01d4e3f12a90a965d)
121 127
122 #### [v1.37.16](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.15...v1.37.16) 128 #### [v1.37.16](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.15...v1.37.16)
123 129
124 > 20 December 2019 130 > 20 December 2019
125 131
126 - PULL: no products on only postpaid [`544cfa6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/544cfa683f49dc623e3559ff1d9984e7c5f87ccb) 132 - PULL: no products on only postpaid [`544cfa6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/544cfa683f49dc623e3559ff1d9984e7c5f87ccb)
127 133
128 #### [v1.37.15](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.14...v1.37.15) 134 #### [v1.37.15](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.14...v1.37.15)
129 135
130 > 20 December 2019 136 > 20 December 2019
131 137
132 - config.sdk_only_postpaid [`6300fc5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6300fc5dc52c4f19fef2a879feda11b6048e3792) 138 - config.sdk_only_postpaid [`6300fc5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6300fc5dc52c4f19fef2a879feda11b6048e3792)
133 - Remove unused require [`fca96c0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fca96c0e19c2baa20f5fd5af993b44d226725881) 139 - Remove unused require [`fca96c0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fca96c0e19c2baa20f5fd5af993b44d226725881)
134 140
135 #### [v1.37.14](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.13...v1.37.14) 141 #### [v1.37.14](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.13...v1.37.14)
136 142
137 > 17 September 2019 143 > 17 September 2019
138 144
139 - Remove vulnerability old dep sort-object [`96d323b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/96d323b956688fab47ea06dc251c21d0e182786b) 145 - Remove vulnerability old dep sort-object [`96d323b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/96d323b956688fab47ea06dc251c21d0e182786b)
140 - ESLINTED: api-server/router-remote-products.js [`8b719c5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8b719c5d8f2929fe42f71a5328515abf415f6ce2) 146 - ESLINTED: api-server/router-remote-products.js [`8b719c5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8b719c5d8f2929fe42f71a5328515abf415f6ce2)
141 147
142 #### [v1.37.13](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.12...v1.37.13) 148 #### [v1.37.13](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.12...v1.37.13)
143 149
144 > 12 September 2019 150 > 12 September 2019
145 151
146 - Update some npm deps [`23b51e1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/23b51e13759a8748f10d42fc3af024aa97dd56ca) 152 - Update some npm deps [`23b51e1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/23b51e13759a8748f10d42fc3af024aa97dd56ca)
147 - PULL ESLINTED [`bcc3d86`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bcc3d867cf97dabafae5a68f959477683899abe2) 153 - PULL ESLINTED [`bcc3d86`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bcc3d867cf97dabafae5a68f959477683899abe2)
148 154
149 #### [v1.37.12](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.11...v1.37.12) 155 #### [v1.37.12](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.11...v1.37.12)
150 156
151 > 28 August 2019 157 > 28 August 2019
152 158
153 - Refactor KOMODO_CONFIG_FILENAME to KOMODO_SDK_CONFIG_FILENAME [`0abb041`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0abb041eb5fe0fdca46d69ac8528b327c0cebb77) 159 - Refactor KOMODO_CONFIG_FILENAME to KOMODO_SDK_CONFIG_FILENAME [`0abb041`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0abb041eb5fe0fdca46d69ac8528b327c0cebb77)
154 160
155 #### [v1.37.11](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.10...v1.37.11) 161 #### [v1.37.11](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.10...v1.37.11)
156 162
157 > 28 August 2019 163 > 28 August 2019
158 164
159 - Global var KOMODO_CONFIG_FILENAME [`e488b55`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e488b558abb3d96b4f777c6aae3449b9c12b2601) 165 - Global var KOMODO_CONFIG_FILENAME [`e488b55`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e488b558abb3d96b4f777c6aae3449b9c12b2601)
160 166
161 #### [v1.37.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.9...v1.37.10) 167 #### [v1.37.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.9...v1.37.10)
162 168
163 > 22 August 2019 169 > 22 August 2019
164 170
165 - Perbaikan log coreapi ketika respon bukan JSON [`a4504d4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a4504d495fdcd2a0818bb07fa45c7f2ca786f0dc) 171 - Perbaikan log coreapi ketika respon bukan JSON [`a4504d4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a4504d495fdcd2a0818bb07fa45c7f2ca786f0dc)
166 172
167 #### [v1.37.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.8...v1.37.9) 173 #### [v1.37.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.8...v1.37.9)
168 174
169 > 19 August 2019 175 > 19 August 2019
170 176
171 - global.KOMODO_SDK_NO_LOG_ON_COREAPI [`8e96765`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8e96765fbdbc7a28ac51566a747dea52ba6f43fd) 177 - global.KOMODO_SDK_NO_LOG_ON_COREAPI [`8e96765`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8e96765fbdbc7a28ac51566a747dea52ba6f43fd)
172 178
173 #### [v1.37.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.7...v1.37.8) 179 #### [v1.37.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.7...v1.37.8)
174 180
175 > 19 August 2019 181 > 19 August 2019
176 182
177 - Perbaikan promise resolved coreapi [`05c81d7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/05c81d7862f70a565943c121541b8767dd444e00) 183 - Perbaikan promise resolved coreapi [`05c81d7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/05c81d7862f70a565943c121541b8767dd444e00)
178 184
179 #### [v1.37.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.6...v1.37.7) 185 #### [v1.37.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.6...v1.37.7)
180 186
181 > 19 August 2019 187 > 19 August 2019
182 188
183 - COREAPI [`889ca72`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/889ca72fcd2c1b3af70233f6ee667521b919ec40) 189 - COREAPI [`889ca72`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/889ca72fcd2c1b3af70233f6ee667521b919ec40)
184 - Remove an unused var [`d2bd4e0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d2bd4e0501a63a1b6b1d84b43413b4633eadef0d) 190 - Remove an unused var [`d2bd4e0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d2bd4e0501a63a1b6b1d84b43413b4633eadef0d)
185 191
186 #### [v1.37.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.5...v1.37.6) 192 #### [v1.37.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.5...v1.37.6)
187 193
188 > 9 August 2019 194 > 9 August 2019
189 195
190 - Logger level verbose [`1b7eee7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1b7eee78c2701524c340b2b9c1d2567bc9ffdffe) 196 - Logger level verbose [`1b7eee7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1b7eee78c2701524c340b2b9c1d2567bc9ffdffe)
191 197
192 #### [v1.37.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.4...v1.37.5) 198 #### [v1.37.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.4...v1.37.5)
193 199
194 > 9 August 2019 200 > 9 August 2019
195 201
196 - Label log [`9215295`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/92152957fb770e3695a779c542a2810486aae40e) 202 - Label log [`9215295`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/92152957fb770e3695a779c542a2810486aae40e)
197 203
198 #### [v1.37.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.3...v1.37.4) 204 #### [v1.37.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.3...v1.37.4)
199 205
200 > 8 August 2019 206 > 8 August 2019
201 207
202 - Logger using global KOMODO_LOG_FILENAME and KOMODO_LOG_LABEL [`3965581`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/396558121396388c45a36b6999536c121c370ee0) 208 - Logger using global KOMODO_LOG_FILENAME and KOMODO_LOG_LABEL [`3965581`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/396558121396388c45a36b6999536c121c370ee0)
203 209
204 #### [v1.37.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.2...v1.37.3) 210 #### [v1.37.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.2...v1.37.3)
205 211
206 > 8 August 2019 212 > 8 August 2019
207 213
208 - LOGGER: obey env.KOMODO_LOG_LABEL [`8e18f0d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8e18f0d00f3a5547d3afda4498dbec254dfd0cda) 214 - LOGGER: obey env.KOMODO_LOG_LABEL [`8e18f0d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8e18f0d00f3a5547d3afda4498dbec254dfd0cda)
209 - LOGGER: perbaikan nama prefix file jika KOMODO_LOG_FILENAME terdefinisi [`0cb8143`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0cb8143f85f70627888e56cb99b4f003b208bf26) 215 - LOGGER: perbaikan nama prefix file jika KOMODO_LOG_FILENAME terdefinisi [`0cb8143`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0cb8143f85f70627888e56cb99b4f003b208bf26)
210 216
211 #### [v1.37.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.1...v1.37.2) 217 #### [v1.37.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.1...v1.37.2)
212 218
213 > 8 August 2019 219 > 8 August 2019
214 220
215 - New logger. Console and file ready [`7a42386`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7a42386ccee16ec7ca57cf74b9bdab275995543d) 221 - New logger. Console and file ready [`7a42386`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7a42386ccee16ec7ca57cf74b9bdab275995543d)
216 - LOGGER: disable circular-buffer [`516169f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/516169f657ccbb9050014d2e0af6e9fd1d8247dd) 222 - LOGGER: disable circular-buffer [`516169f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/516169f657ccbb9050014d2e0af6e9fd1d8247dd)
217 - Config filename can be config.json or config.js [`7b6dd90`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7b6dd90aefe874b33a902ade0d1b156a8b3bb0dd) 223 - Config filename can be config.json or config.js [`7b6dd90`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7b6dd90aefe874b33a902ade0d1b156a8b3bb0dd)
218 224
219 #### [v1.37.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.0...v1.37.1) 225 #### [v1.37.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.37.0...v1.37.1)
220 226
221 > 2 August 2019 227 > 2 August 2019
222 228
223 - COUNTERS: redis failsafe [`bbf11a4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bbf11a4863e6b9cba67911aa23f829157d4723ba) 229 - COUNTERS: redis failsafe [`bbf11a4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bbf11a4863e6b9cba67911aa23f829157d4723ba)
224 230
225 #### [v1.37.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.16...v1.37.0) 231 #### [v1.37.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.16...v1.37.0)
226 232
227 > 2 August 2019 233 > 2 August 2019
228 234
229 - COUNTERS: hapus penggunaan subname [`603aa19`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/603aa19c9b229e5710864512641304395ebbf379) 235 - COUNTERS: hapus penggunaan subname [`603aa19`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/603aa19c9b229e5710864512641304395ebbf379)
230 236
231 #### [v1.36.16](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.15...v1.36.16) 237 #### [v1.36.16](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.15...v1.36.16)
232 238
233 > 2 August 2019 239 > 2 August 2019
234 240
235 - Counters [`96bc1e6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/96bc1e6fd0ab2f419e6aeadeb0bafcaa7f659654) 241 - Counters [`96bc1e6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/96bc1e6fd0ab2f419e6aeadeb0bafcaa7f659654)
236 242
237 #### [v1.36.15](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.14...v1.36.15) 243 #### [v1.36.15](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.14...v1.36.15)
238 244
239 > 1 August 2019 245 > 1 August 2019
240 246
241 - APISERVER: penanganan penambahan lokasi pada gw yg blm ada data lokasi [`265238e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/265238e00f48cfb323fa8464dfdd1575db5f9fe0) 247 - APISERVER: penanganan penambahan lokasi pada gw yg blm ada data lokasi [`265238e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/265238e00f48cfb323fa8464dfdd1575db5f9fe0)
242 248
243 #### [v1.36.14](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.13...v1.36.14) 249 #### [v1.36.14](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.13...v1.36.14)
244 250
245 > 30 July 2019 251 > 30 July 2019
246 252
247 - APISERVER: typo nama method **CRITICAL** [`c71a875`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c71a875ba68b7a317b027fb9c5fbe2c6b66493c7) 253 - APISERVER: typo nama method **CRITICAL** [`c71a875`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c71a875ba68b7a317b027fb9c5fbe2c6b66493c7)
248 254
249 #### [v1.36.13](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.12...v1.36.13) 255 #### [v1.36.13](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.12...v1.36.13)
250 256
251 > 30 July 2019 257 > 30 July 2019
252 258
253 - typo [`47675a6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/47675a6f482c289b0104e07583359b7c64d26733) 259 - typo [`47675a6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/47675a6f482c289b0104e07583359b7c64d26733)
254 260
255 #### [v1.36.12](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.11...v1.36.12) 261 #### [v1.36.12](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.11...v1.36.12)
256 262
257 > 30 July 2019 263 > 30 July 2019
258 264
259 - APISERVER: skip location "ALL" [`d42e069`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d42e0693433dba7e1c943efcb00ad846f5165762) 265 - APISERVER: skip location "ALL" [`d42e069`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d42e0693433dba7e1c943efcb00ad846f5165762)
260 266
261 #### [v1.36.11](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.10...v1.36.11) 267 #### [v1.36.11](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.10...v1.36.11)
262 268
263 > 30 July 2019 269 > 30 July 2019
264 270
265 - ESLINT [`382df17`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/382df1799155b7e11b86493f652b8003b64601ba) 271 - ESLINT [`382df17`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/382df1799155b7e11b86493f652b8003b64601ba)
266 - APISERVER: location ALL cleared [`90ff770`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/90ff770cffb8399f799801aa36095e5fc6b0307c) 272 - APISERVER: location ALL cleared [`90ff770`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/90ff770cffb8399f799801aa36095e5fc6b0307c)
267 273
268 #### [v1.36.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.9...v1.36.10) 274 #### [v1.36.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.9...v1.36.10)
269 275
270 > 5 April 2019 276 > 5 April 2019
271 277
272 - perbaikan gagal [`f352418`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f3524189211497df0fbdafc154df21ef60e084ce) 278 - perbaikan gagal [`f352418`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f3524189211497df0fbdafc154df21ef60e084ce)
273 279
274 #### [v1.36.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.8...v1.36.9) 280 #### [v1.36.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.8...v1.36.9)
275 281
276 > 5 April 2019 282 > 5 April 2019
277 283
278 - Trx-center invalid command on executePrepaidBuy [`3715a26`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3715a26571f3bddcca91051dd06441b9cf2a5bdf) 284 - Trx-center invalid command on executePrepaidBuy [`3715a26`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3715a26571f3bddcca91051dd06441b9cf2a5bdf)
279 285
280 #### [v1.36.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.7...v1.36.8) 286 #### [v1.36.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.7...v1.36.8)
281 287
282 > 5 April 2019 288 > 5 April 2019
283 289
284 - perbaukan trx-center.executePrepaidBuy [`401bb47`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/401bb47424e1f5749235e528158ea7d6361b2c74) 290 - perbaukan trx-center.executePrepaidBuy [`401bb47`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/401bb47424e1f5749235e528158ea7d6361b2c74)
285 291
286 #### [v1.36.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.6...v1.36.7) 292 #### [v1.36.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.6...v1.36.7)
287 293
288 > 5 April 2019 294 > 5 April 2019
289 295
290 - pemeriksaan cb pada trx-center [`314b9c3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/314b9c34d320b82937fac18d4e3b4bfa7e7fde5e) 296 - pemeriksaan cb pada trx-center [`314b9c3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/314b9c34d320b82937fac18d4e3b4bfa7e7fde5e)
291 297
292 #### [v1.36.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.5...v1.36.6) 298 #### [v1.36.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.5...v1.36.6)
293 299
294 > 5 April 2019 300 > 5 April 2019
295 301
296 - Penanganan invalid command pada trx-center [`83c3fe7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/83c3fe76b6014d360b3db7fcf0ef4b59b72e03eb) 302 - Penanganan invalid command pada trx-center [`83c3fe7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/83c3fe76b6014d360b3db7fcf0ef4b59b72e03eb)
297 303
298 #### [v1.36.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.4...v1.36.5) 304 #### [v1.36.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.4...v1.36.5)
299 305
300 > 18 February 2019 306 > 18 February 2019
301 307
302 - APISERVER pause and resume service use matrix.paused [`14919aa`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/14919aa3066366a1f97be7c0174d259f67f34f6b) 308 - APISERVER pause and resume service use matrix.paused [`14919aa`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/14919aa3066366a1f97be7c0174d259f67f34f6b)
303 309
304 #### [v1.36.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.3...v1.36.4) 310 #### [v1.36.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.3...v1.36.4)
305 311
306 > 18 February 2019 312 > 18 February 2019
307 313
308 - PULL-TASK resume typo pause [`8dd8ba6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8dd8ba69a7731e358c9f3e4527c31489df3214e3) 314 - PULL-TASK resume typo pause [`8dd8ba6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8dd8ba69a7731e358c9f3e4527c31489df3214e3)
309 315
310 #### [v1.36.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.2...v1.36.3) 316 #### [v1.36.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.2...v1.36.3)
311 317
312 > 11 February 2019 318 > 11 February 2019
313 319
314 - REPORT: pengaman sdk_trx_id_adder [`e4eb4ef`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e4eb4efcae29ee792574d4277d9efa0132924910) 320 - REPORT: pengaman sdk_trx_id_adder [`e4eb4ef`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e4eb4efcae29ee792574d4277d9efa0132924910)
315 321
316 #### [v1.36.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.1...v1.36.2) 322 #### [v1.36.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.1...v1.36.2)
317 323
318 > 11 February 2019 324 > 11 February 2019
319 325
320 - PULL & ADVICE: config.sdk_trx_id_adder [`85746a9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/85746a9ced0c406b882589acbe53328031f62581) 326 - PULL & ADVICE: config.sdk_trx_id_adder [`85746a9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/85746a9ced0c406b882589acbe53328031f62581)
321 327
322 #### [v1.36.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.0...v1.36.1) 328 #### [v1.36.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.36.0...v1.36.1)
323 329
324 > 8 February 2019 330 > 8 February 2019
325 331
326 - Messaging trx-center log on onIncomingMessage with params [`b6f2c9d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b6f2c9d471a750675d1d27846c4ec1aad0127036) 332 - Messaging trx-center log on onIncomingMessage with params [`b6f2c9d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b6f2c9d471a750675d1d27846c4ec1aad0127036)
327 333
328 #### [v1.36.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.35.0...v1.36.0) 334 #### [v1.36.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.35.0...v1.36.0)
329 335
330 > 28 January 2019 336 > 28 January 2019
331 337
332 - APISERVER: location router [`8180836`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8180836a8c07f6644bd776892038052010af604c) 338 - APISERVER: location router [`8180836`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8180836a8c07f6644bd776892038052010af604c)
333 339
334 #### [v1.35.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.9...v1.35.0) 340 #### [v1.35.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.9...v1.35.0)
335 341
336 > 28 January 2019 342 > 28 January 2019
337 343
338 - PULL support config.locations [`e9e53f4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e9e53f4c4a1593e67b9a757fece8754a747702da) 344 - PULL support config.locations [`e9e53f4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e9e53f4c4a1593e67b9a757fece8754a747702da)
339 345
340 #### [v1.34.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.8...v1.34.9) 346 #### [v1.34.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.8...v1.34.9)
341 347
342 > 14 January 2019 348 > 14 January 2019
343 349
344 - trx-center: tambah detail internal error [`6cddfa0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6cddfa019548cb5b00be18cca491f7e7037b037b) 350 - trx-center: tambah detail internal error [`6cddfa0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6cddfa019548cb5b00be18cca491f7e7037b037b)
345 - trx-center ubah beberapa let menjadi const [`b627ad6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b627ad61bb4c16ab299120da591ea45b40f52ad6) 351 - trx-center ubah beberapa let menjadi const [`b627ad6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b627ad61bb4c16ab299120da591ea45b40f52ad6)
346 - trx-center: tambah titik koma lagi [`516ab5e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/516ab5ec235f0788885a82e7d82072123b11fcf3) 352 - trx-center: tambah titik koma lagi [`516ab5e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/516ab5ec235f0788885a82e7d82072123b11fcf3)
347 353
348 #### [v1.34.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.7...v1.34.8) 354 #### [v1.34.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.7...v1.34.8)
349 355
350 > 13 January 2019 356 > 13 January 2019
351 357
352 - Not sending INTERNAL ERROR to partner [`b70739d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b70739dc9763869402ec7065e0b8ed7da709aa51) 358 - Not sending INTERNAL ERROR to partner [`b70739d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b70739dc9763869402ec7065e0b8ed7da709aa51)
353 359
354 #### [v1.34.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.6...v1.34.7) 360 #### [v1.34.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.6...v1.34.7)
355 361
356 > 10 January 2019 362 > 10 January 2019
357 363
358 - config.request_timeout [`f8ac698`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f8ac698e954c9276afefed97bff11d5f442a1723) 364 - config.request_timeout [`f8ac698`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f8ac698e954c9276afefed97bff11d5f442a1723)
359 365
360 #### [v1.34.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.5...v1.34.6) 366 #### [v1.34.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.5...v1.34.6)
361 367
362 > 18 December 2018 368 > 18 December 2018
363 369
364 - typo [`e255c92`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e255c92c5f439fc5c41e1d0e08260231cc6f33de) 370 - typo [`e255c92`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e255c92c5f439fc5c41e1d0e08260231cc6f33de)
365 371
366 #### [v1.34.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.4...v1.34.5) 372 #### [v1.34.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.4...v1.34.5)
367 373
368 > 18 December 2018 374 > 18 December 2018
369 375
370 - typo [`62ed54d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/62ed54d62e25bb7035f3d56b08358462459b486a) 376 - typo [`62ed54d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/62ed54d62e25bb7035f3d56b08358462459b486a)
371 377
372 #### [v1.34.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.3...v1.34.4) 378 #### [v1.34.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.3...v1.34.4)
373 379
374 > 18 December 2018 380 > 18 December 2018
375 381
376 - PULL: debug [`9b2d551`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/9b2d551ac6d0ba1813c4f7f02a3e6a84cd6989b5) 382 - PULL: debug [`9b2d551`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/9b2d551ac6d0ba1813c4f7f02a3e6a84cd6989b5)
377 383
378 #### [v1.34.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.2...v1.34.3) 384 #### [v1.34.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.2...v1.34.3)
379 385
380 > 18 December 2018 386 > 18 December 2018
381 387
382 - add debug [`5af6a97`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5af6a97d4eadc6febda3dc0d59f7b6ad12c2a7f5) 388 - add debug [`5af6a97`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5af6a97d4eadc6febda3dc0d59f7b6ad12c2a7f5)
383 389
384 #### [v1.34.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.1...v1.34.2) 390 #### [v1.34.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.1...v1.34.2)
385 391
386 > 6 September 2018 392 > 6 September 2018
387 393
388 - log delta_time [`02a8f7f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/02a8f7f342c3142d257642cf11877c6a6171550d) 394 - log delta_time [`02a8f7f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/02a8f7f342c3142d257642cf11877c6a6171550d)
389 395
390 #### [v1.34.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.0...v1.34.1) 396 #### [v1.34.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.34.0...v1.34.1)
391 397
392 > 6 September 2018 398 > 6 September 2018
393 399
394 - timeout on pulling task [`b7ccb0a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b7ccb0a2cc1b214f2a32b2f2a59deb01f8eee7b2) 400 - timeout on pulling task [`b7ccb0a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b7ccb0a2cc1b214f2a32b2f2a59deb01f8eee7b2)
395 401
396 #### [v1.34.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.10...v1.34.0) 402 #### [v1.34.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.10...v1.34.0)
397 403
398 > 13 August 2018 404 > 13 August 2018
399 405
400 - PULL-REPORT: report product and remote_product [`b7ea255`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b7ea255c528e5bd8b4ec151bdadec4c0e06ad508) 406 - PULL-REPORT: report product and remote_product [`b7ea255`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b7ea255c528e5bd8b4ec151bdadec4c0e06ad508)
401 407
402 #### [v1.33.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.9...v1.33.10) 408 #### [v1.33.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.9...v1.33.10)
403 409
404 > 10 August 2018 410 > 10 August 2018
405 411
406 - disable heartbeat [`2697ba5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2697ba5759d2a382cec5642992467bd8590c989e) 412 - disable heartbeat [`2697ba5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2697ba5759d2a382cec5642992467bd8590c989e)
407 - hapus debug [`f7c50dd`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f7c50dd1d0eec9d9c001b02a45aebca200c037df) 413 - hapus debug [`f7c50dd`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f7c50dd1d0eec9d9c001b02a45aebca200c037df)
408 - debug [`4828d79`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4828d799cb4c01be48689f551d43554c339d5a15) 414 - debug [`4828d79`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4828d799cb4c01be48689f551d43554c339d5a15)
409 415
410 #### [v1.33.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.8...v1.33.9) 416 #### [v1.33.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.8...v1.33.9)
411 417
412 > 10 August 2018 418 > 10 August 2018
413 419
414 - PULL-TASK: config.pull_task_use_post [`2812226`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2812226576414f49ca5875ddaefff5b1b79af5f6) 420 - PULL-TASK: config.pull_task_use_post [`2812226`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2812226576414f49ca5875ddaefff5b1b79af5f6)
415 421
416 #### [v1.33.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.7...v1.33.8) 422 #### [v1.33.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.7...v1.33.8)
417 423
418 > 1 August 2018 424 > 1 August 2018
419 425
420 - GW-PULL: deteksi partner belum ready [`7a2dcb5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7a2dcb56fec5e7d90687b6e5c423a5ca77b72541) 426 - GW-PULL: deteksi partner belum ready [`7a2dcb5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7a2dcb56fec5e7d90687b6e5c423a5ca77b72541)
421 - matrix.not_ready [`9f8ed39`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/9f8ed39a6a69e4418576fc73b793be84f6d41b76) 427 - matrix.not_ready [`9f8ed39`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/9f8ed39a6a69e4418576fc73b793be84f6d41b76)
422 - GW-PULL: kirim start_time sebagai parameter forwardCoreTaskToPartner [`0dba3bb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0dba3bbc3aae4f6b9a9c839d792bf1e5dcb0badd) 428 - GW-PULL: kirim start_time sebagai parameter forwardCoreTaskToPartner [`0dba3bb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0dba3bbc3aae4f6b9a9c839d792bf1e5dcb0badd)
423 429
424 #### [v1.33.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.6...v1.33.7) 430 #### [v1.33.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.6...v1.33.7)
425 431
426 > 24 July 2018 432 > 24 July 2018
427 433
428 - typo [`13c71da`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/13c71da1b92a2156ad6620da7c8e5eca58a7b4cd) 434 - typo [`13c71da`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/13c71da1b92a2156ad6620da7c8e5eca58a7b4cd)
429 435
430 #### [v1.33.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.5...v1.33.6) 436 #### [v1.33.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.5...v1.33.6)
431 437
432 > 24 July 2018 438 > 24 July 2018
433 439
434 - GW-PULL: core_pull_request_time [`aee7214`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/aee72146afbd01e59f45726d69cb486476b3fc11) 440 - GW-PULL: core_pull_request_time [`aee7214`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/aee72146afbd01e59f45726d69cb486476b3fc11)
435 441
436 #### [v1.33.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.4...v1.33.5) 442 #### [v1.33.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.4...v1.33.5)
437 443
438 > 24 July 2018 444 > 24 July 2018
439 445
440 - GW-PULL: tidak delay jika dapat LOCKED dari CORE [`2eccf44`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2eccf44af7a93d9f68620f51d1dc57b90092db61) 446 - GW-PULL: tidak delay jika dapat LOCKED dari CORE [`2eccf44`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2eccf44af7a93d9f68620f51d1dc57b90092db61)
441 447
442 #### [v1.33.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.3...v1.33.4) 448 #### [v1.33.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.3...v1.33.4)
443 449
444 > 24 July 2018 450 > 24 July 2018
445 451
446 - PULL: always pulltask mutex [`0778bb7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0778bb79964f1e2b4572b57f1fc147d9c315d440) 452 - PULL: always pulltask mutex [`0778bb7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0778bb79964f1e2b4572b57f1fc147d9c315d440)
447 453
448 #### [v1.33.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.2...v1.33.3) 454 #### [v1.33.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.2...v1.33.3)
449 455
450 > 24 July 2018 456 > 24 July 2018
451 457
452 - Ubah posisi pulltasklocked [`16dc6ad`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/16dc6ad26a58ea75674170703977eea4d05ca685) 458 - Ubah posisi pulltasklocked [`16dc6ad`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/16dc6ad26a58ea75674170703977eea4d05ca685)
453 459
454 #### [v1.33.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.1...v1.33.2) 460 #### [v1.33.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.1...v1.33.2)
455 461
456 > 24 July 2018 462 > 24 July 2018
457 463
458 - config.pulltask_mutex [`ee631a5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ee631a501aaf74d546fa0a3890f4617e1b248033) 464 - config.pulltask_mutex [`ee631a5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ee631a501aaf74d546fa0a3890f4617e1b248033)
459 465
460 #### [v1.33.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.0...v1.33.1) 466 #### [v1.33.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.33.0...v1.33.1)
461 467
462 > 24 July 2018 468 > 24 July 2018
463 469
464 - PULL: pull task ke core hanya bisa satu saja yang aktif [`d92e67f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d92e67f7f6fd7f07101d134ef3b7ba8576ed489a) 470 - PULL: pull task ke core hanya bisa satu saja yang aktif [`d92e67f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d92e67f7f6fd7f07101d134ef3b7ba8576ed489a)
465 - PULL: pull task ke core hanya bisa satu saja yg aktif pada satu waktu bersamaan [`e911c79`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e911c7960e04b5c4f8932a4dd005e6bf769ccbb0) 471 - PULL: pull task ke core hanya bisa satu saja yg aktif pada satu waktu bersamaan [`e911c79`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e911c7960e04b5c4f8932a4dd005e6bf769ccbb0)
466 472
467 #### [v1.33.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.32.1...v1.33.0) 473 #### [v1.33.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.32.1...v1.33.0)
468 474
469 > 24 July 2018 475 > 24 July 2018
470 476
471 - PULL: terima respon LOCKED [`3430d73`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3430d73dbe628e569cd05cb3bb6aa3191f429911) 477 - PULL: terima respon LOCKED [`3430d73`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3430d73dbe628e569cd05cb3bb6aa3191f429911)
472 478
473 #### [v1.32.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.32.0...v1.32.1) 479 #### [v1.32.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.32.0...v1.32.1)
474 480
475 > 11 July 2018 481 > 11 July 2018
476 482
477 - TRX-CENTER: executePrepaidBuy include center_extdata [`f4539c6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f4539c6c6368ada2b3da2a1d3f080797ef266d02) 483 - TRX-CENTER: executePrepaidBuy include center_extdata [`f4539c6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f4539c6c6368ada2b3da2a1d3f080797ef266d02)
478 484
479 #### [v1.32.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.7...v1.32.0) 485 #### [v1.32.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.7...v1.32.0)
480 486
481 > 3 July 2018 487 > 3 July 2018
482 488
483 - APISERVER: /remote-products/del terima multiple product [`a02d318`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a02d3181274e6b4da9d4cd4b0e90444385ad5c28) 489 - APISERVER: /remote-products/del terima multiple product [`a02d318`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a02d3181274e6b4da9d4cd4b0e90444385ad5c28)
484 - APISERVER: /remote-products/set terima qs [`432957d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/432957dfe117cf67f338c273bdadfea5664ea0e4) 490 - APISERVER: /remote-products/set terima qs [`432957d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/432957dfe117cf67f338c273bdadfea5664ea0e4)
485 - APISERVER: /remote-products/del accept qs.local [`b839296`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b8392962c1786ee5d02b24154ebea1d9b747c46e) 491 - APISERVER: /remote-products/del accept qs.local [`b839296`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b8392962c1786ee5d02b24154ebea1d9b747c46e)
486 492
487 #### [v1.31.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.6...v1.31.7) 493 #### [v1.31.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.6...v1.31.7)
488 494
489 > 3 July 2018 495 > 3 July 2018
490 496
491 #### [v1.31.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.5...v1.31.6) 497 #### [v1.31.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.5...v1.31.6)
492 498
493 > 3 July 2018 499 > 3 July 2018
494 500
495 - MATRIX: pkginfo version [`285b905`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/285b9059893f3951a3be97314333ba85fa439056) 501 - MATRIX: pkginfo version [`285b905`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/285b9059893f3951a3be97314333ba85fa439056)
496 502
497 #### [v1.31.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.4...v1.31.5) 503 #### [v1.31.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.4...v1.31.5)
498 504
499 > 2 July 2018 505 > 2 July 2018
500 506
501 - APISERVER: /products/add menerima masukan multiple [`a62fa17`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a62fa1706050e371a722cbd33368ae4fe83fa054) 507 - APISERVER: /products/add menerima masukan multiple [`a62fa17`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a62fa1706050e371a722cbd33368ae4fe83fa054)
502 - APISERVER: typo [`42762a7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/42762a789e5d13ba677945926880ef78fbfa9e05) 508 - APISERVER: typo [`42762a7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/42762a789e5d13ba677945926880ef78fbfa9e05)
503 509
504 #### [v1.31.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.3...v1.31.4) 510 #### [v1.31.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.3...v1.31.4)
505 511
506 > 2 July 2018 512 > 2 July 2018
507 513
508 - APISERVER: /products/del optimized [`1879e70`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1879e7006e7872af61332facf5f6d0adfe000695) 514 - APISERVER: /products/del optimized [`1879e70`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1879e7006e7872af61332facf5f6d0adfe000695)
509 - APISERVER: perbaikan regex pada /products/del [`6783f91`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6783f9195256d8e7405cdf18a1f1024043c8f251) 515 - APISERVER: perbaikan regex pada /products/del [`6783f91`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6783f9195256d8e7405cdf18a1f1024043c8f251)
510 - APISERVER: /products/del more alias [`036c649`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/036c649ec36c167795086a0c83a79f41e62bce33) 516 - APISERVER: /products/del more alias [`036c649`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/036c649ec36c167795086a0c83a79f41e62bce33)
511 517
512 #### [v1.31.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.2...v1.31.3) 518 #### [v1.31.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.2...v1.31.3)
513 519
514 > 2 July 2018 520 > 2 July 2018
515 521
516 - APISERVER: /products/del support multiple products (comma separated) [`efadded`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/efadded25c7d985e173095d212e207a19a8c7b5a) 522 - APISERVER: /products/del support multiple products (comma separated) [`efadded`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/efadded25c7d985e173095d212e207a19a8c7b5a)
517 523
518 #### [v1.31.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.1...v1.31.2) 524 #### [v1.31.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.1...v1.31.2)
519 525
520 > 2 July 2018 526 > 2 July 2018
521 527
522 - APISERVER: aktivasi /services/terminate [`02a2d43`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/02a2d4307a58013d9ca67eee8eab88d90b5e546d) 528 - APISERVER: aktivasi /services/terminate [`02a2d43`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/02a2d4307a58013d9ca67eee8eab88d90b5e546d)
523 529
524 #### [v1.31.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.0...v1.31.1) 530 #### [v1.31.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.31.0...v1.31.1)
525 531
526 > 2 July 2018 532 > 2 July 2018
527 533
528 - APISERVER: simplifikasi hasil method-method /services [`b71f859`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b71f8590dde06b64d96b3f6d21a5074d369b9735) 534 - APISERVER: simplifikasi hasil method-method /services [`b71f859`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b71f8590dde06b64d96b3f6d21a5074d369b9735)
529 535
530 #### [v1.31.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.5...v1.31.0) 536 #### [v1.31.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.5...v1.31.0)
531 537
532 > 2 July 2018 538 > 2 July 2018
533 539
534 - APISERVER: router-services [`e4545f8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e4545f8800b87d628dd137af107b8f46f9880a36) 540 - APISERVER: router-services [`e4545f8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e4545f8800b87d628dd137af107b8f46f9880a36)
535 541
536 #### [v1.30.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.4...v1.30.5) 542 #### [v1.30.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.4...v1.30.5)
537 543
538 > 2 July 2018 544 > 2 July 2018
539 545
540 - CONTROL-PANEL: perbaikan redirect setelah login [`dcdc43d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/dcdc43d36030170948ce068406eaa4a008c9b0d3) 546 - CONTROL-PANEL: perbaikan redirect setelah login [`dcdc43d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/dcdc43d36030170948ce068406eaa4a008c9b0d3)
541 547
542 #### [v1.30.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.3...v1.30.4) 548 #### [v1.30.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.3...v1.30.4)
543 549
544 > 28 June 2018 550 > 28 June 2018
545 551
546 - GW pulltask include cp url [`5201c4b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5201c4bb4709ab98a26ffb19c5e6a73bdc65b0f4) 552 - GW pulltask include cp url [`5201c4b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5201c4bb4709ab98a26ffb19c5e6a73bdc65b0f4)
547 - PULL: include api_url on request [`825d2d1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/825d2d1d8d63c44cc027c3d0e103f3320d224b4f) 553 - PULL: include api_url on request [`825d2d1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/825d2d1d8d63c44cc027c3d0e103f3320d224b4f)
548 554
549 #### [v1.30.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.2...v1.30.3) 555 #### [v1.30.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.2...v1.30.3)
550 556
551 > 28 June 2018 557 > 28 June 2018
552 558
553 - APISERVER: remote-products [`ed27611`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ed276114ca934889a7d759ba030bfc39503a82bb) 559 - APISERVER: remote-products [`ed27611`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ed276114ca934889a7d759ba030bfc39503a82bb)
554 - APISERVER: remote-products/del [`a1188b2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a1188b251d9efce2cdf8f05b6c63a65eba991d98) 560 - APISERVER: remote-products/del [`a1188b2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a1188b251d9efce2cdf8f05b6c63a65eba991d98)
555 - APISERVER: router-product gagal jika produk yg ingin dihapus tidak ada. [`84fefbb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/84fefbb90ae94d9d6462ec8b75099b29ed3ee5cf) 561 - APISERVER: router-product gagal jika produk yg ingin dihapus tidak ada. [`84fefbb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/84fefbb90ae94d9d6462ec8b75099b29ed3ee5cf)
556 562
557 #### [v1.30.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.1...v1.30.2) 563 #### [v1.30.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.1...v1.30.2)
558 564
559 > 27 June 2018 565 > 27 June 2018
560 566
561 - APISERVER: /products/del aliases: delete and remove [`31e4d70`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/31e4d70874da0e88ea59b0d397a33b228c8a2827) 567 - APISERVER: /products/del aliases: delete and remove [`31e4d70`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/31e4d70874da0e88ea59b0d397a33b228c8a2827)
562 568
563 #### [v1.30.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.0...v1.30.1) 569 #### [v1.30.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.30.0...v1.30.1)
564 570
565 > 27 June 2018 571 > 27 June 2018
566 572
567 - APISERVER: /save [`29a8d13`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/29a8d1338aaf435b70739efc7309fea7f93f0e09) 573 - APISERVER: /save [`29a8d13`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/29a8d1338aaf435b70739efc7309fea7f93f0e09)
568 - APISERVER: /config/is-dirty [`db72a80`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/db72a8066f0f3be2e5ae339371d27f6a03bbd02b) 574 - APISERVER: /config/is-dirty [`db72a80`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/db72a8066f0f3be2e5ae339371d27f6a03bbd02b)
569 - APISERVER: perbaikan configbackup [`690a273`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/690a27309c78704e1accb2be7898ea4b83a848ff) 575 - APISERVER: perbaikan configbackup [`690a273`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/690a27309c78704e1accb2be7898ea4b83a848ff)
570 576
571 #### [v1.30.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.29.2...v1.30.0) 577 #### [v1.30.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.29.2...v1.30.0)
572 578
573 > 26 June 2018 579 > 26 June 2018
574 580
575 - PULL: aktifkan kembali is_on_delay_after_no_task [`671c8c9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/671c8c95ec281c243168b8a7e2879941fb60dd14) 581 - PULL: aktifkan kembali is_on_delay_after_no_task [`671c8c9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/671c8c95ec281c243168b8a7e2879941fb60dd14)
576 - PULL tidak ambil tugas jika dalam keadaan PAUSED [`ed01ccf`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ed01ccf6256a780e4a44ce0221b6a934dce2bbf4) 582 - PULL tidak ambil tugas jika dalam keadaan PAUSED [`ed01ccf`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ed01ccf6256a780e4a44ce0221b6a934dce2bbf4)
577 583
578 #### [v1.29.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.29.1...v1.29.2) 584 #### [v1.29.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.29.1...v1.29.2)
579 585
580 > 26 June 2018 586 > 26 June 2018
581 587
582 - APISERVER: Fix missing identifier [`59cf14a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/59cf14af13e2615821d3297ea4dfa87766e9c574) 588 - APISERVER: Fix missing identifier [`59cf14a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/59cf14af13e2615821d3297ea4dfa87766e9c574)
583 - simplifikasi products add/del [`438d7f4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/438d7f4c16caef59e59cfa03dff7de6ee888b022) 589 - simplifikasi products add/del [`438d7f4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/438d7f4c16caef59e59cfa03dff7de6ee888b022)
584 - debug [`2678d5d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2678d5d308f1548af6c1b7a2b36c69b8b367e7ff) 590 - debug [`2678d5d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2678d5d308f1548af6c1b7a2b36c69b8b367e7ff)
585 591
586 #### [v1.29.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.29.0...v1.29.1) 592 #### [v1.29.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.29.0...v1.29.1)
587 593
588 > 26 June 2018 594 > 26 June 2018
589 595
590 - debug [`c20efc4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c20efc4fcdad50001f22da9ee2c4e4d94e994669) 596 - debug [`c20efc4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c20efc4fcdad50001f22da9ee2c4e4d94e994669)
591 597
592 #### [v1.29.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.28.2...v1.29.0) 598 #### [v1.29.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.28.2...v1.29.0)
593 599
594 > 26 June 2018 600 > 26 June 2018
595 601
596 - gateway apiserver product [`d51ec9b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d51ec9b0ef978dedfd08007fcbbb28afdd09d39b) 602 - gateway apiserver product [`d51ec9b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d51ec9b0ef978dedfd08007fcbbb28afdd09d39b)
597 - apiserver products ready to test [`d31fb6a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d31fb6a017593a246bf2aa9de71d920e27cf7cc1) 603 - apiserver products ready to test [`d31fb6a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d31fb6a017593a246bf2aa9de71d920e27cf7cc1)
598 604
599 #### [v1.28.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.28.1...v1.28.2) 605 #### [v1.28.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.28.1...v1.28.2)
600 606
601 > 4 June 2018 607 > 4 June 2018
602 608
603 - config.disable_delay_after_no_task [`45f0db1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/45f0db1d95f9fbc2ac54ac246fa2b68358f24dee) 609 - config.disable_delay_after_no_task [`45f0db1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/45f0db1d95f9fbc2ac54ac246fa2b68358f24dee)
604 610
605 #### [v1.28.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.28.0...v1.28.1) 611 #### [v1.28.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.28.0...v1.28.1)
606 612
607 > 4 June 2018 613 > 4 June 2018
608 614
609 - disable pull delay [`cd1db9b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/cd1db9b47cacec3c68e4a4261b49d7457e0ad1d7) 615 - disable pull delay [`cd1db9b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/cd1db9b47cacec3c68e4a4261b49d7457e0ad1d7)
610 616
611 #### [v1.28.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.6...v1.28.0) 617 #### [v1.28.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.6...v1.28.0)
612 618
613 > 4 June 2018 619 > 4 June 2018
614 620
615 - PULL-LAME [`0fb1f08`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0fb1f084b2a49385f548ae13f653baf6d5f6b196) 621 - PULL-LAME [`0fb1f08`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0fb1f084b2a49385f548ae13f653baf6d5f6b196)
616 - PULL: log task dan queue_time [`c30416c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c30416ce9c9110b598dac3cb57fa1682e5920b8d) 622 - PULL: log task dan queue_time [`c30416c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c30416ce9c9110b598dac3cb57fa1682e5920b8d)
617 623
618 #### [v1.27.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.5...v1.27.6) 624 #### [v1.27.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.5...v1.27.6)
619 625
620 > 19 May 2018 626 > 19 May 2018
621 627
622 - typos [`90833b8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/90833b8bf2218ea682f458d29dd66b2a7ff42277) 628 - typos [`90833b8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/90833b8bf2218ea682f458d29dd66b2a7ff42277)
623 629
624 #### [v1.27.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.4...v1.27.5) 630 #### [v1.27.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.4...v1.27.5)
625 631
626 > 19 May 2018 632 > 19 May 2018
627 633
628 - heartbeat2 [`b3510b3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b3510b3e7391e83ce0af362118d324147a9d2903) 634 - heartbeat2 [`b3510b3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b3510b3e7391e83ce0af362118d324147a9d2903)
629 - RC-FROM-MSG perbaikan kondisi search [`06bfc22`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/06bfc22d76ae53c4ca7492cfcef8950db0931892) 635 - RC-FROM-MSG perbaikan kondisi search [`06bfc22`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/06bfc22d76ae53c4ca7492cfcef8950db0931892)
630 636
631 #### [v1.27.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.3...v1.27.4) 637 #### [v1.27.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.3...v1.27.4)
632 638
633 > 7 May 2018 639 > 7 May 2018
634 640
635 - CONTROL-PANEL perbaikan lokasi core-url [`3091a74`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3091a74e581b13a46ec3711225f862b736d5c033) 641 - CONTROL-PANEL perbaikan lokasi core-url [`3091a74`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3091a74e581b13a46ec3711225f862b736d5c033)
636 642
637 #### [v1.27.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.2...v1.27.3) 643 #### [v1.27.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.2...v1.27.3)
638 644
639 > 7 May 2018 645 > 7 May 2018
640 646
641 - CONTROL-PANEL core-url [`6418526`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/64185261a75720463b51148d5a2ecb3782dac873) 647 - CONTROL-PANEL core-url [`6418526`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/64185261a75720463b51148d5a2ecb3782dac873)
642 648
643 #### [v1.27.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.1...v1.27.2) 649 #### [v1.27.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.1...v1.27.2)
644 650
645 > 7 May 2018 651 > 7 May 2018
646 652
647 - sdk_pending_tasks force trx_id to number [`5a75a04`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5a75a0411422293a94b6a2288d2c960aa8f63cf9) 653 - sdk_pending_tasks force trx_id to number [`5a75a04`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5a75a0411422293a94b6a2288d2c960aa8f63cf9)
648 654
649 #### [v1.27.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.0...v1.27.1) 655 #### [v1.27.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.27.0...v1.27.1)
650 656
651 > 7 May 2018 657 > 7 May 2018
652 658
653 - PULL-REPORT include balance [`fbf9a1a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fbf9a1a94bfcda852981a22787efa568c14e4355) 659 - PULL-REPORT include balance [`fbf9a1a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fbf9a1a94bfcda852981a22787efa568c14e4355)
654 660
655 #### [v1.27.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.8...v1.27.0) 661 #### [v1.27.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.8...v1.27.0)
656 662
657 > 3 May 2018 663 > 3 May 2018
658 664
659 - PULL report rc_from_handler if exists [`4cceb4d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4cceb4d147df2e8446fdc75653646fd73bc09c4a) 665 - PULL report rc_from_handler if exists [`4cceb4d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4cceb4d147df2e8446fdc75653646fd73bc09c4a)
660 666
661 #### [v1.26.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.7...v1.26.8) 667 #### [v1.26.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.7...v1.26.8)
662 668
663 > 3 May 2018 669 > 3 May 2018
664 670
665 - perbaikan resendDelay.cancel [`b81760a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b81760a8b2251ae5a17af67ae7057a7dd440fd44) 671 - perbaikan resendDelay.cancel [`b81760a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b81760a8b2251ae5a17af67ae7057a7dd440fd44)
666 672
667 #### [v1.26.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.6...v1.26.7) 673 #### [v1.26.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.6...v1.26.7)
668 674
669 > 3 May 2018 675 > 3 May 2018
670 676
671 - debug [`f1e517e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f1e517e44afa6439a3f184b95b51d09cbd8b8166) 677 - debug [`f1e517e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f1e517e44afa6439a3f184b95b51d09cbd8b8166)
672 678
673 #### [v1.26.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.5...v1.26.6) 679 #### [v1.26.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.5...v1.26.6)
674 680
675 > 3 May 2018 681 > 3 May 2018
676 682
677 - RESEND-DELAY debug [`485d696`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/485d696eaa45305a434ce326eaa29355a727979a) 683 - RESEND-DELAY debug [`485d696`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/485d696eaa45305a434ce326eaa29355a727979a)
678 684
679 #### [v1.26.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.4...v1.26.5) 685 #### [v1.26.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.4...v1.26.5)
680 686
681 > 3 May 2018 687 > 3 May 2018
682 688
683 - config.auto_resend.debug [`53f0bf6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/53f0bf69ef1b592cb4bfb917cf96066b28c6ffed) 689 - config.auto_resend.debug [`53f0bf6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/53f0bf69ef1b592cb4bfb917cf96066b28c6ffed)
684 690
685 #### [v1.26.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.3...v1.26.4) 691 #### [v1.26.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.3...v1.26.4)
686 692
687 > 3 May 2018 693 > 3 May 2018
688 694
689 - log tag SDK-RESEND-DELAY [`62ca0c9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/62ca0c9f23a13936c466619a3f21da752884c811) 695 - log tag SDK-RESEND-DELAY [`62ca0c9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/62ca0c9f23a13936c466619a3f21da752884c811)
690 - RC-FROM-MSG continue if rule is not valid [`b629adf`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b629adf2df0ed6aad52bc2e8aab73bbe344786b2) 696 - RC-FROM-MSG continue if rule is not valid [`b629adf`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b629adf2df0ed6aad52bc2e8aab73bbe344786b2)
691 - debug resend-delay [`0da132f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0da132f8b76a791c34f9ce106344da5df05bc157) 697 - debug resend-delay [`0da132f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0da132f8b76a791c34f9ce106344da5df05bc157)
692 698
693 #### [v1.26.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.2...v1.26.3) 699 #### [v1.26.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.2...v1.26.3)
694 700
695 > 3 May 2018 701 > 3 May 2018
696 702
697 - debig [`4fae56d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4fae56d8449be129099d8b86341929b7e698d54c) 703 - debig [`4fae56d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4fae56d8449be129099d8b86341929b7e698d54c)
698 704
699 #### [v1.26.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.1...v1.26.2) 705 #### [v1.26.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.1...v1.26.2)
700 706
701 > 3 May 2018 707 > 3 May 2018
702 708
703 - more debug [`e9dd718`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e9dd71882ab8cbbaeb7e3e8a42d5a1c7aad15643) 709 - more debug [`e9dd718`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e9dd71882ab8cbbaeb7e3e8a42d5a1c7aad15643)
704 710
705 #### [v1.26.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.0...v1.26.1) 711 #### [v1.26.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.26.0...v1.26.1)
706 712
707 > 3 May 2018 713 > 3 May 2018
708 714
709 - debug [`6575722`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/65757228e0649a2a80c5566740c5245b3b472ed3) 715 - debug [`6575722`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/65757228e0649a2a80c5566740c5245b3b472ed3)
710 716
711 #### [v1.26.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.25.1...v1.26.0) 717 #### [v1.26.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.25.1...v1.26.0)
712 718
713 > 3 May 2018 719 > 3 May 2018
714 720
715 - rc-from-msg [`5847965`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5847965e396d498fa92c79025c44f7c43cda28e9) 721 - rc-from-msg [`5847965`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5847965e396d498fa92c79025c44f7c43cda28e9)
716 - rc-from-msg support flags [`8e6ba71`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8e6ba71b3a6680c80d8cbbe97f039ad27ec5da4b) 722 - rc-from-msg support flags [`8e6ba71`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8e6ba71b3a6680c80d8cbbe97f039ad27ec5da4b)
717 - rc-from-msg [`441c4cc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/441c4cc13be2d35d7d5c7519bd083b98fff1f851) 723 - rc-from-msg [`441c4cc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/441c4cc13be2d35d7d5c7519bd083b98fff1f851)
718 724
719 #### [v1.25.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.25.0...v1.25.1) 725 #### [v1.25.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.25.0...v1.25.1)
720 726
721 > 30 April 2018 727 > 30 April 2018
722 728
723 - PULL: onNoTask [`e44591d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e44591d89a49ddf8efabd715c87acf9f52458460) 729 - PULL: onNoTask [`e44591d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e44591d89a49ddf8efabd715c87acf9f52458460)
724 730
725 #### [v1.25.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.24.4...v1.25.0) 731 #### [v1.25.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.24.4...v1.25.0)
726 732
727 > 24 April 2018 733 > 24 April 2018
728 734
729 - API-SERVER: services [`a4e4646`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a4e4646bf44293e2559e695750e7657a5ac2d4fd) 735 - API-SERVER: services [`a4e4646`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a4e4646bf44293e2559e695750e7657a5ac2d4fd)
730 - API-SERVER: config del and save [`ba2a6e9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ba2a6e968690a9a4cae0760d7614373da287e674) 736 - API-SERVER: config del and save [`ba2a6e9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ba2a6e968690a9a4cae0760d7614373da287e674)
731 - extract-from-msg [`f8ede7d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f8ede7d096c4725b13f8dab267b99400a2d59570) 737 - extract-from-msg [`f8ede7d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f8ede7d096c4725b13f8dab267b99400a2d59570)
732 738
733 #### [v1.24.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.24.3...v1.24.4) 739 #### [v1.24.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.24.3...v1.24.4)
734 740
735 > 23 April 2018 741 > 23 April 2018
736 742
737 - simplified [`0a6b93a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0a6b93a29f063250b810cb0ee07edadb38792229) 743 - simplified [`0a6b93a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0a6b93a29f063250b810cb0ee07edadb38792229)
738 - APISERVER: get blank key [`0bd477c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0bd477ce853d70807336788c82f1a27cfd441d62) 744 - APISERVER: get blank key [`0bd477c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0bd477ce853d70807336788c82f1a27cfd441d62)
739 - tambahan kurung [`02f4c76`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/02f4c768459c9b76e3834357863d697e6cefffc5) 745 - tambahan kurung [`02f4c76`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/02f4c768459c9b76e3834357863d697e6cefffc5)
740 746
741 #### [v1.24.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.24.2...v1.24.3) 747 #### [v1.24.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.24.2...v1.24.3)
742 748
743 > 23 April 2018 749 > 23 April 2018
744 750
745 - jsonQuery on apiserver [`7e31d0b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7e31d0b5a0d72b6d0ef0a00db3e5d5180632a652) 751 - jsonQuery on apiserver [`7e31d0b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7e31d0b5a0d72b6d0ef0a00db3e5d5180632a652)
746 752
747 #### [v1.24.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.24.1...v1.24.2) 753 #### [v1.24.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.24.1...v1.24.2)
748 754
749 > 23 April 2018 755 > 23 April 2018
750 756
751 - typo [`e744c24`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e744c241788cfcc7eef7070417c2257ef69fd56e) 757 - typo [`e744c24`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e744c241788cfcc7eef7070417c2257ef69fd56e)
752 758
753 #### [v1.24.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.24.0...v1.24.1) 759 #### [v1.24.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.24.0...v1.24.1)
754 760
755 > 23 April 2018 761 > 23 April 2018
756 762
757 - APISERVER: perbaikan config port [`ad6edfc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ad6edfc484716a51ab6dab99721b5b1f59454b6d) 763 - APISERVER: perbaikan config port [`ad6edfc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ad6edfc484716a51ab6dab99721b5b1f59454b6d)
758 764
759 #### [v1.24.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.7...v1.24.0) 765 #### [v1.24.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.7...v1.24.0)
760 766
761 > 23 April 2018 767 > 23 April 2018
762 768
763 - api-server going to test [`5ad117f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5ad117fb1afbedff78e6108671ff23c0f69821a6) 769 - api-server going to test [`5ad117f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5ad117fb1afbedff78e6108671ff23c0f69821a6)
764 - ignore logs directory [`ddae54f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ddae54f6c34a40f48af28ce874b7d16c52eb15bb) 770 - ignore logs directory [`ddae54f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ddae54f6c34a40f48af28ce874b7d16c52eb15bb)
765 771
766 #### [v1.23.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.6...v1.23.7) 772 #### [v1.23.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.6...v1.23.7)
767 773
768 > 20 April 2018 774 > 20 April 2018
769 775
770 - heartbeat using core-url [`98d66b9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/98d66b91c698fa83ae3d875660375858ed09a5e9) 776 - heartbeat using core-url [`98d66b9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/98d66b91c698fa83ae3d875660375858ed09a5e9)
771 - typo [`e8601c0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e8601c0521267247a084b85a91843c4c8ae7ae89) 777 - typo [`e8601c0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e8601c0521267247a084b85a91843c4c8ae7ae89)
772 - dummy config [`ebb75bc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ebb75bc9e42c5372119644342b509f85e00275b6) 778 - dummy config [`ebb75bc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ebb75bc9e42c5372119644342b509f85e00275b6)
773 779
774 #### [v1.23.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.5...v1.23.6) 780 #### [v1.23.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.5...v1.23.6)
775 781
776 > 20 April 2018 782 > 20 April 2018
777 783
778 - perbaikan core_url yg kelebihan pull task [`3c3ffc1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3c3ffc1c2d9aab4ab2942efb7a35e4b90f4fbdbd) 784 - perbaikan core_url yg kelebihan pull task [`3c3ffc1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3c3ffc1c2d9aab4ab2942efb7a35e4b90f4fbdbd)
779 785
780 #### [v1.23.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.4...v1.23.5) 786 #### [v1.23.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.4...v1.23.5)
781 787
782 > 20 April 2018 788 > 20 April 2018
783 789
784 - debug [`965726a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/965726ade575865503e2d60e56302b2efcc0bb03) 790 - debug [`965726a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/965726ade575865503e2d60e56302b2efcc0bb03)
785 - perbaikan search path [`77db066`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/77db0669c6c0382e4b1ae3717c91dfb25eefd209) 791 - perbaikan search path [`77db066`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/77db0669c6c0382e4b1ae3717c91dfb25eefd209)
786 792
787 #### [v1.23.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.3...v1.23.4) 793 #### [v1.23.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.3...v1.23.4)
788 794
789 > 20 April 2018 795 > 20 April 2018
790 796
791 - config-from-main fixed, i hope so [`03099b9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/03099b9fc6dfd3b597696b601e5ac092bc99d9f6) 797 - config-from-main fixed, i hope so [`03099b9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/03099b9fc6dfd3b597696b601e5ac092bc99d9f6)
792 - typo [`410f3e7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/410f3e774ac4c6200e0dbed263835738972d87e5) 798 - typo [`410f3e7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/410f3e774ac4c6200e0dbed263835738972d87e5)
793 799
794 #### [v1.23.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.2...v1.23.3) 800 #### [v1.23.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.2...v1.23.3)
795 801
796 > 20 April 2018 802 > 20 April 2018
797 803
798 - debug [`1e1d40e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1e1d40e97940d43b20d75ddf89cf608c7a0ef533) 804 - debug [`1e1d40e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1e1d40e97940d43b20d75ddf89cf608c7a0ef533)
799 805
800 #### [v1.23.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.1...v1.23.2) 806 #### [v1.23.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.1...v1.23.2)
801 807
802 > 20 April 2018 808 > 20 April 2018
803 809
804 - typo [`7712a05`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7712a0586c101ea8638735dd12e3a7990377da86) 810 - typo [`7712a05`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7712a0586c101ea8638735dd12e3a7990377da86)
805 811
806 #### [v1.23.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.0...v1.23.1) 812 #### [v1.23.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.23.0...v1.23.1)
807 813
808 > 20 April 2018 814 > 20 April 2018
809 815
810 - smarter core-url [`2bc314f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2bc314f2ce5dd1dd5614d876c1b3bb0b55b00af9) 816 - smarter core-url [`2bc314f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2bc314f2ce5dd1dd5614d876c1b3bb0b55b00af9)
811 - penanganan jika config.pull_url tidak terdefinisi [`b207ef2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b207ef23181821d0c25ada69a667b3494411e649) 817 - penanganan jika config.pull_url tidak terdefinisi [`b207ef2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b207ef23181821d0c25ada69a667b3494411e649)
812 818
813 #### [v1.23.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.7...v1.23.0) 819 #### [v1.23.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.7...v1.23.0)
814 820
815 > 20 April 2018 821 > 20 April 2018
816 822
817 - core_url fallback ke main config.json [`f6080a9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f6080a98d46434596d5c61c5d8e9791dc6d51a05) 823 - core_url fallback ke main config.json [`f6080a9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f6080a98d46434596d5c61c5d8e9791dc6d51a05)
818 - config-from-main.js [`d815c84`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d815c8495e9e55f8369a71af5d3b29b7a2a21a6d) 824 - config-from-main.js [`d815c84`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d815c8495e9e55f8369a71af5d3b29b7a2a21a6d)
819 825
820 #### [v1.22.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.6...v1.22.7) 826 #### [v1.22.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.6...v1.22.7)
821 827
822 > 20 April 2018 828 > 20 April 2018
823 829
824 - a little optimizer [`fde8503`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fde8503cf8b79868945acea9485bf2e514268be1) 830 - a little optimizer [`fde8503`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fde8503cf8b79868945acea9485bf2e514268be1)
825 831
826 #### [v1.22.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.5...v1.22.6) 832 #### [v1.22.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.5...v1.22.6)
827 833
828 > 20 April 2018 834 > 20 April 2018
829 835
830 - pull pending count update [`29137ad`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/29137adbd49f561046ac03de0805a7398a10d949) 836 - pull pending count update [`29137ad`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/29137adbd49f561046ac03de0805a7398a10d949)
831 - matrix pending count [`43e476e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/43e476e01a8cdc7e66f834dd1711aaba39644825) 837 - matrix pending count [`43e476e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/43e476e01a8cdc7e66f834dd1711aaba39644825)
832 - pending count update on putTaskToMatrix [`83aa57a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/83aa57ab5bacb8c48819450b9ab95aa7d4f48ed3) 838 - pending count update on putTaskToMatrix [`83aa57a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/83aa57ab5bacb8c48819450b9ab95aa7d4f48ed3)
833 839
834 #### [v1.22.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.4...v1.22.5) 840 #### [v1.22.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.4...v1.22.5)
835 841
836 > 19 April 2018 842 > 19 April 2018
837 843
838 - critical typo [`5c0a71d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5c0a71dfd2741db886799dbe98a74865fa1ab42d) 844 - critical typo [`5c0a71d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5c0a71dfd2741db886799dbe98a74865fa1ab42d)
839 845
840 #### [v1.22.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.3...v1.22.4) 846 #### [v1.22.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.3...v1.22.4)
841 847
842 > 19 April 2018 848 > 19 April 2018
843 849
844 - perbaikan matrix sdk pending task [`c31432a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c31432aadccb6bdab7dbb631f00af3c86bc8d59e) 850 - perbaikan matrix sdk pending task [`c31432a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c31432aadccb6bdab7dbb631f00af3c86bc8d59e)
845 851
846 #### [v1.22.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.2...v1.22.3) 852 #### [v1.22.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.2...v1.22.3)
847 853
848 > 19 April 2018 854 > 19 April 2018
849 855
850 - perbaikan lokasi config dan logger [`bdd64a2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bdd64a261ca06f7cfeac935b049c6d5684138a61) 856 - perbaikan lokasi config dan logger [`bdd64a2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bdd64a261ca06f7cfeac935b049c6d5684138a61)
851 857
852 #### [v1.22.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.1...v1.22.2) 858 #### [v1.22.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.1...v1.22.2)
853 859
854 > 19 April 2018 860 > 19 April 2018
855 861
856 - resendDelay.isEnabled [`ccfa3be`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ccfa3bee6eb675ca8bc0e23cf9230566acdc75ce) 862 - resendDelay.isEnabled [`ccfa3be`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ccfa3bee6eb675ca8bc0e23cf9230566acdc75ce)
857 863
858 #### [v1.22.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.0...v1.22.1) 864 #### [v1.22.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.22.0...v1.22.1)
859 865
860 > 19 April 2018 866 > 19 April 2018
861 867
862 - debug_request_task_to_core [`b143caf`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b143caf500d540ffe36aed51272a6261ba7714e9) 868 - debug_request_task_to_core [`b143caf`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b143caf500d540ffe36aed51272a6261ba7714e9)
863 - more debug [`bc4e040`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bc4e040172d6810c87ee538455e8f3ec33255de0) 869 - more debug [`bc4e040`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bc4e040172d6810c87ee538455e8f3ec33255de0)
864 870
865 #### [v1.22.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.21.0...v1.22.0) 871 #### [v1.22.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.21.0...v1.22.0)
866 872
867 > 18 April 2018 873 > 18 April 2018
868 874
869 - cancel push server [`f577141`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f577141e3b6231c3bd15a47c58aee1587e3b8c7d) 875 - cancel push server [`f577141`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f577141e3b6231c3bd15a47c58aee1587e3b8c7d)
870 - RESEND-DELAY: optimized [`99bf9e4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/99bf9e4c4c0bfaf0ebb7099e667d9499b8e149af) 876 - RESEND-DELAY: optimized [`99bf9e4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/99bf9e4c4c0bfaf0ebb7099e667d9499b8e149af)
871 - RESEND-DELAY: configuration [`cae6dc2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/cae6dc2db5c8dfdf88ab28c33b62e025f56a6209) 877 - RESEND-DELAY: configuration [`cae6dc2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/cae6dc2db5c8dfdf88ab28c33b62e025f56a6209)
872 878
873 #### [v1.21.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.20.3...v1.21.0) 879 #### [v1.21.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.20.3...v1.21.0)
874 880
875 > 18 April 2018 881 > 18 April 2018
876 882
877 - resendDelay teradaptasi untuk komodo, i hope so [`1bf198d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1bf198d1caae34752e006d2b6b0af95158203150) 883 - resendDelay teradaptasi untuk komodo, i hope so [`1bf198d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1bf198d1caae34752e006d2b6b0af95158203150)
878 - resendDelay: simplifikasi cancel [`6099529`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/609952959f003c5107de3493beacfcfb699f82cb) 884 - resendDelay: simplifikasi cancel [`6099529`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/609952959f003c5107de3493beacfcfb699f82cb)
879 - resendDelay: buang try catch pada clearTimeout [`3a44f40`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3a44f4053f58e7839353d3a849fffb2c27c7b6aa) 885 - resendDelay: buang try catch pada clearTimeout [`3a44f40`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3a44f4053f58e7839353d3a849fffb2c27c7b6aa)
880 886
881 #### [v1.20.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.20.2...v1.20.3) 887 #### [v1.20.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.20.2...v1.20.3)
882 888
883 > 17 April 2018 889 > 17 April 2018
884 890
885 - PULL: matrix.pending_with_response_tasks [`87762e4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/87762e48b7e03ae9cdb534f6f376290c759266af) 891 - PULL: matrix.pending_with_response_tasks [`87762e4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/87762e48b7e03ae9cdb534f6f376290c759266af)
886 - advice_url on pullTask [`91c1b11`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/91c1b115a39348ecc2e915c5059e72d376bc42f3) 892 - advice_url on pullTask [`91c1b11`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/91c1b115a39348ecc2e915c5059e72d376bc42f3)
887 - perbaikan replace rc [`677608f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/677608f38e5e6be44a36def02dbb67b125623fd6) 893 - perbaikan replace rc [`677608f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/677608f38e5e6be44a36def02dbb67b125623fd6)
888 894
889 #### [v1.20.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.20.1...v1.20.2) 895 #### [v1.20.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.20.1...v1.20.2)
890 896
891 > 5 April 2018 897 > 5 April 2018
892 898
893 - typo fix [`76a8768`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/76a87687e0985115e7e834bc527fb6fff1c5dce5) 899 - typo fix [`76a8768`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/76a87687e0985115e7e834bc527fb6fff1c5dce5)
894 900
895 #### [v1.20.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.20.0...v1.20.1) 901 #### [v1.20.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.20.0...v1.20.1)
896 902
897 > 5 April 2018 903 > 5 April 2018
898 904
899 - PULL: perbaikan penghapusan pending_tasks [`b0597d4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b0597d4158c418974d9a6147afbf3c15c4de8edd) 905 - PULL: perbaikan penghapusan pending_tasks [`b0597d4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b0597d4158c418974d9a6147afbf3c15c4de8edd)
900 906
901 #### [v1.20.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.19.4...v1.20.0) 907 #### [v1.20.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.19.4...v1.20.0)
902 908
903 > 5 April 2018 909 > 5 April 2018
904 910
905 - pull: putTaskToMatrix and updateTaskOnMatrix [`24e876d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/24e876dacc8529ef43fae19713075b85df65fc72) 911 - pull: putTaskToMatrix and updateTaskOnMatrix [`24e876d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/24e876dacc8529ef43fae19713075b85df65fc72)
906 912
907 #### [v1.19.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.19.3...v1.19.4) 913 #### [v1.19.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.19.3...v1.19.4)
908 914
909 > 29 March 2018 915 > 29 March 2018
910 916
911 - as is [`39b82a9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/39b82a985eafa3a205c176b6e51f3b3d0d283cfd) 917 - as is [`39b82a9`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/39b82a985eafa3a205c176b6e51f3b3d0d283cfd)
912 918
913 #### [v1.19.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.19.2...v1.19.3) 919 #### [v1.19.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.19.2...v1.19.3)
914 920
915 > 29 March 2018 921 > 29 March 2018
916 922
917 - CENTER [`d297d90`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d297d908d243be97ace506c2cd8a440093e51e7f) 923 - CENTER [`d297d90`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d297d908d243be97ace506c2cd8a440093e51e7f)
918 924
919 #### [v1.19.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.19.1...v1.19.2) 925 #### [v1.19.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.19.1...v1.19.2)
920 926
921 > 29 March 2018 927 > 29 March 2018
922 928
923 - CENTER: process.title separator [`bda1d0d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bda1d0d2061da2c0d56e8b0adcf705808183c697) 929 - CENTER: process.title separator [`bda1d0d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bda1d0d2061da2c0d56e8b0adcf705808183c697)
924 930
925 #### [v1.19.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.19.0...v1.19.1) 931 #### [v1.19.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.19.0...v1.19.1)
926 932
927 > 29 March 2018 933 > 29 March 2018
928 934
929 - process title [`0049b14`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0049b1401ee2ed5eb24e7adb5068fcbc6e080d0c) 935 - process title [`0049b14`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0049b1401ee2ed5eb24e7adb5068fcbc6e080d0c)
930 936
931 #### [v1.19.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.18.0...v1.19.0) 937 #### [v1.19.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.18.0...v1.19.0)
932 938
933 > 29 March 2018 939 > 29 March 2018
934 940
935 - process.title center [`d784c04`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d784c04cea35af2dca31f5b0ee65d6bd71222f4b) 941 - process.title center [`d784c04`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d784c04cea35af2dca31f5b0ee65d6bd71222f4b)
936 942
937 #### [v1.18.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.17.2...v1.18.0) 943 #### [v1.18.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.17.2...v1.18.0)
938 944
939 > 27 March 2018 945 > 27 March 2018
940 946
941 - perbaikan filter task tidak valid pada advice server [`15585ce`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/15585ce11e0db9eb219409550697155d00d85c27) 947 - perbaikan filter task tidak valid pada advice server [`15585ce`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/15585ce11e0db9eb219409550697155d00d85c27)
942 - typo fix [`d609612`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d6096122d9f46418bbcc3dd7d7ee87a271dc7eb0) 948 - typo fix [`d609612`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d6096122d9f46418bbcc3dd7d7ee87a271dc7eb0)
943 - debug [`27cfaa6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/27cfaa6f25cedc071e96525a021607ce49995cd7) 949 - debug [`27cfaa6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/27cfaa6f25cedc071e96525a021607ce49995cd7)
944 950
945 #### [v1.17.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.17.1...v1.17.2) 951 #### [v1.17.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.17.1...v1.17.2)
946 952
947 > 27 March 2018 953 > 27 March 2018
948 954
949 - logger [`76bd3a5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/76bd3a5a4ee37c58815f6fc032ad0dcc286cf549) 955 - logger [`76bd3a5`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/76bd3a5a4ee37c58815f6fc032ad0dcc286cf549)
950 956
951 #### [v1.17.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.17.0...v1.17.1) 957 #### [v1.17.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.17.0...v1.17.1)
952 958
953 > 27 March 2018 959 > 27 March 2018
954 960
955 - pull report include misc.advice_url if capable [`2320170`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/23201708bbb817da8ca89c79328d9e750d932326) 961 - pull report include misc.advice_url if capable [`2320170`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/23201708bbb817da8ca89c79328d9e750d932326)
956 962
957 #### [v1.17.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.16.4...v1.17.0) 963 #### [v1.17.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.16.4...v1.17.0)
958 964
959 > 27 March 2018 965 > 27 March 2018
960 966
961 - advice ready to test [`8fa0b35`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8fa0b35c5dbe9f23b57558a31d39da08b6a3699a) 967 - advice ready to test [`8fa0b35`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8fa0b35c5dbe9f23b57558a31d39da08b6a3699a)
962 968
963 #### [v1.16.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.16.3...v1.16.4) 969 #### [v1.16.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.16.3...v1.16.4)
964 970
965 > 27 March 2018 971 > 27 March 2018
966 972
967 - remove sha1 dep from matrix [`5d00a3b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5d00a3b3223da2de97a0f7b47a23e6c5d594ecb7) 973 - remove sha1 dep from matrix [`5d00a3b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5d00a3b3223da2de97a0f7b47a23e6c5d594ecb7)
968 974
969 #### [v1.16.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.16.2...v1.16.3) 975 #### [v1.16.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.16.2...v1.16.3)
970 976
971 > 27 March 2018 977 > 27 March 2018
972 978
973 - remove double hashing on machineid [`4c141f0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4c141f0db39b29aac737d4edfe28b3d18cbd3ff8) 979 - remove double hashing on machineid [`4c141f0`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4c141f0db39b29aac737d4edfe28b3d18cbd3ff8)
974 980
975 #### [v1.16.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.16.1...v1.16.2) 981 #### [v1.16.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.16.1...v1.16.2)
976 982
977 > 27 March 2018 983 > 27 March 2018
978 984
979 - matrix.machineid_hashed_readable [`2c0c0f1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2c0c0f1ad4e61d36efbd88a3f425f999a003929f) 985 - matrix.machineid_hashed_readable [`2c0c0f1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/2c0c0f1ad4e61d36efbd88a3f425f999a003929f)
980 986
981 #### [v1.16.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.16.0...v1.16.1) 987 #### [v1.16.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.16.0...v1.16.1)
982 988
983 > 27 March 2018 989 > 27 March 2018
984 990
985 - machineid_hashed on init [`97ee730`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/97ee730fa2109852502de479c94331ebc2e68c31) 991 - machineid_hashed on init [`97ee730`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/97ee730fa2109852502de479c94331ebc2e68c31)
986 - disable host_id [`192f068`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/192f068daf4b23e22458fcc52ce1619d25ef4832) 992 - disable host_id [`192f068`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/192f068daf4b23e22458fcc52ce1619d25ef4832)
987 993
988 #### [v1.16.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.15.3...v1.16.0) 994 #### [v1.16.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.15.3...v1.16.0)
989 995
990 > 27 March 2018 996 > 27 March 2018
991 997
992 - matrix.machineid_hashed [`56f88fe`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/56f88fe267a9a301e6e96f556a86d7558f61accc) 998 - matrix.machineid_hashed [`56f88fe`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/56f88fe267a9a301e6e96f556a86d7558f61accc)
993 999
994 #### [v1.15.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.15.2...v1.15.3) 1000 #### [v1.15.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.15.2...v1.15.3)
995 1001
996 > 27 March 2018 1002 > 27 March 2018
997 1003
998 - typo matrix [`cc77ccb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/cc77ccb29fd332ecd36a7013e4fa1c5795a2d0ef) 1004 - typo matrix [`cc77ccb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/cc77ccb29fd332ecd36a7013e4fa1c5795a2d0ef)
999 1005
1000 #### [v1.15.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.15.1...v1.15.2) 1006 #### [v1.15.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.15.1...v1.15.2)
1001 1007
1002 > 27 March 2018 1008 > 27 March 2018
1003 1009
1004 - typo [`95db5d8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/95db5d82d549107623232cfa7678f440734d53c9) 1010 - typo [`95db5d8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/95db5d82d549107623232cfa7678f440734d53c9)
1005 1011
1006 #### [v1.15.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.15.0...v1.15.1) 1012 #### [v1.15.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.15.0...v1.15.1)
1007 1013
1008 > 27 March 2018 1014 > 27 March 2018
1009 1015
1010 - matrix hostid [`b662673`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b662673f55d030d9f7483050a63dc9ac7f7e995b) 1016 - matrix hostid [`b662673`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b662673f55d030d9f7483050a63dc9ac7f7e995b)
1011 1017
1012 #### [v1.15.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.6...v1.15.0) 1018 #### [v1.15.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.6...v1.15.0)
1013 1019
1014 > 19 March 2018 1020 > 19 March 2018
1015 1021
1016 - logger not printing timestamp if output is not tty [`5951e49`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5951e49cadeea6ad1e2995daa1ea9892ab84613a) 1022 - logger not printing timestamp if output is not tty [`5951e49`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5951e49cadeea6ad1e2995daa1ea9892ab84613a)
1017 1023
1018 #### [v1.14.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.5...v1.14.6) 1024 #### [v1.14.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.5...v1.14.6)
1019 1025
1020 > 23 January 2018 1026 > 23 January 2018
1021 1027
1022 - support environtment KOMODO_LOG_FILENAME [`500f811`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/500f811264588e150e623c182047756fb5358ee5) 1028 - support environtment KOMODO_LOG_FILENAME [`500f811`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/500f811264588e150e623c182047756fb5358ee5)
1023 1029
1024 #### [v1.14.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.4...v1.14.5) 1030 #### [v1.14.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.4...v1.14.5)
1025 1031
1026 > 22 January 2018 1032 > 22 January 2018
1027 1033
1028 - resendReport digunakan jika gagal report ke core [`3e83e80`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3e83e80449f3c8d5434705be05bae65fcb1947cf) 1034 - resendReport digunakan jika gagal report ke core [`3e83e80`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3e83e80449f3c8d5434705be05bae65fcb1947cf)
1029 1035
1030 #### [v1.14.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.3...v1.14.4) 1036 #### [v1.14.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.3...v1.14.4)
1031 1037
1032 > 17 January 2018 1038 > 17 January 2018
1033 1039
1034 - increment counter trx on task [`35fa96d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/35fa96dc3d444f93810ab39a597f0950ad81c43e) 1040 - increment counter trx on task [`35fa96d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/35fa96dc3d444f93810ab39a597f0950ad81c43e)
1035 1041
1036 #### [v1.14.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.2...v1.14.3) 1042 #### [v1.14.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.2...v1.14.3)
1037 1043
1038 > 17 January 2018 1044 > 17 January 2018
1039 1045
1040 - debug [`0def1a4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0def1a45643bbfe6dc47cd3b8378bc540a6d17c8) 1046 - debug [`0def1a4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0def1a45643bbfe6dc47cd3b8378bc540a6d17c8)
1041 1047
1042 #### [v1.14.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.1...v1.14.2) 1048 #### [v1.14.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.1...v1.14.2)
1043 1049
1044 > 12 January 2018 1050 > 12 January 2018
1045 1051
1046 - taskArchive [`8cd4a46`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8cd4a46e6982e0907962185e43c142e4c9bbffc4) 1052 - taskArchive [`8cd4a46`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8cd4a46e6982e0907962185e43c142e4c9bbffc4)
1047 1053
1048 #### [v1.14.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.0...v1.14.1) 1054 #### [v1.14.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.14.0...v1.14.1)
1049 1055
1050 > 5 January 2018 1056 > 5 January 2018
1051 1057
1052 - perbaikan pemanggilan replaceRc [`9e4df1a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/9e4df1a397b0c04090a7b0359eed43c301001c84) 1058 - perbaikan pemanggilan replaceRc [`9e4df1a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/9e4df1a397b0c04090a7b0359eed43c301001c84)
1053 1059
1054 #### [v1.14.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.12...v1.14.0) 1060 #### [v1.14.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.12...v1.14.0)
1055 1061
1056 > 5 January 2018 1062 > 5 January 2018
1057 1063
1058 - pull.replaceRc [`c831fbc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c831fbcfefb767a5f7bfd9b1042c6241be398440) 1064 - pull.replaceRc [`c831fbc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c831fbcfefb767a5f7bfd9b1042c6241be398440)
1059 1065
1060 #### [v1.13.12](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.11...v1.13.12) 1066 #### [v1.13.12](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.11...v1.13.12)
1061 1067
1062 > 30 November 2017 1068 > 30 November 2017
1063 1069
1064 - hapus duplikat parameter handler [`ce13912`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ce13912f1064357dc9720ced461cef0ef8f22d1b) 1070 - hapus duplikat parameter handler [`ce13912`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ce13912f1064357dc9720ced461cef0ef8f22d1b)
1065 1071
1066 #### [v1.13.11](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.10...v1.13.11) 1072 #### [v1.13.11](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.10...v1.13.11)
1067 1073
1068 > 21 November 2017 1074 > 21 November 2017
1069 1075
1070 - perbaikan req id suffix [`7ca5d65`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7ca5d655fc511b5089514c8176dae259c819d12e) 1076 - perbaikan req id suffix [`7ca5d65`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7ca5d655fc511b5089514c8176dae259c819d12e)
1071 1077
1072 #### [v1.13.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.9...v1.13.10) 1078 #### [v1.13.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.9...v1.13.10)
1073 1079
1074 > 21 November 2017 1080 > 21 November 2017
1075 1081
1076 - config.do_not_log_report [`d08202f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d08202f1fc83d164427aafca36a269dcda01e100) 1082 - config.do_not_log_report [`d08202f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d08202f1fc83d164427aafca36a269dcda01e100)
1077 - config.do_not_verbose_log_report [`a1cc3dc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a1cc3dc96b1c8039b5ba81b640dedf281db4fe30) 1083 - config.do_not_verbose_log_report [`a1cc3dc`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a1cc3dc96b1c8039b5ba81b640dedf281db4fe30)
1078 1084
1079 #### [v1.13.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.8...v1.13.9) 1085 #### [v1.13.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.8...v1.13.9)
1080 1086
1081 > 21 November 2017 1087 > 21 November 2017
1082 1088
1083 - set gw process title to handler name [`556717c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/556717c4072f05279b0cc30d26e0631ea6a1877c) 1089 - set gw process title to handler name [`556717c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/556717c4072f05279b0cc30d26e0631ea6a1877c)
1084 1090
1085 #### [v1.13.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.7...v1.13.8) 1091 #### [v1.13.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.7...v1.13.8)
1086 1092
1087 > 15 November 2017 1093 > 15 November 2017
1088 1094
1089 - suffix INQ untuk trx inquiry [`b280ca4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b280ca41d076d9b278ee0da81c8c4ab7f9467576) 1095 - suffix INQ untuk trx inquiry [`b280ca4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b280ca41d076d9b278ee0da81c8c4ab7f9467576)
1090 1096
1091 #### [v1.13.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.6...v1.13.7) 1097 #### [v1.13.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.6...v1.13.7)
1092 1098
1093 > 15 November 2017 1099 > 15 November 2017
1094 1100
1095 - kembali generateRequestId [`140d1b7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/140d1b78149c3005e955c887f31795b98ad0b119) 1101 - kembali generateRequestId [`140d1b7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/140d1b78149c3005e955c887f31795b98ad0b119)
1096 1102
1097 #### [v1.13.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.5...v1.13.6) 1103 #### [v1.13.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.5...v1.13.6)
1098 1104
1099 > 15 November 2017 1105 > 15 November 2017
1100 1106
1101 - coba tidak generate auto request id [`0696733`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0696733ed0059f7bf2aba503c2219bf31dbab5b0) 1107 - coba tidak generate auto request id [`0696733`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0696733ed0059f7bf2aba503c2219bf31dbab5b0)
1102 - report include handler_name [`38ad0fa`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/38ad0fad2171d72223eb48e3219c374d3776f86d) 1108 - report include handler_name [`38ad0fa`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/38ad0fad2171d72223eb48e3219c374d3776f86d)
1103 1109
1104 #### [v1.13.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.4...v1.13.5) 1110 #### [v1.13.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.4...v1.13.5)
1105 1111
1106 > 10 November 2017 1112 > 10 November 2017
1107 1113
1108 - perbaikan pesan reply ketika internal error [`dd6b6f1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/dd6b6f11af574faa99348cc8977c27389e8635c0) 1114 - perbaikan pesan reply ketika internal error [`dd6b6f1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/dd6b6f11af574faa99348cc8977c27389e8635c0)
1109 - include msg on every requestToCore [`5241d1a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5241d1aa5257c661d9b752afdd555008ead31d85) 1115 - include msg on every requestToCore [`5241d1a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5241d1aa5257c661d9b752afdd555008ead31d85)
1110 1116
1111 #### [v1.13.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.3...v1.13.4) 1117 #### [v1.13.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.3...v1.13.4)
1112 1118
1113 > 8 November 2017 1119 > 8 November 2017
1114 1120
1115 - perbaikan tertukar url antara pay dan inquiry [`57508f3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/57508f3b978c02b465dd10d837a96deb8e1276d7) 1121 - perbaikan tertukar url antara pay dan inquiry [`57508f3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/57508f3b978c02b465dd10d837a96deb8e1276d7)
1116 - penanganan error jika heartbeat gagal [`ca214c4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ca214c4ff95cb46c088566ff82fd0f8d33c398ec) 1122 - penanganan error jika heartbeat gagal [`ca214c4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ca214c4ff95cb46c088566ff82fd0f8d33c398ec)
1117 - tambah info trx pada pesan internal error [`a69eff3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a69eff3193bd35c9cab7024015baa24a21cafe60) 1123 - tambah info trx pada pesan internal error [`a69eff3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a69eff3193bd35c9cab7024015baa24a21cafe60)
1118 1124
1119 #### [v1.13.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.2...v1.13.3) 1125 #### [v1.13.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.2...v1.13.3)
1120 1126
1121 > 7 November 2017 1127 > 7 November 2017
1122 1128
1123 - eksekusi postpaid [`4cfd8dd`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4cfd8dd309bcba42b7352f85e4fcfddf45b1ce86) 1129 - eksekusi postpaid [`4cfd8dd`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4cfd8dd309bcba42b7352f85e4fcfddf45b1ce86)
1124 1130
1125 #### [v1.13.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.1...v1.13.2) 1131 #### [v1.13.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.1...v1.13.2)
1126 1132
1127 > 7 November 2017 1133 > 7 November 2017
1128 1134
1129 - penanganan nama untuk center heartbeat [`8fa3b86`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8fa3b86fb955564d6e9a012e11dd8e7c9240a5e3) 1135 - penanganan nama untuk center heartbeat [`8fa3b86`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8fa3b86fb955564d6e9a012e11dd8e7c9240a5e3)
1130 - verbose on setModuleType [`8437cc1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8437cc1ad11fd8e7be2f645850da0df00cc787ad) 1136 - verbose on setModuleType [`8437cc1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/8437cc1ad11fd8e7be2f645850da0df00cc787ad)
1131 1137
1132 #### [v1.13.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.0...v1.13.1) 1138 #### [v1.13.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.13.0...v1.13.1)
1133 1139
1134 > 7 November 2017 1140 > 7 November 2017
1135 1141
1136 - center using heartbeat [`5999157`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5999157c3ef8230d067b55c5e31935c9c42c0b99) 1142 - center using heartbeat [`5999157`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5999157c3ef8230d067b55c5e31935c9c42c0b99)
1137 1143
1138 #### [v1.13.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.12.2...v1.13.0) 1144 #### [v1.13.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.12.2...v1.13.0)
1139 1145
1140 > 7 November 2017 1146 > 7 November 2017
1141 1147
1142 - penanganan transaksi postpaid [`a82b4e7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a82b4e76e44720ce189b5e6214a21eec9c2b5df7) 1148 - penanganan transaksi postpaid [`a82b4e7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a82b4e76e44720ce189b5e6214a21eec9c2b5df7)
1143 - report full post. report get dihapus. [`fc07b32`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fc07b328d278fa446c2d3a01fa09c02a98b5e958) 1149 - report full post. report get dihapus. [`fc07b32`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fc07b328d278fa446c2d3a01fa09c02a98b5e958)
1144 - data.raw dan data.misc pada report [`1dc5b1d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1dc5b1da14e02a27df4a77a9bf0dfa4a70ce4aa4) 1150 - data.raw dan data.misc pada report [`1dc5b1d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1dc5b1da14e02a27df4a77a9bf0dfa4a70ce4aa4)
1145 1151
1146 #### [v1.12.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.12.1...v1.12.2) 1152 #### [v1.12.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.12.1...v1.12.2)
1147 1153
1148 > 6 November 2017 1154 > 6 November 2017
1149 1155
1150 - kirim hb setelah setModuleType [`7d64129`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7d6412949429936ad425dc96446049dab0a58701) 1156 - kirim hb setelah setModuleType [`7d64129`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7d6412949429936ad425dc96446049dab0a58701)
1151 1157
1152 #### [v1.12.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.12.0...v1.12.1) 1158 #### [v1.12.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.12.0...v1.12.1)
1153 1159
1154 > 6 November 2017 1160 > 6 November 2017
1155 1161
1156 - module_type as variable [`1803db1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1803db123e038244d160dd160ec448dc5ea43ef7) 1162 - module_type as variable [`1803db1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1803db123e038244d160dd160ec448dc5ea43ef7)
1157 - heartbeat json post [`b89aa1e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b89aa1e3696679ca60eecc9b10ce9541879ba11e) 1163 - heartbeat json post [`b89aa1e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b89aa1e3696679ca60eecc9b10ce9541879ba11e)
1158 - heartbeat.setModuleType pada pull [`05b8a73`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/05b8a73561d37734b7ea074340b8cd0dc9a9d8d7) 1164 - heartbeat.setModuleType pada pull [`05b8a73`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/05b8a73561d37734b7ea074340b8cd0dc9a9d8d7)
1159 1165
1160 #### [v1.12.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.5...v1.12.0) 1166 #### [v1.12.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.5...v1.12.0)
1161 1167
1162 > 6 November 2017 1168 > 6 November 2017
1163 1169
1164 - move heartbeat [`aa18810`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/aa18810cac8a9354011e82a586f70fb380f5fd77) 1170 - move heartbeat [`aa18810`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/aa18810cac8a9354011e82a586f70fb380f5fd77)
1165 - module type [`1c528f8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1c528f85fe071e4613db4743356fc1e6bee6783a) 1171 - module type [`1c528f8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1c528f85fe071e4613db4743356fc1e6bee6783a)
1166 1172
1167 #### [v1.11.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.4...v1.11.5) 1173 #### [v1.11.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.4...v1.11.5)
1168 1174
1169 > 6 November 2017 1175 > 6 November 2017
1170 1176
1171 - missing comma [`f64feab`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f64feab87c9d5128ffe0ba783abc404ea293ddbf) 1177 - missing comma [`f64feab`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f64feab87c9d5128ffe0ba783abc404ea293ddbf)
1172 1178
1173 #### [v1.11.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.3...v1.11.4) 1179 #### [v1.11.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.3...v1.11.4)
1174 1180
1175 > 6 November 2017 1181 > 6 November 2017
1176 1182
1177 - typo fix [`bde6fbe`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bde6fbedfc6c398414be2955aa1ac35341f14f5a) 1183 - typo fix [`bde6fbe`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/bde6fbedfc6c398414be2955aa1ac35341f14f5a)
1178 1184
1179 #### [v1.11.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.2...v1.11.3) 1185 #### [v1.11.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.2...v1.11.3)
1180 1186
1181 > 6 November 2017 1187 > 6 November 2017
1182 1188
1183 - heartbeat [`ff818f6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ff818f63e6ee09a18d0662f692e39032a3100f98) 1189 - heartbeat [`ff818f6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ff818f63e6ee09a18d0662f692e39032a3100f98)
1184 1190
1185 #### [v1.11.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.1...v1.11.2) 1191 #### [v1.11.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.1...v1.11.2)
1186 1192
1187 > 6 November 2017 1193 > 6 November 2017
1188 1194
1189 - cek harga hanya menampilkan produk prepaid [`c192678`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c19267829ea30befed0e2e5bbf56b8b077e19170) 1195 - cek harga hanya menampilkan produk prepaid [`c192678`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c19267829ea30befed0e2e5bbf56b8b077e19170)
1190 1196
1191 #### [v1.11.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.0...v1.11.1) 1197 #### [v1.11.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.11.0...v1.11.1)
1192 1198
1193 > 6 November 2017 1199 > 6 November 2017
1194 1200
1195 - version trim [`6de0cd6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6de0cd6b10d610127f3901d5d5b251cdf7b031ec) 1201 - version trim [`6de0cd6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6de0cd6b10d610127f3901d5d5b251cdf7b031ec)
1196 1202
1197 #### [v1.11.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.6...v1.11.0) 1203 #### [v1.11.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.6...v1.11.0)
1198 1204
1199 > 6 November 2017 1205 > 6 November 2017
1200 1206
1201 - pull menggunakan config.core_url [`80a1d9f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/80a1d9fc09290d68e7ab6e41f7073b9370d09bac) 1207 - pull menggunakan config.core_url [`80a1d9f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/80a1d9fc09290d68e7ab6e41f7073b9370d09bac)
1202 - report combined.raw [`a2b9b45`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a2b9b4552cb89affda81a99ab815b849c3814a25) 1208 - report combined.raw [`a2b9b45`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a2b9b4552cb89affda81a99ab815b849c3814a25)
1203 1209
1204 #### [v1.10.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.5...v1.10.6) 1210 #### [v1.10.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.5...v1.10.6)
1205 1211
1206 > 20 October 2017 1212 > 20 October 2017
1207 1213
1208 - runtime matrix [`c5e9269`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c5e9269118419c523a1d6e80afafa40688314540) 1214 - runtime matrix [`c5e9269`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/c5e9269118419c523a1d6e80afafa40688314540)
1209 1215
1210 #### [v1.10.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.4...v1.10.5) 1216 #### [v1.10.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.4...v1.10.5)
1211 1217
1212 > 20 October 2017 1218 > 20 October 2017
1213 1219
1214 - perbaikan referer [`d83f599`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d83f59994c576d596ddbdec558972c1e960dd5b3) 1220 - perbaikan referer [`d83f599`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d83f59994c576d596ddbdec558972c1e960dd5b3)
1215 - hapus debug window.alert [`917bad1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/917bad1a5d73968bcb1838cf0f116d5200c0840e) 1221 - hapus debug window.alert [`917bad1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/917bad1a5d73968bcb1838cf0f116d5200c0840e)
1216 1222
1217 #### [v1.10.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.3...v1.10.4) 1223 #### [v1.10.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.3...v1.10.4)
1218 1224
1219 > 20 October 2017 1225 > 20 October 2017
1220 1226
1221 - field request by saat request autentikasi ke core [`5b52331`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5b523314769db4993f59b0386de715ce18828187) 1227 - field request by saat request autentikasi ke core [`5b52331`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5b523314769db4993f59b0386de715ce18828187)
1222 1228
1223 #### [v1.10.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.2...v1.10.3) 1229 #### [v1.10.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.2...v1.10.3)
1224 1230
1225 > 20 October 2017 1231 > 20 October 2017
1226 1232
1227 - require querystring [`d6a820d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d6a820d574d2b21f276e4b200f0a0269385371fc) 1233 - require querystring [`d6a820d`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d6a820d574d2b21f276e4b200f0a0269385371fc)
1228 1234
1229 #### [v1.10.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.1...v1.10.2) 1235 #### [v1.10.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.1...v1.10.2)
1230 1236
1231 > 20 October 2017 1237 > 20 October 2017
1232 1238
1233 - include control-panel pada pull [`b1a61b1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b1a61b1f7de375dfc2d8908e40ec35ff3e4df5a6) 1239 - include control-panel pada pull [`b1a61b1`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b1a61b1f7de375dfc2d8908e40ec35ff3e4df5a6)
1234 - otomatis include control panel pada trx-center [`a2291bb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a2291bba07f310e450747b371bc5dc79f908f05d) 1240 - otomatis include control panel pada trx-center [`a2291bb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/a2291bba07f310e450747b371bc5dc79f908f05d)
1235 1241
1236 #### [v1.10.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.0...v1.10.1) 1242 #### [v1.10.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.10.0...v1.10.1)
1237 1243
1238 > 20 October 2017 1244 > 20 October 2017
1239 1245
1240 - dep for control-panel [`e4ddf73`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e4ddf73bf3889128cd51626ec9f392052ed5fe4a) 1246 - dep for control-panel [`e4ddf73`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e4ddf73bf3889128cd51626ec9f392052ed5fe4a)
1241 1247
1242 #### [v1.10.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.9.0...v1.10.0) 1248 #### [v1.10.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.9.0...v1.10.0)
1243 1249
1244 > 20 October 2017 1250 > 20 October 2017
1245 1251
1246 - control-panel [`e8661c6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e8661c63b4f0f5246fc68811598bd36fc019a3b9) 1252 - control-panel [`e8661c6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/e8661c63b4f0f5246fc68811598bd36fc019a3b9)
1247 1253
1248 #### [v1.9.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.8.4...v1.9.0) 1254 #### [v1.9.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.8.4...v1.9.0)
1249 1255
1250 > 19 October 2017 1256 > 19 October 2017
1251 1257
1252 - cek harga pakai password [`9343379`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/93433793d51cc144d6abd0de1154d7f99f9fe96b) 1258 - cek harga pakai password [`9343379`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/93433793d51cc144d6abd0de1154d7f99f9fe96b)
1253 1259
1254 #### [v1.8.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.8.3...v1.8.4) 1260 #### [v1.8.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.8.3...v1.8.4)
1255 1261
1256 > 19 October 2017 1262 > 19 October 2017
1257 1263
1258 - refactor [`74cf7ce`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/74cf7cee3ad543f1da19d8c6e80d88fac72a51ba) 1264 - refactor [`74cf7ce`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/74cf7cee3ad543f1da19d8c6e80d88fac72a51ba)
1259 1265
1260 #### [v1.8.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.8.2...v1.8.3) 1266 #### [v1.8.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.8.2...v1.8.3)
1261 1267
1262 > 19 October 2017 1268 > 19 October 2017
1263 1269
1264 - ubah config-filler.do menjadi config-filler.go [`7ca00bf`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7ca00bf0f21d4e01713274ee6f131c6f6b49b2d7) 1270 - ubah config-filler.do menjadi config-filler.go [`7ca00bf`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7ca00bf0f21d4e01713274ee6f131c6f6b49b2d7)
1265 1271
1266 #### [v1.8.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.8.1...v1.8.2) 1272 #### [v1.8.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.8.1...v1.8.2)
1267 1273
1268 > 19 October 2017 1274 > 19 October 2017
1269 1275
1270 - config-filler [`edea9d6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/edea9d6a67bed90ed9fa1ee8e0029d194850a1e6) 1276 - config-filler [`edea9d6`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/edea9d6a67bed90ed9fa1ee8e0029d194850a1e6)
1271 1277
1272 #### [v1.8.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.8.0...v1.8.1) 1278 #### [v1.8.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.8.0...v1.8.1)
1273 1279
1274 > 19 October 2017 1280 > 19 October 2017
1275 1281
1276 - perbaikan kesalahan del, seharusnya delete [`6759101`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6759101441847c1ef4752c5bc44d409243da34dd) 1282 - perbaikan kesalahan del, seharusnya delete [`6759101`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6759101441847c1ef4752c5bc44d409243da34dd)
1277 1283
1278 #### [v1.8.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.7.3...v1.8.0) 1284 #### [v1.8.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.7.3...v1.8.0)
1279 1285
1280 > 19 October 2017 1286 > 19 October 2017
1281 1287
1282 - config-reload [`6bc5663`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6bc56631521153ffff2d6e79bbe0fee1806f76b6) 1288 - config-reload [`6bc5663`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/6bc56631521153ffff2d6e79bbe0fee1806f76b6)
1283 1289
1284 #### [v1.7.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.7.2...v1.7.3) 1290 #### [v1.7.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.7.2...v1.7.3)
1285 1291
1286 > 19 October 2017 1292 > 19 October 2017
1287 1293
1288 - simpleGit [`5e3b9cb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5e3b9cbaa760deb12b92c97a89ed42e641fd92ac) 1294 - simpleGit [`5e3b9cb`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5e3b9cbaa760deb12b92c97a89ed42e641fd92ac)
1289 1295
1290 #### [v1.7.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.7.1...v1.7.2) 1296 #### [v1.7.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.7.1...v1.7.2)
1291 1297
1292 > 18 October 2017 1298 > 18 October 2017
1293 1299
1294 - require moment on source [`0f658ba`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0f658bae6658dc161eb447b7b99e47e3840fb801) 1300 - require moment on source [`0f658ba`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0f658bae6658dc161eb447b7b99e47e3840fb801)
1295 1301
1296 #### [v1.7.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.7.0...v1.7.1) 1302 #### [v1.7.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.7.0...v1.7.1)
1297 1303
1298 > 18 October 2017 1304 > 18 October 2017
1299 1305
1300 - require momentjs [`25fd58b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/25fd58b9eadb3a403338775156701532dc23a174) 1306 - require momentjs [`25fd58b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/25fd58b9eadb3a403338775156701532dc23a174)
1301 1307
1302 #### [v1.7.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.10...v1.7.0) 1308 #### [v1.7.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.10...v1.7.0)
1303 1309
1304 > 18 October 2017 1310 > 18 October 2017
1305 1311
1306 - moment locale [`ee133e8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ee133e8990ae978be09b18ccd56be4a7f808db2e) 1312 - moment locale [`ee133e8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ee133e8990ae978be09b18ccd56be4a7f808db2e)
1307 1313
1308 #### [v1.6.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.9...v1.6.10) 1314 #### [v1.6.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.9...v1.6.10)
1309 1315
1310 > 15 September 2017 1316 > 15 September 2017
1311 1317
1312 - logger-circular-buffer-web.listen [`b6d243e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b6d243ea6d56063fbe139addef0666045107df74) 1318 - logger-circular-buffer-web.listen [`b6d243e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b6d243ea6d56063fbe139addef0666045107df74)
1313 1319
1314 #### [v1.6.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.8...v1.6.9) 1320 #### [v1.6.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.8...v1.6.9)
1315 1321
1316 > 15 September 2017 1322 > 15 September 2017
1317 1323
1318 - logger-circular-buffer-web [`3e595d4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3e595d41e52fece3a0cf270c2bf92bc2f39db87d) 1324 - logger-circular-buffer-web [`3e595d4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3e595d41e52fece3a0cf270c2bf92bc2f39db87d)
1319 - information if circular buffer logger http reader server is not configured [`4ecf8f3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4ecf8f37c0f2ec669b9d4c159ec33e73f9f609f8) 1325 - information if circular buffer logger http reader server is not configured [`4ecf8f3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4ecf8f37c0f2ec669b9d4c159ec33e73f9f609f8)
1320 - circular buffer logger Content-Type is application/json [`fafd793`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fafd79335a2048116b7b381ba56e10be592714c6) 1326 - circular buffer logger Content-Type is application/json [`fafd793`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fafd79335a2048116b7b381ba56e10be592714c6)
1321 1327
1322 #### [v1.6.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.7...v1.6.8) 1328 #### [v1.6.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.7...v1.6.8)
1323 1329
1324 > 14 September 2017 1330 > 14 September 2017
1325 1331
1326 - winston-circular-buffer on logger [`db15d49`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/db15d49b582fef53397fcad06f05714b762882bc) 1332 - winston-circular-buffer on logger [`db15d49`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/db15d49b582fef53397fcad06f05714b762882bc)
1327 1333
1328 #### [v1.6.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.6...v1.6.7) 1334 #### [v1.6.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.6...v1.6.7)
1329 1335
1330 > 13 September 2017 1336 > 13 September 2017
1331 1337
1332 - max_retry [`affbf3f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/affbf3f2fbecb105c8b5c59a6eadbf36b678463a) 1338 - max_retry [`affbf3f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/affbf3f2fbecb105c8b5c59a6eadbf36b678463a)
1333 1339
1334 #### [v1.6.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.5...v1.6.6) 1340 #### [v1.6.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.5...v1.6.6)
1335 1341
1336 > 13 September 2017 1342 > 13 September 2017
1337 1343
1338 - perbaikan keyword config resend-delay [`cd0d674`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/cd0d674afe835412d58cd777a2de4b47bfe3e257) 1344 - perbaikan keyword config resend-delay [`cd0d674`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/cd0d674afe835412d58cd777a2de4b47bfe3e257)
1339 1345
1340 #### [v1.6.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.4...v1.6.5) 1346 #### [v1.6.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.4...v1.6.5)
1341 1347
1342 > 13 September 2017 1348 > 13 September 2017
1343 1349
1344 - logging on GET or POST report [`d019243`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d019243ceac0b627bf63007e9790d752cb782d10) 1350 - logging on GET or POST report [`d019243`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/d019243ceac0b627bf63007e9790d752cb782d10)
1345 1351
1346 #### [v1.6.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.3...v1.6.4) 1352 #### [v1.6.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.3...v1.6.4)
1347 1353
1348 > 13 September 2017 1354 > 13 September 2017
1349 1355
1350 - post raw response [`ff7ab72`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ff7ab72a01c5260f64e6af7b7c8edf550c7b5f5d) 1356 - post raw response [`ff7ab72`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ff7ab72a01c5260f64e6af7b7c8edf550c7b5f5d)
1351 1357
1352 #### [v1.6.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.2...v1.6.3) 1358 #### [v1.6.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.2...v1.6.3)
1353 1359
1354 > 13 September 2017 1360 > 13 September 2017
1355 1361
1356 - reportUsingHttpPost [`9c5411f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/9c5411fccdbdd70605ead96fff021f6540714f2b) 1362 - reportUsingHttpPost [`9c5411f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/9c5411fccdbdd70605ead96fff021f6540714f2b)
1357 1363
1358 #### [v1.6.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.1...v1.6.2) 1364 #### [v1.6.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.1...v1.6.2)
1359 1365
1360 > 13 September 2017 1366 > 13 September 2017
1361 1367
1362 - supplier price as amount [`86a5194`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/86a5194e331f91f82a991d5bebef0f3ddd84022a) 1368 - supplier price as amount [`86a5194`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/86a5194e331f91f82a991d5bebef0f3ddd84022a)
1363 - pull init only accept one arg: partner [`782845c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/782845c5df3d52fc841fb98f4290e30c6b772b70) 1369 - pull init only accept one arg: partner [`782845c`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/782845c5df3d52fc841fb98f4290e30c6b772b70)
1364 1370
1365 #### [v1.6.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.0...v1.6.1) 1371 #### [v1.6.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.6.0...v1.6.1)
1366 1372
1367 > 13 September 2017 1373 > 13 September 2017
1368 1374
1369 - pull report parameter use object [`b8045ff`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b8045ff60323ca1a291018b30af75ceea37b28e1) 1375 - pull report parameter use object [`b8045ff`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b8045ff60323ca1a291018b30af75ceea37b28e1)
1370 1376
1371 #### [v1.6.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.5.1...v1.6.0) 1377 #### [v1.6.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.5.1...v1.6.0)
1372 1378
1373 > 12 September 2017 1379 > 12 September 2017
1374 1380
1375 - gateway lib [`dcf3b51`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/dcf3b51e2d00a145d2a5494c4ecf823f2931d290) 1381 - gateway lib [`dcf3b51`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/dcf3b51e2d00a145d2a5494c4ecf823f2931d290)
1376 1382
1377 #### [v1.5.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.5.0...v1.5.1) 1383 #### [v1.5.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.5.0...v1.5.1)
1378 1384
1379 > 12 September 2017 1385 > 12 September 2017
1380 1386
1381 - cleanup [`fbf2683`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fbf26836c9641dc3b2512aa2d63c6b5e61f2a57c) 1387 - cleanup [`fbf2683`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/fbf26836c9641dc3b2512aa2d63c6b5e61f2a57c)
1382 1388
1383 #### [v1.5.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.15...v1.5.0) 1389 #### [v1.5.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.15...v1.5.0)
1384 1390
1385 > 12 September 2017 1391 > 12 September 2017
1386 1392
1387 - resend-delay.js [`0a9c256`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0a9c256b8591b6a3b795ed2713df176206529c7b) 1393 - resend-delay.js [`0a9c256`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/0a9c256b8591b6a3b795ed2713df176206529c7b)
1388 - cleanup resend-delay [`65d653b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/65d653bbd296a2bbae37c45ec1f2fc0b9b5b0303) 1394 - cleanup resend-delay [`65d653b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/65d653bbd296a2bbae37c45ec1f2fc0b9b5b0303)
1389 1395
1390 #### [v1.4.15](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.14...v1.4.15) 1396 #### [v1.4.15](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.14...v1.4.15)
1391 1397
1392 > 8 September 2017 1398 > 8 September 2017
1393 1399
1394 - cb and transport.send is mutual [`f4f9d01`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f4f9d0117cc6d023484552a2ae3101569c6c9fce) 1400 - cb and transport.send is mutual [`f4f9d01`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f4f9d0117cc6d023484552a2ae3101569c6c9fce)
1395 - hapus console.log [`266323f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/266323f7c620ca6e2ec80a248f5a9269f5ce81e0) 1401 - hapus console.log [`266323f`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/266323f7c620ca6e2ec80a248f5a9269f5ce81e0)
1396 1402
1397 #### [v1.4.14](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.13...v1.4.14) 1403 #### [v1.4.14](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.13...v1.4.14)
1398 1404
1399 > 8 September 2017 1405 > 8 September 2017
1400 1406
1401 - console [`f61b914`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f61b914d3f5e9fd25e1d548071ce80e49b29c147) 1407 - console [`f61b914`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/f61b914d3f5e9fd25e1d548071ce80e49b29c147)
1402 1408
1403 #### [v1.4.13](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.12...v1.4.13) 1409 #### [v1.4.13](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.12...v1.4.13)
1404 1410
1405 > 8 September 2017 1411 > 8 September 2017
1406 1412
1407 - logger info [`4f479c3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4f479c34c8573c21de840c81648b39405862a15d) 1413 - logger info [`4f479c3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/4f479c34c8573c21de840c81648b39405862a15d)
1408 1414
1409 #### [v1.4.12](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.11...v1.4.12) 1415 #### [v1.4.12](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.11...v1.4.12)
1410 1416
1411 > 8 September 2017 1417 > 8 September 2017
1412 1418
1413 - more log [`3595998`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3595998e5de2eff72a55eac1f7d2be7d15fbc157) 1419 - more log [`3595998`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3595998e5de2eff72a55eac1f7d2be7d15fbc157)
1414 1420
1415 #### [v1.4.11](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.10...v1.4.11) 1421 #### [v1.4.11](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.10...v1.4.11)
1416 1422
1417 > 8 September 2017 1423 > 8 September 2017
1418 1424
1419 - debug [`1ad1f9a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1ad1f9acf1340b9aa1a9c0dc0f39d1976af0bf48) 1425 - debug [`1ad1f9a`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1ad1f9acf1340b9aa1a9c0dc0f39d1976af0bf48)
1420 1426
1421 #### [v1.4.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.9...v1.4.10) 1427 #### [v1.4.10](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.9...v1.4.10)
1422 1428
1423 > 8 September 2017 1429 > 8 September 2017
1424 1430
1425 - ubah qs menjadi const [`b9a6a25`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b9a6a25aa53b246fc562138ed08fa046c5a9158e) 1431 - ubah qs menjadi const [`b9a6a25`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b9a6a25aa53b246fc562138ed08fa046c5a9158e)
1426 1432
1427 #### [v1.4.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.8...v1.4.9) 1433 #### [v1.4.9](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.8...v1.4.9)
1428 1434
1429 > 8 September 2017 1435 > 8 September 2017
1430 1436
1431 - param qs pada http-response-server [`ed58f0b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ed58f0b209a67d16af35fe71db52ad36528edb14) 1437 - param qs pada http-response-server [`ed58f0b`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ed58f0b209a67d16af35fe71db52ad36528edb14)
1432 1438
1433 #### [v1.4.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.7...v1.4.8) 1439 #### [v1.4.8](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.7...v1.4.8)
1434 1440
1435 > 8 September 2017 1441 > 8 September 2017
1436 1442
1437 - reverse url [`5b25116`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5b25116eae1307fb330703fcb3fd3580a05401c5) 1443 - reverse url [`5b25116`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5b25116eae1307fb330703fcb3fd3580a05401c5)
1438 1444
1439 #### [v1.4.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.6...v1.4.7) 1445 #### [v1.4.7](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.6...v1.4.7)
1440 1446
1441 > 8 September 2017 1447 > 8 September 2017
1442 1448
1443 - callback pada pemanggilan onIncomingMessage [`75310ec`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/75310ec6538e74f64d85e25ab995fb2e9486ff48) 1449 - callback pada pemanggilan onIncomingMessage [`75310ec`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/75310ec6538e74f64d85e25ab995fb2e9486ff48)
1444 - cleanup [`5498300`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5498300338ddfe43fa4ccdd38be854a65460616b) 1450 - cleanup [`5498300`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/5498300338ddfe43fa4ccdd38be854a65460616b)
1445 - perbaikan parameter requestToCore [`dbde900`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/dbde900e80cd4501f8e109bd6a744743be24c9cb) 1451 - perbaikan parameter requestToCore [`dbde900`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/dbde900e80cd4501f8e109bd6a744743be24c9cb)
1446 1452
1447 #### [v1.4.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.5...v1.4.6) 1453 #### [v1.4.6](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.5...v1.4.6)
1448 1454
1449 > 8 September 2017 1455 > 8 September 2017
1450 1456
1451 - parseBalanceResponse menjadi parseCoreMessage [`75abfb8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/75abfb84fcdbfabe85a0be561d6a4996d2b1f655) 1457 - parseBalanceResponse menjadi parseCoreMessage [`75abfb8`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/75abfb84fcdbfabe85a0be561d6a4996d2b1f655)
1452 1458
1453 #### [v1.4.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.4...v1.4.5) 1459 #### [v1.4.5](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.4...v1.4.5)
1454 1460
1455 > 8 September 2017 1461 > 8 September 2017
1456 1462
1457 - penanganan missing config.commands sehingga bisa dipakai http get [`7dac01e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7dac01eb079a7e884a9537352158bcb34c3ef451) 1463 - penanganan missing config.commands sehingga bisa dipakai http get [`7dac01e`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/7dac01eb079a7e884a9537352158bcb34c3ef451)
1458 1464
1459 #### [v1.4.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.3...v1.4.4) 1465 #### [v1.4.4](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.3...v1.4.4)
1460 1466
1461 > 8 September 2017 1467 > 8 September 2017
1462 1468
1463 - penanganan request id dari im messaging maupun h2h ip [`db57379`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/db57379ced73985edb63526b3eeb19e2f64067ad) 1469 - penanganan request id dari im messaging maupun h2h ip [`db57379`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/db57379ced73985edb63526b3eeb19e2f64067ad)
1464 1470
1465 #### [v1.4.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.2...v1.4.3) 1471 #### [v1.4.3](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.2...v1.4.3)
1466 1472
1467 > 8 September 2017 1473 > 8 September 2017
1468 1474
1469 - perbaikan kurang kurung [`b10a8fe`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b10a8fecc6f7999ac722dd0d14f5276d9623d16d) 1475 - perbaikan kurang kurung [`b10a8fe`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/b10a8fecc6f7999ac722dd0d14f5276d9623d16d)
1470 1476
1471 #### [v1.4.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.1...v1.4.2) 1477 #### [v1.4.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.1...v1.4.2)
1472 1478
1473 > 8 September 2017 1479 > 8 September 2017
1474 1480
1475 - tambah dependency request [`ff9ae06`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ff9ae06e17358f55126b1e7c8a5a164a7ecca202) 1481 - tambah dependency request [`ff9ae06`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ff9ae06e17358f55126b1e7c8a5a164a7ecca202)
1476 1482
1477 #### [v1.4.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.0...v1.4.1) 1483 #### [v1.4.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.4.0...v1.4.1)
1478 1484
1479 > 8 September 2017 1485 > 8 September 2017
1480 1486
1481 - parameter requestUrl pada reply dari core [`dc790e7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/dc790e735fa3ba16c6c70c95cf63ac0c0829f9da) 1487 - parameter requestUrl pada reply dari core [`dc790e7`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/dc790e735fa3ba16c6c70c95cf63ac0c0829f9da)
1482 1488
1483 #### [v1.4.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.3.0...v1.4.0) 1489 #### [v1.4.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.3.0...v1.4.0)
1484 1490
1485 > 8 September 2017 1491 > 8 September 2017
1486 1492
1487 - httpResponseServer diinisiasi oleh trx-center [`247faf4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/247faf4de84c31b35498c3109c2be9e233274154) 1493 - httpResponseServer diinisiasi oleh trx-center [`247faf4`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/247faf4de84c31b35498c3109c2be9e233274154)
1488 1494
1489 #### [v1.3.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.2.0...v1.3.0) 1495 #### [v1.3.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.2.0...v1.3.0)
1490 1496
1491 > 8 September 2017 1497 > 8 September 2017
1492 1498
1493 - http-response-server [`49e9a63`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/49e9a634a5a4f58c271c9674273f60f5679fd333) 1499 - http-response-server [`49e9a63`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/49e9a634a5a4f58c271c9674273f60f5679fd333)
1494 1500
1495 #### [v1.2.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.1.1...v1.2.0) 1501 #### [v1.2.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.1.1...v1.2.0)
1496 1502
1497 > 8 September 2017 1503 > 8 September 2017
1498 1504
1499 - trx-center messaging [`115f669`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/115f6697d4e4463479115e9ef3a0c78f75476149) 1505 - trx-center messaging [`115f669`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/115f6697d4e4463479115e9ef3a0c78f75476149)
1500 1506
1501 #### [v1.1.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.1.0...v1.1.1) 1507 #### [v1.1.1](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.1.0...v1.1.1)
1502 1508
1503 > 19 August 2017 1509 > 19 August 2017
1504 1510
1505 - strftime [`361b955`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/361b9556096b201250e2c72afb585cc66886636c) 1511 - strftime [`361b955`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/361b9556096b201250e2c72afb585cc66886636c)
1506 1512
1507 #### [v1.1.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.0.2...v1.1.0) 1513 #### [v1.1.0](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.0.2...v1.1.0)
1508 1514
1509 > 19 August 2017 1515 > 19 August 2017
1510 1516
1511 - logger [`42050bd`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/42050bdd1f99d4458720f8c8b808dd67495fe740) 1517 - logger [`42050bd`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/42050bdd1f99d4458720f8c8b808dd67495fe740)
1512 - langung proccess.exit tanpa setImmediate jika file config tidak ditemukan [`1437cc3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1437cc39e4070a899644defb51c8f2947a7fb35d) 1518 - langung proccess.exit tanpa setImmediate jika file config tidak ditemukan [`1437cc3`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/1437cc39e4070a899644defb51c8f2947a7fb35d)
1513 - ubah url repo [`faafe19`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/faafe19c2e3c4a0df6f992fbf8d4bff0737c5e58) 1519 - ubah url repo [`faafe19`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/faafe19c2e3c4a0df6f992fbf8d4bff0737c5e58)
1514 1520
1515 #### [v1.0.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.0.1...v1.0.2) 1521 #### [v1.0.2](https://gitlab.kodesumber.com/komodo/komodo-sdk/compare/v1.0.1...v1.0.2)
1516 1522
1517 > 10 January 2017 1523 > 10 January 2017
1518 1524
1519 - typo fix [`36ca113`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/36ca1134c75a4107b7f215819ef703b3d40fa054) 1525 - typo fix [`36ca113`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/36ca1134c75a4107b7f215819ef703b3d40fa054)
1520 1526
1521 #### v1.0.1 1527 #### v1.0.1
1522 1528
1523 > 9 January 2017 1529 > 9 January 2017
1524 1530
1525 - package.json [`3886a49`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3886a499b314ddb7f62afc966a1db7418a798c17) 1531 - package.json [`3886a49`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/3886a499b314ddb7f62afc966a1db7418a798c17)
1526 - config.js [`ff9c882`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ff9c882cd362bfcc66914ccbb88db29b8a32e0b5) 1532 - config.js [`ff9c882`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/ff9c882cd362bfcc66914ccbb88db29b8a32e0b5)
1527 - postversion script [`53f32f2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/53f32f276e61d161d1f813d69e84063ba82d8061) 1533 - postversion script [`53f32f2`](https://gitlab.kodesumber.com/komodo/komodo-sdk/commit/53f32f276e61d161d1f813d69e84063ba82d8061)
1528 1534
center/http-response-server.js
1 /**
2 * HTTP Response Server
3 * 1 /**
4 * Untuk menangkap respon dari core 2 * HTTP Response Server
5 */ 3 *
6 4 * Untuk menangkap respon dari core
7 5 */
8 const module_name = require('path').basename(__filename); 6
9 7
10 const http = require('http'); 8 const module_name = require('path').basename(__filename);
11 const url = require('url'); 9
12 10 const http = require('http');
13 const config = require('../config'); 11 const url = require('url');
14 const logger = require('tektrans-logger'); 12
15 13 const config = require('../config');
16 let transport; 14 const logger = require('tektrans-logger');
17 15
18 function onRequest(request, response) { 16 let transport;
19 const method_name = 'onRequest'; 17
20 18 function onRequest(request, response) {
21 response.end('OK'); 19 const method_name = 'onRequest';
22 20
23 const qs = url.parse(request.url, true).query; 21 response.end('OK');
24 22
25 logger.verbose('Got reverse report from CORE', {module_name: module_name, method_name: method_name, url: request.url, qs: qs}); 23 const qs = url.parse(request.url, true).query;
26 24
27 if (!transport || !transport.send) { 25 logger.verbose('Got reverse report from CORE', {module_name: module_name, method_name: method_name, url: request.url, qs: qs});
28 logger.warn('UNDEFINED TRANSPORT, not forwarding message from CORE'); 26
29 return; 27 if (!transport || !transport.send) {
30 } 28 logger.warn('UNDEFINED TRANSPORT, not forwarding message from CORE');
31 29 return;
32 if (!qs.terminal_name || !qs.message) { 30 }
33 return; 31
34 } 32 if (!qs.terminal_name || !qs.message) {
35 33 return;
36 transport.send(qs.terminal_name, qs.message, qs); 34 }
37 } 35
38 36 transport.send(qs.terminal_name, qs.message, qs);
39 function setTransport(newTransport) { 37 }
40 transport = newTransport; 38
41 } 39 function setTransport(newTransport) {
42 40 transport = newTransport;
43 function create() { 41 }
44 let listenPort = config.listen_port; 42
45 43 function create() {
46 http.createServer(onRequest).listen(listenPort, function() { 44 let listenPort = config.listen_port;
47 logger.info('HTTP Reverse/Report server listen on port ' + listenPort + ' to process CORE message'); 45
48 }); 46 http.createServer(onRequest).listen(listenPort, function() {
49 } 47 logger.info('HTTP Reverse/Report server listen on port ' + listenPort + ' to process CORE message');
50 48 });
51 create(); 49 }
52 50
53 exports.setTransport = setTransport; 51 create();
54 52
center/messaging/trx-center.js
1 /**
2 * Trx Handler untuk center messaging
3 */ 1 /**
4 2 * Trx Handler untuk center messaging
5 const module_name = require('path').basename(__filename); 3 */
6 4
7 const logger = require('tektrans-logger'); 5 const module_name = require('path').basename(__filename);
8 const request = require('request'); 6
7 const logger = require('tektrans-logger');
9 const strftime = require('strftime'); 8 const request = require('request');
10 const config = require('../../config'); 9 const strftime = require('strftime');
11 const httpResponseServer = require('../http-response-server'); 10 const config = require('../../config');
12 const heartbeat = require('../../heartbeat');
13 11 const httpResponseServer = require('../http-response-server');
14 let transport;
15 12 const heartbeat = require('../../heartbeat');
16 if (config.origin) { 13
17 process.title = "KOMODO-CENTER@" + config.origin.replace(/\W/g, '-').toUpperCase(); 14 let transport;
18 } 15
19 16 if (config.origin) {
20 heartbeat.setModuleType('center') 17 process.title = "KOMODO-CENTER@" + config.origin.replace(/\W/g, '-').toUpperCase();
21 18 }
22 function onOnline() { 19
23 logger.info('CENTER is ONLINE, ready to communicate'); 20 heartbeat.setModuleType('center')
24 } 21
25 22 function onOnline() {
26 function onIncomingMessage(paramsFromTransport, cb) { 23 logger.info('CENTER is ONLINE, ready to communicate');
27 logger.verbose('Reporting message to CORE', { 24 }
28 origin: config.origin || config.username, 25
29 terminal_name: paramsFromTransport && paramsFromTransport.partner ? paramsFromTransport.partner.toLowerCase() : null, 26 function onIncomingMessage(paramsFromTransport, cb) {
30 msg: paramsFromTransport ? paramsFromTransport.msg : null 27 logger.verbose('Reporting message to CORE', {
31 }); 28 origin: config.origin || config.username,
32 29 terminal_name: paramsFromTransport && paramsFromTransport.partner ? paramsFromTransport.partner.toLowerCase() : null,
33 const command = paramsFromTransport.msg.split(/[., ]+/)[0].toUpperCase(); 30 msg: paramsFromTransport ? paramsFromTransport.msg : null
34 31 });
35 if (config.commands && config.commands.balance && config.commands.balance.indexOf(command) >= 0) { 32
36 executeBalanceCheck(paramsFromTransport, cb); 33 const command = paramsFromTransport.msg.split(/[., ]+/)[0].toUpperCase();
37 } 34
38 else if (config.commands && config.commands.price && config.commands.price.indexOf(command) >= 0) { 35 if (config.commands && config.commands.balance && config.commands.balance.indexOf(command) >= 0) {
39 executePriceCheck(paramsFromTransport, cb); 36 executeBalanceCheck(paramsFromTransport, cb);
40 } 37 }
41 else if (config.commands && config.commands.postpaid_inquiry && config.commands.postpaid_inquiry.indexOf(command) >= 0) { 38 else if (config.commands && config.commands.price && config.commands.price.indexOf(command) >= 0) {
42 executePostpaidInquiry(paramsFromTransport, cb); 39 executePriceCheck(paramsFromTransport, cb);
43 40 }
44 } 41 else if (config.commands && config.commands.postpaid_inquiry && config.commands.postpaid_inquiry.indexOf(command) >= 0) {
45 else if (config.commands && config.commands.postpaid_pay && config.commands.postpaid_pay.indexOf(command) >= 0) { 42 executePostpaidInquiry(paramsFromTransport, cb);
46 executePostpaidPay(paramsFromTransport, cb); 43
47 } 44 }
48 else { 45 else if (config.commands && config.commands.postpaid_pay && config.commands.postpaid_pay.indexOf(command) >= 0) {
49 executePrepaidBuy(paramsFromTransport, cb); 46 executePostpaidPay(paramsFromTransport, cb);
50 } 47 }
51 } 48 else {
52 49 executePrepaidBuy(paramsFromTransport, cb);
53 function executeBalanceCheck(paramsFromTransport) { 50 }
54 const terminal_name = paramsFromTransport.partner.toLowerCase(); 51 }
55 const password = paramsFromTransport.msg.trim().split(/[., ]+/)[1]; 52
56 53 function executeBalanceCheck(paramsFromTransport) {
57 const requestOptions = { 54 const terminal_name = paramsFromTransport.partner.toLowerCase();
58 url: config.core_url + '/services/balance', 55 const password = paramsFromTransport.msg.trim().split(/[., ]+/)[1];
59 qs: { 56
60 terminal_name: terminal_name, 57 const requestOptions = {
61 password: password, 58 url: config.core_url + '/services/balance',
62 msg: paramsFromTransport.msg 59 qs: {
63 } 60 terminal_name: terminal_name,
64 } 61 password: password,
65 62 msg: paramsFromTransport.msg
66 requestToCore(requestOptions); 63 }
67 } 64 }
68 65
69 function executePriceCheck(paramsFromTransport) { 66 requestToCore(requestOptions);
70 const requestOptions = { 67 }
71 url: config.core_url + '/services/pricelist', 68
72 qs: { 69 function executePriceCheck(paramsFromTransport) {
73 terminal_name: paramsFromTransport.partner.toLowerCase(), 70 const requestOptions = {
74 keyword: paramsFromTransport.msg.trim().split(/[., ]+/)[1], 71 url: config.core_url + '/services/pricelist',
75 password: paramsFromTransport.msg.trim().split(/[., ]+/)[2], 72 qs: {
76 postpaid: 0, 73 terminal_name: paramsFromTransport.partner.toLowerCase(),
77 msg: paramsFromTransport.msg 74 keyword: paramsFromTransport.msg.trim().split(/[., ]+/)[1],
78 } 75 password: paramsFromTransport.msg.trim().split(/[., ]+/)[2],
79 } 76 postpaid: 0,
80 77 msg: paramsFromTransport.msg
81 requestToCore(requestOptions); 78 }
82 } 79 }
83 80
84 function parseCoreMessage(body) { 81 requestToCore(requestOptions);
85 let coreRes; 82 }
86 83
87 try { 84 function parseCoreMessage(body) {
88 coreRes = JSON.parse(body); 85 let coreRes;
89 } 86
90 catch(err) { 87 try {
91 logger.warn('Exception on parsing CORE response as JSON', {body: body, err: err}); 88 coreRes = JSON.parse(body);
92 coreRes = null; 89 }
93 } 90 catch(err) {
94 91 logger.warn('Exception on parsing CORE response as JSON', {body: body, err: err});
95 return coreRes; 92 coreRes = null;
96 } 93 }
97 94
98 function generateRequestId(req) { 95 return coreRes;
99 return 'AUTO_' + req.product_name + '_' + req.destination + '_' + strftime('%Y%m%d'); 96 }
100 } 97
101 98 function generateRequestId(req) {
102 function executePrepaidBuy(paramsFromTransport, cb) { 99 return 'AUTO_' + req.product_name + '_' + req.destination + '_' + strftime('%Y%m%d');
103 const tokens = paramsFromTransport.msg.trim().split(/[., ]+/); 100 }
104 101
105 if (!tokens || tokens.length < 3) { 102 function executePrepaidBuy(paramsFromTransport, cb) {
106 if (transport && transport.send && paramsFromTransport.partner) { 103 const tokens = paramsFromTransport.msg.trim().split(/[., ]+/);
107 transport.send(paramsFromTransport.partner, 'Invalid command'); 104
108 } 105 if (!tokens || tokens.length < 3) {
109 return; 106 if (transport && transport.send && paramsFromTransport.partner) {
110 } 107 transport.send(paramsFromTransport.partner, 'Invalid command');
111 108 }
112 const qs = { 109 return;
113 request_id: tokens[3], 110 }
114 terminal_name: paramsFromTransport.partner.toLowerCase(), 111
115 product_name: typeof tokens[0] === 'string' ? tokens[0].toUpperCase() : null, 112 const qs = {
116 destination: typeof tokens[1] === 'string' ? tokens[1].toUpperCase() : null, 113 request_id: tokens[3],
117 password: typeof tokens[2] === 'string' ? tokens[2] : null, 114 terminal_name: paramsFromTransport.partner.toLowerCase(),
118 origin: config.origin || config.username, 115 product_name: typeof tokens[0] === 'string' ? tokens[0].toUpperCase() : null,
119 report_port: config.listen_port || '80', 116 destination: typeof tokens[1] === 'string' ? tokens[1].toUpperCase() : null,
120 msg: paramsFromTransport.msg, 117 password: typeof tokens[2] === 'string' ? tokens[2] : null,
121 reverse_url: paramsFromTransport.reverse_url, 118 origin: config.origin || config.username,
122 center_extdata: paramsFromTransport.center_extdata 119 report_port: config.listen_port || '80',
123 } 120 msg: paramsFromTransport.msg,
124 121 reverse_url: paramsFromTransport.reverse_url,
125 if (!config.do_not_prefix_request_id) { 122 center_extdata: paramsFromTransport.center_extdata
126 qs.request_id = generateRequestId(qs); 123 }
127 if (tokens[3]) { 124
128 qs.request_id += '_' + tokens[3]; 125 if (!config.do_not_prefix_request_id) {
129 } 126 qs.request_id = generateRequestId(qs);
130 } 127 if (tokens[3]) {
131 128 qs.request_id += '_' + tokens[3];
132 let requestOptions = { 129 }
133 url: config.core_url + '/prepaid/buy', 130 }
134 qs: qs 131
135 } 132 let requestOptions = {
136 133 url: config.core_url + '/prepaid/buy',
137 requestToCore(requestOptions, cb); 134 qs: qs
138 } 135 }
139 136
140 function executePostpaidInquiry(paramsFromTransport, cb) { 137 requestToCore(requestOptions, cb);
141 // PAY.PLN.1234567890.PIN 138 }
142 139
143 let tokens = paramsFromTransport.msg.trim().split(/[., ]+/); 140 function executePostpaidInquiry(paramsFromTransport, cb) {
144 141 // PAY.PLN.1234567890.PIN
145 let qs = { 142
146 request_id: tokens[4], 143 let tokens = paramsFromTransport.msg.trim().split(/[., ]+/);
147 terminal_name: paramsFromTransport.partner.toLowerCase(), 144
148 product_name: tokens[1].toUpperCase(), 145 let qs = {
149 destination: tokens[2].toUpperCase(), 146 request_id: tokens[4],
150 password: tokens[3], 147 terminal_name: paramsFromTransport.partner.toLowerCase(),
151 origin: config.origin || config.username, 148 product_name: tokens[1].toUpperCase(),
152 report_port: config.listen_port || '80', 149 destination: tokens[2].toUpperCase(),
153 msg: paramsFromTransport.msg, 150 password: tokens[3],
154 reverse_url: paramsFromTransport.reverse_url 151 origin: config.origin || config.username,
155 } 152 report_port: config.listen_port || '80',
156 153 msg: paramsFromTransport.msg,
157 if (!config.do_not_prefix_request_id) { 154 reverse_url: paramsFromTransport.reverse_url
158 qs.request_id = generateRequestId(qs) + '_INQ'; 155 }
159 if (tokens[4]) { 156
160 qs.request_id += '_' + tokens[4]; 157 if (!config.do_not_prefix_request_id) {
161 } 158 qs.request_id = generateRequestId(qs) + '_INQ';
162 } 159 if (tokens[4]) {
163 160 qs.request_id += '_' + tokens[4];
164 let requestOptions = { 161 }
165 url: config.core_url + '/postpaid/inquiry', 162 }
166 qs: qs 163
167 } 164 let requestOptions = {
168 165 url: config.core_url + '/postpaid/inquiry',
169 requestToCore(requestOptions, cb); 166 qs: qs
170 } 167 }
171 168
172 function executePostpaidPay(paramsFromTransport, cb) { 169 requestToCore(requestOptions, cb);
173 let tokens = paramsFromTransport.msg.trim().split(/[., ]+/); 170 }
174 171
175 let qs = { 172 function executePostpaidPay(paramsFromTransport, cb) {
176 request_id: tokens[4], 173 let tokens = paramsFromTransport.msg.trim().split(/[., ]+/);
177 terminal_name: paramsFromTransport.partner.toLowerCase(), 174
178 product_name: tokens[1].toUpperCase(), 175 let qs = {
179 destination: tokens[2].toUpperCase(), 176 request_id: tokens[4],
180 password: tokens[3], 177 terminal_name: paramsFromTransport.partner.toLowerCase(),
181 origin: config.origin || config.username, 178 product_name: tokens[1].toUpperCase(),
182 report_port: config.listen_port || '80', 179 destination: tokens[2].toUpperCase(),
183 msg: paramsFromTransport.msg, 180 password: tokens[3],
184 reverse_url: paramsFromTransport.reverse_url 181 origin: config.origin || config.username,
185 } 182 report_port: config.listen_port || '80',
186 183 msg: paramsFromTransport.msg,
187 if (!config.do_not_prefix_request_id) { 184 reverse_url: paramsFromTransport.reverse_url
188 qs.request_id = generateRequestId(qs); 185 }
189 if (tokens[4]) { 186
190 qs.request_id += '_' + tokens[4]; 187 if (!config.do_not_prefix_request_id) {
191 } 188 qs.request_id = generateRequestId(qs);
192 } 189 if (tokens[4]) {
193 190 qs.request_id += '_' + tokens[4];
194 let requestOptions = { 191 }
195 url: config.core_url + '/postpaid/pay', 192 }
196 qs: qs 193
197 } 194 let requestOptions = {
198 195 url: config.core_url + '/postpaid/pay',
199 requestToCore(requestOptions, cb); 196 qs: qs
200 } 197 }
201 198
202 function requestToCore(requestOptions, cb) { 199 requestToCore(requestOptions, cb);
203 logger.verbose('Requesting service to CORE', requestOptions); 200 }
204 201
205 request(requestOptions, function(err, res, body) { 202 function requestToCore(requestOptions, cb) {
206 if (err || res.statusCode != 200) { 203 logger.verbose('Requesting service to CORE', requestOptions);
207 logger.warn('Error requesting to CORE', {module_name: module_name, method_name: 'requestToCore', requestOptions: requestOptions, err: err}); 204
208 let msg = "INTERNAL ERROR, silahkan cek status transaksi di WEB REPORT"; 205 request(requestOptions, function(err, res, body) {
209 if (requestOptions.qs.msg) { 206 if (err || res.statusCode != 200) {
210 msg = requestOptions.qs.msg + ": " + msg; 207 logger.warn('Error requesting to CORE', {module_name: module_name, method_name: 'requestToCore', requestOptions: requestOptions, err: err});
211 } 208 let msg = "INTERNAL ERROR, silahkan cek status transaksi di WEB REPORT";
212 209 if (requestOptions.qs.msg) {
213 if (cb) { 210 msg = requestOptions.qs.msg + ": " + msg;
214 cb(null, {msg: msg}); 211 }
215 } 212
216 else if (transport.send) { 213 if (cb) {
217 transport.send(requestOptions.qs.terminal_name, msg); 214 cb(null, {msg: msg});
218 } 215 }
219 return; 216 else if (transport.send) {
220 } 217 transport.send(requestOptions.qs.terminal_name, msg);
221 218 }
222 let result = parseCoreMessage(body); 219 return;
223 if (!result || !result.message) { 220 }
224 logger.warn('Error parsing CORE response', {module_name: module_name, method_name: 'requestToCore', requestOptions: requestOptions, responseBody: body}); 221
225 let msg = "INTERNAL ERROR, silahkan cek status transaksi di WEB REPORT"; 222 let result = parseCoreMessage(body);
226 if (requestOptions.qs.msg) { 223 if (!result || !result.message) {
227 msg = requestOptions.qs.msg + ": " + msg; 224 logger.warn('Error parsing CORE response', {module_name: module_name, method_name: 'requestToCore', requestOptions: requestOptions, responseBody: body});
228 } 225 let msg = "INTERNAL ERROR, silahkan cek status transaksi di WEB REPORT";
229 226 if (requestOptions.qs.msg) {
230 if (cb) { 227 msg = requestOptions.qs.msg + ": " + msg;
231 cb(null, {msg: msg}); 228 }
232 } 229
233 else if (transport.send) { 230 if (cb) {
234 transport.send(requestOptions.qs.terminal_name, msg); 231 cb(null, {msg: msg});
235 } 232 }
236 return; 233 else if (transport.send) {
237 } 234 transport.send(requestOptions.qs.terminal_name, msg);
238 235 }
239 if (cb) { 236 return;
240 cb(null, result); 237 }
241 } 238
242 else if (transport.send) { 239 if (cb) {
243 transport.send(requestOptions.qs.terminal_name, result.message); 240 cb(null, result);
244 241 }
245 } 242 else if (transport.send) {
246 }) 243 transport.send(requestOptions.qs.terminal_name, result.message);
247 } 244
248 245 }
249 function setTransport(_transport) { 246 })
250 transport = _transport; 247 }
251 httpResponseServer.setTransport(transport); 248
252 } 249 function setTransport(_transport) {
253 250 transport = _transport;
254 const callback = { 251 httpResponseServer.setTransport(transport);
255 onOnline: onOnline, 252 }
256 onIncomingMessage: onIncomingMessage 253
257 } 254 const callback = {
258 255 onOnline: onOnline,
259 exports.callback = callback; 256 onIncomingMessage: onIncomingMessage
260 exports.setTransport = setTransport; 257 }
1 const logger = require('tektrans-logger'); 1 const logger = require('tektrans-logger');
2 const config = require('./config');
3 const configFiller = require('./config-filler'); 2 const config = require('./config');
4
5 function replace(new_config) { 3 const configFiller = require('./config-filler');
6 for (let key in new_config) { 4
7 config[key] = new_config[key]; 5 function replace(new_config) {
8 } 6 for (let key in new_config) {
9 7 config[key] = new_config[key];
10 _removeIfNotExists(new_config); 8 }
11 configFiller.go(); 9
12 } 10 _removeIfNotExists(new_config);
13 11 configFiller.go();
14 function reload() { 12 }
15 const configFile = process.cwd() + "/config.json"; 13
16 const new_config = require(configFile); 14 function reload() {
17 15 const configFile = process.cwd() + "/config.json";
18 replace(new_config); 16 const new_config = require(configFile);
19 } 17
20 18 replace(new_config);
21 function _removeIfNotExists(new_config) { 19 }
22 for (let key in config) { 20
23 if (!new_config[key]) { 21 function _removeIfNotExists(new_config) {
24 logger.verbose('Removing old config key: ' + key); 22 for (let key in config) {
25 delete config[key]; 23 if (!new_config[key]) {
26 } 24 logger.verbose('Removing old config key: ' + key);
27 } 25 delete config[key];
28 } 26 }
29 27 }
30 exports.replace = replace; 28 }
31 exports.reload = reload; 29
32 30 exports.replace = replace;
control-panel/lib/express-init.js
1 const path = require('path');
2
3 const express = require('express'); 1 const path = require('path');
4 const session = require('express-session'); 2
5 const nunjucks = require('nunjucks'); 3 const express = require('express');
6 const uniqid = require('uniqid'); 4 const session = require('express-session');
7 const numeral = require('numeral'); 5 const nunjucks = require('nunjucks');
8 6 const uniqid = require('uniqid');
9 const config = require('komodo-sdk/config'); 7 const numeral = require('numeral');
10 const logger = require('tektrans-logger'); 8
11 9 const config = require('komodo-sdk/config');
12 const routers = require('./routers'); 10 const logger = require('tektrans-logger');
13 11
14 // skip if no approriate config 12 const routers = require('./routers');
15 if (!config || !config.control_panel || !config.control_panel.listen_port) { 13
16 return; 14 // skip if no approriate config
17 } 15 if (!config || !config.control_panel || !config.control_panel.listen_port) {
18 16 return;
19 const app = express(); 17 }
20 18
21 app.locals.config = config; 19 const app = express();
22 app.locals.title = config.control_panel.title || config.handler_name || config.username || config.origin; 20
23 app.locals.cp_views_dir = path.dirname(__dirname) + '/views'; 21 app.locals.config = config;
24 app.locals.cp_template = app.locals.cp_views_dir + '/template.html'; 22 app.locals.title = config.control_panel.title || config.handler_name || config.username || config.origin;
25 23 app.locals.cp_views_dir = path.dirname(__dirname) + '/views';
26 // session 24 app.locals.cp_template = app.locals.cp_views_dir + '/template.html';
27 app.use(session({ 25
28 secret: config.control_panel.session_secret || uniqid(), 26 // session
29 resave: true, 27 app.use(session({
30 saveUninitialized: false, 28 secret: config.control_panel.session_secret || uniqid(),
31 name: config.control_panel.session_name || config.handler_name || config.origin 29 resave: true,
32 })); 30 saveUninitialized: false,
33 31 name: config.control_panel.session_name || config.handler_name || config.origin
34 const static_dir = path.dirname(__dirname) + '/views-static'; 32 }));
35 app.use(express.static(static_dir, {maxAge: 24 * 3600 * 1000})); 33
36 34 const static_dir = path.dirname(__dirname) + '/views-static';
37 // nunjucks environment 35 app.use(express.static(static_dir, {maxAge: 24 * 3600 * 1000}));
38 let nunjucksEnv = nunjucks.configure('', { 36
39 autoescape: true, 37 // nunjucks environment
40 express: app, 38 let nunjucksEnv = nunjucks.configure('', {
41 noCache: config.control_panel.template_no_cache 39 autoescape: true,
42 }); 40 express: app,
43 41 noCache: config.control_panel.template_no_cache
44 numeral.register('locale', 'id', { 42 });
45 delimiters: { 43
46 thousands: '.', 44 numeral.register('locale', 'id', {
47 decimal: ',' 45 delimiters: {
48 }, 46 thousands: '.',
49 abbreviations: { 47 decimal: ','
50 thousand: 'ribu', 48 },
51 million: 'juta', 49 abbreviations: {
52 billion: 'miliar', 50 thousand: 'ribu',
53 trillion: 'triliun' 51 million: 'juta',
54 }, 52 billion: 'miliar',
55 currency: { 53 trillion: 'triliun'
56 symbol: 'Rp.' 54 },
57 } 55 currency: {
58 }); 56 symbol: 'Rp.'
59 numeral.locale('id'); 57 }
60 58 });
61 59 numeral.locale('id');
62 nunjucksEnv.addFilter('numeral', function(num) { 60
63 return numeral(num).format(); 61
64 }) 62 nunjucksEnv.addFilter('numeral', function(num) {
65 63 return numeral(num).format();
66 routers.init(app); 64 })
67 65
68 // start http server 66 routers.init(app);
69 app.listen(config.control_panel.listen_port, function () { 67
70 logger.info('Web control panel started', {listen_port: config.control_panel.listen_port, cp_views_dir: app.locals.cp_views_dir, static_dir: static_dir}); 68 // start http server
71 }); 69 app.listen(config.control_panel.listen_port, function () {
72 70 logger.info('Web control panel started', {listen_port: config.control_panel.listen_port, cp_views_dir: app.locals.cp_views_dir, static_dir: static_dir});
control-panel/lib/request-to-core.js
1 const request = require('request');
2
3 const logger = require('tektrans-logger'); 1 const request = require('request');
4 const core_url = require('../../core-url'); 2
5 3 const logger = require('tektrans-logger');
6
7 function coreUrl() { 4 const core_url = require('../../core-url');
8 return core_url; 5
9 } 6
10 7 function coreUrl() {
11 function doRequest(core_path, qs, cb) { 8 return core_url;
12 9 }
13 let requestOptions = { 10
14 url: coreUrl() + core_path, 11 function doRequest(core_path, qs, cb) {
15 qs: qs 12
16 } 13 let requestOptions = {
17 14 url: coreUrl() + core_path,
18 request(requestOptions, function(error, response, body) { 15 qs: qs
19 if (error) { 16 }
20 logger.warn('Error requesting to core', {requestOptions: requestOptions, error: error}); 17
21 if (cb) { 18 request(requestOptions, function(error, response, body) {
22 cb(error); 19 if (error) {
23 } 20 logger.warn('Error requesting to core', {requestOptions: requestOptions, error: error});
24 return; 21 if (cb) {
25 } 22 cb(error);
26 23 }
27 if (response.statusCode != 200) { 24 return;
28 logger.warn('Core return http status code ' + response.statusCode, {requestOptions: requestOptions, httpStatus: response.statusCode}); 25 }
29 if (cb) { 26
30 cb('ER_HTTP_STATUS'); 27 if (response.statusCode != 200) {
31 } 28 logger.warn('Core return http status code ' + response.statusCode, {requestOptions: requestOptions, httpStatus: response.statusCode});
32 return; 29 if (cb) {
33 } 30 cb('ER_HTTP_STATUS');
34 31 }
35 logger.verbose('Core response on request'); 32 return;
36 //logger.verbose('Core response on request', {body: body}); 33 }
37 34
38 if (cb) { 35 logger.verbose('Core response on request');
39 cb(null, body); 36 //logger.verbose('Core response on request', {body: body});
40 } 37
41 }); 38 if (cb) {
42 } 39 cb(null, body);
43 40 }
44 function doRequestAndParse(core_path, qs, cb) { 41 });
45 doRequest(core_path, qs, function(error, core_response_body) { 42 }
46 if (error) { 43
47 cb(error); 44 function doRequestAndParse(core_path, qs, cb) {
48 return; 45 doRequest(core_path, qs, function(error, core_response_body) {
49 } 46 if (error) {
50 47 cb(error);
51 let core_response_object; 48 return;
52 49 }
53 try { 50
54 core_response_object = JSON.parse(core_response_body); 51 let core_response_object;
55 } 52
56 catch(e) { 53 try {
57 logger.warn( 54 core_response_object = JSON.parse(core_response_body);
58 'ER_CORE_RESPONSE_IS_NOT_VALID_JSON', 55 }
59 { 56 catch(e) {
60 error: e, 57 logger.warn(
61 core_path: core_path, 58 'ER_CORE_RESPONSE_IS_NOT_VALID_JSON',
62 qs: qs, 59 {
63 core_response_body: core_response_body 60 error: e,
64 } 61 core_path: core_path,
65 ); 62 qs: qs,
66 63 core_response_body: core_response_body
67 cb('ER_CORE_RESPONSE_IS_NOT_VALID_JSON'); 64 }
68 return; 65 );
69 } 66
70 67 cb('ER_CORE_RESPONSE_IS_NOT_VALID_JSON');
71 cb(null, core_response_object); 68 return;
72 }); 69 }
73 } 70
74 71 cb(null, core_response_object);
75 exports.doRequest = doRequest; 72 });
76 exports.doRequestAndParse = doRequestAndParse; 73 }
77 74
control-panel/lib/router-config.js
1 const fs = require('fs');
2
3 const moment = require('moment');
4 const express = require('express');
5 const bodyParser = require('body-parser');
6 const uuidv1 = require('uuid/v1'); 1 const fs = require('fs');
7 2
8 const config = require('komodo-sdk/config'); 3 const moment = require('moment');
9 const logger = require('tektrans-logger'); 4 const express = require('express');
10 const configReload = require('komodo-sdk/config-reload'); 5 const bodyParser = require('body-parser');
11 6 const uuidv1 = require('uuid/v1');
12 const misc = require('./misc'); 7
13 8 const config = require('komodo-sdk/config');
14 const router = express.Router(); 9 const logger = require('tektrans-logger');
15 10 const configReload = require('komodo-sdk/config-reload');
16 function pageJsonEditor(req, res) { 11
17 res.render( 12 const misc = require('./misc');
18 req.app.locals.cp_views_dir + '/config.jsoneditor.html', 13
19 { 14 const router = express.Router();
20 page_title: 'Edit Konfigurasi', 15
21 jsoneditor_mode: req.query.mode || "form" 16 function pageJsonEditor(req, res) {
22 } 17 res.render(
23 ) 18 req.app.locals.cp_views_dir + '/config.jsoneditor.html',
24 } 19 {
25 20 page_title: 'Edit Konfigurasi',
26 function pageData(req, res) { 21 jsoneditor_mode: req.query.mode || "form"
27 res.json(config); 22 }
28 } 23 )
29 24 }
30 function pageDataSubmit(req, res) { 25
31 const backupDir = 'config-backup/'; 26 function pageData(req, res) {
32 const backupFile = backupDir + 'config.backup_' + moment().format('YYYYMMDD_HHmmss') + '_' + uuidv1() + '.json'; 27 res.json(config);
33 28 }
34 if (!req || !req.body || typeof req.body !== 'object') { 29
35 logger.warn('Invalid new config'); 30 function pageDataSubmit(req, res) {
36 return res.end('Failed, data is not object'); 31 const backupDir = 'config-backup/';
37 } 32 const backupFile = backupDir + 'config.backup_' + moment().format('YYYYMMDD_HHmmss') + '_' + uuidv1() + '.json';
38 33
39 if (Object.getOwnPropertyNames(req.body).length <= 0) { 34 if (!req || !req.body || typeof req.body !== 'object') {
40 logger.warn('New config is empty, ignoring'); 35 logger.warn('Invalid new config');
41 return res.end('Failed, data is empty'); 36 return res.end('Failed, data is not object');
42 } 37 }
43 38
44 fs.mkdir(backupDir, function() { 39 if (Object.getOwnPropertyNames(req.body).length <= 0) {
45 fs.writeFile(backupFile, JSON.stringify(config, null, 4), function() { 40 logger.warn('New config is empty, ignoring');
46 fs.writeFile("config.json", JSON.stringify(req.body, null, 4), function(errWriteNewConfig) { 41 return res.end('Failed, data is empty');
47 42 }
48 if (errWriteNewConfig) { 43
49 return res.end('Update failed: ' + errWriteNewConfig); 44 fs.mkdir(backupDir, function() {
50 } 45 fs.writeFile(backupFile, JSON.stringify(config, null, 4), function() {
51 46 fs.writeFile("config.json", JSON.stringify(req.body, null, 4), function(errWriteNewConfig) {
52 configReload.replace(req.body); 47
53 res.end('Konfigurasi berhasil diupdate. Beberapa item mungkin perlu restart terlebih dahulu sebelum efektif berlaku.'); 48 if (errWriteNewConfig) {
54 49 return res.end('Update failed: ' + errWriteNewConfig);
55 }) 50 }
56 }) 51
57 }) 52 configReload.replace(req.body);
58 } 53 res.end('Konfigurasi berhasil diupdate. Beberapa item mungkin perlu restart terlebih dahulu sebelum efektif berlaku.');
59 54
60 router.use(misc.needAuthUser); 55 })
61 56 })
62 router.get('/', pageJsonEditor); 57 })
63 router.get('/data', pageData); 58 }
64 router.post('/data', bodyParser.json(), pageDataSubmit); 59
65 60 router.use(misc.needAuthUser);
66 module.exports = router; 61
67 62 router.get('/', pageJsonEditor);
control-panel/lib/router-login.js
1 const module_name = 'CONTROL_PANEL_' + require('path').basename(__filename);
2
3 const querystring = require('querystring'); 1 const module_name = 'CONTROL_PANEL_' + require('path').basename(__filename);
4 const express = require('express'); 2
5 const bodyParser = require('body-parser'); 3 const querystring = require('querystring');
6 const router = express.Router(); 4 const express = require('express');
7 5 const bodyParser = require('body-parser');
8 const config = require('komodo-sdk/config'); 6 const router = express.Router();
9 const logger = require('tektrans-logger'); 7
10 8 const config = require('komodo-sdk/config');
11 const requestToCore = require('./request-to-core'); 9 const logger = require('tektrans-logger');
12 10
13 function pageLogin(req, res) { 11 const requestToCore = require('./request-to-core');
14 if (req.session && req.session.username && req.session.terminal) { 12
15 res.redirect('/'); 13 function pageLogin(req, res) {
16 return; 14 if (req.session && req.session.username && req.session.terminal) {
17 } 15 res.redirect('/');
18 16 return;
19 res.render( 17 }
20 req.app.locals.cp_views_dir + '/login.html', 18
21 { 19 res.render(
22 ref: req.query.ref, 20 req.app.locals.cp_views_dir + '/login.html',
23 msg: req.query.msg 21 {
24 } 22 ref: req.query.ref,
25 ) 23 msg: req.query.msg
26 } 24 }
27 25 )
28 function pageLoginSubmitted(req, res) { 26 }
29 const method_name = 'pageLoginSubmitted'; 27
30 28 function pageLoginSubmitted(req, res) {
31 if (!req || !req.body || !req.body.terminal_name || !req.body.password) { 29 const method_name = 'pageLoginSubmitted';
32 const qs = { 30
33 msg: 'Nama terminal dan password harus diisi', 31 if (!req || !req.body || !req.body.terminal_name || !req.body.password) {
34 ref: req.query.ref 32 const qs = {
35 }; 33 msg: 'Nama terminal dan password harus diisi',
36 34 ref: req.query.ref
37 res.redirect('/login?' + querystring.stringify(qs)); 35 };
38 return; 36
39 } 37 res.redirect('/login?' + querystring.stringify(qs));
40 38 return;
41 const qs = { 39 }
42 terminal_name: req.body.terminal_name, 40
43 web_password: req.body.password, 41 const qs = {
44 request_by: config.handler_name || config.username || config.origin 42 terminal_name: req.body.terminal_name,
45 } 43 web_password: req.body.password,
46 44 request_by: config.handler_name || config.username || config.origin
47 requestToCore.doRequestAndParse('/services/terminalAuthentication', qs, function(err, coreResponse) { 45 }
48 if (err) { 46
49 logger.warn('Error requesting authentication check to CORE', {module_name: module_name, method_name: method_name, err: err}); 47 requestToCore.doRequestAndParse('/services/terminalAuthentication', qs, function(err, coreResponse) {
50 res.end('SOMETHING WRONG'); 48 if (err) {
51 return; 49 logger.warn('Error requesting authentication check to CORE', {module_name: module_name, method_name: method_name, err: err});
52 } 50 res.end('SOMETHING WRONG');
53 51 return;
54 const redirectQs = { 52 }
55 terminal_name: req.body.terminal_name, 53
56 ref: req.query.ref 54 const redirectQs = {
57 } 55 terminal_name: req.body.terminal_name,
58 56 ref: req.query.ref
59 if (coreResponse.message) { 57 }
60 redirectQs.msg = coreResponse.message; 58
61 } 59 if (coreResponse.message) {
62 60 redirectQs.msg = coreResponse.message;
63 if (coreResponse.error) { 61 }
64 res.redirect('/login?' + querystring.stringify(redirectQs)); 62
65 return; 63 if (coreResponse.error) {
66 } 64 res.redirect('/login?' + querystring.stringify(redirectQs));
67 65 return;
68 if (!coreResponse.terminal) { 66 }
69 redirectQs.msg = 'Terminal tidak terdefinisi'; 67
70 res.redirect('/login?' + querystring.stringify(redirectQs)); 68 if (!coreResponse.terminal) {
71 return; 69 redirectQs.msg = 'Terminal tidak terdefinisi';
72 } 70 res.redirect('/login?' + querystring.stringify(redirectQs));
73 71 return;
74 if (!coreResponse.terminal.super || !coreResponse.terminal.store_is_super) { 72 }
75 redirectQs.msg = 'Hanya super terminal pada super store yang dapat mengakses sistem.'; 73
76 res.redirect('/login?' + querystring.stringify(redirectQs)); 74 if (!coreResponse.terminal.super || !coreResponse.terminal.store_is_super) {
77 return; 75 redirectQs.msg = 'Hanya super terminal pada super store yang dapat mengakses sistem.';
78 } 76 res.redirect('/login?' + querystring.stringify(redirectQs));
79 77 return;
80 req.session.username = req.body.terminal_name; 78 }
81 req.session.terminal = coreResponse.terminal; 79
82 80 req.session.username = req.body.terminal_name;
83 let redirectUrl = req.query.ref || '/'; 81 req.session.terminal = coreResponse.terminal;
84 res.redirect(redirectUrl); 82
85 }); 83 let redirectUrl = req.query.ref || '/';
86 } 84 res.redirect(redirectUrl);
87 85 });
88 function pageLogout(req, res) { 86 }
89 req.session.username = null; 87
90 req.session.terminal = null; 88 function pageLogout(req, res) {
91 89 req.session.username = null;
92 res.redirect('/login'); 90 req.session.terminal = null;
93 } 91
94 92 res.redirect('/login');
95 router.get('/', pageLogin); 93 }
96 router.post('/', bodyParser.urlencoded({extended: true}), pageLoginSubmitted); 94
97 router.get('/out', pageLogout); 95 router.get('/', pageLogin);
98 96 router.post('/', bodyParser.urlencoded({extended: true}), pageLoginSubmitted);
99 module.exports = router; 97 router.get('/out', pageLogout);
100 98
control-panel/lib/router-main.js
1 const os = require('os');
2
3 const express = require('express'); 1 const os = require('os');
4 const router = express.Router(); 2
5 3 const express = require('express');
6 const numeral = require('numeral'); 4 const router = express.Router();
7 5
8 const logger = require('tektrans-logger'); 6 const numeral = require('numeral');
9 const matrix = require('komodo-sdk/matrix'); 7
10 8 const logger = require('tektrans-logger');
11 const misc = require('./misc'); 9 const matrix = require('komodo-sdk/matrix');
12 10
13 function pageMain(req, res) { 11 const misc = require('./misc');
14 res.redirect('/runtime'); 12
15 } 13 function pageMain(req, res) {
16 14 res.redirect('/runtime');
17 function pageLog(req, res) { 15 }
18 logger.query({json: true, order: 'desc'}, function(err) { 16
19 if (err) { 17 function pageLog(req, res) {
20 return res.end('INVALID LOGGER'); 18 logger.query({json: true, order: 'desc'}, function(err) {
21 } 19 if (err) {
22 20 return res.end('INVALID LOGGER');
23 res.render( 21 }
24 req.app.locals.cp_views_dir + '/log.html', 22
25 { 23 res.render(
26 // log: JSON.stringify(results.logs, null, 4) 24 req.app.locals.cp_views_dir + '/log.html',
27 log: '[]' 25 {
28 } 26 // log: JSON.stringify(results.logs, null, 4)
29 ); 27 log: '[]'
30 28 }
31 }); 29 );
32 } 30
33 function pageRuntime(req, res) { 31 });
34 32 }
35 res.render( 33 function pageRuntime(req, res) {
36 req.app.locals.cp_views_dir + '/runtime.html', 34
37 { 35 res.render(
38 uptime: numeral(process.uptime()).format(), 36 req.app.locals.cp_views_dir + '/runtime.html',
39 matrix: JSON.stringify(matrix, null, 4), 37 {
40 memory_usage: JSON.stringify(process.memoryUsage(), null, 4), 38 uptime: numeral(process.uptime()).format(),
41 os_info: JSON.stringify({ 39 matrix: JSON.stringify(matrix, null, 4),
42 uptime: os.uptime(), 40 memory_usage: JSON.stringify(process.memoryUsage(), null, 4),
43 loadavg: os.loadavg(), 41 os_info: JSON.stringify({
44 hostname: os.hostname(), 42 uptime: os.uptime(),
45 type: os.type(), 43 loadavg: os.loadavg(),
46 platform: os.platform(), 44 hostname: os.hostname(),
47 arch: os.arch(), 45 type: os.type(),
48 release: os.release(), 46 platform: os.platform(),
49 totalmem: os.totalmem(), 47 arch: os.arch(),
50 }, null, 4), 48 release: os.release(),
51 } 49 totalmem: os.totalmem(),
52 ) 50 }, null, 4),
53 } 51 }
54 52 )
55 function pageTerminate(req, res) { 53 }
56 res.end('Terminating....', function() { 54
57 process.exit(0); 55 function pageTerminate(req, res) {
58 }); 56 res.end('Terminating....', function() {
59 } 57 process.exit(0);
60 58 });
61 //router.use(misc.needAuthUser); 59 }
62 60
63 router.get('/', pageMain); 61 //router.use(misc.needAuthUser);
64 router.get('/runtime', misc.needAuthUser, pageRuntime); 62
65 router.get('/log', misc.needAuthUser, pageLog); 63 router.get('/', pageMain);
66 router.get('/terminate', misc.needAuthUser, pageTerminate); 64 router.get('/runtime', misc.needAuthUser, pageRuntime);
67 router.get('/restart', misc.needAuthUser, pageTerminate); 65 router.get('/log', misc.needAuthUser, pageLog);
68 66 router.get('/terminate', misc.needAuthUser, pageTerminate);
69 module.exports = router; 67 router.get('/restart', misc.needAuthUser, pageTerminate);
70 68
1 const logger = require('tektrans-logger');
1 const logger = require('tektrans-logger'); 2 const config = require('./config.js');
2 const config = require('./config.js');
3 const configFromMain = require('./config-from-main'); 3 const configFromMain = require('./config-from-main');
4 4
5 let core_url; 5 let core_url;
6 6
7 if (config.core_url) { 7 if (config.core_url) {
8 core_url = config.core_url; 8 core_url = config.core_url;
9 logger.verbose('Using CORE url from local config.json', {url: core_url}); 9 logger.verbose('Using CORE url from local config.json', {url: core_url});
10 } 10 }
11 else if (configFromMain && configFromMain.core && configFromMain.core.url && configFromMain.core.apikey) { 11 else if (configFromMain && configFromMain.core && configFromMain.core.url && configFromMain.core.apikey) {
12 core_url = configFromMain.core.url.replace(/\/$/, '') + '/apikey/' + configFromMain.core.apikey; 12 core_url = configFromMain.core.url.replace(/\/$/, '') + '/apikey/' + configFromMain.core.apikey;
13 logger.verbose('Using CORE url from main config', {url: core_url, filename: configFromMain.this_config_filename}); 13 logger.verbose('Using CORE url from main config', {url: core_url, filename: configFromMain.this_config_filename});
14 } 14 }
15 15
16 module.exports = core_url; 16 module.exports = core_url;
1 const request = require('request');
2 const logger = require('tektrans-logger');
3 const coreUrl = require('../core-url'); 1 const request = require('request');
4 2 const logger = require('tektrans-logger');
5 function isLogDisabled() {
6 return global.KOMODO_SDK_NO_LOG_ON_COREAPI; 3 const coreUrl = require('../core-url');
7 } 4
8 5 function isLogDisabled() {
9 isLogDisabled() || logger.verbose(`CORE URL: ${coreUrl}`); 6 return global.KOMODO_SDK_NO_LOG_ON_COREAPI;
10 7 }
11 function doRequest(params, cb) { 8
12 return new Promise((resolve) => { 9 isLogDisabled() || logger.verbose(`CORE URL: ${coreUrl}`);
13 const options = { 10
14 url: `${coreUrl}/${params.path.replace(/^\/+/, '')}`, 11 function doRequest(params, cb) {
15 method: params.method || 'GET', 12 return new Promise((resolve) => {
16 qs: params.qs || null, 13 const options = {
17 }; 14 url: `${coreUrl}/${params.path.replace(/^\/+/, '')}`,
18 15 method: params.method || 'GET',
19 isLogDisabled() || logger.verbose('Requesting to CORE', { 16 qs: params.qs || null,
20 xid: params.xid, method: options.method, fullpath: options.url, qs: options.qs, 17 };
21 }); 18
22 19 isLogDisabled() || logger.verbose('Requesting to CORE', {
23 request(options, (err, res, body) => { 20 xid: params.xid, method: options.method, fullpath: options.url, qs: options.qs,
24 if (err) { 21 });
25 isLogDisabled() || logger.warn(`COREAPI: Error doing HTTP ${options.method} to CORE. ${err.toString()}`, { xid: params.xid }); 22
26 23 request(options, (err, res, body) => {
27 resolve([err]); 24 if (err) {
28 if (typeof cb === 'function') cb(err); 25 isLogDisabled() || logger.warn(`COREAPI: Error doing HTTP ${options.method} to CORE. ${err.toString()}`, { xid: params.xid });
29 return; 26
30 } 27 resolve([err]);
31 28 if (typeof cb === 'function') cb(err);
32 if (res.statusCode !== 200) { 29 return;
33 const errStatusCode = new Error('COREAPI: CORE responded with non HTTP STATUS CODE 200'); 30 }
34 isLogDisabled() || logger.warn(`COREAPI: CORE returning HTTP STATUS CODE ${res.statusCode}, not 200`, { xid: params.xid, body }); 31
35 32 if (res.statusCode !== 200) {
36 resolve([errStatusCode]); 33 const errStatusCode = new Error('COREAPI: CORE responded with non HTTP STATUS CODE 200');
37 if (typeof cb === 'function') cb(errStatusCode); 34 isLogDisabled() || logger.warn(`COREAPI: CORE returning HTTP STATUS CODE ${res.statusCode}, not 200`, { xid: params.xid, body });
38 return; 35
39 } 36 resolve([errStatusCode]);
40 37 if (typeof cb === 'function') cb(errStatusCode);
41 let bodyObject; 38 return;
42 try { 39 }
43 bodyObject = JSON.parse(body); 40
44 } catch (e) { 41 let bodyObject;
45 const errNoJson = new Error('COREAPI: CORE responded with non JSON body'); 42 try {
46 isLogDisabled() || logger.verbose(errNoJson, {body}); 43 bodyObject = JSON.parse(body);
47 44 } catch (e) {
48 resolve([errNoJson, body]); 45 const errNoJson = new Error('COREAPI: CORE responded with non JSON body');
49 if (typeof cb === 'function') cb(errNoJson, body); 46 isLogDisabled() || logger.verbose(errNoJson, {body});
50 return; 47
51 } 48 resolve([errNoJson, body]);
52 49 if (typeof cb === 'function') cb(errNoJson, body);
53 resolve([null, bodyObject]); 50 return;
54 if (typeof cb === 'function') cb(null, bodyObject); 51 }
55 }); 52
56 }); 53 resolve([null, bodyObject]);
57 } 54 if (typeof cb === 'function') cb(null, bodyObject);
58 55 });
59 module.exports = doRequest; 56 });
60 57 }
gateway/advice-push-server.js
1 const express = require('express');
2 const bodyParser = require('body-parser');
3 const logger = require('tektrans-logger'); 1 const express = require('express');
4 2 const bodyParser = require('body-parser');
3 const logger = require('tektrans-logger');
5 const pull = require('./pull'); 4
6 const config = require('../config'); 5 const pull = require('./pull');
7 6 const config = require('../config');
8 const app = express();
9
10 let partner = null; 7
11 8 const app = express();
12 function setPartner(_partner) { 9
13 partner = _partner; 10 let partner = null;
14 11
15 if (!config || !config.push_server || !config.push_server.apikey || !config.push_server.advice || !config.push_server.advice.url || !config.push_server.advice.port) { 12 function setPartner(_partner) {
16 return; 13 partner = _partner;
17 } 14
18 15 if (!config || !config.push_server || !config.push_server.apikey || !config.push_server.advice || !config.push_server.advice.url || !config.push_server.advice.port) {
19 app.listen(config.push_server.advice.port, function () { 16 return;
20 logger.info('Advice server listening', {port: config.push_server.advice.port}); 17 }
21 }); 18
22 } 19 app.listen(config.push_server.advice.port, function () {
23 20 logger.info('Advice server listening', {port: config.push_server.advice.port});
24 function isValidApikey(req, res, next) { 21 });
25 if (config.push_server && config.push_server.apikey && (req.params.apikey === config.push_server.apikey)) { 22 }
26 next(); 23
27 } 24 function isValidApikey(req, res, next) {
28 else { 25 if (config.push_server && config.push_server.apikey && (req.params.apikey === config.push_server.apikey)) {
29 res.end('INVALID_APIKEY'); 26 next();
30 } 27 }
31 } 28 else {
32 29 res.end('INVALID_APIKEY');
33 function adviceHandler(req, res) { 30 }
34 31 }
35 if (!partner) { 32
36 logger.warn('PUSH-ADVICE: Undefined partner, skipped'); 33 function adviceHandler(req, res) {
37 res.end('UNDEFINED_PARTNER'); 34
38 return; 35 if (!partner) {
39 } 36 logger.warn('PUSH-ADVICE: Undefined partner, skipped');
40 37 res.end('UNDEFINED_PARTNER');
41 if (!partner.advice) { 38 return;
42 logger.warn('PUSH-ADVICE: Partner does not have ADVICE capabilities'); 39 }
43 res.end('UNSUPPORTED'); 40
44 return; 41 if (!partner.advice) {
45 } 42 logger.warn('PUSH-ADVICE: Partner does not have ADVICE capabilities');
46 43 res.end('UNSUPPORTED');
47 let task = req.body; 44 return;
48 45 }
49 if (!task || !task.trx_id || !task.destination || !task.product) { 46
50 logger.warn('PUSH-ADVICE: Invalid task'); 47 let task = req.body;
51 res.end('INVALID_TASK'); 48
52 return; 49 if (!task || !task.trx_id || !task.destination || !task.product) {
53 } 50 logger.warn('PUSH-ADVICE: Invalid task');
54 51 res.end('INVALID_TASK');
55 logger.verbose('PUSH-ADVICE: Got advice push', {task: task}); 52 return;
56 53 }
57 task.remote_product = pull.getRemoteProduct(task.product); 54
58 if (Number(config.sdk_trx_id_adder)) { 55 logger.verbose('PUSH-ADVICE: Got advice push', {task: task});
59 task.trx_id = Number(task.trx_id) + Number(config.sdk_trx_id_adder); 56
60 } 57 task.remote_product = pull.getRemoteProduct(task.product);
61 58 if (Number(config.sdk_trx_id_adder)) {
62 partner.advice(task); 59 task.trx_id = Number(task.trx_id) + Number(config.sdk_trx_id_adder);
63 } 60 }
64 61
65 app.use(bodyParser.json()); 62 partner.advice(task);
66 app.use('/apikey/:apikey', isValidApikey); 63 }
67 app.use('/apikey/:apikey/advice', adviceHandler); 64
68 65 app.use(bodyParser.json());
69 exports.setPartner = setPartner; 66 app.use('/apikey/:apikey', isValidApikey);
gateway/cancel-push-server.js
1 const express = require('express');
2 const logger = require('tektrans-logger');
3 1 const express = require('express');
4 const config = require('../config'); 2 const logger = require('tektrans-logger');
5 3
6 const resendDelay = require('./resend-delay');
7 4 const config = require('../config');
8 const app = express();
9
10 function init() { 5
11 if (!config || !config.push_server || !config.push_server.apikey || !config.push_server.cancel || !config.push_server.cancel.url || !config.push_server.cancel.port) { 6 const resendDelay = require('./resend-delay');
12 return; 7
13 } 8 const app = express();
14 9
15 app.listen(config.push_server.cancel.port, function () { 10 function init() {
16 logger.info('Cancel server listening', {port: config.push_server.cancel.port}); 11 if (!config || !config.push_server || !config.push_server.apikey || !config.push_server.cancel || !config.push_server.cancel.url || !config.push_server.cancel.port) {
17 }); 12 return;
18 } 13 }
19 init(); 14
20 15 app.listen(config.push_server.cancel.port, function () {
21 function isValidApikey(req, res, next) { 16 logger.info('Cancel server listening', {port: config.push_server.cancel.port});
22 if (config.push_server && config.push_server.apikey && (req.params.apikey === config.push_server.apikey)) { 17 });
23 next(); 18 }
24 } 19 init();
25 else { 20
26 res.end('INVALID_APIKEY'); 21 function isValidApikey(req, res, next) {
27 } 22 if (config.push_server && config.push_server.apikey && (req.params.apikey === config.push_server.apikey)) {
28 } 23 next();
29 24 }
30 function cancelHandler(req, res) { 25 else {
31 let task = req.body; 26 res.end('INVALID_APIKEY');
32 27 }
33 if (!task || !task.trx_id) { 28 }
34 logger.warn('PUSH-CANCEL: Invalid task'); 29
35 res.end('INVALID_TASK'); 30 function cancelHandler(req, res) {
36 return;
37 }
38
39 logger.verbose('PUSH-CANCEL: Got cancel request', {trx_id: task.trx_id});
40
41 resendDelay.cancel(task.trx_id);
42 }
43 31 let task = req.body;
44 app.use(express.json()); 32
45 app.use('/apikey/:apikey', isValidApikey); 33 if (!task || !task.trx_id) {
46 app.use('/apikey/:apikey/cancel', cancelHandler); 34 logger.warn('PUSH-CANCEL: Invalid task');
47 35 res.end('INVALID_TASK');
1 const IS_DEBUG = process.env.KOMODO_SDK_DEBUG_PULL; 1 const IS_DEBUG = process.env.KOMODO_SDK_DEBUG_PULL;
2 2
3 const request = require('request'); 3 const request = require('request');
4 const logger = require('tektrans-logger');
4 const logger = require('tektrans-logger'); 5
5 6 const config = require('../config');
6 const config = require('../config');
7 const matrix = require('../matrix'); 7 const matrix = require('../matrix');
8 8
9 if (config.control_panel && (config.control_panel.listen_port || config.control_panel.port)) { 9 if (config.control_panel && (config.control_panel.listen_port || config.control_panel.port)) {
10 require('../control-panel'); 10 require('../control-panel');
11 } 11 }
12 12
13 const heartbeat = require('../heartbeat'); 13 const heartbeat = require('../heartbeat');
14 const core_url = require('../core-url'); 14 const core_url = require('../core-url');
15 15
16 const taskArchive = require('./task-archive'); 16 const taskArchive = require('./task-archive');
17 17
18 const MAX_SLEEP_BEFORE_RESEND_MS = 500; 18 const MAX_SLEEP_BEFORE_RESEND_MS = 500;
19 const DELAY_AFTER_NO_TASK_MS = 500; 19 const DELAY_AFTER_NO_TASK_MS = 500;
20 20
21 let is_on_delay_after_no_task = false; 21 let is_on_delay_after_no_task = false;
22 let pullTaskLocked = false; 22 let pullTaskLocked = false;
23 23
24 if (config.handler_name) { 24 if (config.handler_name) {
25 process.title = "KOMODO-GW@" + config.handler_name; 25 process.title = "KOMODO-GW@" + config.handler_name;
26 } 26 }
27 27
28 matrix.sdk_pending_tasks_count = 0; 28 matrix.sdk_pending_tasks_count = 0;
29 matrix.sdk_unresponsed_tasks_count = 0; 29 matrix.sdk_unresponsed_tasks_count = 0;
30 matrix.sdk_pending_with_response_tasks_count = 0; 30 matrix.sdk_pending_with_response_tasks_count = 0;
31 31
32 if (!matrix.sdk_pending_tasks) { 32 if (!matrix.sdk_pending_tasks) {
33 matrix.sdk_pending_tasks = []; 33 matrix.sdk_pending_tasks = [];
34 } 34 }
35 35
36 if (!matrix.sdk_unresponsed_tasks) { 36 if (!matrix.sdk_unresponsed_tasks) {
37 matrix.sdk_unresponsed_tasks = []; 37 matrix.sdk_unresponsed_tasks = [];
38 } 38 }
39 39
40 if (!matrix.sdk_pending_with_response_tasks) { 40 if (!matrix.sdk_pending_with_response_tasks) {
41 matrix.sdk_pending_with_response_tasks = []; 41 matrix.sdk_pending_with_response_tasks = [];
42 } 42 }
43 43
44 heartbeat.setModuleType('gateway'); 44 heartbeat.setModuleType('gateway');
45 45
46 var partner; 46 var partner;
47 47
48 function onNoTask() { 48 function onNoTask() {
49 is_on_delay_after_no_task = true; 49 is_on_delay_after_no_task = true;
50 setTimeout(function() { 50 setTimeout(function() {
51 is_on_delay_after_no_task = false; 51 is_on_delay_after_no_task = false;
52 }, DELAY_AFTER_NO_TASK_MS) 52 }, DELAY_AFTER_NO_TASK_MS)
53 } 53 }
54 54
55 function setPartner(_partner) { 55 function setPartner(_partner) {
56 partner = _partner; 56 partner = _partner;
57 } 57 }
58 58
59 function pullTask() { 59 function pullTask() {
60 if (isPaused()) { 60 if (isPaused()) {
61 if (IS_DEBUG) { 61 if (IS_DEBUG) {
62 logger.verbose('PULL TASK paused') 62 logger.verbose('PULL TASK paused')
63 } 63 }
64 return; 64 return;
65 } 65 }
66 66
67 if (is_on_delay_after_no_task && !config.disable_delay_after_no_task) { 67 if (is_on_delay_after_no_task && !config.disable_delay_after_no_task) {
68 return; 68 return;
69 } 69 }
70 70
71 if (!partner) { 71 if (!partner) {
72 if (IS_DEBUG) { 72 if (IS_DEBUG) {
73 logger.verbose('PULL TASK disabled because of undefined partner') 73 logger.verbose('PULL TASK disabled because of undefined partner')
74 } 74 }
75 75
76 return; 76 return;
77 } 77 }
78 78
79 if (matrix && matrix.not_ready) { 79 if (matrix && matrix.not_ready) {
80 if (IS_DEBUG) { 80 if (IS_DEBUG) {
81 logger.verbose('PULL TASK paused because of gateway is not ready') 81 logger.verbose('PULL TASK paused because of gateway is not ready')
82 } 82 }
83 return; 83 return;
84 } 84 }
85 85
86 let core_pull_task_url; 86 let core_pull_task_url;
87 87
88 if (core_url) { 88 if (core_url) {
89 core_pull_task_url = core_url + '/pull/task'; 89 core_pull_task_url = core_url + '/pull/task';
90 } 90 }
91 else if (config && config.pull_url && config.pull_url.task) { 91 else if (config && config.pull_url && config.pull_url.task) {
92 core_pull_task_url = config.pull_url.task.replace('<CORE_APIKEY>', config.core_apikey); 92 core_pull_task_url = config.pull_url.task.replace('<CORE_APIKEY>', config.core_apikey);
93 } 93 }
94 94
95 if (!core_pull_task_url) { 95 if (!core_pull_task_url) {
96 logger.warn('Unknown CORE task url'); 96 logger.warn('Unknown CORE task url');
97 return; 97 return;
98 } 98 }
99 99
100 //if (config.pulltask_mutex && pullTaskLocked) { 100 //if (config.pulltask_mutex && pullTaskLocked) {
101 if (pullTaskLocked) { 101 if (pullTaskLocked) {
102 if (IS_DEBUG) { 102 if (IS_DEBUG) {
103 logger.verbose('PULL TASK paused because LOCKED') 103 logger.verbose('PULL TASK paused because LOCKED')
104 } 104 }
105 return; 105 return;
106 } 106 }
107 pullTaskLocked = true; 107 pullTaskLocked = true;
108 108
109 const body_or_qs = { 109 const body_or_qs = {
110 handler: config.handler_name, 110 handler: config.handler_name,
111 products: (config.products || []).join(','), 111 products: (config.products || []).join(','),
112 locations: config.locations && config.locations.length ? config.locations.join(',') : 'ALL', 112 locations: config.locations && config.locations.length ? config.locations.join(',') : 'ALL',
113 advice_url: (config && config.push_server && config.push_server.apikey && config.push_server.advice && config.push_server.advice.url && config.push_server.advice.port) ? config.push_server.advice.url : null, 113 advice_url: (config && config.push_server && config.push_server.apikey && config.push_server.advice && config.push_server.advice.url && config.push_server.advice.port) ? config.push_server.advice.url : null,
114 api_url: (config && config.apiserver && config.apiserver.apikey && config.apiserver.url) ? config.apiserver.url : null, 114 api_url: (config && config.apiserver && config.apiserver.apikey && config.apiserver.url) ? config.apiserver.url : null,
115 cp_url: (config && config.control_panel && config.control_panel.url) ? config.control_panel.url : null, 115 cp_url: (config && config.control_panel && config.control_panel.url) ? config.control_panel.url : null,
116 komodosdk_type: matrix.komodosdk_type, 116 komodosdk_type: matrix.komodosdk_type,
117 komodosdk_version: matrix.komodosdk_version 117 komodosdk_version: matrix.komodosdk_version
118 }; 118 };
119 119
120 let options = { 120 let options = {
121 url: core_pull_task_url, 121 url: core_pull_task_url,
122 timeout: config.request_timeout || 5000 122 timeout: config.request_timeout || 5000
123 } 123 }
124 124
125 if (config.pull_task_use_post) { 125 if (config.pull_task_use_post) {
126 //logger.verbose('Requesting PULL-TASK to CORE using POST'); 126 //logger.verbose('Requesting PULL-TASK to CORE using POST');
127 if (IS_DEBUG) { 127 if (IS_DEBUG) {
128 logger.verbose('PULL TASK using HTTP POST'); 128 logger.verbose('PULL TASK using HTTP POST');
129 } 129 }
130 options.method = 'POST'; 130 options.method = 'POST';
131 options.form = body_or_qs; 131 options.form = body_or_qs;
132 } 132 }
133 else { 133 else {
134 if (IS_DEBUG) { 134 if (IS_DEBUG) {
135 logger.verbose('PULL TASK using HTTP GET'); 135 logger.verbose('PULL TASK using HTTP GET');
136 } 136 }
137 options.method = 'GET'; 137 options.method = 'GET';
138 options.qs = body_or_qs; 138 options.qs = body_or_qs;
139 } 139 }
140 140
141 if (config && config.debug_request_task_to_core) { 141 if (config && config.debug_request_task_to_core) {
142 logger.verbose('Requesting task to CORE', {url: options.url, method: options.method, body_or_qs: body_or_qs}); 142 logger.verbose('Requesting task to CORE', {url: options.url, method: options.method, body_or_qs: body_or_qs});
143 } 143 }
144 144
145 const start_time = new Date(); 145 const start_time = new Date();
146 request(options, function(error, response, body) { 146 request(options, function(error, response, body) {
147 pullTaskLocked = false; 147 pullTaskLocked = false;
148 148
149 const lame_limit = 10 * 1000; 149 const lame_limit = 10 * 1000;
150 const delta_time = new Date() - start_time; 150 const delta_time = new Date() - start_time;
151 if (delta_time > lame_limit) { 151 if (delta_time > lame_limit) {
152 logger.warn('LAME-PULL: PULL response from CORE exceeds ' + lame_limit + ' secs', {delta_time: delta_time}); 152 logger.warn('LAME-PULL: PULL response from CORE exceeds ' + lame_limit + ' secs', {delta_time: delta_time});
153 } 153 }
154 154
155 if (error) { 155 if (error) {
156 if (matrix.core_is_healthy) { 156 if (matrix.core_is_healthy) {
157 logger.warn('Error pulling task from CORE', {error: error}); 157 logger.warn('Error pulling task from CORE', {error: error});
158 } 158 }
159 matrix.core_is_healthy = false; 159 matrix.core_is_healthy = false;
160 onNoTask(); 160 onNoTask();
161 return; 161 return;
162 } 162 }
163 163
164 if (response.statusCode != 200) { 164 if (response.statusCode != 200) {
165 if (matrix.core_is_healthy) { 165 if (matrix.core_is_healthy) {
166 logger.warn('CORE http response status code for pull task is not 200', {http_response_status: response.statusCode}); 166 logger.warn('CORE http response status code for pull task is not 200', {http_response_status: response.statusCode});
167 } 167 }
168 matrix.core_is_healthy = false; 168 matrix.core_is_healthy = false;
169 onNoTask(); 169 onNoTask();
170 return; 170 return;
171 } 171 }
172 172
173 if (!matrix.core_is_healthy) { 173 if (!matrix.core_is_healthy) {
174 logger.verbose('CORE is healthy'); 174 logger.verbose('CORE is healthy');
175 } 175 }
176 matrix.core_is_healthy = true; 176 matrix.core_is_healthy = true;
177 177
178 if (body === 'NONE') { 178 if (body === 'NONE') {
179 onNoTask(); 179 onNoTask();
180 return; 180 return;
181 } 181 }
182 182
183 if (body === 'LOCKED') { 183 if (body === 'LOCKED') {
184 return; 184 return;
185 } 185 }
186 186
187 forwardCoreTaskToPartner(body, start_time); 187 forwardCoreTaskToPartner(body, start_time);
188 }); 188 });
189 } 189 }
190 190
191 function putTaskToMatrix(task) { 191 function putTaskToMatrix(task) {
192 const trx_id = Number(task.trx_id); 192 const trx_id = Number(task.trx_id);
193 193
194 if (matrix.sdk_unresponsed_tasks.indexOf(trx_id) < 0) { 194 if (matrix.sdk_unresponsed_tasks.indexOf(trx_id) < 0) {
195 matrix.sdk_unresponsed_tasks.push(trx_id); 195 matrix.sdk_unresponsed_tasks.push(trx_id);
196 matrix.sdk_unresponsed_tasks_count = matrix.sdk_unresponsed_tasks.length; 196 matrix.sdk_unresponsed_tasks_count = matrix.sdk_unresponsed_tasks.length;
197 } 197 }
198 198
199 if (matrix.sdk_pending_tasks.indexOf(trx_id) < 0) { 199 if (matrix.sdk_pending_tasks.indexOf(trx_id) < 0) {
200 matrix.sdk_pending_tasks.push(trx_id); 200 matrix.sdk_pending_tasks.push(trx_id);
201 matrix.sdk_pending_tasks_count = matrix.sdk_pending_tasks.length; 201 matrix.sdk_pending_tasks_count = matrix.sdk_pending_tasks.length;
202 } 202 }
203 } 203 }
204 204
205 function updateTaskOnMatrix(trx_id, rc) { 205 function updateTaskOnMatrix(trx_id, rc) {
206 trx_id = Number(trx_id); 206 trx_id = Number(trx_id);
207 207
208 const unresponsed_task_idx = matrix.sdk_unresponsed_tasks.indexOf(trx_id); 208 const unresponsed_task_idx = matrix.sdk_unresponsed_tasks.indexOf(trx_id);
209 if (unresponsed_task_idx >= 0) { 209 if (unresponsed_task_idx >= 0) {
210 matrix.sdk_unresponsed_tasks.splice(unresponsed_task_idx, 1); 210 matrix.sdk_unresponsed_tasks.splice(unresponsed_task_idx, 1);
211 } 211 }
212 matrix.sdk_unresponsed_tasks_count = matrix.sdk_unresponsed_tasks.length; 212 matrix.sdk_unresponsed_tasks_count = matrix.sdk_unresponsed_tasks.length;
213 213
214 if (rc == '68') { 214 if (rc == '68') {
215 const pending_with_response_tasks_idx = matrix.sdk_pending_with_response_tasks.indexOf(trx_id); 215 const pending_with_response_tasks_idx = matrix.sdk_pending_with_response_tasks.indexOf(trx_id);
216 if (pending_with_response_tasks_idx < 0) { 216 if (pending_with_response_tasks_idx < 0) {
217 matrix.sdk_pending_with_response_tasks.push(trx_id); 217 matrix.sdk_pending_with_response_tasks.push(trx_id);
218 matrix.sdk_pending_with_response_tasks_count = matrix.sdk_pending_with_response_tasks.length; 218 matrix.sdk_pending_with_response_tasks_count = matrix.sdk_pending_with_response_tasks.length;
219 } 219 }
220 } 220 }
221 else { 221 else {
222 const pending_task_idx = matrix.sdk_pending_tasks.indexOf(trx_id); 222 const pending_task_idx = matrix.sdk_pending_tasks.indexOf(trx_id);
223 if (pending_task_idx >= 0) { 223 if (pending_task_idx >= 0) {
224 matrix.sdk_pending_tasks.splice(pending_task_idx, 1); 224 matrix.sdk_pending_tasks.splice(pending_task_idx, 1);
225 matrix.sdk_pending_tasks_count = matrix.sdk_pending_tasks.length; 225 matrix.sdk_pending_tasks_count = matrix.sdk_pending_tasks.length;
226 } 226 }
227 227
228 const pending_with_response_tasks_idx = matrix.sdk_pending_with_response_tasks.indexOf(trx_id); 228 const pending_with_response_tasks_idx = matrix.sdk_pending_with_response_tasks.indexOf(trx_id);
229 if (pending_with_response_tasks_idx >= 0) { 229 if (pending_with_response_tasks_idx >= 0) {
230 matrix.sdk_pending_with_response_tasks.splice(pending_with_response_tasks_idx, 1); 230 matrix.sdk_pending_with_response_tasks.splice(pending_with_response_tasks_idx, 1);
231 matrix.sdk_pending_with_response_tasks_count = matrix.sdk_pending_with_response_tasks.length; 231 matrix.sdk_pending_with_response_tasks_count = matrix.sdk_pending_with_response_tasks.length;
232 } 232 }
233 } 233 }
234 } 234 }
235 235
236 function forwardCoreTaskToPartner(coreMessage, start_time) { 236 function forwardCoreTaskToPartner(coreMessage, start_time) {
237 let task; 237 let task;
238 238
239 try { 239 try {
240 task = JSON.parse(coreMessage); 240 task = JSON.parse(coreMessage);
241 } 241 }
242 catch(e) { 242 catch(e) {
243 logger.warn('Exception on parsing CORE pull task response', {coreMessage: coreMessage, error: e}); 243 logger.warn('Exception on parsing CORE pull task response', {coreMessage: coreMessage, error: e});
244 return; 244 return;
245 } 245 }
246 246
247 if (config.sdk_pull_only_postpaid) { 247 if (config.sdk_pull_only_postpaid) {
248 logger.warn('Got task on sdk_pull_only_postpaid. It should not be happens', { task }); 248 logger.warn('Got task on sdk_pull_only_postpaid. It should not be happens', { task });
249 report({ 249 report({
250 trx_id: task.trx_id, 250 trx_id: task.trx_id,
251 rc: '40', 251 rc: '40',
252 message: 'GATEWAY ini diset hanya untuk transaksi postpaid (config.sdk_pull_only_postpaid)', 252 message: 'GATEWAY ini diset hanya untuk transaksi postpaid (config.sdk_pull_only_postpaid)',
253 }); 253 });
254 return; 254 return;
255 } 255 }
256 256
257 257
258 const core_pull_request_time = start_time ? (new Date() - start_time) / 1000 : null; 258 const core_pull_request_time = start_time ? (new Date() - start_time) / 1000 : null;
259 259
260 incrementCounterTrx(); 260 incrementCounterTrx();
261 261
262 task.remote_product = getRemoteProduct(task.product); 262 task.remote_product = getRemoteProduct(task.product);
263 if (Number(config.sdk_trx_id_adder)) { 263 if (Number(config.sdk_trx_id_adder)) {
264 task.trx_id = Number(task.trx_id) + Number(config.sdk_trx_id_adder); 264 task.trx_id = Number(task.trx_id) + Number(config.sdk_trx_id_adder);
265 } 265 }
266 266
267 putTaskToMatrix(task); 267 putTaskToMatrix(task);
268 268
269 const created_ts = new Date(task.created); 269 const created_ts = new Date(task.created);
270 const queue_time = ((new Date()) - created_ts) / 1000; 270 const queue_time = ((new Date()) - created_ts) / 1000;
271 logger.info('Got task from CORE', {trx_id: task.trx_id, destination: task.destination, product: task.product, queue_time: queue_time, core_pull_request_time: core_pull_request_time}); 271 logger.info('Got task from CORE', {trx_id: task.trx_id, destination: task.destination, product: task.product, queue_time: queue_time, core_pull_request_time: core_pull_request_time});
272 272
273 taskArchive.get(task, function(res) { 273 taskArchive.get(task, function(res) {
274 if (res && partner.advice) { 274 if (res && partner.advice) {
275 partner.advice(task); 275 partner.advice(task);
276 } 276 }
277 else { 277 else {
278 partner.buy(task); 278 partner.buy(task);
279 } 279 }
280 }); 280 });
281 } 281 }
282 282
283 function replaceRc(original_rc) { 283 function replaceRc(original_rc) {
284 if (!config || !config.replace_rc) { 284 if (!config || !config.replace_rc) {
285 return original_rc; 285 return original_rc;
286 } 286 }
287 287
288 return config.replace_rc[original_rc] || original_rc; 288 return config.replace_rc[original_rc] || original_rc;
289 } 289 }
290 290
291 function report(data) { 291 function report(data) {
292 292
293 let core_pull_report_url; 293 let core_pull_report_url;
294 294
295 if (data && data.trx_id && data.rc) { 295 if (data && data.trx_id && data.rc) {
296 updateTaskOnMatrix(data.trx_id, data.rc); 296 updateTaskOnMatrix(data.trx_id, data.rc);
297 } 297 }
298 298
299 if (core_url) { 299 if (core_url) {
300 core_pull_report_url = core_url + '/pull/report'; 300 core_pull_report_url = core_url + '/pull/report';
301 } else if (config && config.pull_url && config.pull_url.report) { 301 } else if (config && config.pull_url && config.pull_url.report) {
302 core_pull_report_url = config.pull_url.report.replace('<CORE_APIKEY>', config.core_apikey); 302 core_pull_report_url = config.pull_url.report.replace('<CORE_APIKEY>', config.core_apikey);
303 } 303 }
304 304
305 if (!core_pull_report_url) { 305 if (!core_pull_report_url) {
306 logger.warn('Unknown CORE report url'); 306 logger.warn('Unknown CORE report url');
307 return; 307 return;
308 } 308 }
309 309
310 if (config && config.push_server && config.push_server.apikey && config.push_server.advice && config.push_server.advice.url && config.push_server.advice.port) { 310 if (config && config.push_server && config.push_server.apikey && config.push_server.advice && config.push_server.advice.url && config.push_server.advice.port) {
311 if (!data.misc) { 311 if (!data.misc) {
312 data.misc = {}; 312 data.misc = {};
313 } 313 }
314 314
315 //logger.verbose('Including advice url on report'); 315 //logger.verbose('Including advice url on report');
316 data.misc.advice_url = config.push_server.advice.url; 316 data.misc.advice_url = config.push_server.advice.url;
317 } 317 }
318 318
319 let trx_id = Number(data.trx_id) - (Number(config.sdk_trx_id_adder) || 0); 319 let trx_id = Number(data.trx_id) - (Number(config.sdk_trx_id_adder) || 0);
320 if (trx_id <= 0) { 320 if (trx_id <= 0) {
321 logger.warn('REPORT: calculated trx_id is a negative number, using uncalculated trx_id', {uncalculated: data.trx_id, calculated: trx_id, sdk_trx_id_adder: config.sdk_trx_id_adder}); 321 logger.warn('REPORT: calculated trx_id is a negative number, using uncalculated trx_id', {uncalculated: data.trx_id, calculated: trx_id, sdk_trx_id_adder: config.sdk_trx_id_adder});
322 trx_id = data.trx_id; 322 trx_id = data.trx_id;
323 } 323 }
324 324
325 let options = { 325 let options = {
326 url: core_pull_report_url, 326 url: core_pull_report_url,
327 form: { 327 form: {
328 trx_id: trx_id, 328 trx_id: trx_id,
329 rc: replaceRc(data.rc), 329 rc: replaceRc(data.rc),
330 rc_from_handler: data.rc_from_handler, 330 rc_from_handler: data.rc_from_handler,
331 message: data.message, 331 message: data.message,
332 handler: config.handler_name, 332 handler: config.handler_name,
333 sn: data.sn, 333 sn: data.sn,
334 amount: data.amount, 334 amount: data.amount,
335 balance: data.balance, 335 balance: data.balance,
336 raw: data.raw, 336 raw: data.raw,
337 misc: data.misc, 337 misc: data.misc,
338 product: data.product || ( (data.misc && data.misc.task && typeof data.misc.task.product === 'string') ? data.misc.task.product : null ), 338 product: data.product || ( (data.misc && data.misc.task && typeof data.misc.task.product === 'string') ? data.misc.task.product : null ),
339 remote_product: data.remote_product || ( (data.misc && data.misc.task && typeof data.misc.task.remote_product === 'string') ? data.misc.task.remote_product : null ), 339 remote_product: data.remote_product || ( (data.misc && data.misc.task && typeof data.misc.task.remote_product === 'string') ? data.misc.task.remote_product : null ),
340 detail: data.detail || null, 340 detail: data.detail || null,
341 } 341 }
342 } 342 }
343 343
344 if (!config.do_not_verbose_log_report) { 344 if (!config.do_not_verbose_log_report) {
345 logger.verbose('Report to CORE using HTTP POST'); 345 logger.verbose('Report to CORE using HTTP POST');
346 } 346 }
347 347
348 request.post(options, function(error, response) { 348 request.post(options, function(error, response) {
349 if (error) { 349 if (error) {
350 logger.warn('Error reporting to CORE', {error: error}); 350 logger.warn('Error reporting to CORE', {error: error});
351 resendReport(data); 351 resendReport(data);
352 } 352 }
353 else if (response.statusCode != 200) { 353 else if (response.statusCode != 200) {
354 logger.warn('Error reporting to CORE, http response status is not 200', {requestOptions: options, http_response_status: response.statusCode}); 354 logger.warn('Error reporting to CORE, http response status is not 200', {requestOptions: options, http_response_status: response.statusCode});
355 resendReport(data); 355 resendReport(data);
356 } 356 }
357 else if (!config.do_not_verbose_log_report) { 357 else if (!config.do_not_verbose_log_report) {
358 logger.verbose('Report has been sent to CORE', {requestOptions: options}); 358 logger.verbose('Report has been sent to CORE', {requestOptions: options});
359 } 359 }
360 }); 360 });
361 } 361 }
362 362
363 function resendReport(data) { 363 function resendReport(data) {
364 const sleepBeforeResend = Math.round(Math.random() * MAX_SLEEP_BEFORE_RESEND_MS) 364 const sleepBeforeResend = Math.round(Math.random() * MAX_SLEEP_BEFORE_RESEND_MS)
365 logger.verbose('Resend report to CORE in ' + sleepBeforeResend + 'ms') 365 logger.verbose('Resend report to CORE in ' + sleepBeforeResend + 'ms')
366 366
367 setTimeout( 367 setTimeout(
368 function() { 368 function() {
369 report(data); 369 report(data);
370 }, 370 },
371 sleepBeforeResend 371 sleepBeforeResend
372 ) 372 )
373 } 373 }
374 374
375 function isPaused() { 375 function isPaused() {
376 return matrix.paused; 376 return matrix.paused;
377 } 377 }
378 378
379 function pause() { 379 function pause() {
380 matrix.paused = true; 380 matrix.paused = true;
381 } 381 }
382 382
383 function resume() { 383 function resume() {
384 matrix.paused = false; 384 matrix.paused = false;
385 } 385 }
386 386
387 function initMatrix() { 387 function initMatrix() {
388 matrix.counter = { 388 matrix.counter = {
389 trx: 0 389 trx: 0
390 } 390 }
391 } 391 }
392 392
393 function incrementCounterTrx() { 393 function incrementCounterTrx() {
394 matrix.counter.trx++; 394 matrix.counter.trx++;
395 } 395 }
396 396
397 function getRemoteProduct(product) { 397 function getRemoteProduct(product) {
398 let remoteProduct = config.remote_products[product]; 398 let remoteProduct = config.remote_products[product];
399 return remoteProduct || product; 399 return remoteProduct || product;
400 } 400 }
401 401
402 initMatrix(); 402 initMatrix();
403 403
404 setInterval(pullTask, config.pull_interval_ms || 1000); 404 setInterval(pullTask, config.pull_interval_ms || 1000);
405 logger.verbose('Pull task every ' + (config.pull_interval_ms || 1000) + ' ms'); 405 logger.verbose('Pull task every ' + (config.pull_interval_ms || 1000) + ' ms');
406 406
407 exports.setPartner = setPartner; 407 exports.setPartner = setPartner;
408 exports.isPaused = isPaused; 408 exports.isPaused = isPaused;
409 exports.pause = pause; 409 exports.pause = pause;
410 exports.resume = resume; 410 exports.resume = resume;
411 exports.report = report; 411 exports.report = report;
412 exports.getRemoteProduct = getRemoteProduct; 412 exports.getRemoteProduct = getRemoteProduct;
gateway/resend-delay.js
1 const LRU = require('lru-cache');
2 const moment = require('moment');
3 const logger = require('tektrans-logger'); 1 const LRU = require('lru-cache');
4 2 const moment = require('moment');
3 const logger = require('tektrans-logger');
5 const config = require('../config'); 4
6 5 const config = require('../config');
7 const resendHandlers = LRU({
8 max: (( config && config.auto_resend && config.auto_resend.max_handler ) ? Number(config.auto_resend.max_handler) : 0) || 5000, 6
9 maxAge: 1000 * 3600 * 24 7 const resendHandlers = LRU({
10 }); 8 max: (( config && config.auto_resend && config.auto_resend.max_handler ) ? Number(config.auto_resend.max_handler) : 0) || 5000,
11 9 maxAge: 1000 * 3600 * 24
12 function isEnabled() { 10 });
13 return config && config.auto_resend && Number(config.auto_resend.delay_ms) && Number(config.auto_resend.max_retry); 11
14 } 12 function isEnabled() {
15 13 return config && config.auto_resend && Number(config.auto_resend.delay_ms) && Number(config.auto_resend.max_retry);
16 function _resend(task, request) { 14 }
17 const trx_date = moment(task.created).format('YYYYMMDD'); 15
18 if (trx_date !== moment().format('YYYYMMDD')) { 16 function _resend(task, request) {
19 logger.info('SDK-RESEND-DELAY: skip resend because of different trx date', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product, created: task.created}); 17 const trx_date = moment(task.created).format('YYYYMMDD');
20 return; 18 if (trx_date !== moment().format('YYYYMMDD')) {
21 } 19 logger.info('SDK-RESEND-DELAY: skip resend because of different trx date', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product, created: task.created});
22 20 return;
23 logger.verbose('SDK-RESEND-DELAY: Resending trx', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product, created: task.created}); 21 }
24 request(task); 22
25 } 23 logger.verbose('SDK-RESEND-DELAY: Resending trx', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product, created: task.created});
26 24 request(task);
27 function cancel(_task) { 25 }
28 config && config.auto_resend && config.auto_resend.debug && logger.verbose('SDK-RESEND-DELAY: Preparing', {task: _task, typeof_task: typeof _task}); 26
29 27 function cancel(_task) {
30 const trx_id = ( typeof _task === 'object' ) ? _task.trx_id : _task; 28 config && config.auto_resend && config.auto_resend.debug && logger.verbose('SDK-RESEND-DELAY: Preparing', {task: _task, typeof_task: typeof _task});
31 if (!trx_id) { 29
32 logger.warn('SDK-RESEND-DELAY: Skipping cancel because of undefined trx_id'); 30 const trx_id = ( typeof _task === 'object' ) ? _task.trx_id : _task;
33 return; 31 if (!trx_id) {
34 } 32 logger.warn('SDK-RESEND-DELAY: Skipping cancel because of undefined trx_id');
35 33 return;
36 const oldHandler = resendHandlers.get('TASK_' + trx_id); 34 }
37 if (!oldHandler) { 35
38 config && config.auto_resend && config.auto_resend.debug && logger.verbose('SDK-RESEND-DELAY: Skipping cancel because of undefined oldHandler', {trx_id: trx_id}); 36 const oldHandler = resendHandlers.get('TASK_' + trx_id);
39 return; 37 if (!oldHandler) {
40 } 38 config && config.auto_resend && config.auto_resend.debug && logger.verbose('SDK-RESEND-DELAY: Skipping cancel because of undefined oldHandler', {trx_id: trx_id});
41 39 return;
42 const task = oldHandler.task; 40 }
43 logger.verbose('SDK-RESEND-DELAY: Canceling task', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product}); 41
44 42 const task = oldHandler.task;
45 if (oldHandler.handler) { clearTimeout(oldHandler.handler); } 43 logger.verbose('SDK-RESEND-DELAY: Canceling task', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product});
46 resendHandlers.del('TASK_' + trx_id); 44
47 } 45 if (oldHandler.handler) { clearTimeout(oldHandler.handler); }
48 46 resendHandlers.del('TASK_' + trx_id);
49 function register(task, request) { 47 }
50 if (!task.trx_id) { 48
51 logger.warn('SDK-RESEND-DELAY: Invalid task on register') 49 function register(task, request) {
52 return; 50 if (!task.trx_id) {
53 } 51 logger.warn('SDK-RESEND-DELAY: Invalid task on register')
54 52 return;
55 if (!request || !config || !config.auto_resend || !Number(config.auto_resend.delay_ms) || !Number(config.auto_resend.max_retry)) { 53 }
56 return; 54
57 } 55 if (!request || !config || !config.auto_resend || !Number(config.auto_resend.delay_ms) || !Number(config.auto_resend.max_retry)) {
58 56 return;
59 let retry = config.auto_resend.max_retry; 57 }
60 const oldHandler = resendHandlers.get('TASK_' + task.trx_id); 58
61 if (oldHandler) { 59 let retry = config.auto_resend.max_retry;
62 retry = oldHandler.retry - 1; 60 const oldHandler = resendHandlers.get('TASK_' + task.trx_id);
63 cancel(task); 61 if (oldHandler) {
64 } 62 retry = oldHandler.retry - 1;
65 63 cancel(task);
66 if (retry <= 0) { 64 }
67 logger.verbose('SDK-RESEND-DELAY: Retry exceeded', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product}); 65
68 cancel(task); 66 if (retry <= 0) {
69 return; 67 logger.verbose('SDK-RESEND-DELAY: Retry exceeded', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product});
70 } 68 cancel(task);
71 69 return;
72 logger.verbose('SDK-RESEND-DELAY: Registering task request', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product, delay_ms: config.auto_resend.delay_ms, retry: retry}); 70 }
73 const handlerData = { 71
74 handler: setTimeout( 72 logger.verbose('SDK-RESEND-DELAY: Registering task request', {trx_id: task.trx_id, destination: task.destination, product: task.product, remote_product: task.remote_product, delay_ms: config.auto_resend.delay_ms, retry: retry});
75 function() { _resend(task, request); }, 73 const handlerData = {
76 config.auto_resend.delay_ms 74 handler: setTimeout(
77 ), 75 function() { _resend(task, request); },
78 task: task, 76 config.auto_resend.delay_ms
79 retry: retry 77 ),
80 } 78 task: task,
81 79 retry: retry
82 resendHandlers.set('TASK_' + task.trx_id, handlerData); 80 }
83 } 81
84 82 resendHandlers.set('TASK_' + task.trx_id, handlerData);
85 setInterval( 83 }
86 function() { 84
87 resendHandlers.prune(); 85 setInterval(
88 logger.verbose('SDK-RESEND-DELAY: pruned'); 86 function() {
89 }, 87 resendHandlers.prune();
90 24 * 3600 * 1000 88 logger.verbose('SDK-RESEND-DELAY: pruned');
91 ) 89 },
92 90 24 * 3600 * 1000
93 exports.cancel = cancel; 91 )
94 exports.register = register; 92
95 exports.isEnabled = isEnabled; 93 exports.cancel = cancel;
gateway/task-archive.js
1 const redis = require("redis");
2
3 const config = require('../config');
4
5 let redis_client; 1 const redis = require("redis");
6 2
7 function init() { 3 const config = require('../config');
8 if (!config.redis) {
9 return;
10 } 4
11 5 let redis_client;
12 redis_client = redis.createClient(config.redis); 6
13 } 7 function init() {
14 8 if (!config.redis) {
15 function keyword(task) { 9 return;
16 return 'geckoo_' + config.handler_name + '_' + task.trx_id; 10 }
17 } 11
18 12 redis_client = redis.createClient(config.redis);
19 function put(task) { 13 }
20 if (!redis_client) { 14
21 return; 15 function keyword(task) {
22 } 16 return 'geckoo_' + config.handler_name + '_' + task.trx_id;
23 17 }
24 const keyword = keyword(task); 18
25 19 function put(task) {
26 redis_client.set(keyword, JSON.stringify(task)); 20 if (!redis_client) {
27 redis_client.expire(keyword, 3600 * 24 * 15); 21 return;
28 } 22 }
29 23
30 function get(task, cb) { 24 const keyword = keyword(task);
31 if (!redis_client) { 25
32 cb(null); 26 redis_client.set(keyword, JSON.stringify(task));
33 return; 27 redis_client.expire(keyword, 3600 * 24 * 15);
34 } 28 }
35 29
36 redis_client.get(keyword(task), function(res) { 30 function get(task, cb) {
37 if (!res) { 31 if (!redis_client) {
38 cb(null); 32 cb(null);
39 } 33 return;
40 else { 34 }
41 let resObj; 35
42 36 redis_client.get(keyword(task), function(res) {
43 try { 37 if (!res) {
44 resObj = JSON.parse(res); 38 cb(null);
45 } 39 }
46 catch(e) { 40 else {
47 cb(null); 41 let resObj;
48 return; 42
49 } 43 try {
50 44 resObj = JSON.parse(res);
51 cb(resObj); 45 }
52 } 46 catch(e) {
53 }); 47 cb(null);
54 } 48 return;
55 49 }
56 init(); 50
57 51 cb(resObj);
58 exports.put = put; 52 }
59 exports.get = get; 53 });
60 54 }
1 const logger = require('tektrans-logger'); 1 const logger = require('tektrans-logger');
2 const config = require('./config');
3 // const matrix = require('./matrix');
4 const core_url = require('./core-url');
5 2 const config = require('./config');
6 let module_type; 3 // const matrix = require('./matrix');
7
8 function sendHeartbeat() { 4 const core_url = require('./core-url');
9 if (!config || !core_url || !module_type) { return; } 5
10 6 let module_type;
11 let heartbeat_name = config.handler_name || config.origin; 7
12 if (config.username) { 8 function sendHeartbeat() {
13 heartbeat_name += '/' + config.username; 9 if (!config || !core_url || !module_type) { return; }
14 } 10
15 11 let heartbeat_name = config.handler_name || config.origin;
16 if (!heartbeat_name) { 12 if (config.username) {
17 logger.warn('Unknown heartbeat name, skip sending heartbeat'); 13 heartbeat_name += '/' + config.username;
18 return; 14 }
19 } 15
20 16 if (!heartbeat_name) {
21 // const requestOptions = { 17 logger.warn('Unknown heartbeat name, skip sending heartbeat');
22 // uri: core_url + '/heartbeats', 18 return;
23 // method: 'POST', 19 }
24 // json: { 20
25 // name: heartbeat_name, 21 // const requestOptions = {
26 // module_type: module_type, 22 // uri: core_url + '/heartbeats',
27 // config: config, 23 // method: 'POST',
28 // matrix: matrix 24 // json: {
29 // } 25 // name: heartbeat_name,
30 // } 26 // module_type: module_type,
31 27 // config: config,
32 //request.post(requestOptions, function(err, res, body) { }); 28 // matrix: matrix
33 } 29 // }
34 30 // }
35 setInterval( 31
36 sendHeartbeat, 32 //request.post(requestOptions, function(err, res, body) { });
37 60 * 1000 33 }
38 ) 34
39 35 setInterval(
40 function setModuleType(value) { 36 sendHeartbeat,
41 logger.verbose('Set heartbeat module type as ' + value + ' and starting to send heartbeat per interval'); 37 60 * 1000
42 module_type = value; 38 )
43 sendHeartbeat(); 39
44 } 40 function setModuleType(value) {
45 41 logger.verbose('Set heartbeat module type as ' + value + ' and starting to send heartbeat per interval');
46 exports.setModuleType = setModuleType; 42 module_type = value;
47 43 sendHeartbeat();
1 /**
2 * heartbeat2, blm ready
3 */ 1 /**
4 2 * heartbeat2, blm ready
5 3 */
6 const config = require('../config'); 4
7
8 let module_type; 5
9 6 const config = require('../config');
10 function setModuleType(value) {
11 module_type = value;
12 send();
13 } 7
14 8 let module_type;
15 9
16 function send() { 10 function setModuleType(value) {
17 const data = { 11 module_type = value;
18 name: config.handler_name || config.origin, 12 send();
19 module_type: module_type, 13 }
20 products: config.products, 14
21 remote_products: config.remote_products 15
22 } 16 function send() {
23 } 17 const data = {
24 18 name: config.handler_name || config.origin,
25 exports.setModuleType = setModuleType; 19 module_type: module_type,
26 exports.send = send; 20 products: config.products,
27 21 remote_products: config.remote_products
logger-circular-buffer-web.js
1 require('winston-circular-buffer'); 1 require('winston-circular-buffer');
2 2
3 // THIS MODULE IS OBSOLETED 3 // THIS MODULE IS OBSOLETED
4 4
5 const http = require('http'); 5 const http = require('http');
6 const auth = require('basic-auth'); 6 const auth = require('basic-auth');
7 7
8 const logger = require('tektrans-logger'); 8 const logger = require('tektrans-logger');
9 9
10 function listen(options) { 10 function listen(options) {
11 if (options && options.port && options.username && options.password) { 11 if (options && options.port && options.username && options.password) {
12 12
13 http.createServer(function(req, res) { 13 http.createServer(function(req, res) {
14 var credentials = auth(req); 14 var credentials = auth(req);
15 15
16 if (!credentials && credentials.name != options.username && credentials.pass != options.password) { 16 if (!credentials && credentials.name != options.username && credentials.pass != options.password) {
17 res.statusCode = 401; 17 res.statusCode = 401;
18 res.setHeader('WWW-Authenticate', 'Basic realm="example"'); 18 res.setHeader('WWW-Authenticate', 'Basic realm="example"');
19 res.end('Access denied'); 19 res.end('Access denied');
20 } 20 }
21 else { 21 else {
22 22
23 res.json([]); 23 res.json([]);
24 /* 24 /*
25 logger.query({json: true, order: desc}, function(err, results) { 25 logger.query({json: true, order: desc}, function(err, results) {
26 if (err) { 26 if (err) {
27 res.end('INVALID LOGGER'); 27 res.end('INVALID LOGGER');
28 } 28 }
29 else { 29 else {
30 res.writeHead(200, { 'Content-Type': 'application/json' }); 30 res.writeHead(200, { 'Content-Type': 'application/json' });
31 res.end(JSON.stringify(results)); 31 res.end(JSON.stringify(results));
32 } 32 }
33 }); 33 });
34 */ 34 */
35 } 35 }
36 }).listen(options.port); 36 }).listen(options.port);
37 37
38 logger.verbose('Logger circular buffer http server listen on port ' + options.port); 38 logger.verbose('Logger circular buffer http server listen on port ' + options.port);
39 } 39 }
40 else { 40 else {
41 logger.verbose('Circular buffer logger http server viewer is not configured. Please set options.port, options.username, options.password'); 41 logger.verbose('Circular buffer logger http server viewer is not configured. Please set options.port, options.username, options.password');
42 } 42 }
43 43
44 } 44 }
45 45
46 exports.listen = listen; 46 exports.listen = listen;
47 47
1 /**
2 * Logger for komodo environment. It just an alias for tektrans-logger.
3 * This is a deprecated module.
4 * Please use tektrans-logger directly
5 *
6 * @deprecated 2021-09-12 please use tektrans-logger directly
7 */
8
9 /**
10 * tektrans-logger
11 */
1 /** 12 const logger = require('tektrans-logger');
2 * Logger for komodo environment. It just an alias for tektrans-logger. 13
3 * This is a deprecated module. 14 logger.verbose('KOMODO-SDK.LOGGER 7784B11E: This module is deprecated, please use TEKTRANS-LOGGER directly.');
4 * Please use tektrans-logger directly 15
5 * 16 // require('./logger-circular-buffer-web');
6 * @deprecated 2021-09-12 please use tektrans-logger directly 17
7 */ 18 module.exports = logger;
8 19
1 { 1 {
2 "name": "komodo-sdk", 2 "name": "komodo-sdk",
3 "version": "1.42.3", 3 "version": "1.43.0",
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
7 "@babel/code-frame": { 7 "@babel/code-frame": {
8 "version": "7.10.4", 8 "version": "7.10.4",
9 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 9 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
10 "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 10 "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
11 "dev": true, 11 "dev": true,
12 "requires": { 12 "requires": {
13 "@babel/highlight": "^7.10.4" 13 "@babel/highlight": "^7.10.4"
14 } 14 }
15 }, 15 },
16 "@babel/helper-validator-identifier": { 16 "@babel/helper-validator-identifier": {
17 "version": "7.10.4", 17 "version": "7.10.4",
18 "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 18 "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
19 "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", 19 "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
20 "dev": true 20 "dev": true
21 }, 21 },
22 "@babel/highlight": { 22 "@babel/highlight": {
23 "version": "7.10.4", 23 "version": "7.10.4",
24 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 24 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
25 "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 25 "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
26 "dev": true, 26 "dev": true,
27 "requires": { 27 "requires": {
28 "@babel/helper-validator-identifier": "^7.10.4", 28 "@babel/helper-validator-identifier": "^7.10.4",
29 "chalk": "^2.0.0", 29 "chalk": "^2.0.0",
30 "js-tokens": "^4.0.0" 30 "js-tokens": "^4.0.0"
31 } 31 }
32 }, 32 },
33 "@cloudcmd/copy-file": { 33 "@cloudcmd/copy-file": {
34 "version": "1.1.1", 34 "version": "1.1.1",
35 "resolved": "https://registry.npmjs.org/@cloudcmd/copy-file/-/copy-file-1.1.1.tgz", 35 "resolved": "https://registry.npmjs.org/@cloudcmd/copy-file/-/copy-file-1.1.1.tgz",
36 "integrity": "sha512-t6pTJdsV0qhh9YX22/Npsv95GqVABc5GRInSK7JSSNIpPLq9TM+K7odYzcOuQRPZAD9OHxZfbYsB4WJOalzqng==", 36 "integrity": "sha512-t6pTJdsV0qhh9YX22/Npsv95GqVABc5GRInSK7JSSNIpPLq9TM+K7odYzcOuQRPZAD9OHxZfbYsB4WJOalzqng==",
37 "requires": { 37 "requires": {
38 "es6-promisify": "^6.0.0", 38 "es6-promisify": "^6.0.0",
39 "pipe-io": "^3.0.0", 39 "pipe-io": "^3.0.0",
40 "wraptile": "^2.0.0", 40 "wraptile": "^2.0.0",
41 "zames": "^2.0.0" 41 "zames": "^2.0.0"
42 } 42 }
43 }, 43 },
44 "@dabh/diagnostics": { 44 "@dabh/diagnostics": {
45 "version": "2.0.2", 45 "version": "2.0.2",
46 "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", 46 "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz",
47 "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", 47 "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==",
48 "requires": { 48 "requires": {
49 "colorspace": "1.1.x", 49 "colorspace": "1.1.x",
50 "enabled": "2.0.x", 50 "enabled": "2.0.x",
51 "kuler": "^2.0.0" 51 "kuler": "^2.0.0"
52 } 52 }
53 }, 53 },
54 "@types/color-name": { 54 "@types/color-name": {
55 "version": "1.1.1", 55 "version": "1.1.1",
56 "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 56 "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
57 "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", 57 "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
58 "dev": true 58 "dev": true
59 }, 59 },
60 "a-sync-waterfall": { 60 "a-sync-waterfall": {
61 "version": "1.0.1", 61 "version": "1.0.1",
62 "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", 62 "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
63 "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==" 63 "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA=="
64 }, 64 },
65 "accepts": { 65 "accepts": {
66 "version": "1.3.7", 66 "version": "1.3.7",
67 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 67 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
68 "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 68 "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
69 "requires": { 69 "requires": {
70 "mime-types": "~2.1.24", 70 "mime-types": "~2.1.24",
71 "negotiator": "0.6.2" 71 "negotiator": "0.6.2"
72 } 72 }
73 }, 73 },
74 "acorn": { 74 "acorn": {
75 "version": "7.3.1", 75 "version": "7.3.1",
76 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", 76 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
77 "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", 77 "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==",
78 "dev": true 78 "dev": true
79 }, 79 },
80 "acorn-jsx": { 80 "acorn-jsx": {
81 "version": "5.2.0", 81 "version": "5.2.0",
82 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", 82 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
83 "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", 83 "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
84 "dev": true 84 "dev": true
85 }, 85 },
86 "ajv": { 86 "ajv": {
87 "version": "6.10.2", 87 "version": "6.10.2",
88 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", 88 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
89 "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", 89 "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
90 "requires": { 90 "requires": {
91 "fast-deep-equal": "^2.0.1", 91 "fast-deep-equal": "^2.0.1",
92 "fast-json-stable-stringify": "^2.0.0", 92 "fast-json-stable-stringify": "^2.0.0",
93 "json-schema-traverse": "^0.4.1", 93 "json-schema-traverse": "^0.4.1",
94 "uri-js": "^4.2.2" 94 "uri-js": "^4.2.2"
95 } 95 }
96 }, 96 },
97 "ansi-escapes": { 97 "ansi-escapes": {
98 "version": "4.3.1", 98 "version": "4.3.1",
99 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", 99 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
100 "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", 100 "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
101 "dev": true, 101 "dev": true,
102 "requires": { 102 "requires": {
103 "type-fest": "^0.11.0" 103 "type-fest": "^0.11.0"
104 }, 104 },
105 "dependencies": { 105 "dependencies": {
106 "type-fest": { 106 "type-fest": {
107 "version": "0.11.0", 107 "version": "0.11.0",
108 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", 108 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
109 "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", 109 "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
110 "dev": true 110 "dev": true
111 } 111 }
112 } 112 }
113 }, 113 },
114 "ansi-regex": { 114 "ansi-regex": {
115 "version": "5.0.0", 115 "version": "5.0.0",
116 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 116 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
117 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 117 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
118 "dev": true 118 "dev": true
119 }, 119 },
120 "ansi-styles": { 120 "ansi-styles": {
121 "version": "3.2.1", 121 "version": "3.2.1",
122 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 122 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
123 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 123 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
124 "dev": true, 124 "dev": true,
125 "requires": { 125 "requires": {
126 "color-convert": "^1.9.0" 126 "color-convert": "^1.9.0"
127 } 127 }
128 }, 128 },
129 "argparse": { 129 "argparse": {
130 "version": "1.0.10", 130 "version": "1.0.10",
131 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 131 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
132 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 132 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
133 "dev": true, 133 "dev": true,
134 "requires": { 134 "requires": {
135 "sprintf-js": "~1.0.2" 135 "sprintf-js": "~1.0.2"
136 } 136 }
137 }, 137 },
138 "array-flatten": { 138 "array-flatten": {
139 "version": "1.1.1", 139 "version": "1.1.1",
140 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 140 "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
141 "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 141 "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
142 }, 142 },
143 "array-unique": { 143 "array-unique": {
144 "version": "0.3.2", 144 "version": "0.3.2",
145 "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", 145 "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
146 "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" 146 "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
147 }, 147 },
148 "asap": { 148 "asap": {
149 "version": "2.0.6", 149 "version": "2.0.6",
150 "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", 150 "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
151 "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" 151 "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
152 }, 152 },
153 "asn1": { 153 "asn1": {
154 "version": "0.2.4", 154 "version": "0.2.4",
155 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 155 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
156 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 156 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
157 "requires": { 157 "requires": {
158 "safer-buffer": "~2.1.0" 158 "safer-buffer": "~2.1.0"
159 } 159 }
160 }, 160 },
161 "assert-plus": { 161 "assert-plus": {
162 "version": "1.0.0", 162 "version": "1.0.0",
163 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 163 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
164 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 164 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
165 }, 165 },
166 "astral-regex": { 166 "astral-regex": {
167 "version": "1.0.0", 167 "version": "1.0.0",
168 "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 168 "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
169 "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 169 "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
170 "dev": true 170 "dev": true
171 }, 171 },
172 "async": { 172 "async": {
173 "version": "3.2.1", 173 "version": "3.2.1",
174 "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", 174 "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz",
175 "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==" 175 "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg=="
176 }, 176 },
177 "asynckit": { 177 "asynckit": {
178 "version": "0.4.0", 178 "version": "0.4.0",
179 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 179 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
180 "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 180 "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
181 }, 181 },
182 "auto-changelog": { 182 "auto-changelog": {
183 "version": "2.3.0", 183 "version": "2.3.0",
184 "resolved": "https://registry.npmjs.org/auto-changelog/-/auto-changelog-2.3.0.tgz", 184 "resolved": "https://registry.npmjs.org/auto-changelog/-/auto-changelog-2.3.0.tgz",
185 "integrity": "sha512-S2B+RtTgytsa7l5iFGBoWT9W9ylITT5JJ8OaMJ7nrwvnlRm1dSS2tghaYueDeInZZafOE+1llH3tUQjMDRVS1g==", 185 "integrity": "sha512-S2B+RtTgytsa7l5iFGBoWT9W9ylITT5JJ8OaMJ7nrwvnlRm1dSS2tghaYueDeInZZafOE+1llH3tUQjMDRVS1g==",
186 "requires": { 186 "requires": {
187 "commander": "^5.0.0", 187 "commander": "^5.0.0",
188 "handlebars": "^4.7.3", 188 "handlebars": "^4.7.3",
189 "node-fetch": "^2.6.0", 189 "node-fetch": "^2.6.0",
190 "parse-github-url": "^1.0.2", 190 "parse-github-url": "^1.0.2",
191 "semver": "^6.3.0" 191 "semver": "^6.3.0"
192 }, 192 },
193 "dependencies": { 193 "dependencies": {
194 "commander": { 194 "commander": {
195 "version": "5.1.0", 195 "version": "5.1.0",
196 "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", 196 "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
197 "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" 197 "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="
198 } 198 }
199 } 199 }
200 }, 200 },
201 "aws-sign2": { 201 "aws-sign2": {
202 "version": "0.7.0", 202 "version": "0.7.0",
203 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 203 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
204 "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 204 "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
205 }, 205 },
206 "aws4": { 206 "aws4": {
207 "version": "1.8.0", 207 "version": "1.8.0",
208 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 208 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
209 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" 209 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
210 }, 210 },
211 "balanced-match": { 211 "balanced-match": {
212 "version": "1.0.0", 212 "version": "1.0.0",
213 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 213 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
214 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 214 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
215 }, 215 },
216 "basic-auth": { 216 "basic-auth": {
217 "version": "2.0.0", 217 "version": "2.0.0",
218 "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz", 218 "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz",
219 "integrity": "sha1-AV2z81PgLlY3d1X5YnQuiYHnu7o=", 219 "integrity": "sha1-AV2z81PgLlY3d1X5YnQuiYHnu7o=",
220 "requires": { 220 "requires": {
221 "safe-buffer": "5.1.1" 221 "safe-buffer": "5.1.1"
222 } 222 }
223 }, 223 },
224 "bcrypt-pbkdf": { 224 "bcrypt-pbkdf": {
225 "version": "1.0.2", 225 "version": "1.0.2",
226 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 226 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
227 "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 227 "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
228 "requires": { 228 "requires": {
229 "tweetnacl": "^0.14.3" 229 "tweetnacl": "^0.14.3"
230 } 230 }
231 }, 231 },
232 "body-parser": { 232 "body-parser": {
233 "version": "1.18.2", 233 "version": "1.18.2",
234 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", 234 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
235 "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", 235 "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
236 "requires": { 236 "requires": {
237 "bytes": "3.0.0", 237 "bytes": "3.0.0",
238 "content-type": "~1.0.4", 238 "content-type": "~1.0.4",
239 "debug": "2.6.9", 239 "debug": "2.6.9",
240 "depd": "~1.1.1", 240 "depd": "~1.1.1",
241 "http-errors": "~1.6.2", 241 "http-errors": "~1.6.2",
242 "iconv-lite": "0.4.19", 242 "iconv-lite": "0.4.19",
243 "on-finished": "~2.3.0", 243 "on-finished": "~2.3.0",
244 "qs": "6.5.1", 244 "qs": "6.5.1",
245 "raw-body": "2.3.2", 245 "raw-body": "2.3.2",
246 "type-is": "~1.6.15" 246 "type-is": "~1.6.15"
247 }, 247 },
248 "dependencies": { 248 "dependencies": {
249 "qs": { 249 "qs": {
250 "version": "6.5.1", 250 "version": "6.5.1",
251 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", 251 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
252 "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg=" 252 "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg="
253 } 253 }
254 } 254 }
255 }, 255 },
256 "brace-expansion": { 256 "brace-expansion": {
257 "version": "1.1.8", 257 "version": "1.1.8",
258 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 258 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
259 "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 259 "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
260 "requires": { 260 "requires": {
261 "balanced-match": "^1.0.0", 261 "balanced-match": "^1.0.0",
262 "concat-map": "0.0.1" 262 "concat-map": "0.0.1"
263 } 263 }
264 }, 264 },
265 "bytes": { 265 "bytes": {
266 "version": "3.0.0", 266 "version": "3.0.0",
267 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 267 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
268 "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" 268 "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
269 }, 269 },
270 "callsites": { 270 "callsites": {
271 "version": "3.1.0", 271 "version": "3.1.0",
272 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 272 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
273 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 273 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
274 "dev": true 274 "dev": true
275 }, 275 },
276 "caseless": { 276 "caseless": {
277 "version": "0.12.0", 277 "version": "0.12.0",
278 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 278 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
279 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 279 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
280 }, 280 },
281 "chalk": { 281 "chalk": {
282 "version": "2.4.2", 282 "version": "2.4.2",
283 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 283 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
284 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 284 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
285 "dev": true, 285 "dev": true,
286 "requires": { 286 "requires": {
287 "ansi-styles": "^3.2.1", 287 "ansi-styles": "^3.2.1",
288 "escape-string-regexp": "^1.0.5", 288 "escape-string-regexp": "^1.0.5",
289 "supports-color": "^5.3.0" 289 "supports-color": "^5.3.0"
290 } 290 }
291 }, 291 },
292 "chardet": { 292 "chardet": {
293 "version": "0.7.0", 293 "version": "0.7.0",
294 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 294 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
295 "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", 295 "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
296 "dev": true 296 "dev": true
297 }, 297 },
298 "charenc": { 298 "charenc": {
299 "version": "0.0.2", 299 "version": "0.0.2",
300 "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", 300 "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
301 "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" 301 "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
302 }, 302 },
303 "cli-cursor": { 303 "cli-cursor": {
304 "version": "3.1.0", 304 "version": "3.1.0",
305 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", 305 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
306 "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", 306 "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
307 "dev": true, 307 "dev": true,
308 "requires": { 308 "requires": {
309 "restore-cursor": "^3.1.0" 309 "restore-cursor": "^3.1.0"
310 } 310 }
311 }, 311 },
312 "cli-width": { 312 "cli-width": {
313 "version": "3.0.0", 313 "version": "3.0.0",
314 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", 314 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
315 "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", 315 "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
316 "dev": true 316 "dev": true
317 }, 317 },
318 "color": { 318 "color": {
319 "version": "3.0.0", 319 "version": "3.0.0",
320 "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", 320 "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
321 "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", 321 "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
322 "requires": { 322 "requires": {
323 "color-convert": "^1.9.1", 323 "color-convert": "^1.9.1",
324 "color-string": "^1.5.2" 324 "color-string": "^1.5.2"
325 } 325 }
326 }, 326 },
327 "color-convert": { 327 "color-convert": {
328 "version": "1.9.3", 328 "version": "1.9.3",
329 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 329 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
330 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 330 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
331 "requires": { 331 "requires": {
332 "color-name": "1.1.3" 332 "color-name": "1.1.3"
333 } 333 }
334 }, 334 },
335 "color-name": { 335 "color-name": {
336 "version": "1.1.3", 336 "version": "1.1.3",
337 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 337 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
338 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 338 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
339 }, 339 },
340 "color-string": { 340 "color-string": {
341 "version": "1.6.0", 341 "version": "1.6.0",
342 "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", 342 "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz",
343 "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", 343 "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==",
344 "requires": { 344 "requires": {
345 "color-name": "^1.0.0", 345 "color-name": "^1.0.0",
346 "simple-swizzle": "^0.2.2" 346 "simple-swizzle": "^0.2.2"
347 } 347 }
348 }, 348 },
349 "colors": { 349 "colors": {
350 "version": "1.4.0", 350 "version": "1.4.0",
351 "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 351 "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
352 "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" 352 "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
353 }, 353 },
354 "colorspace": { 354 "colorspace": {
355 "version": "1.1.2", 355 "version": "1.1.2",
356 "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", 356 "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz",
357 "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", 357 "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==",
358 "requires": { 358 "requires": {
359 "color": "3.0.x", 359 "color": "3.0.x",
360 "text-hex": "1.0.x" 360 "text-hex": "1.0.x"
361 } 361 }
362 }, 362 },
363 "combined-stream": { 363 "combined-stream": {
364 "version": "1.0.8", 364 "version": "1.0.8",
365 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 365 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
366 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 366 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
367 "requires": { 367 "requires": {
368 "delayed-stream": "~1.0.0" 368 "delayed-stream": "~1.0.0"
369 } 369 }
370 }, 370 },
371 "commander": { 371 "commander": {
372 "version": "2.15.1", 372 "version": "2.15.1",
373 "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", 373 "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
374 "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=" 374 "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8="
375 }, 375 },
376 "concat-map": { 376 "concat-map": {
377 "version": "0.0.1", 377 "version": "0.0.1",
378 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 378 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
379 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 379 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
380 }, 380 },
381 "content-disposition": { 381 "content-disposition": {
382 "version": "0.5.3", 382 "version": "0.5.3",
383 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 383 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
384 "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 384 "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
385 "requires": { 385 "requires": {
386 "safe-buffer": "5.1.2" 386 "safe-buffer": "5.1.2"
387 }, 387 },
388 "dependencies": { 388 "dependencies": {
389 "safe-buffer": { 389 "safe-buffer": {
390 "version": "5.1.2", 390 "version": "5.1.2",
391 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 391 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
392 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 392 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
393 } 393 }
394 } 394 }
395 }, 395 },
396 "content-type": { 396 "content-type": {
397 "version": "1.0.4", 397 "version": "1.0.4",
398 "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 398 "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
399 "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=" 399 "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js="
400 }, 400 },
401 "cookie": { 401 "cookie": {
402 "version": "0.3.1", 402 "version": "0.3.1",
403 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 403 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
404 "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 404 "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
405 }, 405 },
406 "cookie-signature": { 406 "cookie-signature": {
407 "version": "1.0.6", 407 "version": "1.0.6",
408 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 408 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
409 "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 409 "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
410 }, 410 },
411 "core-util-is": { 411 "core-util-is": {
412 "version": "1.0.2", 412 "version": "1.0.2",
413 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 413 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
414 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 414 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
415 }, 415 },
416 "crc": { 416 "crc": {
417 "version": "3.4.4", 417 "version": "3.4.4",
418 "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", 418 "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz",
419 "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=" 419 "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms="
420 }, 420 },
421 "cross-spawn": { 421 "cross-spawn": {
422 "version": "6.0.5", 422 "version": "6.0.5",
423 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 423 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
424 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 424 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
425 "dev": true, 425 "dev": true,
426 "requires": { 426 "requires": {
427 "nice-try": "^1.0.4", 427 "nice-try": "^1.0.4",
428 "path-key": "^2.0.1", 428 "path-key": "^2.0.1",
429 "semver": "^5.5.0", 429 "semver": "^5.5.0",
430 "shebang-command": "^1.2.0", 430 "shebang-command": "^1.2.0",
431 "which": "^1.2.9" 431 "which": "^1.2.9"
432 }, 432 },
433 "dependencies": { 433 "dependencies": {
434 "semver": { 434 "semver": {
435 "version": "5.7.1", 435 "version": "5.7.1",
436 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 436 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
437 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 437 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
438 "dev": true 438 "dev": true
439 } 439 }
440 } 440 }
441 }, 441 },
442 "crypt": { 442 "crypt": {
443 "version": "0.0.2", 443 "version": "0.0.2",
444 "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", 444 "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
445 "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" 445 "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
446 }, 446 },
447 "currify": { 447 "currify": {
448 "version": "2.0.6", 448 "version": "2.0.6",
449 "resolved": "https://registry.npmjs.org/currify/-/currify-2.0.6.tgz", 449 "resolved": "https://registry.npmjs.org/currify/-/currify-2.0.6.tgz",
450 "integrity": "sha512-F0lbcoBkA2FMcejFeHJkDEhQ1AvVkTpkn9PMzJch+7mHy5WdteZ9t+nhT6cOdga4uRay3rjvprgp8tUkixFy8w==" 450 "integrity": "sha512-F0lbcoBkA2FMcejFeHJkDEhQ1AvVkTpkn9PMzJch+7mHy5WdteZ9t+nhT6cOdga4uRay3rjvprgp8tUkixFy8w=="
451 }, 451 },
452 "dashdash": { 452 "dashdash": {
453 "version": "1.14.1", 453 "version": "1.14.1",
454 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 454 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
455 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 455 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
456 "requires": { 456 "requires": {
457 "assert-plus": "^1.0.0" 457 "assert-plus": "^1.0.0"
458 } 458 }
459 }, 459 },
460 "debug": { 460 "debug": {
461 "version": "2.6.9", 461 "version": "2.6.9",
462 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 462 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
463 "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", 463 "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
464 "requires": { 464 "requires": {
465 "ms": "2.0.0" 465 "ms": "2.0.0"
466 } 466 }
467 }, 467 },
468 "deep-is": { 468 "deep-is": {
469 "version": "0.1.3", 469 "version": "0.1.3",
470 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 470 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
471 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 471 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
472 "dev": true 472 "dev": true
473 }, 473 },
474 "delayed-stream": { 474 "delayed-stream": {
475 "version": "1.0.0", 475 "version": "1.0.0",
476 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 476 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
477 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 477 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
478 }, 478 },
479 "denque": { 479 "denque": {
480 "version": "1.5.0", 480 "version": "1.5.0",
481 "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", 481 "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
482 "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==" 482 "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ=="
483 }, 483 },
484 "depd": { 484 "depd": {
485 "version": "1.1.1", 485 "version": "1.1.1",
486 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", 486 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
487 "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" 487 "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
488 }, 488 },
489 "destroy": { 489 "destroy": {
490 "version": "1.0.4", 490 "version": "1.0.4",
491 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 491 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
492 "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 492 "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
493 }, 493 },
494 "doctrine": { 494 "doctrine": {
495 "version": "3.0.0", 495 "version": "3.0.0",
496 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 496 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
497 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 497 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
498 "dev": true, 498 "dev": true,
499 "requires": { 499 "requires": {
500 "esutils": "^2.0.2" 500 "esutils": "^2.0.2"
501 } 501 }
502 }, 502 },
503 "dot-object": { 503 "dot-object": {
504 "version": "1.7.0", 504 "version": "1.7.0",
505 "resolved": "https://registry.npmjs.org/dot-object/-/dot-object-1.7.0.tgz", 505 "resolved": "https://registry.npmjs.org/dot-object/-/dot-object-1.7.0.tgz",
506 "integrity": "sha1-O47Np4sPKqUriHHBgP4bPgmSakE=", 506 "integrity": "sha1-O47Np4sPKqUriHHBgP4bPgmSakE=",
507 "requires": { 507 "requires": {
508 "commander": "^2.10.0", 508 "commander": "^2.10.0",
509 "glob": "^7.1.2" 509 "glob": "^7.1.2"
510 } 510 }
511 }, 511 },
512 "ecc-jsbn": { 512 "ecc-jsbn": {
513 "version": "0.1.2", 513 "version": "0.1.2",
514 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 514 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
515 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 515 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
516 "requires": { 516 "requires": {
517 "jsbn": "~0.1.0", 517 "jsbn": "~0.1.0",
518 "safer-buffer": "^2.1.0" 518 "safer-buffer": "^2.1.0"
519 } 519 }
520 }, 520 },
521 "ee-first": { 521 "ee-first": {
522 "version": "1.1.1", 522 "version": "1.1.1",
523 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 523 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
524 "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 524 "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
525 }, 525 },
526 "emoji-regex": { 526 "emoji-regex": {
527 "version": "8.0.0", 527 "version": "8.0.0",
528 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 528 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
529 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 529 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
530 "dev": true 530 "dev": true
531 }, 531 },
532 "enabled": { 532 "enabled": {
533 "version": "2.0.0", 533 "version": "2.0.0",
534 "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", 534 "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
535 "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" 535 "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
536 }, 536 },
537 "encodeurl": { 537 "encodeurl": {
538 "version": "1.0.2", 538 "version": "1.0.2",
539 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 539 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
540 "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 540 "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
541 }, 541 },
542 "es6-promisify": { 542 "es6-promisify": {
543 "version": "6.0.0", 543 "version": "6.0.0",
544 "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.0.0.tgz", 544 "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.0.0.tgz",
545 "integrity": "sha512-8Tbqjrb8lC85dd81haajYwuRmiU2rkqNAFnlvQOJeeKqdUloIlI+JcUqeJruV4rCm5Y7oNU7jfs2FbmxhRR/2g==" 545 "integrity": "sha512-8Tbqjrb8lC85dd81haajYwuRmiU2rkqNAFnlvQOJeeKqdUloIlI+JcUqeJruV4rCm5Y7oNU7jfs2FbmxhRR/2g=="
546 }, 546 },
547 "escape-html": { 547 "escape-html": {
548 "version": "1.0.3", 548 "version": "1.0.3",
549 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 549 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
550 "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 550 "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
551 }, 551 },
552 "escape-string-regexp": { 552 "escape-string-regexp": {
553 "version": "1.0.5", 553 "version": "1.0.5",
554 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 554 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
555 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 555 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
556 "dev": true 556 "dev": true
557 }, 557 },
558 "eslint": { 558 "eslint": {
559 "version": "6.8.0", 559 "version": "6.8.0",
560 "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", 560 "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
561 "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", 561 "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
562 "dev": true, 562 "dev": true,
563 "requires": { 563 "requires": {
564 "@babel/code-frame": "^7.0.0", 564 "@babel/code-frame": "^7.0.0",
565 "ajv": "^6.10.0", 565 "ajv": "^6.10.0",
566 "chalk": "^2.1.0", 566 "chalk": "^2.1.0",
567 "cross-spawn": "^6.0.5", 567 "cross-spawn": "^6.0.5",
568 "debug": "^4.0.1", 568 "debug": "^4.0.1",
569 "doctrine": "^3.0.0", 569 "doctrine": "^3.0.0",
570 "eslint-scope": "^5.0.0", 570 "eslint-scope": "^5.0.0",
571 "eslint-utils": "^1.4.3", 571 "eslint-utils": "^1.4.3",
572 "eslint-visitor-keys": "^1.1.0", 572 "eslint-visitor-keys": "^1.1.0",
573 "espree": "^6.1.2", 573 "espree": "^6.1.2",
574 "esquery": "^1.0.1", 574 "esquery": "^1.0.1",
575 "esutils": "^2.0.2", 575 "esutils": "^2.0.2",
576 "file-entry-cache": "^5.0.1", 576 "file-entry-cache": "^5.0.1",
577 "functional-red-black-tree": "^1.0.1", 577 "functional-red-black-tree": "^1.0.1",
578 "glob-parent": "^5.0.0", 578 "glob-parent": "^5.0.0",
579 "globals": "^12.1.0", 579 "globals": "^12.1.0",
580 "ignore": "^4.0.6", 580 "ignore": "^4.0.6",
581 "import-fresh": "^3.0.0", 581 "import-fresh": "^3.0.0",
582 "imurmurhash": "^0.1.4", 582 "imurmurhash": "^0.1.4",
583 "inquirer": "^7.0.0", 583 "inquirer": "^7.0.0",
584 "is-glob": "^4.0.0", 584 "is-glob": "^4.0.0",
585 "js-yaml": "^3.13.1", 585 "js-yaml": "^3.13.1",
586 "json-stable-stringify-without-jsonify": "^1.0.1", 586 "json-stable-stringify-without-jsonify": "^1.0.1",
587 "levn": "^0.3.0", 587 "levn": "^0.3.0",
588 "lodash": "^4.17.14", 588 "lodash": "^4.17.14",
589 "minimatch": "^3.0.4", 589 "minimatch": "^3.0.4",
590 "mkdirp": "^0.5.1", 590 "mkdirp": "^0.5.1",
591 "natural-compare": "^1.4.0", 591 "natural-compare": "^1.4.0",
592 "optionator": "^0.8.3", 592 "optionator": "^0.8.3",
593 "progress": "^2.0.0", 593 "progress": "^2.0.0",
594 "regexpp": "^2.0.1", 594 "regexpp": "^2.0.1",
595 "semver": "^6.1.2", 595 "semver": "^6.1.2",
596 "strip-ansi": "^5.2.0", 596 "strip-ansi": "^5.2.0",
597 "strip-json-comments": "^3.0.1", 597 "strip-json-comments": "^3.0.1",
598 "table": "^5.2.3", 598 "table": "^5.2.3",
599 "text-table": "^0.2.0", 599 "text-table": "^0.2.0",
600 "v8-compile-cache": "^2.0.3" 600 "v8-compile-cache": "^2.0.3"
601 }, 601 },
602 "dependencies": { 602 "dependencies": {
603 "debug": { 603 "debug": {
604 "version": "4.1.1", 604 "version": "4.1.1",
605 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 605 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
606 "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 606 "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
607 "dev": true, 607 "dev": true,
608 "requires": { 608 "requires": {
609 "ms": "^2.1.1" 609 "ms": "^2.1.1"
610 } 610 }
611 }, 611 },
612 "ms": { 612 "ms": {
613 "version": "2.1.2", 613 "version": "2.1.2",
614 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 614 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
615 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 615 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
616 "dev": true 616 "dev": true
617 } 617 }
618 } 618 }
619 }, 619 },
620 "eslint-scope": { 620 "eslint-scope": {
621 "version": "5.1.0", 621 "version": "5.1.0",
622 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", 622 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz",
623 "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", 623 "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==",
624 "dev": true, 624 "dev": true,
625 "requires": { 625 "requires": {
626 "esrecurse": "^4.1.0", 626 "esrecurse": "^4.1.0",
627 "estraverse": "^4.1.1" 627 "estraverse": "^4.1.1"
628 } 628 }
629 }, 629 },
630 "eslint-utils": { 630 "eslint-utils": {
631 "version": "1.4.3", 631 "version": "1.4.3",
632 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", 632 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
633 "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", 633 "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
634 "dev": true, 634 "dev": true,
635 "requires": { 635 "requires": {
636 "eslint-visitor-keys": "^1.1.0" 636 "eslint-visitor-keys": "^1.1.0"
637 } 637 }
638 }, 638 },
639 "eslint-visitor-keys": { 639 "eslint-visitor-keys": {
640 "version": "1.3.0", 640 "version": "1.3.0",
641 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", 641 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
642 "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", 642 "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
643 "dev": true 643 "dev": true
644 }, 644 },
645 "espree": { 645 "espree": {
646 "version": "6.2.1", 646 "version": "6.2.1",
647 "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", 647 "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
648 "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", 648 "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
649 "dev": true, 649 "dev": true,
650 "requires": { 650 "requires": {
651 "acorn": "^7.1.1", 651 "acorn": "^7.1.1",
652 "acorn-jsx": "^5.2.0", 652 "acorn-jsx": "^5.2.0",
653 "eslint-visitor-keys": "^1.1.0" 653 "eslint-visitor-keys": "^1.1.0"
654 } 654 }
655 }, 655 },
656 "esprima": { 656 "esprima": {
657 "version": "4.0.1", 657 "version": "4.0.1",
658 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 658 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
659 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 659 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
660 "dev": true 660 "dev": true
661 }, 661 },
662 "esquery": { 662 "esquery": {
663 "version": "1.3.1", 663 "version": "1.3.1",
664 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", 664 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
665 "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", 665 "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
666 "dev": true, 666 "dev": true,
667 "requires": { 667 "requires": {
668 "estraverse": "^5.1.0" 668 "estraverse": "^5.1.0"
669 }, 669 },
670 "dependencies": { 670 "dependencies": {
671 "estraverse": { 671 "estraverse": {
672 "version": "5.1.0", 672 "version": "5.1.0",
673 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", 673 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz",
674 "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", 674 "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==",
675 "dev": true 675 "dev": true
676 } 676 }
677 } 677 }
678 }, 678 },
679 "esrecurse": { 679 "esrecurse": {
680 "version": "4.2.1", 680 "version": "4.2.1",
681 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 681 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
682 "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 682 "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
683 "dev": true, 683 "dev": true,
684 "requires": { 684 "requires": {
685 "estraverse": "^4.1.0" 685 "estraverse": "^4.1.0"
686 } 686 }
687 }, 687 },
688 "estraverse": { 688 "estraverse": {
689 "version": "4.3.0", 689 "version": "4.3.0",
690 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 690 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
691 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 691 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
692 "dev": true 692 "dev": true
693 }, 693 },
694 "esutils": { 694 "esutils": {
695 "version": "2.0.3", 695 "version": "2.0.3",
696 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 696 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
697 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 697 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
698 "dev": true 698 "dev": true
699 }, 699 },
700 "etag": { 700 "etag": {
701 "version": "1.8.1", 701 "version": "1.8.1",
702 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 702 "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
703 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 703 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
704 }, 704 },
705 "express": { 705 "express": {
706 "version": "4.17.1", 706 "version": "4.17.1",
707 "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 707 "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
708 "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 708 "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
709 "requires": { 709 "requires": {
710 "accepts": "~1.3.7", 710 "accepts": "~1.3.7",
711 "array-flatten": "1.1.1", 711 "array-flatten": "1.1.1",
712 "body-parser": "1.19.0", 712 "body-parser": "1.19.0",
713 "content-disposition": "0.5.3", 713 "content-disposition": "0.5.3",
714 "content-type": "~1.0.4", 714 "content-type": "~1.0.4",
715 "cookie": "0.4.0", 715 "cookie": "0.4.0",
716 "cookie-signature": "1.0.6", 716 "cookie-signature": "1.0.6",
717 "debug": "2.6.9", 717 "debug": "2.6.9",
718 "depd": "~1.1.2", 718 "depd": "~1.1.2",
719 "encodeurl": "~1.0.2", 719 "encodeurl": "~1.0.2",
720 "escape-html": "~1.0.3", 720 "escape-html": "~1.0.3",
721 "etag": "~1.8.1", 721 "etag": "~1.8.1",
722 "finalhandler": "~1.1.2", 722 "finalhandler": "~1.1.2",
723 "fresh": "0.5.2", 723 "fresh": "0.5.2",
724 "merge-descriptors": "1.0.1", 724 "merge-descriptors": "1.0.1",
725 "methods": "~1.1.2", 725 "methods": "~1.1.2",
726 "on-finished": "~2.3.0", 726 "on-finished": "~2.3.0",
727 "parseurl": "~1.3.3", 727 "parseurl": "~1.3.3",
728 "path-to-regexp": "0.1.7", 728 "path-to-regexp": "0.1.7",
729 "proxy-addr": "~2.0.5", 729 "proxy-addr": "~2.0.5",
730 "qs": "6.7.0", 730 "qs": "6.7.0",
731 "range-parser": "~1.2.1", 731 "range-parser": "~1.2.1",
732 "safe-buffer": "5.1.2", 732 "safe-buffer": "5.1.2",
733 "send": "0.17.1", 733 "send": "0.17.1",
734 "serve-static": "1.14.1", 734 "serve-static": "1.14.1",
735 "setprototypeof": "1.1.1", 735 "setprototypeof": "1.1.1",
736 "statuses": "~1.5.0", 736 "statuses": "~1.5.0",
737 "type-is": "~1.6.18", 737 "type-is": "~1.6.18",
738 "utils-merge": "1.0.1", 738 "utils-merge": "1.0.1",
739 "vary": "~1.1.2" 739 "vary": "~1.1.2"
740 }, 740 },
741 "dependencies": { 741 "dependencies": {
742 "body-parser": { 742 "body-parser": {
743 "version": "1.19.0", 743 "version": "1.19.0",
744 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 744 "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
745 "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 745 "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
746 "requires": { 746 "requires": {
747 "bytes": "3.1.0", 747 "bytes": "3.1.0",
748 "content-type": "~1.0.4", 748 "content-type": "~1.0.4",
749 "debug": "2.6.9", 749 "debug": "2.6.9",
750 "depd": "~1.1.2", 750 "depd": "~1.1.2",
751 "http-errors": "1.7.2", 751 "http-errors": "1.7.2",
752 "iconv-lite": "0.4.24", 752 "iconv-lite": "0.4.24",
753 "on-finished": "~2.3.0", 753 "on-finished": "~2.3.0",
754 "qs": "6.7.0", 754 "qs": "6.7.0",
755 "raw-body": "2.4.0", 755 "raw-body": "2.4.0",
756 "type-is": "~1.6.17" 756 "type-is": "~1.6.17"
757 } 757 }
758 }, 758 },
759 "bytes": { 759 "bytes": {
760 "version": "3.1.0", 760 "version": "3.1.0",
761 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 761 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
762 "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 762 "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
763 }, 763 },
764 "cookie": { 764 "cookie": {
765 "version": "0.4.0", 765 "version": "0.4.0",
766 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 766 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
767 "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 767 "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
768 }, 768 },
769 "depd": { 769 "depd": {
770 "version": "1.1.2", 770 "version": "1.1.2",
771 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 771 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
772 "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 772 "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
773 }, 773 },
774 "http-errors": { 774 "http-errors": {
775 "version": "1.7.2", 775 "version": "1.7.2",
776 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 776 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
777 "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 777 "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
778 "requires": { 778 "requires": {
779 "depd": "~1.1.2", 779 "depd": "~1.1.2",
780 "inherits": "2.0.3", 780 "inherits": "2.0.3",
781 "setprototypeof": "1.1.1", 781 "setprototypeof": "1.1.1",
782 "statuses": ">= 1.5.0 < 2", 782 "statuses": ">= 1.5.0 < 2",
783 "toidentifier": "1.0.0" 783 "toidentifier": "1.0.0"
784 } 784 }
785 }, 785 },
786 "iconv-lite": { 786 "iconv-lite": {
787 "version": "0.4.24", 787 "version": "0.4.24",
788 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 788 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
789 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 789 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
790 "requires": { 790 "requires": {
791 "safer-buffer": ">= 2.1.2 < 3" 791 "safer-buffer": ">= 2.1.2 < 3"
792 } 792 }
793 }, 793 },
794 "parseurl": { 794 "parseurl": {
795 "version": "1.3.3", 795 "version": "1.3.3",
796 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 796 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
797 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 797 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
798 }, 798 },
799 "qs": { 799 "qs": {
800 "version": "6.7.0", 800 "version": "6.7.0",
801 "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 801 "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
802 "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 802 "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
803 }, 803 },
804 "raw-body": { 804 "raw-body": {
805 "version": "2.4.0", 805 "version": "2.4.0",
806 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 806 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
807 "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 807 "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
808 "requires": { 808 "requires": {
809 "bytes": "3.1.0", 809 "bytes": "3.1.0",
810 "http-errors": "1.7.2", 810 "http-errors": "1.7.2",
811 "iconv-lite": "0.4.24", 811 "iconv-lite": "0.4.24",
812 "unpipe": "1.0.0" 812 "unpipe": "1.0.0"
813 } 813 }
814 }, 814 },
815 "safe-buffer": { 815 "safe-buffer": {
816 "version": "5.1.2", 816 "version": "5.1.2",
817 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 817 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
818 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 818 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
819 }, 819 },
820 "statuses": { 820 "statuses": {
821 "version": "1.5.0", 821 "version": "1.5.0",
822 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 822 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
823 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 823 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
824 }, 824 },
825 "type-is": { 825 "type-is": {
826 "version": "1.6.18", 826 "version": "1.6.18",
827 "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 827 "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
828 "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 828 "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
829 "requires": { 829 "requires": {
830 "media-typer": "0.3.0", 830 "media-typer": "0.3.0",
831 "mime-types": "~2.1.24" 831 "mime-types": "~2.1.24"
832 } 832 }
833 } 833 }
834 } 834 }
835 }, 835 },
836 "express-session": { 836 "express-session": {
837 "version": "1.15.6", 837 "version": "1.15.6",
838 "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz", 838 "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz",
839 "integrity": "sha1-R7QWDIj0KrcP6KUI4xy/92dXqwo=", 839 "integrity": "sha1-R7QWDIj0KrcP6KUI4xy/92dXqwo=",
840 "requires": { 840 "requires": {
841 "cookie": "0.3.1", 841 "cookie": "0.3.1",
842 "cookie-signature": "1.0.6", 842 "cookie-signature": "1.0.6",
843 "crc": "3.4.4", 843 "crc": "3.4.4",
844 "debug": "2.6.9", 844 "debug": "2.6.9",
845 "depd": "~1.1.1", 845 "depd": "~1.1.1",
846 "on-headers": "~1.0.1", 846 "on-headers": "~1.0.1",
847 "parseurl": "~1.3.2", 847 "parseurl": "~1.3.2",
848 "uid-safe": "~2.1.5", 848 "uid-safe": "~2.1.5",
849 "utils-merge": "1.0.1" 849 "utils-merge": "1.0.1"
850 } 850 }
851 }, 851 },
852 "extend": { 852 "extend": {
853 "version": "3.0.2", 853 "version": "3.0.2",
854 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 854 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
855 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 855 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
856 }, 856 },
857 "external-editor": { 857 "external-editor": {
858 "version": "3.1.0", 858 "version": "3.1.0",
859 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 859 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
860 "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 860 "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
861 "dev": true, 861 "dev": true,
862 "requires": { 862 "requires": {
863 "chardet": "^0.7.0", 863 "chardet": "^0.7.0",
864 "iconv-lite": "^0.4.24", 864 "iconv-lite": "^0.4.24",
865 "tmp": "^0.0.33" 865 "tmp": "^0.0.33"
866 }, 866 },
867 "dependencies": { 867 "dependencies": {
868 "iconv-lite": { 868 "iconv-lite": {
869 "version": "0.4.24", 869 "version": "0.4.24",
870 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 870 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
871 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 871 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
872 "dev": true, 872 "dev": true,
873 "requires": { 873 "requires": {
874 "safer-buffer": ">= 2.1.2 < 3" 874 "safer-buffer": ">= 2.1.2 < 3"
875 } 875 }
876 } 876 }
877 } 877 }
878 }, 878 },
879 "extsprintf": { 879 "extsprintf": {
880 "version": "1.3.0", 880 "version": "1.3.0",
881 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 881 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
882 "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 882 "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
883 }, 883 },
884 "fast-deep-equal": { 884 "fast-deep-equal": {
885 "version": "2.0.1", 885 "version": "2.0.1",
886 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 886 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
887 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" 887 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
888 }, 888 },
889 "fast-json-stable-stringify": { 889 "fast-json-stable-stringify": {
890 "version": "2.0.0", 890 "version": "2.0.0",
891 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 891 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
892 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 892 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
893 }, 893 },
894 "fast-levenshtein": { 894 "fast-levenshtein": {
895 "version": "2.0.6", 895 "version": "2.0.6",
896 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 896 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
897 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 897 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
898 "dev": true 898 "dev": true
899 }, 899 },
900 "fast-safe-stringify": { 900 "fast-safe-stringify": {
901 "version": "2.1.1", 901 "version": "2.1.1",
902 "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", 902 "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
903 "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" 903 "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
904 }, 904 },
905 "fecha": { 905 "fecha": {
906 "version": "4.2.1", 906 "version": "4.2.1",
907 "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", 907 "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz",
908 "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==" 908 "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q=="
909 }, 909 },
910 "figures": { 910 "figures": {
911 "version": "3.2.0", 911 "version": "3.2.0",
912 "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", 912 "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
913 "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", 913 "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
914 "dev": true, 914 "dev": true,
915 "requires": { 915 "requires": {
916 "escape-string-regexp": "^1.0.5" 916 "escape-string-regexp": "^1.0.5"
917 } 917 }
918 }, 918 },
919 "file-entry-cache": { 919 "file-entry-cache": {
920 "version": "5.0.1", 920 "version": "5.0.1",
921 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", 921 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
922 "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", 922 "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
923 "dev": true, 923 "dev": true,
924 "requires": { 924 "requires": {
925 "flat-cache": "^2.0.1" 925 "flat-cache": "^2.0.1"
926 } 926 }
927 }, 927 },
928 "file-stream-rotator": { 928 "file-stream-rotator": {
929 "version": "0.5.7", 929 "version": "0.5.7",
930 "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.5.7.tgz", 930 "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.5.7.tgz",
931 "integrity": "sha512-VYb3HZ/GiAGUCrfeakO8Mp54YGswNUHvL7P09WQcXAJNSj3iQ5QraYSp3cIn1MUyw6uzfgN/EFOarCNa4JvUHQ==", 931 "integrity": "sha512-VYb3HZ/GiAGUCrfeakO8Mp54YGswNUHvL7P09WQcXAJNSj3iQ5QraYSp3cIn1MUyw6uzfgN/EFOarCNa4JvUHQ==",
932 "requires": { 932 "requires": {
933 "moment": "^2.11.2" 933 "moment": "^2.11.2"
934 } 934 }
935 }, 935 },
936 "finalhandler": { 936 "finalhandler": {
937 "version": "1.1.2", 937 "version": "1.1.2",
938 "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 938 "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
939 "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 939 "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
940 "requires": { 940 "requires": {
941 "debug": "2.6.9", 941 "debug": "2.6.9",
942 "encodeurl": "~1.0.2", 942 "encodeurl": "~1.0.2",
943 "escape-html": "~1.0.3", 943 "escape-html": "~1.0.3",
944 "on-finished": "~2.3.0", 944 "on-finished": "~2.3.0",
945 "parseurl": "~1.3.3", 945 "parseurl": "~1.3.3",
946 "statuses": "~1.5.0", 946 "statuses": "~1.5.0",
947 "unpipe": "~1.0.0" 947 "unpipe": "~1.0.0"
948 }, 948 },
949 "dependencies": { 949 "dependencies": {
950 "parseurl": { 950 "parseurl": {
951 "version": "1.3.3", 951 "version": "1.3.3",
952 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 952 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
953 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 953 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
954 }, 954 },
955 "statuses": { 955 "statuses": {
956 "version": "1.5.0", 956 "version": "1.5.0",
957 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 957 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
958 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 958 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
959 } 959 }
960 } 960 }
961 }, 961 },
962 "flat-cache": { 962 "flat-cache": {
963 "version": "2.0.1", 963 "version": "2.0.1",
964 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 964 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
965 "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", 965 "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
966 "dev": true, 966 "dev": true,
967 "requires": { 967 "requires": {
968 "flatted": "^2.0.0", 968 "flatted": "^2.0.0",
969 "rimraf": "2.6.3", 969 "rimraf": "2.6.3",
970 "write": "1.0.3" 970 "write": "1.0.3"
971 } 971 }
972 }, 972 },
973 "flatted": { 973 "flatted": {
974 "version": "2.0.2", 974 "version": "2.0.2",
975 "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", 975 "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
976 "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", 976 "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
977 "dev": true 977 "dev": true
978 }, 978 },
979 "fn.name": { 979 "fn.name": {
980 "version": "1.1.0", 980 "version": "1.1.0",
981 "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", 981 "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
982 "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" 982 "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
983 }, 983 },
984 "forever-agent": { 984 "forever-agent": {
985 "version": "0.6.1", 985 "version": "0.6.1",
986 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 986 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
987 "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 987 "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
988 }, 988 },
989 "form-data": { 989 "form-data": {
990 "version": "2.3.3", 990 "version": "2.3.3",
991 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 991 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
992 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 992 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
993 "requires": { 993 "requires": {
994 "asynckit": "^0.4.0", 994 "asynckit": "^0.4.0",
995 "combined-stream": "^1.0.6", 995 "combined-stream": "^1.0.6",
996 "mime-types": "^2.1.12" 996 "mime-types": "^2.1.12"
997 } 997 }
998 }, 998 },
999 "forwarded": { 999 "forwarded": {
1000 "version": "0.1.2", 1000 "version": "0.1.2",
1001 "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 1001 "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
1002 "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 1002 "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
1003 }, 1003 },
1004 "fresh": { 1004 "fresh": {
1005 "version": "0.5.2", 1005 "version": "0.5.2",
1006 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1006 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1007 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 1007 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
1008 }, 1008 },
1009 "fs-copy-file": { 1009 "fs-copy-file": {
1010 "version": "2.1.2", 1010 "version": "2.1.2",
1011 "resolved": "https://registry.npmjs.org/fs-copy-file/-/fs-copy-file-2.1.2.tgz", 1011 "resolved": "https://registry.npmjs.org/fs-copy-file/-/fs-copy-file-2.1.2.tgz",
1012 "integrity": "sha512-h5h3i58/mr86CSJvDLGV0ZEIUj4QfdfKt0NFX6AH4sRTRjs2/d5U1EQt5C9fUV6ZSi7MeSfZRW3LX9HttLXHeg==", 1012 "integrity": "sha512-h5h3i58/mr86CSJvDLGV0ZEIUj4QfdfKt0NFX6AH4sRTRjs2/d5U1EQt5C9fUV6ZSi7MeSfZRW3LX9HttLXHeg==",
1013 "requires": { 1013 "requires": {
1014 "@cloudcmd/copy-file": "^1.1.0" 1014 "@cloudcmd/copy-file": "^1.1.0"
1015 } 1015 }
1016 }, 1016 },
1017 "fs.realpath": { 1017 "fs.realpath": {
1018 "version": "1.0.0", 1018 "version": "1.0.0",
1019 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1019 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1020 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 1020 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
1021 }, 1021 },
1022 "functional-red-black-tree": { 1022 "functional-red-black-tree": {
1023 "version": "1.0.1", 1023 "version": "1.0.1",
1024 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 1024 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
1025 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 1025 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
1026 "dev": true 1026 "dev": true
1027 }, 1027 },
1028 "getpass": { 1028 "getpass": {
1029 "version": "0.1.7", 1029 "version": "0.1.7",
1030 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1030 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
1031 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1031 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
1032 "requires": { 1032 "requires": {
1033 "assert-plus": "^1.0.0" 1033 "assert-plus": "^1.0.0"
1034 } 1034 }
1035 }, 1035 },
1036 "glob": { 1036 "glob": {
1037 "version": "7.1.2", 1037 "version": "7.1.2",
1038 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1038 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
1039 "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", 1039 "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
1040 "requires": { 1040 "requires": {
1041 "fs.realpath": "^1.0.0", 1041 "fs.realpath": "^1.0.0",
1042 "inflight": "^1.0.4", 1042 "inflight": "^1.0.4",
1043 "inherits": "2", 1043 "inherits": "2",
1044 "minimatch": "^3.0.4", 1044 "minimatch": "^3.0.4",
1045 "once": "^1.3.0", 1045 "once": "^1.3.0",
1046 "path-is-absolute": "^1.0.0" 1046 "path-is-absolute": "^1.0.0"
1047 } 1047 }
1048 }, 1048 },
1049 "glob-parent": { 1049 "glob-parent": {
1050 "version": "5.1.2", 1050 "version": "5.1.2",
1051 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1051 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1052 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1052 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1053 "dev": true, 1053 "dev": true,
1054 "requires": { 1054 "requires": {
1055 "is-glob": "^4.0.1" 1055 "is-glob": "^4.0.1"
1056 } 1056 }
1057 }, 1057 },
1058 "globals": { 1058 "globals": {
1059 "version": "12.4.0", 1059 "version": "12.4.0",
1060 "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", 1060 "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
1061 "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", 1061 "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
1062 "dev": true, 1062 "dev": true,
1063 "requires": { 1063 "requires": {
1064 "type-fest": "^0.8.1" 1064 "type-fest": "^0.8.1"
1065 } 1065 }
1066 }, 1066 },
1067 "handlebars": { 1067 "handlebars": {
1068 "version": "4.7.7", 1068 "version": "4.7.7",
1069 "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", 1069 "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
1070 "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", 1070 "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
1071 "requires": { 1071 "requires": {
1072 "minimist": "^1.2.5", 1072 "minimist": "^1.2.5",
1073 "neo-async": "^2.6.0", 1073 "neo-async": "^2.6.0",
1074 "source-map": "^0.6.1", 1074 "source-map": "^0.6.1",
1075 "uglify-js": "^3.1.4", 1075 "uglify-js": "^3.1.4",
1076 "wordwrap": "^1.0.0" 1076 "wordwrap": "^1.0.0"
1077 } 1077 }
1078 }, 1078 },
1079 "har-schema": { 1079 "har-schema": {
1080 "version": "2.0.0", 1080 "version": "2.0.0",
1081 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1081 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1082 "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 1082 "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
1083 }, 1083 },
1084 "har-validator": { 1084 "har-validator": {
1085 "version": "5.1.3", 1085 "version": "5.1.3",
1086 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 1086 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
1087 "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 1087 "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
1088 "requires": { 1088 "requires": {
1089 "ajv": "^6.5.5", 1089 "ajv": "^6.5.5",
1090 "har-schema": "^2.0.0" 1090 "har-schema": "^2.0.0"
1091 } 1091 }
1092 }, 1092 },
1093 "has-flag": { 1093 "has-flag": {
1094 "version": "3.0.0", 1094 "version": "3.0.0",
1095 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1095 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1096 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1096 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1097 "dev": true 1097 "dev": true
1098 }, 1098 },
1099 "http-errors": { 1099 "http-errors": {
1100 "version": "1.6.2", 1100 "version": "1.6.2",
1101 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", 1101 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
1102 "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", 1102 "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
1103 "requires": { 1103 "requires": {
1104 "depd": "1.1.1", 1104 "depd": "1.1.1",
1105 "inherits": "2.0.3", 1105 "inherits": "2.0.3",
1106 "setprototypeof": "1.0.3", 1106 "setprototypeof": "1.0.3",
1107 "statuses": ">= 1.3.1 < 2" 1107 "statuses": ">= 1.3.1 < 2"
1108 }, 1108 },
1109 "dependencies": { 1109 "dependencies": {
1110 "setprototypeof": { 1110 "setprototypeof": {
1111 "version": "1.0.3", 1111 "version": "1.0.3",
1112 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", 1112 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
1113 "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" 1113 "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
1114 } 1114 }
1115 } 1115 }
1116 }, 1116 },
1117 "http-signature": { 1117 "http-signature": {
1118 "version": "1.2.0", 1118 "version": "1.2.0",
1119 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 1119 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1120 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1120 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1121 "requires": { 1121 "requires": {
1122 "assert-plus": "^1.0.0", 1122 "assert-plus": "^1.0.0",
1123 "jsprim": "^1.2.2", 1123 "jsprim": "^1.2.2",
1124 "sshpk": "^1.7.0" 1124 "sshpk": "^1.7.0"
1125 } 1125 }
1126 }, 1126 },
1127 "iconv-lite": { 1127 "iconv-lite": {
1128 "version": "0.4.19", 1128 "version": "0.4.19",
1129 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", 1129 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
1130 "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs=" 1130 "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs="
1131 }, 1131 },
1132 "ignore": { 1132 "ignore": {
1133 "version": "4.0.6", 1133 "version": "4.0.6",
1134 "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 1134 "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
1135 "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 1135 "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
1136 "dev": true 1136 "dev": true
1137 }, 1137 },
1138 "import-fresh": { 1138 "import-fresh": {
1139 "version": "3.2.1", 1139 "version": "3.2.1",
1140 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", 1140 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
1141 "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", 1141 "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
1142 "dev": true, 1142 "dev": true,
1143 "requires": { 1143 "requires": {
1144 "parent-module": "^1.0.0", 1144 "parent-module": "^1.0.0",
1145 "resolve-from": "^4.0.0" 1145 "resolve-from": "^4.0.0"
1146 } 1146 }
1147 }, 1147 },
1148 "imurmurhash": { 1148 "imurmurhash": {
1149 "version": "0.1.4", 1149 "version": "0.1.4",
1150 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1150 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1151 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1151 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
1152 "dev": true 1152 "dev": true
1153 }, 1153 },
1154 "inflight": { 1154 "inflight": {
1155 "version": "1.0.6", 1155 "version": "1.0.6",
1156 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1156 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1157 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1157 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1158 "requires": { 1158 "requires": {
1159 "once": "^1.3.0", 1159 "once": "^1.3.0",
1160 "wrappy": "1" 1160 "wrappy": "1"
1161 } 1161 }
1162 }, 1162 },
1163 "inherits": { 1163 "inherits": {
1164 "version": "2.0.3", 1164 "version": "2.0.3",
1165 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1165 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1166 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1166 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
1167 }, 1167 },
1168 "inquirer": { 1168 "inquirer": {
1169 "version": "7.3.2", 1169 "version": "7.3.2",
1170 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.2.tgz", 1170 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.2.tgz",
1171 "integrity": "sha512-DF4osh1FM6l0RJc5YWYhSDB6TawiBRlbV9Cox8MWlidU218Tb7fm3lQTULyUJDfJ0tjbzl0W4q651mrCCEM55w==", 1171 "integrity": "sha512-DF4osh1FM6l0RJc5YWYhSDB6TawiBRlbV9Cox8MWlidU218Tb7fm3lQTULyUJDfJ0tjbzl0W4q651mrCCEM55w==",
1172 "dev": true, 1172 "dev": true,
1173 "requires": { 1173 "requires": {
1174 "ansi-escapes": "^4.2.1", 1174 "ansi-escapes": "^4.2.1",
1175 "chalk": "^4.1.0", 1175 "chalk": "^4.1.0",
1176 "cli-cursor": "^3.1.0", 1176 "cli-cursor": "^3.1.0",
1177 "cli-width": "^3.0.0", 1177 "cli-width": "^3.0.0",
1178 "external-editor": "^3.0.3", 1178 "external-editor": "^3.0.3",
1179 "figures": "^3.0.0", 1179 "figures": "^3.0.0",
1180 "lodash": "^4.17.16", 1180 "lodash": "^4.17.16",
1181 "mute-stream": "0.0.8", 1181 "mute-stream": "0.0.8",
1182 "run-async": "^2.4.0", 1182 "run-async": "^2.4.0",
1183 "rxjs": "^6.6.0", 1183 "rxjs": "^6.6.0",
1184 "string-width": "^4.1.0", 1184 "string-width": "^4.1.0",
1185 "strip-ansi": "^6.0.0", 1185 "strip-ansi": "^6.0.0",
1186 "through": "^2.3.6" 1186 "through": "^2.3.6"
1187 }, 1187 },
1188 "dependencies": { 1188 "dependencies": {
1189 "ansi-styles": { 1189 "ansi-styles": {
1190 "version": "4.2.1", 1190 "version": "4.2.1",
1191 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 1191 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
1192 "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 1192 "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
1193 "dev": true, 1193 "dev": true,
1194 "requires": { 1194 "requires": {
1195 "@types/color-name": "^1.1.1", 1195 "@types/color-name": "^1.1.1",
1196 "color-convert": "^2.0.1" 1196 "color-convert": "^2.0.1"
1197 } 1197 }
1198 }, 1198 },
1199 "chalk": { 1199 "chalk": {
1200 "version": "4.1.0", 1200 "version": "4.1.0",
1201 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 1201 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
1202 "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 1202 "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
1203 "dev": true, 1203 "dev": true,
1204 "requires": { 1204 "requires": {
1205 "ansi-styles": "^4.1.0", 1205 "ansi-styles": "^4.1.0",
1206 "supports-color": "^7.1.0" 1206 "supports-color": "^7.1.0"
1207 } 1207 }
1208 }, 1208 },
1209 "color-convert": { 1209 "color-convert": {
1210 "version": "2.0.1", 1210 "version": "2.0.1",
1211 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1211 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1212 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1212 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1213 "dev": true, 1213 "dev": true,
1214 "requires": { 1214 "requires": {
1215 "color-name": "~1.1.4" 1215 "color-name": "~1.1.4"
1216 } 1216 }
1217 }, 1217 },
1218 "color-name": { 1218 "color-name": {
1219 "version": "1.1.4", 1219 "version": "1.1.4",
1220 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1220 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1221 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1221 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1222 "dev": true 1222 "dev": true
1223 }, 1223 },
1224 "has-flag": { 1224 "has-flag": {
1225 "version": "4.0.0", 1225 "version": "4.0.0",
1226 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1226 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1227 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1227 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1228 "dev": true 1228 "dev": true
1229 }, 1229 },
1230 "lodash": { 1230 "lodash": {
1231 "version": "4.17.21", 1231 "version": "4.17.21",
1232 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1232 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1233 "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 1233 "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
1234 "dev": true 1234 "dev": true
1235 }, 1235 },
1236 "strip-ansi": { 1236 "strip-ansi": {
1237 "version": "6.0.0", 1237 "version": "6.0.0",
1238 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1238 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1239 "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1239 "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1240 "dev": true, 1240 "dev": true,
1241 "requires": { 1241 "requires": {
1242 "ansi-regex": "^5.0.0" 1242 "ansi-regex": "^5.0.0"
1243 } 1243 }
1244 }, 1244 },
1245 "supports-color": { 1245 "supports-color": {
1246 "version": "7.1.0", 1246 "version": "7.1.0",
1247 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", 1247 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
1248 "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", 1248 "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
1249 "dev": true, 1249 "dev": true,
1250 "requires": { 1250 "requires": {
1251 "has-flag": "^4.0.0" 1251 "has-flag": "^4.0.0"
1252 } 1252 }
1253 } 1253 }
1254 } 1254 }
1255 }, 1255 },
1256 "ipaddr.js": { 1256 "ipaddr.js": {
1257 "version": "1.9.1", 1257 "version": "1.9.1",
1258 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 1258 "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1259 "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 1259 "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
1260 }, 1260 },
1261 "is-arrayish": { 1261 "is-arrayish": {
1262 "version": "0.3.2", 1262 "version": "0.3.2",
1263 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 1263 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
1264 "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" 1264 "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
1265 }, 1265 },
1266 "is-extglob": { 1266 "is-extglob": {
1267 "version": "2.1.1", 1267 "version": "2.1.1",
1268 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1268 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1269 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1269 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1270 "dev": true 1270 "dev": true
1271 }, 1271 },
1272 "is-fullwidth-code-point": { 1272 "is-fullwidth-code-point": {
1273 "version": "3.0.0", 1273 "version": "3.0.0",
1274 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1274 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1275 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1275 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1276 "dev": true 1276 "dev": true
1277 }, 1277 },
1278 "is-glob": { 1278 "is-glob": {
1279 "version": "4.0.1", 1279 "version": "4.0.1",
1280 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 1280 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
1281 "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 1281 "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
1282 "dev": true, 1282 "dev": true,
1283 "requires": { 1283 "requires": {
1284 "is-extglob": "^2.1.1" 1284 "is-extglob": "^2.1.1"
1285 } 1285 }
1286 }, 1286 },
1287 "is-stream": { 1287 "is-stream": {
1288 "version": "2.0.1", 1288 "version": "2.0.1",
1289 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 1289 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
1290 "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" 1290 "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
1291 }, 1291 },
1292 "is-typedarray": { 1292 "is-typedarray": {
1293 "version": "1.0.0", 1293 "version": "1.0.0",
1294 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1294 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1295 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 1295 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
1296 }, 1296 },
1297 "isarray": { 1297 "isarray": {
1298 "version": "1.0.0", 1298 "version": "1.0.0",
1299 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1299 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1300 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1300 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1301 }, 1301 },
1302 "isexe": { 1302 "isexe": {
1303 "version": "2.0.0", 1303 "version": "2.0.0",
1304 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1304 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1305 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1305 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1306 "dev": true 1306 "dev": true
1307 }, 1307 },
1308 "isstream": { 1308 "isstream": {
1309 "version": "0.1.2", 1309 "version": "0.1.2",
1310 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1310 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1311 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 1311 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
1312 }, 1312 },
1313 "js-tokens": { 1313 "js-tokens": {
1314 "version": "4.0.0", 1314 "version": "4.0.0",
1315 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1315 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1316 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1316 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1317 "dev": true 1317 "dev": true
1318 }, 1318 },
1319 "js-yaml": { 1319 "js-yaml": {
1320 "version": "3.14.0", 1320 "version": "3.14.0",
1321 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", 1321 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
1322 "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", 1322 "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
1323 "dev": true, 1323 "dev": true,
1324 "requires": { 1324 "requires": {
1325 "argparse": "^1.0.7", 1325 "argparse": "^1.0.7",
1326 "esprima": "^4.0.0" 1326 "esprima": "^4.0.0"
1327 } 1327 }
1328 }, 1328 },
1329 "jsbn": { 1329 "jsbn": {
1330 "version": "0.1.1", 1330 "version": "0.1.1",
1331 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1331 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1332 "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 1332 "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
1333 }, 1333 },
1334 "json-query": { 1334 "json-query": {
1335 "version": "2.2.2", 1335 "version": "2.2.2",
1336 "resolved": "https://registry.npmjs.org/json-query/-/json-query-2.2.2.tgz", 1336 "resolved": "https://registry.npmjs.org/json-query/-/json-query-2.2.2.tgz",
1337 "integrity": "sha1-tlWLijeUzNIXkmqjgCQyS3e0irE=" 1337 "integrity": "sha1-tlWLijeUzNIXkmqjgCQyS3e0irE="
1338 }, 1338 },
1339 "json-schema": { 1339 "json-schema": {
1340 "version": "0.2.3", 1340 "version": "0.2.3",
1341 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 1341 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
1342 "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 1342 "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
1343 }, 1343 },
1344 "json-schema-traverse": { 1344 "json-schema-traverse": {
1345 "version": "0.4.1", 1345 "version": "0.4.1",
1346 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1346 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1347 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 1347 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
1348 }, 1348 },
1349 "json-stable-stringify-without-jsonify": { 1349 "json-stable-stringify-without-jsonify": {
1350 "version": "1.0.1", 1350 "version": "1.0.1",
1351 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1351 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1352 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 1352 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
1353 "dev": true 1353 "dev": true
1354 }, 1354 },
1355 "json-stringify-safe": { 1355 "json-stringify-safe": {
1356 "version": "5.0.1", 1356 "version": "5.0.1",
1357 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1357 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1358 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 1358 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
1359 }, 1359 },
1360 "jsprim": { 1360 "jsprim": {
1361 "version": "1.4.1", 1361 "version": "1.4.1",
1362 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 1362 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
1363 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 1363 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
1364 "requires": { 1364 "requires": {
1365 "assert-plus": "1.0.0", 1365 "assert-plus": "1.0.0",
1366 "extsprintf": "1.3.0", 1366 "extsprintf": "1.3.0",
1367 "json-schema": "0.2.3", 1367 "json-schema": "0.2.3",
1368 "verror": "1.10.0" 1368 "verror": "1.10.0"
1369 } 1369 }
1370 }, 1370 },
1371 "kuler": { 1371 "kuler": {
1372 "version": "2.0.0", 1372 "version": "2.0.0",
1373 "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", 1373 "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
1374 "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" 1374 "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
1375 }, 1375 },
1376 "levn": { 1376 "levn": {
1377 "version": "0.3.0", 1377 "version": "0.3.0",
1378 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 1378 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
1379 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 1379 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
1380 "dev": true, 1380 "dev": true,
1381 "requires": { 1381 "requires": {
1382 "prelude-ls": "~1.1.2", 1382 "prelude-ls": "~1.1.2",
1383 "type-check": "~0.3.2" 1383 "type-check": "~0.3.2"
1384 } 1384 }
1385 }, 1385 },
1386 "lodash": { 1386 "lodash": {
1387 "version": "4.17.21", 1387 "version": "4.17.21",
1388 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1388 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1389 "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 1389 "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
1390 "dev": true 1390 "dev": true
1391 }, 1391 },
1392 "logform": { 1392 "logform": {
1393 "version": "2.2.0", 1393 "version": "2.2.0",
1394 "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", 1394 "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz",
1395 "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", 1395 "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==",
1396 "requires": { 1396 "requires": {
1397 "colors": "^1.2.1", 1397 "colors": "^1.2.1",
1398 "fast-safe-stringify": "^2.0.4", 1398 "fast-safe-stringify": "^2.0.4",
1399 "fecha": "^4.2.0", 1399 "fecha": "^4.2.0",
1400 "ms": "^2.1.1", 1400 "ms": "^2.1.1",
1401 "triple-beam": "^1.3.0" 1401 "triple-beam": "^1.3.0"
1402 }, 1402 },
1403 "dependencies": { 1403 "dependencies": {
1404 "ms": { 1404 "ms": {
1405 "version": "2.1.3", 1405 "version": "2.1.3",
1406 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1406 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1407 "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1407 "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1408 } 1408 }
1409 } 1409 }
1410 }, 1410 },
1411 "lru-cache": { 1411 "lru-cache": {
1412 "version": "4.1.1", 1412 "version": "4.1.1",
1413 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", 1413 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
1414 "integrity": "sha1-Yi4y6CSItJJ5EUpPns9F581rulU=", 1414 "integrity": "sha1-Yi4y6CSItJJ5EUpPns9F581rulU=",
1415 "requires": { 1415 "requires": {
1416 "pseudomap": "^1.0.2", 1416 "pseudomap": "^1.0.2",
1417 "yallist": "^2.1.2" 1417 "yallist": "^2.1.2"
1418 } 1418 }
1419 }, 1419 },
1420 "macaddress": { 1420 "macaddress": {
1421 "version": "0.2.9", 1421 "version": "0.2.9",
1422 "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.9.tgz", 1422 "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.9.tgz",
1423 "integrity": "sha512-k4F1JUof6cQXxNFzx3thLby4oJzXTXQueAOOts944Vqizn+Rjc2QNFenT9FJSLU1CH3PmrHRSyZs2E+Cqw+P2w==" 1423 "integrity": "sha512-k4F1JUof6cQXxNFzx3thLby4oJzXTXQueAOOts944Vqizn+Rjc2QNFenT9FJSLU1CH3PmrHRSyZs2E+Cqw+P2w=="
1424 }, 1424 },
1425 "media-typer": { 1425 "media-typer": {
1426 "version": "0.3.0", 1426 "version": "0.3.0",
1427 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1427 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1428 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1428 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
1429 }, 1429 },
1430 "merge-descriptors": { 1430 "merge-descriptors": {
1431 "version": "1.0.1", 1431 "version": "1.0.1",
1432 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1432 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1433 "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1433 "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
1434 }, 1434 },
1435 "methods": { 1435 "methods": {
1436 "version": "1.1.2", 1436 "version": "1.1.2",
1437 "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1437 "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1438 "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 1438 "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
1439 }, 1439 },
1440 "mime": { 1440 "mime": {
1441 "version": "1.6.0", 1441 "version": "1.6.0",
1442 "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1442 "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1443 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1443 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1444 }, 1444 },
1445 "mime-db": { 1445 "mime-db": {
1446 "version": "1.40.0", 1446 "version": "1.40.0",
1447 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", 1447 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
1448 "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" 1448 "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
1449 }, 1449 },
1450 "mime-types": { 1450 "mime-types": {
1451 "version": "2.1.24", 1451 "version": "2.1.24",
1452 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", 1452 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
1453 "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", 1453 "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
1454 "requires": { 1454 "requires": {
1455 "mime-db": "1.40.0" 1455 "mime-db": "1.40.0"
1456 } 1456 }
1457 }, 1457 },
1458 "mimic-fn": { 1458 "mimic-fn": {
1459 "version": "2.1.0", 1459 "version": "2.1.0",
1460 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 1460 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
1461 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 1461 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
1462 "dev": true 1462 "dev": true
1463 }, 1463 },
1464 "minimatch": { 1464 "minimatch": {
1465 "version": "3.0.4", 1465 "version": "3.0.4",
1466 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1466 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1467 "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", 1467 "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
1468 "requires": { 1468 "requires": {
1469 "brace-expansion": "^1.1.7" 1469 "brace-expansion": "^1.1.7"
1470 } 1470 }
1471 }, 1471 },
1472 "minimist": { 1472 "minimist": {
1473 "version": "1.2.5", 1473 "version": "1.2.5",
1474 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1474 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1475 "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 1475 "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
1476 }, 1476 },
1477 "mkdirp": { 1477 "mkdirp": {
1478 "version": "0.5.5", 1478 "version": "0.5.5",
1479 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 1479 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1480 "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 1480 "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1481 "dev": true, 1481 "dev": true,
1482 "requires": { 1482 "requires": {
1483 "minimist": "^1.2.5" 1483 "minimist": "^1.2.5"
1484 } 1484 }
1485 }, 1485 },
1486 "moment": { 1486 "moment": {
1487 "version": "2.24.0", 1487 "version": "2.24.0",
1488 "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", 1488 "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
1489 "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" 1489 "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
1490 }, 1490 },
1491 "ms": { 1491 "ms": {
1492 "version": "2.0.0", 1492 "version": "2.0.0",
1493 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1493 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1494 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1494 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1495 }, 1495 },
1496 "mute-stream": { 1496 "mute-stream": {
1497 "version": "0.0.8", 1497 "version": "0.0.8",
1498 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", 1498 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
1499 "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", 1499 "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
1500 "dev": true 1500 "dev": true
1501 }, 1501 },
1502 "natural-compare": { 1502 "natural-compare": {
1503 "version": "1.4.0", 1503 "version": "1.4.0",
1504 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1504 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1505 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1505 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
1506 "dev": true 1506 "dev": true
1507 }, 1507 },
1508 "negotiator": { 1508 "negotiator": {
1509 "version": "0.6.2", 1509 "version": "0.6.2",
1510 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 1510 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
1511 "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 1511 "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
1512 }, 1512 },
1513 "neo-async": { 1513 "neo-async": {
1514 "version": "2.6.2", 1514 "version": "2.6.2",
1515 "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", 1515 "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
1516 "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" 1516 "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
1517 }, 1517 },
1518 "nice-try": { 1518 "nice-try": {
1519 "version": "1.0.5", 1519 "version": "1.0.5",
1520 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 1520 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
1521 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 1521 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
1522 "dev": true 1522 "dev": true
1523 }, 1523 },
1524 "node-fetch": { 1524 "node-fetch": {
1525 "version": "2.6.1", 1525 "version": "2.6.1",
1526 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 1526 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
1527 "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 1527 "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
1528 }, 1528 },
1529 "node-machine-id": { 1529 "node-machine-id": {
1530 "version": "1.1.10", 1530 "version": "1.1.10",
1531 "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.10.tgz", 1531 "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.10.tgz",
1532 "integrity": "sha1-tMuPAbJbkNTgZ1vgDfMOYe51F5s=" 1532 "integrity": "sha1-tMuPAbJbkNTgZ1vgDfMOYe51F5s="
1533 }, 1533 },
1534 "node-natural-sort": { 1534 "node-natural-sort": {
1535 "version": "0.8.6", 1535 "version": "0.8.6",
1536 "resolved": "https://registry.npmjs.org/node-natural-sort/-/node-natural-sort-0.8.6.tgz", 1536 "resolved": "https://registry.npmjs.org/node-natural-sort/-/node-natural-sort-0.8.6.tgz",
1537 "integrity": "sha1-AdxrrcR0OxYDNAjw2FiasubAlM8=" 1537 "integrity": "sha1-AdxrrcR0OxYDNAjw2FiasubAlM8="
1538 }, 1538 },
1539 "numeral": { 1539 "numeral": {
1540 "version": "2.0.6", 1540 "version": "2.0.6",
1541 "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", 1541 "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz",
1542 "integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY=" 1542 "integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY="
1543 }, 1543 },
1544 "nunjucks": { 1544 "nunjucks": {
1545 "version": "3.2.3", 1545 "version": "3.2.3",
1546 "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz", 1546 "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz",
1547 "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==", 1547 "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==",
1548 "requires": { 1548 "requires": {
1549 "a-sync-waterfall": "^1.0.0", 1549 "a-sync-waterfall": "^1.0.0",
1550 "asap": "^2.0.3", 1550 "asap": "^2.0.3",
1551 "commander": "^5.1.0" 1551 "commander": "^5.1.0"
1552 }, 1552 },
1553 "dependencies": { 1553 "dependencies": {
1554 "commander": { 1554 "commander": {
1555 "version": "5.1.0", 1555 "version": "5.1.0",
1556 "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", 1556 "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
1557 "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" 1557 "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="
1558 } 1558 }
1559 } 1559 }
1560 }, 1560 },
1561 "oauth-sign": { 1561 "oauth-sign": {
1562 "version": "0.9.0", 1562 "version": "0.9.0",
1563 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 1563 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1564 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 1564 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
1565 }, 1565 },
1566 "object-hash": { 1566 "object-hash": {
1567 "version": "2.2.0", 1567 "version": "2.2.0",
1568 "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", 1568 "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
1569 "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" 1569 "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
1570 }, 1570 },
1571 "on-finished": { 1571 "on-finished": {
1572 "version": "2.3.0", 1572 "version": "2.3.0",
1573 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1573 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1574 "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1574 "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1575 "requires": { 1575 "requires": {
1576 "ee-first": "1.1.1" 1576 "ee-first": "1.1.1"
1577 } 1577 }
1578 }, 1578 },
1579 "on-headers": { 1579 "on-headers": {
1580 "version": "1.0.1", 1580 "version": "1.0.1",
1581 "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", 1581 "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
1582 "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" 1582 "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
1583 }, 1583 },
1584 "once": { 1584 "once": {
1585 "version": "1.4.0", 1585 "version": "1.4.0",
1586 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1586 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1587 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1587 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1588 "requires": { 1588 "requires": {
1589 "wrappy": "1" 1589 "wrappy": "1"
1590 } 1590 }
1591 }, 1591 },
1592 "one-time": { 1592 "one-time": {
1593 "version": "1.0.0", 1593 "version": "1.0.0",
1594 "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", 1594 "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
1595 "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", 1595 "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
1596 "requires": { 1596 "requires": {
1597 "fn.name": "1.x.x" 1597 "fn.name": "1.x.x"
1598 } 1598 }
1599 }, 1599 },
1600 "onetime": { 1600 "onetime": {
1601 "version": "5.1.0", 1601 "version": "5.1.0",
1602 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", 1602 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
1603 "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", 1603 "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
1604 "dev": true, 1604 "dev": true,
1605 "requires": { 1605 "requires": {
1606 "mimic-fn": "^2.1.0" 1606 "mimic-fn": "^2.1.0"
1607 } 1607 }
1608 }, 1608 },
1609 "optionator": { 1609 "optionator": {
1610 "version": "0.8.3", 1610 "version": "0.8.3",
1611 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", 1611 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
1612 "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", 1612 "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
1613 "dev": true, 1613 "dev": true,
1614 "requires": { 1614 "requires": {
1615 "deep-is": "~0.1.3", 1615 "deep-is": "~0.1.3",
1616 "fast-levenshtein": "~2.0.6", 1616 "fast-levenshtein": "~2.0.6",
1617 "levn": "~0.3.0", 1617 "levn": "~0.3.0",
1618 "prelude-ls": "~1.1.2", 1618 "prelude-ls": "~1.1.2",
1619 "type-check": "~0.3.2", 1619 "type-check": "~0.3.2",
1620 "word-wrap": "~1.2.3" 1620 "word-wrap": "~1.2.3"
1621 } 1621 }
1622 }, 1622 },
1623 "os-tmpdir": { 1623 "os-tmpdir": {
1624 "version": "1.0.2", 1624 "version": "1.0.2",
1625 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1625 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1626 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1626 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
1627 "dev": true 1627 "dev": true
1628 }, 1628 },
1629 "parent-module": { 1629 "parent-module": {
1630 "version": "1.0.1", 1630 "version": "1.0.1",
1631 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1631 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1632 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1632 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1633 "dev": true, 1633 "dev": true,
1634 "requires": { 1634 "requires": {
1635 "callsites": "^3.0.0" 1635 "callsites": "^3.0.0"
1636 } 1636 }
1637 }, 1637 },
1638 "parse-github-url": { 1638 "parse-github-url": {
1639 "version": "1.0.2", 1639 "version": "1.0.2",
1640 "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", 1640 "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz",
1641 "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==" 1641 "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw=="
1642 }, 1642 },
1643 "parseurl": { 1643 "parseurl": {
1644 "version": "1.3.2", 1644 "version": "1.3.2",
1645 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", 1645 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
1646 "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" 1646 "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
1647 }, 1647 },
1648 "path-is-absolute": { 1648 "path-is-absolute": {
1649 "version": "1.0.1", 1649 "version": "1.0.1",
1650 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1650 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1651 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 1651 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
1652 }, 1652 },
1653 "path-key": { 1653 "path-key": {
1654 "version": "2.0.1", 1654 "version": "2.0.1",
1655 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 1655 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1656 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 1656 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1657 "dev": true 1657 "dev": true
1658 }, 1658 },
1659 "path-to-regexp": { 1659 "path-to-regexp": {
1660 "version": "0.1.7", 1660 "version": "0.1.7",
1661 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1661 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1662 "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1662 "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1663 }, 1663 },
1664 "performance-now": { 1664 "performance-now": {
1665 "version": "2.1.0", 1665 "version": "2.1.0",
1666 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 1666 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1667 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 1667 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
1668 }, 1668 },
1669 "pipe-io": { 1669 "pipe-io": {
1670 "version": "3.0.3", 1670 "version": "3.0.3",
1671 "resolved": "https://registry.npmjs.org/pipe-io/-/pipe-io-3.0.3.tgz", 1671 "resolved": "https://registry.npmjs.org/pipe-io/-/pipe-io-3.0.3.tgz",
1672 "integrity": "sha512-7s7HlpMq6WAvd+Xbc2C6NQKEIkDbaSUm0CYtNsjidfyOpbTJmFcvzon47VkMJ6nszEj/X4t4lQs5bqeXgrzMgg==" 1672 "integrity": "sha512-7s7HlpMq6WAvd+Xbc2C6NQKEIkDbaSUm0CYtNsjidfyOpbTJmFcvzon47VkMJ6nszEj/X4t4lQs5bqeXgrzMgg=="
1673 }, 1673 },
1674 "pkginfo": { 1674 "pkginfo": {
1675 "version": "0.4.1", 1675 "version": "0.4.1",
1676 "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", 1676 "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz",
1677 "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=" 1677 "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8="
1678 }, 1678 },
1679 "prelude-ls": { 1679 "prelude-ls": {
1680 "version": "1.1.2", 1680 "version": "1.1.2",
1681 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 1681 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1682 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 1682 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
1683 "dev": true 1683 "dev": true
1684 }, 1684 },
1685 "process-nextick-args": { 1685 "process-nextick-args": {
1686 "version": "2.0.1", 1686 "version": "2.0.1",
1687 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1687 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1688 "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 1688 "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
1689 }, 1689 },
1690 "progress": { 1690 "progress": {
1691 "version": "2.0.3", 1691 "version": "2.0.3",
1692 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1692 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1693 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 1693 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1694 "dev": true 1694 "dev": true
1695 }, 1695 },
1696 "proxy-addr": { 1696 "proxy-addr": {
1697 "version": "2.0.6", 1697 "version": "2.0.6",
1698 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 1698 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
1699 "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", 1699 "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
1700 "requires": { 1700 "requires": {
1701 "forwarded": "~0.1.2", 1701 "forwarded": "~0.1.2",
1702 "ipaddr.js": "1.9.1" 1702 "ipaddr.js": "1.9.1"
1703 } 1703 }
1704 }, 1704 },
1705 "pseudomap": { 1705 "pseudomap": {
1706 "version": "1.0.2", 1706 "version": "1.0.2",
1707 "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 1707 "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
1708 "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" 1708 "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
1709 }, 1709 },
1710 "psl": { 1710 "psl": {
1711 "version": "1.4.0", 1711 "version": "1.4.0",
1712 "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", 1712 "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz",
1713 "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==" 1713 "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw=="
1714 }, 1714 },
1715 "punycode": { 1715 "punycode": {
1716 "version": "1.4.1", 1716 "version": "1.4.1",
1717 "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1717 "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
1718 "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 1718 "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
1719 }, 1719 },
1720 "qs": { 1720 "qs": {
1721 "version": "6.5.2", 1721 "version": "6.5.2",
1722 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 1722 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
1723 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 1723 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
1724 }, 1724 },
1725 "random-bytes": { 1725 "random-bytes": {
1726 "version": "1.0.0", 1726 "version": "1.0.0",
1727 "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", 1727 "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
1728 "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" 1728 "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
1729 }, 1729 },
1730 "range-parser": { 1730 "range-parser": {
1731 "version": "1.2.1", 1731 "version": "1.2.1",
1732 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1732 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1733 "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1733 "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1734 }, 1734 },
1735 "raw-body": { 1735 "raw-body": {
1736 "version": "2.3.2", 1736 "version": "2.3.2",
1737 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", 1737 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
1738 "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", 1738 "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
1739 "requires": { 1739 "requires": {
1740 "bytes": "3.0.0", 1740 "bytes": "3.0.0",
1741 "http-errors": "1.6.2", 1741 "http-errors": "1.6.2",
1742 "iconv-lite": "0.4.19", 1742 "iconv-lite": "0.4.19",
1743 "unpipe": "1.0.0" 1743 "unpipe": "1.0.0"
1744 } 1744 }
1745 }, 1745 },
1746 "readable-stream": { 1746 "readable-stream": {
1747 "version": "3.6.0", 1747 "version": "3.6.0",
1748 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1748 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
1749 "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1749 "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
1750 "requires": { 1750 "requires": {
1751 "inherits": "^2.0.3", 1751 "inherits": "^2.0.3",
1752 "string_decoder": "^1.1.1", 1752 "string_decoder": "^1.1.1",
1753 "util-deprecate": "^1.0.1" 1753 "util-deprecate": "^1.0.1"
1754 } 1754 }
1755 }, 1755 },
1756 "redis": { 1756 "redis": {
1757 "version": "3.1.2", 1757 "version": "3.1.2",
1758 "resolved": "https://registry.npmjs.org/redis/-/redis-3.1.2.tgz", 1758 "resolved": "https://registry.npmjs.org/redis/-/redis-3.1.2.tgz",
1759 "integrity": "sha512-grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw==", 1759 "integrity": "sha512-grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw==",
1760 "requires": { 1760 "requires": {
1761 "denque": "^1.5.0", 1761 "denque": "^1.5.0",
1762 "redis-commands": "^1.7.0", 1762 "redis-commands": "^1.7.0",
1763 "redis-errors": "^1.2.0", 1763 "redis-errors": "^1.2.0",
1764 "redis-parser": "^3.0.0" 1764 "redis-parser": "^3.0.0"
1765 } 1765 }
1766 }, 1766 },
1767 "redis-commands": { 1767 "redis-commands": {
1768 "version": "1.7.0", 1768 "version": "1.7.0",
1769 "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", 1769 "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz",
1770 "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" 1770 "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ=="
1771 }, 1771 },
1772 "redis-errors": { 1772 "redis-errors": {
1773 "version": "1.2.0", 1773 "version": "1.2.0",
1774 "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", 1774 "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
1775 "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=" 1775 "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60="
1776 }, 1776 },
1777 "redis-parser": { 1777 "redis-parser": {
1778 "version": "3.0.0", 1778 "version": "3.0.0",
1779 "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", 1779 "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
1780 "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", 1780 "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=",
1781 "requires": { 1781 "requires": {
1782 "redis-errors": "^1.0.0" 1782 "redis-errors": "^1.0.0"
1783 } 1783 }
1784 }, 1784 },
1785 "regexpp": { 1785 "regexpp": {
1786 "version": "2.0.1", 1786 "version": "2.0.1",
1787 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", 1787 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
1788 "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", 1788 "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
1789 "dev": true 1789 "dev": true
1790 }, 1790 },
1791 "request": { 1791 "request": {
1792 "version": "2.88.0", 1792 "version": "2.88.0",
1793 "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 1793 "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
1794 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 1794 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
1795 "requires": { 1795 "requires": {
1796 "aws-sign2": "~0.7.0", 1796 "aws-sign2": "~0.7.0",
1797 "aws4": "^1.8.0", 1797 "aws4": "^1.8.0",
1798 "caseless": "~0.12.0", 1798 "caseless": "~0.12.0",
1799 "combined-stream": "~1.0.6", 1799 "combined-stream": "~1.0.6",
1800 "extend": "~3.0.2", 1800 "extend": "~3.0.2",
1801 "forever-agent": "~0.6.1", 1801 "forever-agent": "~0.6.1",
1802 "form-data": "~2.3.2", 1802 "form-data": "~2.3.2",
1803 "har-validator": "~5.1.0", 1803 "har-validator": "~5.1.0",
1804 "http-signature": "~1.2.0", 1804 "http-signature": "~1.2.0",
1805 "is-typedarray": "~1.0.0", 1805 "is-typedarray": "~1.0.0",
1806 "isstream": "~0.1.2", 1806 "isstream": "~0.1.2",
1807 "json-stringify-safe": "~5.0.1", 1807 "json-stringify-safe": "~5.0.1",
1808 "mime-types": "~2.1.19", 1808 "mime-types": "~2.1.19",
1809 "oauth-sign": "~0.9.0", 1809 "oauth-sign": "~0.9.0",
1810 "performance-now": "^2.1.0", 1810 "performance-now": "^2.1.0",
1811 "qs": "~6.5.2", 1811 "qs": "~6.5.2",
1812 "safe-buffer": "^5.1.2", 1812 "safe-buffer": "^5.1.2",
1813 "tough-cookie": "~2.4.3", 1813 "tough-cookie": "~2.4.3",
1814 "tunnel-agent": "^0.6.0", 1814 "tunnel-agent": "^0.6.0",
1815 "uuid": "^3.3.2" 1815 "uuid": "^3.3.2"
1816 }, 1816 },
1817 "dependencies": { 1817 "dependencies": {
1818 "safe-buffer": { 1818 "safe-buffer": {
1819 "version": "5.2.0", 1819 "version": "5.2.0",
1820 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", 1820 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
1821 "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" 1821 "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
1822 }, 1822 },
1823 "uuid": { 1823 "uuid": {
1824 "version": "3.3.3", 1824 "version": "3.3.3",
1825 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", 1825 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
1826 "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" 1826 "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
1827 } 1827 }
1828 } 1828 }
1829 }, 1829 },
1830 "resolve-from": { 1830 "resolve-from": {
1831 "version": "4.0.0", 1831 "version": "4.0.0",
1832 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1832 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1833 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1833 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1834 "dev": true 1834 "dev": true
1835 }, 1835 },
1836 "restore-cursor": { 1836 "restore-cursor": {
1837 "version": "3.1.0", 1837 "version": "3.1.0",
1838 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", 1838 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
1839 "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", 1839 "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
1840 "dev": true, 1840 "dev": true,
1841 "requires": { 1841 "requires": {
1842 "onetime": "^5.1.0", 1842 "onetime": "^5.1.0",
1843 "signal-exit": "^3.0.2" 1843 "signal-exit": "^3.0.2"
1844 } 1844 }
1845 }, 1845 },
1846 "rimraf": { 1846 "rimraf": {
1847 "version": "2.6.3", 1847 "version": "2.6.3",
1848 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 1848 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
1849 "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 1849 "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
1850 "dev": true, 1850 "dev": true,
1851 "requires": { 1851 "requires": {
1852 "glob": "^7.1.3" 1852 "glob": "^7.1.3"
1853 }, 1853 },
1854 "dependencies": { 1854 "dependencies": {
1855 "glob": { 1855 "glob": {
1856 "version": "7.1.6", 1856 "version": "7.1.6",
1857 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1857 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
1858 "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1858 "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
1859 "dev": true, 1859 "dev": true,
1860 "requires": { 1860 "requires": {
1861 "fs.realpath": "^1.0.0", 1861 "fs.realpath": "^1.0.0",
1862 "inflight": "^1.0.4", 1862 "inflight": "^1.0.4",
1863 "inherits": "2", 1863 "inherits": "2",
1864 "minimatch": "^3.0.4", 1864 "minimatch": "^3.0.4",
1865 "once": "^1.3.0", 1865 "once": "^1.3.0",
1866 "path-is-absolute": "^1.0.0" 1866 "path-is-absolute": "^1.0.0"
1867 } 1867 }
1868 } 1868 }
1869 } 1869 }
1870 }, 1870 },
1871 "run-async": { 1871 "run-async": {
1872 "version": "2.4.1", 1872 "version": "2.4.1",
1873 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", 1873 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
1874 "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", 1874 "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
1875 "dev": true 1875 "dev": true
1876 }, 1876 },
1877 "rxjs": { 1877 "rxjs": {
1878 "version": "6.6.0", 1878 "version": "6.6.0",
1879 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", 1879 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz",
1880 "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", 1880 "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==",
1881 "dev": true, 1881 "dev": true,
1882 "requires": { 1882 "requires": {
1883 "tslib": "^1.9.0" 1883 "tslib": "^1.9.0"
1884 } 1884 }
1885 }, 1885 },
1886 "safe-buffer": { 1886 "safe-buffer": {
1887 "version": "5.1.1", 1887 "version": "5.1.1",
1888 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 1888 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
1889 "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" 1889 "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM="
1890 }, 1890 },
1891 "safer-buffer": { 1891 "safer-buffer": {
1892 "version": "2.1.2", 1892 "version": "2.1.2",
1893 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1893 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1894 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1894 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1895 }, 1895 },
1896 "semver": { 1896 "semver": {
1897 "version": "6.3.0", 1897 "version": "6.3.0",
1898 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1898 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1899 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" 1899 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
1900 }, 1900 },
1901 "send": { 1901 "send": {
1902 "version": "0.17.1", 1902 "version": "0.17.1",
1903 "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 1903 "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
1904 "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 1904 "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
1905 "requires": { 1905 "requires": {
1906 "debug": "2.6.9", 1906 "debug": "2.6.9",
1907 "depd": "~1.1.2", 1907 "depd": "~1.1.2",
1908 "destroy": "~1.0.4", 1908 "destroy": "~1.0.4",
1909 "encodeurl": "~1.0.2", 1909 "encodeurl": "~1.0.2",
1910 "escape-html": "~1.0.3", 1910 "escape-html": "~1.0.3",
1911 "etag": "~1.8.1", 1911 "etag": "~1.8.1",
1912 "fresh": "0.5.2", 1912 "fresh": "0.5.2",
1913 "http-errors": "~1.7.2", 1913 "http-errors": "~1.7.2",
1914 "mime": "1.6.0", 1914 "mime": "1.6.0",
1915 "ms": "2.1.1", 1915 "ms": "2.1.1",
1916 "on-finished": "~2.3.0", 1916 "on-finished": "~2.3.0",
1917 "range-parser": "~1.2.1", 1917 "range-parser": "~1.2.1",
1918 "statuses": "~1.5.0" 1918 "statuses": "~1.5.0"
1919 }, 1919 },
1920 "dependencies": { 1920 "dependencies": {
1921 "depd": { 1921 "depd": {
1922 "version": "1.1.2", 1922 "version": "1.1.2",
1923 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 1923 "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
1924 "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 1924 "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
1925 }, 1925 },
1926 "http-errors": { 1926 "http-errors": {
1927 "version": "1.7.3", 1927 "version": "1.7.3",
1928 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", 1928 "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
1929 "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", 1929 "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
1930 "requires": { 1930 "requires": {
1931 "depd": "~1.1.2", 1931 "depd": "~1.1.2",
1932 "inherits": "2.0.4", 1932 "inherits": "2.0.4",
1933 "setprototypeof": "1.1.1", 1933 "setprototypeof": "1.1.1",
1934 "statuses": ">= 1.5.0 < 2", 1934 "statuses": ">= 1.5.0 < 2",
1935 "toidentifier": "1.0.0" 1935 "toidentifier": "1.0.0"
1936 } 1936 }
1937 }, 1937 },
1938 "inherits": { 1938 "inherits": {
1939 "version": "2.0.4", 1939 "version": "2.0.4",
1940 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1940 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1941 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1941 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1942 }, 1942 },
1943 "ms": { 1943 "ms": {
1944 "version": "2.1.1", 1944 "version": "2.1.1",
1945 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 1945 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1946 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 1946 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
1947 }, 1947 },
1948 "statuses": { 1948 "statuses": {
1949 "version": "1.5.0", 1949 "version": "1.5.0",
1950 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1950 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1951 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 1951 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1952 } 1952 }
1953 } 1953 }
1954 }, 1954 },
1955 "serve-static": { 1955 "serve-static": {
1956 "version": "1.14.1", 1956 "version": "1.14.1",
1957 "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 1957 "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
1958 "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 1958 "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
1959 "requires": { 1959 "requires": {
1960 "encodeurl": "~1.0.2", 1960 "encodeurl": "~1.0.2",
1961 "escape-html": "~1.0.3", 1961 "escape-html": "~1.0.3",
1962 "parseurl": "~1.3.3", 1962 "parseurl": "~1.3.3",
1963 "send": "0.17.1" 1963 "send": "0.17.1"
1964 }, 1964 },
1965 "dependencies": { 1965 "dependencies": {
1966 "parseurl": { 1966 "parseurl": {
1967 "version": "1.3.3", 1967 "version": "1.3.3",
1968 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1968 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1969 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1969 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1970 } 1970 }
1971 } 1971 }
1972 }, 1972 },
1973 "setprototypeof": { 1973 "setprototypeof": {
1974 "version": "1.1.1", 1974 "version": "1.1.1",
1975 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 1975 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1976 "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 1976 "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1977 }, 1977 },
1978 "sha1": { 1978 "sha1": {
1979 "version": "1.1.1", 1979 "version": "1.1.1",
1980 "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", 1980 "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz",
1981 "integrity": "sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg=", 1981 "integrity": "sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg=",
1982 "requires": { 1982 "requires": {
1983 "charenc": ">= 0.0.1", 1983 "charenc": ">= 0.0.1",
1984 "crypt": ">= 0.0.1" 1984 "crypt": ">= 0.0.1"
1985 } 1985 }
1986 }, 1986 },
1987 "shebang-command": { 1987 "shebang-command": {
1988 "version": "1.2.0", 1988 "version": "1.2.0",
1989 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1989 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1990 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1990 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1991 "dev": true, 1991 "dev": true,
1992 "requires": { 1992 "requires": {
1993 "shebang-regex": "^1.0.0" 1993 "shebang-regex": "^1.0.0"
1994 } 1994 }
1995 }, 1995 },
1996 "shebang-regex": { 1996 "shebang-regex": {
1997 "version": "1.0.0", 1997 "version": "1.0.0",
1998 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1998 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1999 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 1999 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
2000 "dev": true 2000 "dev": true
2001 }, 2001 },
2002 "signal-exit": { 2002 "signal-exit": {
2003 "version": "3.0.3", 2003 "version": "3.0.3",
2004 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 2004 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
2005 "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 2005 "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
2006 "dev": true 2006 "dev": true
2007 }, 2007 },
2008 "simple-git": { 2008 "simple-git": {
2009 "version": "1.80.1", 2009 "version": "1.80.1",
2010 "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.80.1.tgz", 2010 "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.80.1.tgz",
2011 "integrity": "sha1-SBBMtKxyV2k3hT4a/R7v/cl6yyk=", 2011 "integrity": "sha1-SBBMtKxyV2k3hT4a/R7v/cl6yyk=",
2012 "requires": { 2012 "requires": {
2013 "debug": "^2.6.7" 2013 "debug": "^2.6.7"
2014 } 2014 }
2015 }, 2015 },
2016 "simple-swizzle": { 2016 "simple-swizzle": {
2017 "version": "0.2.2", 2017 "version": "0.2.2",
2018 "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 2018 "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
2019 "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", 2019 "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
2020 "requires": { 2020 "requires": {
2021 "is-arrayish": "^0.3.1" 2021 "is-arrayish": "^0.3.1"
2022 } 2022 }
2023 }, 2023 },
2024 "slice-ansi": { 2024 "slice-ansi": {
2025 "version": "2.1.0", 2025 "version": "2.1.0",
2026 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 2026 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
2027 "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 2027 "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
2028 "dev": true, 2028 "dev": true,
2029 "requires": { 2029 "requires": {
2030 "ansi-styles": "^3.2.0", 2030 "ansi-styles": "^3.2.0",
2031 "astral-regex": "^1.0.0", 2031 "astral-regex": "^1.0.0",
2032 "is-fullwidth-code-point": "^2.0.0" 2032 "is-fullwidth-code-point": "^2.0.0"
2033 }, 2033 },
2034 "dependencies": { 2034 "dependencies": {
2035 "is-fullwidth-code-point": { 2035 "is-fullwidth-code-point": {
2036 "version": "2.0.0", 2036 "version": "2.0.0",
2037 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2037 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
2038 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2038 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
2039 "dev": true 2039 "dev": true
2040 } 2040 }
2041 } 2041 }
2042 }, 2042 },
2043 "source-map": { 2043 "source-map": {
2044 "version": "0.6.1", 2044 "version": "0.6.1",
2045 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2045 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2046 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 2046 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
2047 }, 2047 },
2048 "sprintf-js": { 2048 "sprintf-js": {
2049 "version": "1.0.3", 2049 "version": "1.0.3",
2050 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 2050 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
2051 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 2051 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
2052 "dev": true 2052 "dev": true
2053 }, 2053 },
2054 "sshpk": { 2054 "sshpk": {
2055 "version": "1.16.1", 2055 "version": "1.16.1",
2056 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 2056 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
2057 "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 2057 "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
2058 "requires": { 2058 "requires": {
2059 "asn1": "~0.2.3", 2059 "asn1": "~0.2.3",
2060 "assert-plus": "^1.0.0", 2060 "assert-plus": "^1.0.0",
2061 "bcrypt-pbkdf": "^1.0.0", 2061 "bcrypt-pbkdf": "^1.0.0",
2062 "dashdash": "^1.12.0", 2062 "dashdash": "^1.12.0",
2063 "ecc-jsbn": "~0.1.1", 2063 "ecc-jsbn": "~0.1.1",
2064 "getpass": "^0.1.1", 2064 "getpass": "^0.1.1",
2065 "jsbn": "~0.1.0", 2065 "jsbn": "~0.1.0",
2066 "safer-buffer": "^2.0.2", 2066 "safer-buffer": "^2.0.2",
2067 "tweetnacl": "~0.14.0" 2067 "tweetnacl": "~0.14.0"
2068 } 2068 }
2069 }, 2069 },
2070 "stack-trace": { 2070 "stack-trace": {
2071 "version": "0.0.10", 2071 "version": "0.0.10",
2072 "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", 2072 "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
2073 "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" 2073 "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
2074 }, 2074 },
2075 "statuses": { 2075 "statuses": {
2076 "version": "1.3.1", 2076 "version": "1.3.1",
2077 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", 2077 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
2078 "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" 2078 "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
2079 }, 2079 },
2080 "strftime": { 2080 "strftime": {
2081 "version": "0.10.0", 2081 "version": "0.10.0",
2082 "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.10.0.tgz", 2082 "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.10.0.tgz",
2083 "integrity": "sha1-s/D6QZKVICpaKJ9ta+n0kJphcZM=" 2083 "integrity": "sha1-s/D6QZKVICpaKJ9ta+n0kJphcZM="
2084 }, 2084 },
2085 "string-natural-compare": { 2085 "string-natural-compare": {
2086 "version": "2.0.2", 2086 "version": "2.0.2",
2087 "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-2.0.2.tgz", 2087 "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-2.0.2.tgz",
2088 "integrity": "sha1-xc5OJ4q10SZa5vxVQ1rre3b8sAE=" 2088 "integrity": "sha1-xc5OJ4q10SZa5vxVQ1rre3b8sAE="
2089 }, 2089 },
2090 "string-width": { 2090 "string-width": {
2091 "version": "4.2.0", 2091 "version": "4.2.0",
2092 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 2092 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
2093 "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 2093 "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
2094 "dev": true, 2094 "dev": true,
2095 "requires": { 2095 "requires": {
2096 "emoji-regex": "^8.0.0", 2096 "emoji-regex": "^8.0.0",
2097 "is-fullwidth-code-point": "^3.0.0", 2097 "is-fullwidth-code-point": "^3.0.0",
2098 "strip-ansi": "^6.0.0" 2098 "strip-ansi": "^6.0.0"
2099 }, 2099 },
2100 "dependencies": { 2100 "dependencies": {
2101 "strip-ansi": { 2101 "strip-ansi": {
2102 "version": "6.0.0", 2102 "version": "6.0.0",
2103 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 2103 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
2104 "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 2104 "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
2105 "dev": true, 2105 "dev": true,
2106 "requires": { 2106 "requires": {
2107 "ansi-regex": "^5.0.0" 2107 "ansi-regex": "^5.0.0"
2108 } 2108 }
2109 } 2109 }
2110 } 2110 }
2111 }, 2111 },
2112 "string_decoder": { 2112 "string_decoder": {
2113 "version": "1.3.0", 2113 "version": "1.3.0",
2114 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 2114 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
2115 "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 2115 "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
2116 "requires": { 2116 "requires": {
2117 "safe-buffer": "~5.2.0" 2117 "safe-buffer": "~5.2.0"
2118 }, 2118 },
2119 "dependencies": { 2119 "dependencies": {
2120 "safe-buffer": { 2120 "safe-buffer": {
2121 "version": "5.2.1", 2121 "version": "5.2.1",
2122 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2122 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
2123 "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 2123 "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
2124 } 2124 }
2125 } 2125 }
2126 }, 2126 },
2127 "strip-ansi": { 2127 "strip-ansi": {
2128 "version": "5.2.0", 2128 "version": "5.2.0",
2129 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 2129 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
2130 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 2130 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
2131 "dev": true, 2131 "dev": true,
2132 "requires": { 2132 "requires": {
2133 "ansi-regex": "^4.1.0" 2133 "ansi-regex": "^4.1.0"
2134 }, 2134 },
2135 "dependencies": { 2135 "dependencies": {
2136 "ansi-regex": { 2136 "ansi-regex": {
2137 "version": "4.1.0", 2137 "version": "4.1.0",
2138 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 2138 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
2139 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 2139 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
2140 "dev": true 2140 "dev": true
2141 } 2141 }
2142 } 2142 }
2143 }, 2143 },
2144 "strip-json-comments": { 2144 "strip-json-comments": {
2145 "version": "3.1.1", 2145 "version": "3.1.1",
2146 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2146 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
2147 "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2147 "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
2148 "dev": true 2148 "dev": true
2149 }, 2149 },
2150 "supports-color": { 2150 "supports-color": {
2151 "version": "5.5.0", 2151 "version": "5.5.0",
2152 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2152 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2153 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2153 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2154 "dev": true, 2154 "dev": true,
2155 "requires": { 2155 "requires": {
2156 "has-flag": "^3.0.0" 2156 "has-flag": "^3.0.0"
2157 } 2157 }
2158 }, 2158 },
2159 "table": { 2159 "table": {
2160 "version": "5.4.6", 2160 "version": "5.4.6",
2161 "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", 2161 "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
2162 "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", 2162 "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
2163 "dev": true, 2163 "dev": true,
2164 "requires": { 2164 "requires": {
2165 "ajv": "^6.10.2", 2165 "ajv": "^6.10.2",
2166 "lodash": "^4.17.14", 2166 "lodash": "^4.17.14",
2167 "slice-ansi": "^2.1.0", 2167 "slice-ansi": "^2.1.0",
2168 "string-width": "^3.0.0" 2168 "string-width": "^3.0.0"
2169 }, 2169 },
2170 "dependencies": { 2170 "dependencies": {
2171 "emoji-regex": { 2171 "emoji-regex": {
2172 "version": "7.0.3", 2172 "version": "7.0.3",
2173 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 2173 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
2174 "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 2174 "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
2175 "dev": true 2175 "dev": true
2176 }, 2176 },
2177 "is-fullwidth-code-point": { 2177 "is-fullwidth-code-point": {
2178 "version": "2.0.0", 2178 "version": "2.0.0",
2179 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2179 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
2180 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2180 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
2181 "dev": true 2181 "dev": true
2182 }, 2182 },
2183 "string-width": { 2183 "string-width": {
2184 "version": "3.1.0", 2184 "version": "3.1.0",
2185 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 2185 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
2186 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 2186 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
2187 "dev": true, 2187 "dev": true,
2188 "requires": { 2188 "requires": {
2189 "emoji-regex": "^7.0.1", 2189 "emoji-regex": "^7.0.1",
2190 "is-fullwidth-code-point": "^2.0.0", 2190 "is-fullwidth-code-point": "^2.0.0",
2191 "strip-ansi": "^5.1.0" 2191 "strip-ansi": "^5.1.0"
2192 } 2192 }
2193 } 2193 }
2194 } 2194 }
2195 }, 2195 },
2196 "tektrans-logger": { 2196 "tektrans-logger": {
2197 "version": "1.1.3", 2197 "version": "1.1.3",
2198 "resolved": "https://registry.npmjs.org/tektrans-logger/-/tektrans-logger-1.1.3.tgz", 2198 "resolved": "https://registry.npmjs.org/tektrans-logger/-/tektrans-logger-1.1.3.tgz",
2199 "integrity": "sha512-GZEbs4dMahaCtbHoZysC1u9ng9bYuS4sMbR69culyFmQhV6xQAinldtqI7kzmJc5znl28MMvOimjFffRZhFgLg==", 2199 "integrity": "sha512-GZEbs4dMahaCtbHoZysC1u9ng9bYuS4sMbR69culyFmQhV6xQAinldtqI7kzmJc5znl28MMvOimjFffRZhFgLg==",
2200 "requires": { 2200 "requires": {
2201 "winston": "^3.3.3", 2201 "winston": "^3.3.3",
2202 "winston-daily-rotate-file": "^4.5.5" 2202 "winston-daily-rotate-file": "^4.5.5"
2203 } 2203 }
2204 }, 2204 },
2205 "text-hex": { 2205 "text-hex": {
2206 "version": "1.0.0", 2206 "version": "1.0.0",
2207 "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", 2207 "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
2208 "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" 2208 "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
2209 }, 2209 },
2210 "text-table": { 2210 "text-table": {
2211 "version": "0.2.0", 2211 "version": "0.2.0",
2212 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2212 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
2213 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 2213 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
2214 "dev": true 2214 "dev": true
2215 }, 2215 },
2216 "through": { 2216 "through": {
2217 "version": "2.3.8", 2217 "version": "2.3.8",
2218 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2218 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
2219 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2219 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
2220 "dev": true 2220 "dev": true
2221 }, 2221 },
2222 "tmp": { 2222 "tmp": {
2223 "version": "0.0.33", 2223 "version": "0.0.33",
2224 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 2224 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
2225 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 2225 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
2226 "dev": true, 2226 "dev": true,
2227 "requires": { 2227 "requires": {
2228 "os-tmpdir": "~1.0.2" 2228 "os-tmpdir": "~1.0.2"
2229 } 2229 }
2230 }, 2230 },
2231 "toidentifier": { 2231 "toidentifier": {
2232 "version": "1.0.0", 2232 "version": "1.0.0",
2233 "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 2233 "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
2234 "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 2234 "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
2235 }, 2235 },
2236 "tough-cookie": { 2236 "tough-cookie": {
2237 "version": "2.4.3", 2237 "version": "2.4.3",
2238 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 2238 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
2239 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 2239 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
2240 "requires": { 2240 "requires": {
2241 "psl": "^1.1.24", 2241 "psl": "^1.1.24",
2242 "punycode": "^1.4.1" 2242 "punycode": "^1.4.1"
2243 } 2243 }
2244 }, 2244 },
2245 "triple-beam": { 2245 "triple-beam": {
2246 "version": "1.3.0", 2246 "version": "1.3.0",
2247 "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", 2247 "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
2248 "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" 2248 "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
2249 }, 2249 },
2250 "tslib": { 2250 "tslib": {
2251 "version": "1.13.0", 2251 "version": "1.13.0",
2252 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", 2252 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
2253 "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", 2253 "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
2254 "dev": true 2254 "dev": true
2255 }, 2255 },
2256 "tunnel-agent": { 2256 "tunnel-agent": {
2257 "version": "0.6.0", 2257 "version": "0.6.0",
2258 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2258 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
2259 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2259 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
2260 "requires": { 2260 "requires": {
2261 "safe-buffer": "^5.0.1" 2261 "safe-buffer": "^5.0.1"
2262 } 2262 }
2263 }, 2263 },
2264 "tweetnacl": { 2264 "tweetnacl": {
2265 "version": "0.14.5", 2265 "version": "0.14.5",
2266 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2266 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
2267 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 2267 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
2268 }, 2268 },
2269 "type-check": { 2269 "type-check": {
2270 "version": "0.3.2", 2270 "version": "0.3.2",
2271 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 2271 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
2272 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 2272 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
2273 "dev": true, 2273 "dev": true,
2274 "requires": { 2274 "requires": {
2275 "prelude-ls": "~1.1.2" 2275 "prelude-ls": "~1.1.2"
2276 } 2276 }
2277 }, 2277 },
2278 "type-fest": { 2278 "type-fest": {
2279 "version": "0.8.1", 2279 "version": "0.8.1",
2280 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 2280 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
2281 "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 2281 "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
2282 "dev": true 2282 "dev": true
2283 }, 2283 },
2284 "type-is": { 2284 "type-is": {
2285 "version": "1.6.16", 2285 "version": "1.6.16",
2286 "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", 2286 "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
2287 "integrity": "sha1-+JzjQVQcZysl7nrjxz3uOyvlAZQ=", 2287 "integrity": "sha1-+JzjQVQcZysl7nrjxz3uOyvlAZQ=",
2288 "requires": { 2288 "requires": {
2289 "media-typer": "0.3.0", 2289 "media-typer": "0.3.0",
2290 "mime-types": "~2.1.18" 2290 "mime-types": "~2.1.18"
2291 }, 2291 },
2292 "dependencies": { 2292 "dependencies": {
2293 "mime-db": { 2293 "mime-db": {
2294 "version": "1.33.0", 2294 "version": "1.33.0",
2295 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", 2295 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
2296 "integrity": "sha1-o0kgUKXLm2NFBUHjnZeI0icng9s=" 2296 "integrity": "sha1-o0kgUKXLm2NFBUHjnZeI0icng9s="
2297 }, 2297 },
2298 "mime-types": { 2298 "mime-types": {
2299 "version": "2.1.18", 2299 "version": "2.1.18",
2300 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", 2300 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
2301 "integrity": "sha1-bzI/YKg9ERRvgx/xH9ZuL+VQO7g=", 2301 "integrity": "sha1-bzI/YKg9ERRvgx/xH9ZuL+VQO7g=",
2302 "requires": { 2302 "requires": {
2303 "mime-db": "~1.33.0" 2303 "mime-db": "~1.33.0"
2304 } 2304 }
2305 } 2305 }
2306 } 2306 }
2307 }, 2307 },
2308 "uglify-js": { 2308 "uglify-js": {
2309 "version": "3.14.1", 2309 "version": "3.14.1",
2310 "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.1.tgz", 2310 "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.1.tgz",
2311 "integrity": "sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g==", 2311 "integrity": "sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g==",
2312 "optional": true 2312 "optional": true
2313 }, 2313 },
2314 "uid-safe": { 2314 "uid-safe": {
2315 "version": "2.1.5", 2315 "version": "2.1.5",
2316 "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", 2316 "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
2317 "integrity": "sha1-Kz1cckDo/C5Y+Komnl7knAhXvTo=", 2317 "integrity": "sha1-Kz1cckDo/C5Y+Komnl7knAhXvTo=",
2318 "requires": { 2318 "requires": {
2319 "random-bytes": "~1.0.0" 2319 "random-bytes": "~1.0.0"
2320 } 2320 }
2321 }, 2321 },
2322 "uniqid": { 2322 "uniqid": {
2323 "version": "4.1.1", 2323 "version": "4.1.1",
2324 "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", 2324 "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
2325 "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", 2325 "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
2326 "requires": { 2326 "requires": {
2327 "macaddress": "^0.2.8" 2327 "macaddress": "^0.2.8"
2328 } 2328 }
2329 }, 2329 },
2330 "unpipe": { 2330 "unpipe": {
2331 "version": "1.0.0", 2331 "version": "1.0.0",
2332 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 2332 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
2333 "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 2333 "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
2334 }, 2334 },
2335 "uri-js": { 2335 "uri-js": {
2336 "version": "4.2.2", 2336 "version": "4.2.2",
2337 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 2337 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
2338 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 2338 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
2339 "requires": { 2339 "requires": {
2340 "punycode": "^2.1.0" 2340 "punycode": "^2.1.0"
2341 }, 2341 },
2342 "dependencies": { 2342 "dependencies": {
2343 "punycode": { 2343 "punycode": {
2344 "version": "2.1.1", 2344 "version": "2.1.1",
2345 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 2345 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2346 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 2346 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
2347 } 2347 }
2348 } 2348 }
2349 }, 2349 },
2350 "util-deprecate": { 2350 "util-deprecate": {
2351 "version": "1.0.2", 2351 "version": "1.0.2",
2352 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2352 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2353 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 2353 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
2354 }, 2354 },
2355 "utils-merge": { 2355 "utils-merge": {
2356 "version": "1.0.1", 2356 "version": "1.0.1",
2357 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 2357 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2358 "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 2358 "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
2359 }, 2359 },
2360 "uuid": { 2360 "uuid": {
2361 "version": "3.1.0", 2361 "version": "3.1.0",
2362 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 2362 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
2363 "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=" 2363 "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ="
2364 }, 2364 },
2365 "v8-compile-cache": { 2365 "v8-compile-cache": {
2366 "version": "2.1.1", 2366 "version": "2.1.1",
2367 "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", 2367 "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz",
2368 "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", 2368 "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==",
2369 "dev": true 2369 "dev": true
2370 }, 2370 },
2371 "vary": { 2371 "vary": {
2372 "version": "1.1.2", 2372 "version": "1.1.2",
2373 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 2373 "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2374 "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 2374 "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
2375 }, 2375 },
2376 "verror": { 2376 "verror": {
2377 "version": "1.10.0", 2377 "version": "1.10.0",
2378 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2378 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
2379 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2379 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2380 "requires": { 2380 "requires": {
2381 "assert-plus": "^1.0.0", 2381 "assert-plus": "^1.0.0",
2382 "core-util-is": "1.0.2", 2382 "core-util-is": "1.0.2",
2383 "extsprintf": "^1.2.0" 2383 "extsprintf": "^1.2.0"
2384 } 2384 }
2385 }, 2385 },
2386 "which": { 2386 "which": {
2387 "version": "1.3.1", 2387 "version": "1.3.1",
2388 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 2388 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2389 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 2389 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2390 "dev": true, 2390 "dev": true,
2391 "requires": { 2391 "requires": {
2392 "isexe": "^2.0.0" 2392 "isexe": "^2.0.0"
2393 } 2393 }
2394 }, 2394 },
2395 "winston": { 2395 "winston": {
2396 "version": "3.3.3", 2396 "version": "3.3.3",
2397 "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", 2397 "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz",
2398 "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", 2398 "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==",
2399 "requires": { 2399 "requires": {
2400 "@dabh/diagnostics": "^2.0.2", 2400 "@dabh/diagnostics": "^2.0.2",
2401 "async": "^3.1.0", 2401 "async": "^3.1.0",
2402 "is-stream": "^2.0.0", 2402 "is-stream": "^2.0.0",
2403 "logform": "^2.2.0", 2403 "logform": "^2.2.0",
2404 "one-time": "^1.0.0", 2404 "one-time": "^1.0.0",
2405 "readable-stream": "^3.4.0", 2405 "readable-stream": "^3.4.0",
2406 "stack-trace": "0.0.x", 2406 "stack-trace": "0.0.x",
2407 "triple-beam": "^1.3.0", 2407 "triple-beam": "^1.3.0",
2408 "winston-transport": "^4.4.0" 2408 "winston-transport": "^4.4.0"
2409 } 2409 }
2410 }, 2410 },
2411 "winston-daily-rotate-file": { 2411 "winston-daily-rotate-file": {
2412 "version": "4.5.5", 2412 "version": "4.5.5",
2413 "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.5.tgz", 2413 "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.5.tgz",
2414 "integrity": "sha512-ds0WahIjiDhKCiMXmY799pDBW+58ByqIBtUcsqr4oDoXrAI3Zn+hbgFdUxzMfqA93OG0mPLYVMiotqTgE/WeWQ==", 2414 "integrity": "sha512-ds0WahIjiDhKCiMXmY799pDBW+58ByqIBtUcsqr4oDoXrAI3Zn+hbgFdUxzMfqA93OG0mPLYVMiotqTgE/WeWQ==",
2415 "requires": { 2415 "requires": {
2416 "file-stream-rotator": "^0.5.7", 2416 "file-stream-rotator": "^0.5.7",
2417 "object-hash": "^2.0.1", 2417 "object-hash": "^2.0.1",
2418 "triple-beam": "^1.3.0", 2418 "triple-beam": "^1.3.0",
2419 "winston-transport": "^4.4.0" 2419 "winston-transport": "^4.4.0"
2420 } 2420 }
2421 }, 2421 },
2422 "winston-transport": { 2422 "winston-transport": {
2423 "version": "4.4.0", 2423 "version": "4.4.0",
2424 "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", 2424 "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz",
2425 "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", 2425 "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==",
2426 "requires": { 2426 "requires": {
2427 "readable-stream": "^2.3.7", 2427 "readable-stream": "^2.3.7",
2428 "triple-beam": "^1.2.0" 2428 "triple-beam": "^1.2.0"
2429 }, 2429 },
2430 "dependencies": { 2430 "dependencies": {
2431 "readable-stream": { 2431 "readable-stream": {
2432 "version": "2.3.7", 2432 "version": "2.3.7",
2433 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 2433 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
2434 "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 2434 "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
2435 "requires": { 2435 "requires": {
2436 "core-util-is": "~1.0.0", 2436 "core-util-is": "~1.0.0",
2437 "inherits": "~2.0.3", 2437 "inherits": "~2.0.3",
2438 "isarray": "~1.0.0", 2438 "isarray": "~1.0.0",
2439 "process-nextick-args": "~2.0.0", 2439 "process-nextick-args": "~2.0.0",
2440 "safe-buffer": "~5.1.1", 2440 "safe-buffer": "~5.1.1",
2441 "string_decoder": "~1.1.1", 2441 "string_decoder": "~1.1.1",
2442 "util-deprecate": "~1.0.1" 2442 "util-deprecate": "~1.0.1"
2443 } 2443 }
2444 }, 2444 },
2445 "string_decoder": { 2445 "string_decoder": {
2446 "version": "1.1.1", 2446 "version": "1.1.1",
2447 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2447 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2448 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2448 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2449 "requires": { 2449 "requires": {
2450 "safe-buffer": "~5.1.0" 2450 "safe-buffer": "~5.1.0"
2451 } 2451 }
2452 } 2452 }
2453 } 2453 }
2454 }, 2454 },
2455 "word-wrap": { 2455 "word-wrap": {
2456 "version": "1.2.3", 2456 "version": "1.2.3",
2457 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 2457 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
2458 "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 2458 "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
2459 "dev": true 2459 "dev": true
2460 }, 2460 },
2461 "wordwrap": { 2461 "wordwrap": {
2462 "version": "1.0.0", 2462 "version": "1.0.0",
2463 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 2463 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
2464 "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" 2464 "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
2465 }, 2465 },
2466 "wrappy": { 2466 "wrappy": {
2467 "version": "1.0.2", 2467 "version": "1.0.2",
2468 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2468 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2469 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 2469 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
2470 }, 2470 },
2471 "wraptile": { 2471 "wraptile": {
2472 "version": "2.0.0", 2472 "version": "2.0.0",
2473 "resolved": "https://registry.npmjs.org/wraptile/-/wraptile-2.0.0.tgz", 2473 "resolved": "https://registry.npmjs.org/wraptile/-/wraptile-2.0.0.tgz",
2474 "integrity": "sha512-Jzt4wTT0DJGucp4VewhbT6YutpOfBh6Ab4r5hKWTvFYsNTCxPi0U8wOsesDk1CQ+VcHyaP36BzCiKRJTROJiTQ==" 2474 "integrity": "sha512-Jzt4wTT0DJGucp4VewhbT6YutpOfBh6Ab4r5hKWTvFYsNTCxPi0U8wOsesDk1CQ+VcHyaP36BzCiKRJTROJiTQ=="
2475 }, 2475 },
2476 "write": { 2476 "write": {
2477 "version": "1.0.3", 2477 "version": "1.0.3",
2478 "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", 2478 "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
2479 "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", 2479 "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
2480 "dev": true, 2480 "dev": true,
2481 "requires": { 2481 "requires": {
2482 "mkdirp": "^0.5.1" 2482 "mkdirp": "^0.5.1"
2483 } 2483 }
2484 }, 2484 },
2485 "yallist": { 2485 "yallist": {
2486 "version": "2.1.2", 2486 "version": "2.1.2",
2487 "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 2487 "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
2488 "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" 2488 "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
2489 }, 2489 },
2490 "zames": { 2490 "zames": {
2491 "version": "2.0.0", 2491 "version": "2.0.0",
2492 "resolved": "https://registry.npmjs.org/zames/-/zames-2.0.0.tgz", 2492 "resolved": "https://registry.npmjs.org/zames/-/zames-2.0.0.tgz",
2493 "integrity": "sha512-o9xURXaNLqnkZwk9f9uxraL/k1vXdcYDtJtmesJi0lcpyzkJKhBVyg3ohLfdXEDeHWj/7DfZ6/axINQyaKZGOQ==", 2493 "integrity": "sha512-o9xURXaNLqnkZwk9f9uxraL/k1vXdcYDtJtmesJi0lcpyzkJKhBVyg3ohLfdXEDeHWj/7DfZ6/axINQyaKZGOQ==",
2494 "requires": { 2494 "requires": {
2495 "currify": "^2.0.0", 2495 "currify": "^2.0.0",
2496 "es6-promisify": "^6.0.0" 2496 "es6-promisify": "^6.0.0"
2497 } 2497 }
2498 } 2498 }
2499 } 2499 }
2500 } 2500 }
2501 2501
1 { 1 {
2 "name": "komodo-sdk", 2 "name": "komodo-sdk",
3 "version": "1.42.3", 3 "version": "1.43.0",
4 "description": "SDK for Komodo", 4 "description": "SDK for Komodo",
5 "main": "index.js", 5 "main": "index.js",
6 "scripts": { 6 "scripts": {
7 "test": "mocha", 7 "test": "mocha",
8 "postversion": "git push && git push --tags", 8 "postversion": "git push && git push --tags",
9 "version": "auto-changelog -p && git add CHANGELOG.md" 9 "version": "auto-changelog -p && git add CHANGELOG.md"
10 }, 10 },
11 "repository": { 11 "repository": {
12 "type": "git", 12 "type": "git",
13 "url": "git+https://gitlab.kodesumber.com/komodo/komodo-sdk.git" 13 "url": "git+https://gitlab.kodesumber.com/komodo/komodo-sdk.git"
14 }, 14 },
15 "keywords": [ 15 "keywords": [
16 "ppob", 16 "ppob",
17 "payment", 17 "payment",
18 "komodo" 18 "komodo"
19 ], 19 ],
20 "author": "Adhidarma Hadiwinoto <gua@adhisimon.org>", 20 "author": "Adhidarma Hadiwinoto <gua@adhisimon.org>",
21 "license": "ISC", 21 "license": "ISC",
22 "dependencies": { 22 "dependencies": {
23 "array-unique": "^0.3.2", 23 "array-unique": "^0.3.2",
24 "auto-changelog": "^2.3.0", 24 "auto-changelog": "^2.3.0",
25 "basic-auth": "^2.0.0", 25 "basic-auth": "^2.0.0",
26 "body-parser": "^1.18.2", 26 "body-parser": "^1.18.2",
27 "dot-object": "^1.7.0", 27 "dot-object": "^1.7.0",
28 "express": "^4.17.1", 28 "express": "^4.17.1",
29 "express-session": "^1.15.6", 29 "express-session": "^1.15.6",
30 "fs-copy-file": "^2.1.2", 30 "fs-copy-file": "^2.1.2",
31 "json-query": "^2.2.2", 31 "json-query": "^2.2.2",
32 "lru-cache": "^4.1.1", 32 "lru-cache": "^4.1.1",
33 "macaddress": "^0.2.9", 33 "macaddress": "^0.2.9",
34 "moment": "^2.24.0", 34 "moment": "^2.24.0",
35 "node-machine-id": "^1.1.10", 35 "node-machine-id": "^1.1.10",
36 "node-natural-sort": "^0.8.6", 36 "node-natural-sort": "^0.8.6",
37 "numeral": "^2.0.6", 37 "numeral": "^2.0.6",
38 "nunjucks": "^3.2.3", 38 "nunjucks": "^3.2.3",
39 "pkginfo": "^0.4.1", 39 "pkginfo": "^0.4.1",
40 "redis": "^3.1.2", 40 "redis": "^3.1.2",
41 "request": "^2.88.0", 41 "request": "^2.88.0",
42 "sha1": "^1.1.1", 42 "sha1": "^1.1.1",
43 "simple-git": "^1.80.1", 43 "simple-git": "^1.80.1",
44 "strftime": "^0.10.0", 44 "strftime": "^0.10.0",
45 "string-natural-compare": "^2.0.2", 45 "string-natural-compare": "^2.0.2",
46 "tektrans-logger": "^1.1.3", 46 "tektrans-logger": "^1.1.3",
47 "uniqid": "^4.1.1", 47 "uniqid": "^4.1.1",
48 "uuid": "^3.1.0" 48 "uuid": "^3.1.0"
49 }, 49 },
50 "devDependencies": { 50 "devDependencies": {
51 "eslint": "^6.8.0" 51 "eslint": "^6.8.0"
52 } 52 }
53 } 53 }
54 54