@verdaccio/node-api 7.0.0-next.6 → 8.0.0-next-8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,229 @@
1
1
  # @verdaccio/node-api
2
2
 
3
+ ## 8.0.0-next-8.1
4
+
5
+ ### Patch Changes
6
+
7
+ - @verdaccio/server@8.0.0-next-8.1
8
+ - @verdaccio/server-fastify@8.0.0-next-8.1
9
+ - @verdaccio/core@8.0.0-next-8.1
10
+ - @verdaccio/config@8.0.0-next-8.1
11
+ - @verdaccio/logger@8.0.0-next-8.1
12
+
13
+ ## 8.0.0-next-8.0
14
+
15
+ ### Major Changes
16
+
17
+ - chore: move v7 next to v8 next
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies
22
+ - @verdaccio/server@8.0.0-next-8.0
23
+ - @verdaccio/server-fastify@8.0.0-next-8.0
24
+ - @verdaccio/logger@8.0.0-next-8.0
25
+ - @verdaccio/core@8.0.0-next-8.0
26
+ - @verdaccio/config@8.0.0-next-8.0
27
+
28
+ ## 7.0.0
29
+
30
+ ### Major Changes
31
+
32
+ - 47f61c6: feat!: bump to v7
33
+ - e7ebccb: update major dependencies, remove old nodejs support
34
+
35
+ ### Minor Changes
36
+
37
+ - bd8703e: feat: add migrateToSecureLegacySignature and remove enhancedLegacySignature property
38
+
39
+ ### Patch Changes
40
+
41
+ - 7c9f3cf: chore: improve startup logging
42
+ - Updated dependencies [47f61c6]
43
+ - Updated dependencies [10dd81f]
44
+ - Updated dependencies [6e764e3]
45
+ - Updated dependencies [8c10a3e]
46
+ - Updated dependencies [daceb6d]
47
+ - Updated dependencies [e7ebccb]
48
+ - Updated dependencies [c9962fe]
49
+ - Updated dependencies [f047cc8]
50
+ - Updated dependencies [a99a4bb]
51
+ - Updated dependencies [a05a7d8]
52
+ - Updated dependencies [7c9f3cf]
53
+ - Updated dependencies [c31aec8]
54
+ - Updated dependencies [3ca4056]
55
+ - Updated dependencies [bd8703e]
56
+ - Updated dependencies [4d96324]
57
+ - @verdaccio/config@7.0.0
58
+ - @verdaccio/core@7.0.0
59
+ - @verdaccio/logger@7.0.0
60
+ - @verdaccio/server@7.0.0
61
+ - @verdaccio/server-fastify@7.0.0
62
+
63
+ ## 7.0.0-next-8.21
64
+
65
+ ### Patch Changes
66
+
67
+ - 7c9f3cf: chore: improve startup logging
68
+ - Updated dependencies [8c10a3e]
69
+ - Updated dependencies [a05a7d8]
70
+ - Updated dependencies [7c9f3cf]
71
+ - @verdaccio/config@7.0.0-next-8.21
72
+ - @verdaccio/server@7.0.0-next-8.21
73
+ - @verdaccio/core@7.0.0-next-8.21
74
+ - @verdaccio/server-fastify@7.0.0-next-8.21
75
+ - @verdaccio/logger@7.0.0-next-8.21
76
+
77
+ ## 7.0.0-next-7.20
78
+
79
+ ### Patch Changes
80
+
81
+ - @verdaccio/server@7.0.0-next-7.20
82
+ - @verdaccio/server-fastify@7.0.0-next-7.20
83
+ - @verdaccio/core@7.0.0-next-7.20
84
+ - @verdaccio/config@7.0.0-next-7.20
85
+ - @verdaccio/logger@7.0.0-next-7.20
86
+
87
+ ## 7.0.0-next-7.19
88
+
89
+ ### Patch Changes
90
+
91
+ - Updated dependencies [c31aec8]
92
+ - @verdaccio/config@7.0.0-next-7.19
93
+ - @verdaccio/server@7.0.0-next-7.19
94
+ - @verdaccio/server-fastify@7.0.0-next-7.19
95
+ - @verdaccio/core@7.0.0-next-7.19
96
+ - @verdaccio/logger@7.0.0-next-7.19
97
+
98
+ ## 7.0.0-next-7.18
99
+
100
+ ### Patch Changes
101
+
102
+ - Updated dependencies [10dd81f]
103
+ - @verdaccio/config@7.0.0-next-7.18
104
+ - @verdaccio/core@7.0.0-next-7.18
105
+ - @verdaccio/logger@7.0.0-next-7.18
106
+ - @verdaccio/server-fastify@7.0.0-next-7.18
107
+ - @verdaccio/server@7.0.0-next-7.18
108
+
109
+ ## 7.0.0-next-7.17
110
+
111
+ ### Patch Changes
112
+
113
+ - Updated dependencies [6e764e3]
114
+ - @verdaccio/config@7.0.0-next-7.17
115
+ - @verdaccio/core@7.0.0-next-7.17
116
+ - @verdaccio/logger@7.0.0-next-7.17
117
+ - @verdaccio/server-fastify@7.0.0-next-7.17
118
+ - @verdaccio/server@7.0.0-next-7.17
119
+
120
+ ## 7.0.0-next-7.16
121
+
122
+ ### Patch Changes
123
+
124
+ - @verdaccio/server@7.0.0-next-7.16
125
+ - @verdaccio/server-fastify@7.0.0-next-7.16
126
+ - @verdaccio/logger@7.0.0-next-7.16
127
+ - @verdaccio/core@7.0.0-next-7.16
128
+ - @verdaccio/config@7.0.0-next-7.16
129
+
130
+ ## 7.0.0-next-7.15
131
+
132
+ ### Minor Changes
133
+
134
+ - bd8703e: feat: add migrateToSecureLegacySignature and remove enhancedLegacySignature property
135
+
136
+ ### Patch Changes
137
+
138
+ - Updated dependencies [bd8703e]
139
+ - @verdaccio/core@7.0.0-next-7.15
140
+ - @verdaccio/config@7.0.0-next-7.15
141
+ - @verdaccio/server-fastify@7.0.0-next-7.15
142
+ - @verdaccio/server@7.0.0-next-7.15
143
+ - @verdaccio/logger@7.0.0-next-7.15
144
+
145
+ ## 7.0.0-next-7.14
146
+
147
+ ### Patch Changes
148
+
149
+ - @verdaccio/server@7.0.0-next-7.14
150
+ - @verdaccio/server-fastify@7.0.0-next-7.14
151
+ - @verdaccio/core@7.0.0-next-7.14
152
+ - @verdaccio/config@7.0.0-next-7.14
153
+ - @verdaccio/logger@7.0.0-next-7.14
154
+
155
+ ## 7.0.0-next-7.13
156
+
157
+ ### Patch Changes
158
+
159
+ - Updated dependencies [a99a4bb]
160
+ - @verdaccio/config@7.0.0-next-7.13
161
+ - @verdaccio/server@7.0.0-next-7.13
162
+ - @verdaccio/server-fastify@7.0.0-next-7.13
163
+ - @verdaccio/logger@7.0.0-next-7.13
164
+ - @verdaccio/core@7.0.0-next-7.13
165
+
166
+ ## 7.0.0-next-7.12
167
+
168
+ ### Patch Changes
169
+
170
+ - @verdaccio/server@7.0.0-next-7.12
171
+ - @verdaccio/server-fastify@7.0.0-next-7.12
172
+ - @verdaccio/core@7.0.0-next-7.12
173
+ - @verdaccio/config@7.0.0-next-7.12
174
+ - @verdaccio/logger@7.0.0-next-7.12
175
+
176
+ ## 7.0.0-next-7.11
177
+
178
+ ### Patch Changes
179
+
180
+ - Updated dependencies [c9962fe]
181
+ - @verdaccio/config@7.0.0-next-7.11
182
+ - @verdaccio/server@7.0.0-next-7.11
183
+ - @verdaccio/server-fastify@7.0.0-next-7.11
184
+ - @verdaccio/core@7.0.0-next-7.11
185
+ - @verdaccio/logger@7.0.0-next-7.11
186
+
187
+ ## 7.0.0-next-7.10
188
+
189
+ ### Patch Changes
190
+
191
+ - @verdaccio/core@7.0.0-next-7.10
192
+ - @verdaccio/config@7.0.0-next-7.10
193
+ - @verdaccio/server@7.0.0-next-7.10
194
+ - @verdaccio/server-fastify@7.0.0-next-7.10
195
+ - @verdaccio/logger@7.0.0-next-7.10
196
+
197
+ ## 7.0.0-next-7.9
198
+
199
+ ### Patch Changes
200
+
201
+ - @verdaccio/server@7.0.0-next-7.9
202
+ - @verdaccio/server-fastify@7.0.0-next-7.9
203
+ - @verdaccio/core@7.0.0-next-7.9
204
+ - @verdaccio/config@7.0.0-next-7.9
205
+ - @verdaccio/logger@7.0.0-next-7.9
206
+
207
+ ## 7.0.0-next-7.8
208
+
209
+ ### Patch Changes
210
+
211
+ - @verdaccio/server@7.0.0-next-7.8
212
+ - @verdaccio/core@7.0.0-next-7.8
213
+ - @verdaccio/config@7.0.0-next-7.8
214
+ - @verdaccio/server-fastify@7.0.0-next-7.8
215
+ - @verdaccio/logger@7.0.0-next-7.8
216
+
217
+ ## 7.0.0-next-7.7
218
+
219
+ ### Patch Changes
220
+
221
+ - @verdaccio/core@7.0.0-next-7.7
222
+ - @verdaccio/config@7.0.0-next-7.7
223
+ - @verdaccio/server@7.0.0-next-7.7
224
+ - @verdaccio/server-fastify@7.0.0-next-7.7
225
+ - @verdaccio/logger@7.0.0-next-7.7
226
+
3
227
  ## 7.0.0-next.6
4
228
 
5
229
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"cli-utils.js","names":["_core","require","DEFAULT_PORT","exports","DEFAULT_PROTOCOL","DEFAULT_DOMAIN","parseAddress","urlAddress","urlPattern","exec","proto","host","port","path","getListListenAddresses","argListen","configListen","addresses","Array","isArray","process","emitWarning","map","addr","parsedAddr","warningUtils","emit","Codes","VERWAR004","filter","Boolean"],"sources":["../src/cli-utils.ts"],"sourcesContent":["import { warningUtils } from '@verdaccio/core';\n\nexport const DEFAULT_PORT = '4873';\nexport const DEFAULT_PROTOCOL = 'http';\nexport const DEFAULT_DOMAIN = 'localhost';\n/**\n * Parse an internet address\n * Allow:\n - https:localhost:1234 - protocol + host + port\n - localhost:1234 - host + port\n - 1234 - port\n - http::1234 - protocol + port\n - https://localhost:443/ - full url + https\n - http://[::1]:443/ - ipv6\n - unix:/tmp/http.sock - unix sockets\n - https://unix:/tmp/http.sock - unix sockets (https)\n * @param {*} urlAddress the internet address definition\n * @return {Object|Null} literal object that represent the address parsed\n */\nexport function parseAddress(urlAddress: any): any {\n //\n // TODO: refactor it to something more reasonable?\n //\n // protocol : // ( host )|( ipv6 ): port /\n let urlPattern = /^((https?):(\\/\\/)?)?((([^\\/:]*)|\\[([^\\[\\]]+)\\]):)?(\\d+)\\/?$/.exec(urlAddress);\n\n if (urlPattern) {\n return {\n proto: urlPattern[2] || DEFAULT_PROTOCOL,\n host: urlPattern[6] || urlPattern[7] || DEFAULT_DOMAIN,\n port: urlPattern[8] || DEFAULT_PORT,\n };\n }\n\n urlPattern = /^((https?):(\\/\\/)?)?unix:(.*)$/.exec(urlAddress);\n\n if (urlPattern) {\n return {\n proto: urlPattern[2] || DEFAULT_PROTOCOL,\n path: urlPattern[4],\n };\n }\n\n return null;\n}\n\n/**\n * Retrieve all addresses defined in the config file.\n * Verdaccio is able to listen multiple ports\n * @param {String} argListen\n * @param {String} configListen\n * eg:\n * listen:\n - localhost:5555\n - localhost:5557\n @return {Array}\n */\nexport function getListListenAddresses(argListen: string | void, configListen: any): any {\n // command line || config file || default\n let addresses;\n if (argListen) {\n addresses = [argListen];\n } else if (Array.isArray(configListen)) {\n addresses = configListen;\n process.emitWarning('multiple addresses will be deprecated in the next major, only use one');\n } else if (configListen) {\n addresses = [configListen];\n } else {\n addresses = [DEFAULT_PORT];\n }\n addresses = addresses\n .map(function (addr): string {\n const parsedAddr = parseAddress(addr);\n\n if (!parsedAddr) {\n warningUtils.emit(warningUtils.Codes.VERWAR004, addr);\n }\n\n return parsedAddr;\n })\n .filter(Boolean);\n\n return addresses;\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,MAAM;AAC3B,MAAME,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,GAAG,MAAM;AAC/B,MAAMC,cAAc,GAAAF,OAAA,CAAAE,cAAA,GAAG,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,YAAYA,CAACC,UAAe,EAAO;EACjD;EACA;EACA;EACA;EACA,IAAIC,UAAU,GAAG,6DAA6D,CAACC,IAAI,CAACF,UAAU,CAAC;EAE/F,IAAIC,UAAU,EAAE;IACd,OAAO;MACLE,KAAK,EAAEF,UAAU,CAAC,CAAC,CAAC,IAAIJ,gBAAgB;MACxCO,IAAI,EAAEH,UAAU,CAAC,CAAC,CAAC,IAAIA,UAAU,CAAC,CAAC,CAAC,IAAIH,cAAc;MACtDO,IAAI,EAAEJ,UAAU,CAAC,CAAC,CAAC,IAAIN;IACzB,CAAC;EACH;EAEAM,UAAU,GAAG,gCAAgC,CAACC,IAAI,CAACF,UAAU,CAAC;EAE9D,IAAIC,UAAU,EAAE;IACd,OAAO;MACLE,KAAK,EAAEF,UAAU,CAAC,CAAC,CAAC,IAAIJ,gBAAgB;MACxCS,IAAI,EAAEL,UAAU,CAAC,CAAC;IACpB,CAAC;EACH;EAEA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,sBAAsBA,CAACC,SAAwB,EAAEC,YAAiB,EAAO;EACvF;EACA,IAAIC,SAAS;EACb,IAAIF,SAAS,EAAE;IACbE,SAAS,GAAG,CAACF,SAAS,CAAC;EACzB,CAAC,MAAM,IAAIG,KAAK,CAACC,OAAO,CAACH,YAAY,CAAC,EAAE;IACtCC,SAAS,GAAGD,YAAY;IACxBI,OAAO,CAACC,WAAW,CAAC,uEAAuE,CAAC;EAC9F,CAAC,MAAM,IAAIL,YAAY,EAAE;IACvBC,SAAS,GAAG,CAACD,YAAY,CAAC;EAC5B,CAAC,MAAM;IACLC,SAAS,GAAG,CAACf,YAAY,CAAC;EAC5B;EACAe,SAAS,GAAGA,SAAS,CAClBK,GAAG,CAAC,UAAUC,IAAI,EAAU;IAC3B,MAAMC,UAAU,GAAGlB,YAAY,CAACiB,IAAI,CAAC;IAErC,IAAI,CAACC,UAAU,EAAE;MACfC,kBAAY,CAACC,IAAI,CAACD,kBAAY,CAACE,KAAK,CAACC,SAAS,EAAEL,IAAI,CAAC;IACvD;IAEA,OAAOC,UAAU;EACnB,CAAC,CAAC,CACDK,MAAM,CAACC,OAAO,CAAC;EAElB,OAAOb,SAAS;AAClB"}
1
+ {"version":3,"file":"cli-utils.js","names":["_core","require","DEFAULT_PORT","exports","DEFAULT_PROTOCOL","DEFAULT_DOMAIN","parseAddress","urlAddress","urlPattern","exec","proto","host","port","path","getListListenAddresses","argListen","configListen","addresses","Array","isArray","process","emitWarning","map","addr","parsedAddr","warningUtils","emit","Codes","VERWAR004","filter","Boolean"],"sources":["../src/cli-utils.ts"],"sourcesContent":["import { warningUtils } from '@verdaccio/core';\n\nexport const DEFAULT_PORT = '4873';\nexport const DEFAULT_PROTOCOL = 'http';\nexport const DEFAULT_DOMAIN = 'localhost';\n/**\n * Parse an internet address\n * Allow:\n - https:localhost:1234 - protocol + host + port\n - localhost:1234 - host + port\n - 1234 - port\n - http::1234 - protocol + port\n - https://localhost:443/ - full url + https\n - http://[::1]:443/ - ipv6\n - unix:/tmp/http.sock - unix sockets\n - https://unix:/tmp/http.sock - unix sockets (https)\n * @param {*} urlAddress the internet address definition\n * @return {Object|Null} literal object that represent the address parsed\n */\nexport function parseAddress(urlAddress: any): any {\n //\n // TODO: refactor it to something more reasonable?\n //\n // protocol : // ( host )|( ipv6 ): port /\n let urlPattern = /^((https?):(\\/\\/)?)?((([^\\/:]*)|\\[([^\\[\\]]+)\\]):)?(\\d+)\\/?$/.exec(urlAddress);\n\n if (urlPattern) {\n return {\n proto: urlPattern[2] || DEFAULT_PROTOCOL,\n host: urlPattern[6] || urlPattern[7] || DEFAULT_DOMAIN,\n port: urlPattern[8] || DEFAULT_PORT,\n };\n }\n\n urlPattern = /^((https?):(\\/\\/)?)?unix:(.*)$/.exec(urlAddress);\n\n if (urlPattern) {\n return {\n proto: urlPattern[2] || DEFAULT_PROTOCOL,\n path: urlPattern[4],\n };\n }\n\n return null;\n}\n\n/**\n * Retrieve all addresses defined in the config file.\n * Verdaccio is able to listen multiple ports\n * @param {String} argListen\n * @param {String} configListen\n * eg:\n * listen:\n - localhost:5555\n - localhost:5557\n @return {Array}\n */\nexport function getListListenAddresses(argListen: string | void, configListen: any): any {\n // command line || config file || default\n let addresses;\n if (argListen) {\n addresses = [argListen];\n } else if (Array.isArray(configListen)) {\n addresses = configListen;\n process.emitWarning('multiple addresses will be deprecated in the next major, only use one');\n } else if (configListen) {\n addresses = [configListen];\n } else {\n addresses = [DEFAULT_PORT];\n }\n addresses = addresses\n .map(function (addr): string {\n const parsedAddr = parseAddress(addr);\n\n if (!parsedAddr) {\n warningUtils.emit(warningUtils.Codes.VERWAR004, addr);\n }\n\n return parsedAddr;\n })\n .filter(Boolean);\n\n return addresses;\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,MAAM;AAC3B,MAAME,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,GAAG,MAAM;AAC/B,MAAMC,cAAc,GAAAF,OAAA,CAAAE,cAAA,GAAG,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,YAAYA,CAACC,UAAe,EAAO;EACjD;EACA;EACA;EACA;EACA,IAAIC,UAAU,GAAG,6DAA6D,CAACC,IAAI,CAACF,UAAU,CAAC;EAE/F,IAAIC,UAAU,EAAE;IACd,OAAO;MACLE,KAAK,EAAEF,UAAU,CAAC,CAAC,CAAC,IAAIJ,gBAAgB;MACxCO,IAAI,EAAEH,UAAU,CAAC,CAAC,CAAC,IAAIA,UAAU,CAAC,CAAC,CAAC,IAAIH,cAAc;MACtDO,IAAI,EAAEJ,UAAU,CAAC,CAAC,CAAC,IAAIN;IACzB,CAAC;EACH;EAEAM,UAAU,GAAG,gCAAgC,CAACC,IAAI,CAACF,UAAU,CAAC;EAE9D,IAAIC,UAAU,EAAE;IACd,OAAO;MACLE,KAAK,EAAEF,UAAU,CAAC,CAAC,CAAC,IAAIJ,gBAAgB;MACxCS,IAAI,EAAEL,UAAU,CAAC,CAAC;IACpB,CAAC;EACH;EAEA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,sBAAsBA,CAACC,SAAwB,EAAEC,YAAiB,EAAO;EACvF;EACA,IAAIC,SAAS;EACb,IAAIF,SAAS,EAAE;IACbE,SAAS,GAAG,CAACF,SAAS,CAAC;EACzB,CAAC,MAAM,IAAIG,KAAK,CAACC,OAAO,CAACH,YAAY,CAAC,EAAE;IACtCC,SAAS,GAAGD,YAAY;IACxBI,OAAO,CAACC,WAAW,CAAC,uEAAuE,CAAC;EAC9F,CAAC,MAAM,IAAIL,YAAY,EAAE;IACvBC,SAAS,GAAG,CAACD,YAAY,CAAC;EAC5B,CAAC,MAAM;IACLC,SAAS,GAAG,CAACf,YAAY,CAAC;EAC5B;EACAe,SAAS,GAAGA,SAAS,CAClBK,GAAG,CAAC,UAAUC,IAAI,EAAU;IAC3B,MAAMC,UAAU,GAAGlB,YAAY,CAACiB,IAAI,CAAC;IAErC,IAAI,CAACC,UAAU,EAAE;MACfC,kBAAY,CAACC,IAAI,CAACD,kBAAY,CAACE,KAAK,CAACC,SAAS,EAAEL,IAAI,CAAC;IACvD;IAEA,OAAOC,UAAU;EACnB,CAAC,CAAC,CACDK,MAAM,CAACC,OAAO,CAAC;EAElB,OAAOb,SAAS;AAClB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"experiments.js","names":["_logger","require","displayExperimentsInfoBox","flags","experimentList","Object","keys","length","logger","warn","forEach","experiment","info"],"sources":["../src/experiments.ts"],"sourcesContent":["import { logger } from '@verdaccio/logger';\n\nexport function displayExperimentsInfoBox(flags) {\n if (!flags) {\n return;\n }\n\n const experimentList = Object.keys(flags);\n if (experimentList.length >= 1) {\n logger.warn(\n // eslint-disable-next-line max-len\n `experiments are enabled, it is recommended do not use experiments in production comment out this section to disable it`\n );\n experimentList.forEach((experiment) => {\n // eslint-disable-next-line max-len\n logger.info(\n `support for experiment [${experiment}] ${\n flags[experiment] ? 'is enabled' : ' is disabled'\n }`\n );\n });\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEO,SAASC,yBAAyBA,CAACC,KAAK,EAAE;EAC/C,IAAI,CAACA,KAAK,EAAE;IACV;EACF;EAEA,MAAMC,cAAc,GAAGC,MAAM,CAACC,IAAI,CAACH,KAAK,CAAC;EACzC,IAAIC,cAAc,CAACG,MAAM,IAAI,CAAC,EAAE;IAC9BC,cAAM,CAACC,IAAI;IACT;IACC,wHACH,CAAC;IACDL,cAAc,CAACM,OAAO,CAAEC,UAAU,IAAK;MACrC;MACAH,cAAM,CAACI,IAAI,CACR,2BAA0BD,UAAW,KACpCR,KAAK,CAACQ,UAAU,CAAC,GAAG,YAAY,GAAG,cACpC,EACH,CAAC;IACH,CAAC,CAAC;EACJ;AACF"}
1
+ {"version":3,"file":"experiments.js","names":["_logger","require","displayExperimentsInfoBox","flags","experimentList","Object","keys","length","logger","warn","forEach","experiment","info"],"sources":["../src/experiments.ts"],"sourcesContent":["import { logger } from '@verdaccio/logger';\n\nexport function displayExperimentsInfoBox(flags) {\n if (!flags) {\n return;\n }\n\n const experimentList = Object.keys(flags);\n if (experimentList.length >= 1) {\n logger.warn(\n // eslint-disable-next-line max-len\n `experiments are enabled, it is recommended do not use experiments in production comment out this section to disable it`\n );\n experimentList.forEach((experiment) => {\n // eslint-disable-next-line max-len\n logger.info(\n `support for experiment [${experiment}] ${\n flags[experiment] ? 'is enabled' : ' is disabled'\n }`\n );\n });\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEO,SAASC,yBAAyBA,CAACC,KAAK,EAAE;EAC/C,IAAI,CAACA,KAAK,EAAE;IACV;EACF;EAEA,MAAMC,cAAc,GAAGC,MAAM,CAACC,IAAI,CAACH,KAAK,CAAC;EACzC,IAAIC,cAAc,CAACG,MAAM,IAAI,CAAC,EAAE;IAC9BC,cAAM,CAACC,IAAI;IACT;IACA,wHACF,CAAC;IACDL,cAAc,CAACM,OAAO,CAAEC,UAAU,IAAK;MACrC;MACAH,cAAM,CAACI,IAAI,CACT,2BAA2BD,UAAU,KACnCR,KAAK,CAACQ,UAAU,CAAC,GAAG,YAAY,GAAG,cAAc,EAErD,CAAC;IACH,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_server","require"],"sources":["../src/index.ts"],"sourcesContent":["export { initServer, runServer } from './server';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_server","require"],"sources":["../src/index.ts"],"sourcesContent":["export { initServer, runServer } from './server';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA","ignoreList":[]}
package/build/server.js CHANGED
@@ -21,8 +21,8 @@ var _serverFastify = _interopRequireDefault(require("@verdaccio/server-fastify")
21
21
  var _cliUtils = require("./cli-utils");
22
22
  var _experiments = require("./experiments");
23
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
26
26
  /* eslint-disable */
27
27
 
28
28
  const debug = (0, _debug.default)('verdaccio:node-api');
@@ -89,6 +89,19 @@ function createServerFactory(config, addr, app) {
89
89
  debug('http enabled');
90
90
  serverFactory = _http.default.createServer(app);
91
91
  }
92
+
93
+ // List of all routes registered in the app
94
+ function printRoutes(layer) {
95
+ if (layer.route) {
96
+ debug('%s (%s)', layer.route.path, Object.keys(layer.route.methods).join(', '));
97
+ } else if (layer.name === 'router') {
98
+ layer.handle.stack.forEach(nestedLayer => {
99
+ printRoutes(nestedLayer);
100
+ });
101
+ }
102
+ }
103
+ debug('registered routes:');
104
+ app._router.stack.forEach(printRoutes);
92
105
  if (config.server && typeof config.server.keepAliveTimeout !== 'undefined' &&
93
106
  // @ts-ignore
94
107
  config.server.keepAliveTimeout !== 'null') {
@@ -145,8 +158,12 @@ async function initServer(config, port, version, pkgName) {
145
158
  port: addr.port,
146
159
  pathname: '/'
147
160
  })}`;
148
- logger.info(`http address ${addressServer}`);
149
- logger.info(`version: ${version}`);
161
+ logger.info({
162
+ addressServer
163
+ }, 'http address: @{addressServer}');
164
+ logger.info({
165
+ version
166
+ }, 'version: @{version}');
150
167
  resolve();
151
168
  }).on('error', function (err) {
152
169
  reject(err);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","names":["_constants","_interopRequireDefault","require","_debug","_fs","_http","_https","_lodash","_interopRequireWildcard","_url","_config","_core","_logger","_server","_serverFastify","_cliUtils","_experiments","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","debug","buildDebug","unlinkAddressPath","addr","path","fs","existsSync","unlinkSync","createServerFactory","config","app","serverFactory","proto","httpsOptions","secureOptions","constants","SSL_OP_NO_SSLv2","SSL_OP_NO_SSLv3","keyCertConfig","https","pfxConfig","key","cert","pfx","Error","passphrase","assign","readFileSync","ca","createServer","err","message","http","server","keepAliveTimeout","initServer","port","version","pkgName","Promise","resolve","reject","getListListenAddresses","listen","logger","setup","log","displayExperimentsInfoBox","flags","process","env","VERDACCIO_SERVER","fastifyServer","host","expressServer","isFunction","send","verdaccio_started","addressServer","url","format","protocol","pathname","hostname","info","on","exitCode","handleShutdownGracefully","close","exit","signal","once","runServer","configurationParsed","undefined","configPathLocation","findConfigFile","parseConfigFile","_","isObject","API_ERROR","CONFIG_BAD_FORMAT"],"sources":["../src/server.ts"],"sourcesContent":["/* eslint-disable */\nimport constants from 'constants';\nimport buildDebug from 'debug';\nimport fs from 'fs';\nimport http from 'http';\nimport https from 'https';\nimport _, { assign, isFunction } from 'lodash';\nimport url from 'url';\n\nimport { findConfigFile, parseConfigFile } from '@verdaccio/config';\nimport { API_ERROR } from '@verdaccio/core';\nimport { setup } from '@verdaccio/logger';\nimport expressServer from '@verdaccio/server';\nimport fastifyServer from '@verdaccio/server-fastify';\nimport { ConfigYaml, HttpsConfKeyCert, HttpsConfPfx } from '@verdaccio/types';\n\nimport { getListListenAddresses } from './cli-utils';\nimport { displayExperimentsInfoBox } from './experiments';\n\nconst debug = buildDebug('verdaccio:node-api');\n\nfunction unlinkAddressPath(addr) {\n if (addr.path && fs.existsSync(addr.path)) {\n fs.unlinkSync(addr.path);\n }\n}\n\n/**\n * Return a native HTTP/HTTPS server instance\n * @param config\n * @param addr\n * @param app\n */\nexport function createServerFactory(config: ConfigYaml, addr, app) {\n let serverFactory;\n if (addr.proto === 'https') {\n debug('https enabled');\n try {\n let httpsOptions = {\n // disable insecure SSLv2 and SSLv3\n secureOptions: constants.SSL_OP_NO_SSLv2 | constants.SSL_OP_NO_SSLv3,\n };\n\n const keyCertConfig = config.https as HttpsConfKeyCert;\n const pfxConfig = config.https as HttpsConfPfx;\n\n // https must either have key and cert or a pfx and (optionally) a passphrase\n if (!((keyCertConfig.key && keyCertConfig.cert) || pfxConfig.pfx)) {\n // logHTTPSError(configPath);\n throw Error('bad format https configuration');\n }\n\n if (pfxConfig.pfx) {\n const { pfx, passphrase } = pfxConfig;\n httpsOptions = assign(httpsOptions, {\n pfx: fs.readFileSync(pfx),\n passphrase: passphrase || '',\n });\n } else {\n const { key, cert, ca } = keyCertConfig;\n httpsOptions = assign(httpsOptions, {\n key: fs.readFileSync(key),\n cert: fs.readFileSync(cert),\n ...(ca && {\n ca: fs.readFileSync(ca),\n }),\n });\n }\n // TODO: enable http2 as feature\n // if (config.server.http2) <-- check if force http2\n serverFactory = https.createServer(httpsOptions, app);\n } catch (err: any) {\n throw new Error(`cannot create https server: ${err.message}`);\n }\n } else {\n // http\n debug('http enabled');\n serverFactory = http.createServer(app);\n }\n\n if (\n config.server &&\n typeof config.server.keepAliveTimeout !== 'undefined' &&\n // @ts-ignore\n config.server.keepAliveTimeout !== 'null'\n ) {\n // library definition for node is not up to date (doesn't contain recent 8.0 changes)\n serverFactory.keepAliveTimeout = config.server.keepAliveTimeout * 1000;\n }\n // FIXE: I could not find the reason of this code.\n unlinkAddressPath(addr);\n\n return serverFactory;\n}\n\n/**\n * Start the server on the port defined\n * @param config\n * @param port\n * @param version\n * @param pkgName\n */\nexport async function initServer(\n config: ConfigYaml,\n port: string | void,\n version: string,\n pkgName: string\n): Promise<void> {\n return new Promise(async (resolve, reject) => {\n // FIXME: get only the first match, the multiple address will be removed\n const [addr] = getListListenAddresses(port, config.listen);\n const logger = setup(config?.log as any);\n displayExperimentsInfoBox(config.flags);\n\n let app;\n if (process.env.VERDACCIO_SERVER === 'fastify') {\n app = await fastifyServer(config);\n app.listen({ port: addr.port, host: addr.host }, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n } else {\n app = await expressServer(config);\n const serverFactory = createServerFactory(config, addr, app);\n serverFactory\n .listen(addr.port || addr.path, addr.host, (): void => {\n // send a message for test\n if (isFunction(process.send)) {\n process.send({\n verdaccio_started: true,\n });\n }\n const addressServer = `${\n addr.path\n ? url.format({\n protocol: 'unix',\n pathname: addr.path,\n })\n : url.format({\n protocol: addr.proto,\n hostname: addr.host,\n port: addr.port,\n pathname: '/',\n })\n }`;\n logger.info(`http address ${addressServer}`);\n logger.info(`version: ${version}`);\n resolve();\n })\n .on('error', function (err): void {\n reject(err);\n process.exitCode = 1;\n });\n function handleShutdownGracefully() {\n logger.info('received shutdown signal - closing server gracefully...');\n serverFactory.close(() => {\n logger.info('server closed.');\n process.exit(0);\n });\n }\n\n for (const signal of ['SIGINT', 'SIGTERM', 'SIGHUP']) {\n // Use once() so that receiving double signals exit the app.\n process.once(signal, handleShutdownGracefully);\n }\n }\n });\n}\n\n/**\n * Exposes a server factory to be instantiated programmatically.\n *\n ```ts\n const app = await runServer(); // default configuration\n const app = await runServer('./config/config.yaml');\n const app = await runServer({ configuration });\n app.listen(4000, (event) => {\n // do something\n });\n ```\n * @param config\n */\nexport async function runServer(config?: string | ConfigYaml): Promise<any> {\n let configurationParsed: ConfigYaml;\n if (config === undefined || typeof config === 'string') {\n const configPathLocation = findConfigFile(config);\n configurationParsed = parseConfigFile(configPathLocation);\n } else if (_.isObject(config)) {\n configurationParsed = config;\n } else {\n throw new Error(API_ERROR.CONFIG_BAD_FORMAT);\n }\n\n setup(configurationParsed.log as any);\n displayExperimentsInfoBox(configurationParsed.flags);\n // FIXME: get only the first match, the multiple address will be removed\n const [addr] = getListListenAddresses(undefined, configurationParsed.listen);\n const app = await expressServer(configurationParsed);\n return createServerFactory(configurationParsed, addr, app);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"server.js","names":["_constants","_interopRequireDefault","require","_debug","_fs","_http","_https","_lodash","_interopRequireWildcard","_url","_config","_core","_logger","_server","_serverFastify","_cliUtils","_experiments","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","debug","buildDebug","unlinkAddressPath","addr","path","fs","existsSync","unlinkSync","createServerFactory","config","app","serverFactory","proto","httpsOptions","secureOptions","constants","SSL_OP_NO_SSLv2","SSL_OP_NO_SSLv3","keyCertConfig","https","pfxConfig","key","cert","pfx","Error","passphrase","assign","readFileSync","ca","createServer","err","message","http","printRoutes","layer","route","keys","methods","join","name","handle","stack","forEach","nestedLayer","_router","server","keepAliveTimeout","initServer","port","version","pkgName","Promise","resolve","reject","getListListenAddresses","listen","logger","setup","log","displayExperimentsInfoBox","flags","process","env","VERDACCIO_SERVER","fastifyServer","host","expressServer","isFunction","send","verdaccio_started","addressServer","url","format","protocol","pathname","hostname","info","on","exitCode","handleShutdownGracefully","close","exit","signal","once","runServer","configurationParsed","undefined","configPathLocation","findConfigFile","parseConfigFile","_","isObject","API_ERROR","CONFIG_BAD_FORMAT"],"sources":["../src/server.ts"],"sourcesContent":["/* eslint-disable */\nimport constants from 'constants';\nimport buildDebug from 'debug';\nimport fs from 'fs';\nimport http from 'http';\nimport https from 'https';\nimport _, { assign, isFunction } from 'lodash';\nimport url from 'url';\n\nimport { findConfigFile, parseConfigFile } from '@verdaccio/config';\nimport { API_ERROR } from '@verdaccio/core';\nimport { setup } from '@verdaccio/logger';\nimport expressServer from '@verdaccio/server';\nimport fastifyServer from '@verdaccio/server-fastify';\nimport { ConfigYaml, HttpsConfKeyCert, HttpsConfPfx } from '@verdaccio/types';\n\nimport { getListListenAddresses } from './cli-utils';\nimport { displayExperimentsInfoBox } from './experiments';\n\nconst debug = buildDebug('verdaccio:node-api');\n\nfunction unlinkAddressPath(addr) {\n if (addr.path && fs.existsSync(addr.path)) {\n fs.unlinkSync(addr.path);\n }\n}\n\n/**\n * Return a native HTTP/HTTPS server instance\n * @param config\n * @param addr\n * @param app\n */\nexport function createServerFactory(config: ConfigYaml, addr, app) {\n let serverFactory;\n if (addr.proto === 'https') {\n debug('https enabled');\n try {\n let httpsOptions = {\n // disable insecure SSLv2 and SSLv3\n secureOptions: constants.SSL_OP_NO_SSLv2 | constants.SSL_OP_NO_SSLv3,\n };\n\n const keyCertConfig = config.https as HttpsConfKeyCert;\n const pfxConfig = config.https as HttpsConfPfx;\n\n // https must either have key and cert or a pfx and (optionally) a passphrase\n if (!((keyCertConfig.key && keyCertConfig.cert) || pfxConfig.pfx)) {\n // logHTTPSError(configPath);\n throw Error('bad format https configuration');\n }\n\n if (pfxConfig.pfx) {\n const { pfx, passphrase } = pfxConfig;\n httpsOptions = assign(httpsOptions, {\n pfx: fs.readFileSync(pfx),\n passphrase: passphrase || '',\n });\n } else {\n const { key, cert, ca } = keyCertConfig;\n httpsOptions = assign(httpsOptions, {\n key: fs.readFileSync(key),\n cert: fs.readFileSync(cert),\n ...(ca && {\n ca: fs.readFileSync(ca),\n }),\n });\n }\n // TODO: enable http2 as feature\n // if (config.server.http2) <-- check if force http2\n serverFactory = https.createServer(httpsOptions, app);\n } catch (err: any) {\n throw new Error(`cannot create https server: ${err.message}`);\n }\n } else {\n // http\n debug('http enabled');\n serverFactory = http.createServer(app);\n }\n\n // List of all routes registered in the app\n function printRoutes(layer) {\n if (layer.route) {\n debug('%s (%s)', layer.route.path, Object.keys(layer.route.methods).join(', '));\n } else if (layer.name === 'router') {\n layer.handle.stack.forEach((nestedLayer) => {\n printRoutes(nestedLayer);\n });\n }\n }\n\n debug('registered routes:');\n app._router.stack.forEach(printRoutes);\n\n if (\n config.server &&\n typeof config.server.keepAliveTimeout !== 'undefined' &&\n // @ts-ignore\n config.server.keepAliveTimeout !== 'null'\n ) {\n // library definition for node is not up to date (doesn't contain recent 8.0 changes)\n serverFactory.keepAliveTimeout = config.server.keepAliveTimeout * 1000;\n }\n // FIXE: I could not find the reason of this code.\n unlinkAddressPath(addr);\n\n return serverFactory;\n}\n\n/**\n * Start the server on the port defined\n * @param config\n * @param port\n * @param version\n * @param pkgName\n */\nexport async function initServer(\n config: ConfigYaml,\n port: string | void,\n version: string,\n pkgName: string\n): Promise<void> {\n return new Promise(async (resolve, reject) => {\n // FIXME: get only the first match, the multiple address will be removed\n const [addr] = getListListenAddresses(port, config.listen);\n const logger = setup(config?.log as any);\n displayExperimentsInfoBox(config.flags);\n\n let app;\n if (process.env.VERDACCIO_SERVER === 'fastify') {\n app = await fastifyServer(config);\n app.listen({ port: addr.port, host: addr.host }, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n } else {\n app = await expressServer(config);\n const serverFactory = createServerFactory(config, addr, app);\n serverFactory\n .listen(addr.port || addr.path, addr.host, (): void => {\n // send a message for test\n if (isFunction(process.send)) {\n process.send({\n verdaccio_started: true,\n });\n }\n const addressServer = `${\n addr.path\n ? url.format({\n protocol: 'unix',\n pathname: addr.path,\n })\n : url.format({\n protocol: addr.proto,\n hostname: addr.host,\n port: addr.port,\n pathname: '/',\n })\n }`;\n logger.info({ addressServer }, 'http address: @{addressServer}');\n logger.info({ version }, 'version: @{version}');\n resolve();\n })\n .on('error', function (err): void {\n reject(err);\n process.exitCode = 1;\n });\n function handleShutdownGracefully() {\n logger.info('received shutdown signal - closing server gracefully...');\n serverFactory.close(() => {\n logger.info('server closed.');\n process.exit(0);\n });\n }\n\n for (const signal of ['SIGINT', 'SIGTERM', 'SIGHUP']) {\n // Use once() so that receiving double signals exit the app.\n process.once(signal, handleShutdownGracefully);\n }\n }\n });\n}\n\n/**\n * Exposes a server factory to be instantiated programmatically.\n *\n ```ts\n const app = await runServer(); // default configuration\n const app = await runServer('./config/config.yaml');\n const app = await runServer({ configuration });\n app.listen(4000, (event) => {\n // do something\n });\n ```\n * @param config\n */\nexport async function runServer(config?: string | ConfigYaml): Promise<any> {\n let configurationParsed: ConfigYaml;\n if (config === undefined || typeof config === 'string') {\n const configPathLocation = findConfigFile(config);\n configurationParsed = parseConfigFile(configPathLocation);\n } else if (_.isObject(config)) {\n configurationParsed = config;\n } else {\n throw new Error(API_ERROR.CONFIG_BAD_FORMAT);\n }\n\n setup(configurationParsed.log as any);\n displayExperimentsInfoBox(configurationParsed.flags);\n // FIXME: get only the first match, the multiple address will be removed\n const [addr] = getListListenAddresses(undefined, configurationParsed.listen);\n const app = await expressServer(configurationParsed);\n return createServerFactory(configurationParsed, addr, app);\n}\n"],"mappings":";;;;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,GAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAC,uBAAA,CAAAN,OAAA;AACA,IAAAO,IAAA,GAAAR,sBAAA,CAAAC,OAAA;AAEA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,cAAA,GAAAb,sBAAA,CAAAC,OAAA;AAGA,IAAAa,SAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AAA0D,SAAAe,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAzB,uBAAAiB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAjB1D;;AAmBA,MAAMmB,KAAK,GAAG,IAAAC,cAAU,EAAC,oBAAoB,CAAC;AAE9C,SAASC,iBAAiBA,CAACC,IAAI,EAAE;EAC/B,IAAIA,IAAI,CAACC,IAAI,IAAIC,WAAE,CAACC,UAAU,CAACH,IAAI,CAACC,IAAI,CAAC,EAAE;IACzCC,WAAE,CAACE,UAAU,CAACJ,IAAI,CAACC,IAAI,CAAC;EAC1B;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,mBAAmBA,CAACC,MAAkB,EAAEN,IAAI,EAAEO,GAAG,EAAE;EACjE,IAAIC,aAAa;EACjB,IAAIR,IAAI,CAACS,KAAK,KAAK,OAAO,EAAE;IAC1BZ,KAAK,CAAC,eAAe,CAAC;IACtB,IAAI;MACF,IAAIa,YAAY,GAAG;QACjB;QACAC,aAAa,EAAEC,kBAAS,CAACC,eAAe,GAAGD,kBAAS,CAACE;MACvD,CAAC;MAED,MAAMC,aAAa,GAAGT,MAAM,CAACU,KAAyB;MACtD,MAAMC,SAAS,GAAGX,MAAM,CAACU,KAAqB;;MAE9C;MACA,IAAI,EAAGD,aAAa,CAACG,GAAG,IAAIH,aAAa,CAACI,IAAI,IAAKF,SAAS,CAACG,GAAG,CAAC,EAAE;QACjE;QACA,MAAMC,KAAK,CAAC,gCAAgC,CAAC;MAC/C;MAEA,IAAIJ,SAAS,CAACG,GAAG,EAAE;QACjB,MAAM;UAAEA,GAAG;UAAEE;QAAW,CAAC,GAAGL,SAAS;QACrCP,YAAY,GAAG,IAAAa,cAAM,EAACb,YAAY,EAAE;UAClCU,GAAG,EAAElB,WAAE,CAACsB,YAAY,CAACJ,GAAG,CAAC;UACzBE,UAAU,EAAEA,UAAU,IAAI;QAC5B,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,MAAM;UAAEJ,GAAG;UAAEC,IAAI;UAAEM;QAAG,CAAC,GAAGV,aAAa;QACvCL,YAAY,GAAG,IAAAa,cAAM,EAACb,YAAY,EAAE;UAClCQ,GAAG,EAAEhB,WAAE,CAACsB,YAAY,CAACN,GAAG,CAAC;UACzBC,IAAI,EAAEjB,WAAE,CAACsB,YAAY,CAACL,IAAI,CAAC;UAC3B,IAAIM,EAAE,IAAI;YACRA,EAAE,EAAEvB,WAAE,CAACsB,YAAY,CAACC,EAAE;UACxB,CAAC;QACH,CAAC,CAAC;MACJ;MACA;MACA;MACAjB,aAAa,GAAGQ,cAAK,CAACU,YAAY,CAAChB,YAAY,EAAEH,GAAG,CAAC;IACvD,CAAC,CAAC,OAAOoB,GAAQ,EAAE;MACjB,MAAM,IAAIN,KAAK,CAAC,+BAA+BM,GAAG,CAACC,OAAO,EAAE,CAAC;IAC/D;EACF,CAAC,MAAM;IACL;IACA/B,KAAK,CAAC,cAAc,CAAC;IACrBW,aAAa,GAAGqB,aAAI,CAACH,YAAY,CAACnB,GAAG,CAAC;EACxC;;EAEA;EACA,SAASuB,WAAWA,CAACC,KAAK,EAAE;IAC1B,IAAIA,KAAK,CAACC,KAAK,EAAE;MACfnC,KAAK,CAAC,SAAS,EAAEkC,KAAK,CAACC,KAAK,CAAC/B,IAAI,EAAEZ,MAAM,CAAC4C,IAAI,CAACF,KAAK,CAACC,KAAK,CAACE,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC,MAAM,IAAIJ,KAAK,CAACK,IAAI,KAAK,QAAQ,EAAE;MAClCL,KAAK,CAACM,MAAM,CAACC,KAAK,CAACC,OAAO,CAAEC,WAAW,IAAK;QAC1CV,WAAW,CAACU,WAAW,CAAC;MAC1B,CAAC,CAAC;IACJ;EACF;EAEA3C,KAAK,CAAC,oBAAoB,CAAC;EAC3BU,GAAG,CAACkC,OAAO,CAACH,KAAK,CAACC,OAAO,CAACT,WAAW,CAAC;EAEtC,IACExB,MAAM,CAACoC,MAAM,IACb,OAAOpC,MAAM,CAACoC,MAAM,CAACC,gBAAgB,KAAK,WAAW;EACrD;EACArC,MAAM,CAACoC,MAAM,CAACC,gBAAgB,KAAK,MAAM,EACzC;IACA;IACAnC,aAAa,CAACmC,gBAAgB,GAAGrC,MAAM,CAACoC,MAAM,CAACC,gBAAgB,GAAG,IAAI;EACxE;EACA;EACA5C,iBAAiB,CAACC,IAAI,CAAC;EAEvB,OAAOQ,aAAa;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeoC,UAAUA,CAC9BtC,MAAkB,EAClBuC,IAAmB,EACnBC,OAAe,EACfC,OAAe,EACA;EACf,OAAO,IAAIC,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;IAC5C;IACA,MAAM,CAAClD,IAAI,CAAC,GAAG,IAAAmD,gCAAsB,EAACN,IAAI,EAAEvC,MAAM,CAAC8C,MAAM,CAAC;IAC1D,MAAMC,MAAM,GAAG,IAAAC,aAAK,EAAChD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEiD,GAAU,CAAC;IACxC,IAAAC,sCAAyB,EAAClD,MAAM,CAACmD,KAAK,CAAC;IAEvC,IAAIlD,GAAG;IACP,IAAImD,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,SAAS,EAAE;MAC9CrD,GAAG,GAAG,MAAM,IAAAsD,sBAAa,EAACvD,MAAM,CAAC;MACjCC,GAAG,CAAC6C,MAAM,CAAC;QAAEP,IAAI,EAAE7C,IAAI,CAAC6C,IAAI;QAAEiB,IAAI,EAAE9D,IAAI,CAAC8D;MAAK,CAAC,EAAGnC,GAAG,IAAK;QACxD,IAAIA,GAAG,EAAE;UACPuB,MAAM,CAACvB,GAAG,CAAC;QACb,CAAC,MAAM;UACLsB,OAAO,CAAC,CAAC;QACX;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACL1C,GAAG,GAAG,MAAM,IAAAwD,eAAa,EAACzD,MAAM,CAAC;MACjC,MAAME,aAAa,GAAGH,mBAAmB,CAACC,MAAM,EAAEN,IAAI,EAAEO,GAAG,CAAC;MAC5DC,aAAa,CACV4C,MAAM,CAACpD,IAAI,CAAC6C,IAAI,IAAI7C,IAAI,CAACC,IAAI,EAAED,IAAI,CAAC8D,IAAI,EAAE,MAAY;QACrD;QACA,IAAI,IAAAE,kBAAU,EAACN,OAAO,CAACO,IAAI,CAAC,EAAE;UAC5BP,OAAO,CAACO,IAAI,CAAC;YACXC,iBAAiB,EAAE;UACrB,CAAC,CAAC;QACJ;QACA,MAAMC,aAAa,GAAG,GACpBnE,IAAI,CAACC,IAAI,GACLmE,YAAG,CAACC,MAAM,CAAC;UACTC,QAAQ,EAAE,MAAM;UAChBC,QAAQ,EAAEvE,IAAI,CAACC;QACjB,CAAC,CAAC,GACFmE,YAAG,CAACC,MAAM,CAAC;UACTC,QAAQ,EAAEtE,IAAI,CAACS,KAAK;UACpB+D,QAAQ,EAAExE,IAAI,CAAC8D,IAAI;UACnBjB,IAAI,EAAE7C,IAAI,CAAC6C,IAAI;UACf0B,QAAQ,EAAE;QACZ,CAAC,CAAC,EACN;QACFlB,MAAM,CAACoB,IAAI,CAAC;UAAEN;QAAc,CAAC,EAAE,gCAAgC,CAAC;QAChEd,MAAM,CAACoB,IAAI,CAAC;UAAE3B;QAAQ,CAAC,EAAE,qBAAqB,CAAC;QAC/CG,OAAO,CAAC,CAAC;MACX,CAAC,CAAC,CACDyB,EAAE,CAAC,OAAO,EAAE,UAAU/C,GAAG,EAAQ;QAChCuB,MAAM,CAACvB,GAAG,CAAC;QACX+B,OAAO,CAACiB,QAAQ,GAAG,CAAC;MACtB,CAAC,CAAC;MACJ,SAASC,wBAAwBA,CAAA,EAAG;QAClCvB,MAAM,CAACoB,IAAI,CAAC,yDAAyD,CAAC;QACtEjE,aAAa,CAACqE,KAAK,CAAC,MAAM;UACxBxB,MAAM,CAACoB,IAAI,CAAC,gBAAgB,CAAC;UAC7Bf,OAAO,CAACoB,IAAI,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC;MACJ;MAEA,KAAK,MAAMC,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;QACpD;QACArB,OAAO,CAACsB,IAAI,CAACD,MAAM,EAAEH,wBAAwB,CAAC;MAChD;IACF;EACF,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeK,SAASA,CAAC3E,MAA4B,EAAgB;EAC1E,IAAI4E,mBAA+B;EACnC,IAAI5E,MAAM,KAAK6E,SAAS,IAAI,OAAO7E,MAAM,KAAK,QAAQ,EAAE;IACtD,MAAM8E,kBAAkB,GAAG,IAAAC,sBAAc,EAAC/E,MAAM,CAAC;IACjD4E,mBAAmB,GAAG,IAAAI,uBAAe,EAACF,kBAAkB,CAAC;EAC3D,CAAC,MAAM,IAAIG,eAAC,CAACC,QAAQ,CAAClF,MAAM,CAAC,EAAE;IAC7B4E,mBAAmB,GAAG5E,MAAM;EAC9B,CAAC,MAAM;IACL,MAAM,IAAIe,KAAK,CAACoE,eAAS,CAACC,iBAAiB,CAAC;EAC9C;EAEA,IAAApC,aAAK,EAAC4B,mBAAmB,CAAC3B,GAAU,CAAC;EACrC,IAAAC,sCAAyB,EAAC0B,mBAAmB,CAACzB,KAAK,CAAC;EACpD;EACA,MAAM,CAACzD,IAAI,CAAC,GAAG,IAAAmD,gCAAsB,EAACgC,SAAS,EAAED,mBAAmB,CAAC9B,MAAM,CAAC;EAC5E,MAAM7C,GAAG,GAAG,MAAM,IAAAwD,eAAa,EAACmB,mBAAmB,CAAC;EACpD,OAAO7E,mBAAmB,CAAC6E,mBAAmB,EAAElF,IAAI,EAAEO,GAAG,CAAC;AAC5D","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/node-api",
3
- "version": "7.0.0-next.6",
3
+ "version": "8.0.0-next-8.1",
4
4
  "description": "node API",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -29,20 +29,20 @@
29
29
  },
30
30
  "license": "MIT",
31
31
  "dependencies": {
32
- "@verdaccio/config": "7.0.0-next.6",
33
- "@verdaccio/core": "7.0.0-next.6",
34
- "@verdaccio/logger": "7.0.0-next.6",
35
- "@verdaccio/server": "7.0.0-next.6",
36
- "@verdaccio/server-fastify": "7.0.0-next.6",
37
- "core-js": "3.35.0",
38
- "debug": "4.3.4",
32
+ "@verdaccio/config": "8.0.0-next-8.1",
33
+ "@verdaccio/core": "8.0.0-next-8.1",
34
+ "@verdaccio/logger": "8.0.0-next-8.1",
35
+ "@verdaccio/server": "8.0.0-next-8.1",
36
+ "@verdaccio/server-fastify": "8.0.0-next-8.1",
37
+ "core-js": "3.37.1",
38
+ "debug": "4.3.7",
39
39
  "lodash": "4.17.21"
40
40
  },
41
41
  "devDependencies": {
42
- "@verdaccio/types": "12.0.0-next.2",
42
+ "@verdaccio/types": "13.0.0-next-8.0",
43
43
  "jest": "29.7.0",
44
44
  "selfsigned": "2.4.1",
45
- "supertest": "6.3.3"
45
+ "supertest": "7.0.0"
46
46
  },
47
47
  "publishConfig": {
48
48
  "access": "public"
package/src/server.ts CHANGED
@@ -78,6 +78,20 @@ export function createServerFactory(config: ConfigYaml, addr, app) {
78
78
  serverFactory = http.createServer(app);
79
79
  }
80
80
 
81
+ // List of all routes registered in the app
82
+ function printRoutes(layer) {
83
+ if (layer.route) {
84
+ debug('%s (%s)', layer.route.path, Object.keys(layer.route.methods).join(', '));
85
+ } else if (layer.name === 'router') {
86
+ layer.handle.stack.forEach((nestedLayer) => {
87
+ printRoutes(nestedLayer);
88
+ });
89
+ }
90
+ }
91
+
92
+ debug('registered routes:');
93
+ app._router.stack.forEach(printRoutes);
94
+
81
95
  if (
82
96
  config.server &&
83
97
  typeof config.server.keepAliveTimeout !== 'undefined' &&
@@ -146,8 +160,8 @@ export async function initServer(
146
160
  pathname: '/',
147
161
  })
148
162
  }`;
149
- logger.info(`http address ${addressServer}`);
150
- logger.info(`version: ${version}`);
163
+ logger.info({ addressServer }, 'http address: @{addressServer}');
164
+ logger.info({ version }, 'version: @{version}');
151
165
  resolve();
152
166
  })
153
167
  .on('error', function (err): void {
@@ -15,7 +15,6 @@ describe('startServer via API', () => {
15
15
  });
16
16
 
17
17
  test('should fail on start with null as entry', async () => {
18
- // @ts-expect-error
19
18
  await expect(runServer(null)).rejects.toThrow();
20
19
  });
21
20
  });