@platformatic/service 0.15.1 → 0.17.0

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.
Files changed (40) hide show
  1. package/fixtures/hello/no-server-logger.json +2 -2
  2. package/fixtures/hello/platformatic.service.json +2 -2
  3. package/fixtures/options/platformatic.service.yml +5 -4
  4. package/index.js +64 -66
  5. package/lib/compile.js +64 -91
  6. package/lib/config.js +2 -5
  7. package/lib/load-config.js +6 -2
  8. package/lib/sandbox-wrapper.js +26 -0
  9. package/lib/schema.js +37 -48
  10. package/lib/start.mjs +97 -68
  11. package/lib/utils.js +7 -4
  12. package/package.json +19 -19
  13. package/service.mjs +2 -2
  14. package/test/autoload.test.js +33 -21
  15. package/test/cli/compile.test.mjs +45 -3
  16. package/test/cli/gen-schema.test.mjs +4 -2
  17. package/test/cli/watch.test.mjs +59 -15
  18. package/test/config.test.js +70 -50
  19. package/test/fixtures/bad-typescript-plugin/dist/tsconfig.tsbuildinfo +1 -0
  20. package/test/fixtures/bad-typescript-plugin/platformatic.service.json +3 -5
  21. package/test/fixtures/directories/platformatic.service.json +2 -2
  22. package/test/fixtures/not-load.service.json +2 -3
  23. package/test/fixtures/typescript-plugin/platformatic.service.json +3 -5
  24. package/test/fixtures/typescript-plugin-nocompile/platformatic.service.json +3 -6
  25. package/test/load-and-reload-files.test.js +20 -20
  26. package/test/routes.test.js +3 -13
  27. package/test/schema.test.js +12 -0
  28. package/test/tmp/typescript-plugin-clone-1/platformatic.service.json +3 -5
  29. package/test/tmp/typescript-plugin-clone-2/platformatic.service.json +3 -6
  30. package/test/tmp/typescript-plugin-clone-3/dist/tsconfig.tsbuildinfo +1 -0
  31. package/test/tmp/typescript-plugin-clone-3/platformatic.service.json +3 -5
  32. package/test/tmp/typescript-plugin-clone-4/dist/plugin.js +18 -0
  33. package/test/tmp/typescript-plugin-clone-4/dist/plugin.js.map +1 -0
  34. package/test/tmp/typescript-plugin-clone-4/dist/tsconfig.tsbuildinfo +1 -0
  35. package/test/tmp/typescript-plugin-clone-4/platformatic.service.json +3 -5
  36. package/test/tmp/typescript-plugin-clone-4/tsconfig.json +22 -0
  37. package/test/tmp/typescript-plugin-clone-5/platformatic.service.json +3 -5
  38. package/test/tmp/typescript-plugin-clone-6/platformatic.service.json +3 -6
  39. package/test/utils.test.js +10 -3
  40. package/lib/autoload-wrapper.js +0 -11
@@ -30,8 +30,8 @@ test('should watch js files by default', async ({ equal, teardown }) => {
30
30
  port: 0
31
31
  },
32
32
  watch: true,
33
- plugin: {
34
- path: pluginFilePath
33
+ plugins: {
34
+ paths: [pluginFilePath]
35
35
  }
36
36
  }
37
37
 
@@ -69,8 +69,8 @@ test('should watch allowed file', async ({ comment, teardown }) => {
69
69
  watch: {
70
70
  allow: ['*.js', '*.json']
71
71
  },
72
- plugin: {
73
- path: pluginFilePath
72
+ plugins: {
73
+ paths: [pluginFilePath]
74
74
  }
75
75
  }
76
76
 
@@ -115,8 +115,8 @@ test('should not watch ignored file', async ({ teardown, equal }) => {
115
115
  watch: {
116
116
  ignore: [basename(pluginFilePath)]
117
117
  },
118
- plugin: {
119
- path: pluginFilePath
118
+ plugins: {
119
+ paths: [pluginFilePath]
120
120
  }
121
121
  }
122
122
 
@@ -152,8 +152,8 @@ test('should not loop forever when doing ESM', async ({ comment, fail }) => {
152
152
  watch: {
153
153
  ignore: [basename(pluginFilePath)]
154
154
  },
155
- plugin: {
156
- path: pluginFilePath
155
+ plugins: {
156
+ paths: [pluginFilePath]
157
157
  }
158
158
  }
159
159
 
@@ -196,8 +196,8 @@ test('should watch config file', async ({ comment, teardown }) => {
196
196
  watch: {
197
197
  allow: ['*.js', '*.json']
198
198
  },
199
- plugin: {
200
- path: pluginFilePath
199
+ plugins: {
200
+ paths: [pluginFilePath]
201
201
  }
202
202
  }
203
203
 
@@ -209,11 +209,13 @@ test('should watch config file', async ({ comment, teardown }) => {
209
209
  hostname: '127.0.0.1',
210
210
  port: 0
211
211
  },
212
- plugin: {
213
- path: pluginFilePath,
214
- options: {
215
- log: true
216
- }
212
+ plugins: {
213
+ paths: [{
214
+ path: pluginFilePath,
215
+ options: {
216
+ log: true
217
+ }
218
+ }]
217
219
  }
218
220
  }
219
221
 
@@ -238,3 +240,45 @@ test('should watch config file', async ({ comment, teardown }) => {
238
240
  if (log.msg === 'RESTARTED') break
239
241
  }
240
242
  })
243
+
244
+ test('should not hot reload files with `--hot-reload false`', async ({ teardown, equal }) => {
245
+ const tmpDir = await mkdtemp(join(os.tmpdir(), 'watch-'))
246
+ const pluginFilePath = join(tmpDir, 'plugin.js')
247
+ const configFilePath = join(tmpDir, 'platformatic.service.json')
248
+
249
+ const config = {
250
+ server: {
251
+ logger: {
252
+ level: 'info'
253
+ },
254
+ hostname: '127.0.0.1',
255
+ port: 0
256
+ },
257
+ plugins: {
258
+ paths: [pluginFilePath]
259
+ }
260
+ }
261
+
262
+ await Promise.all([
263
+ writeFile(configFilePath, JSON.stringify(config)),
264
+ writeFile(pluginFilePath, createLoggingPlugin('v1'))
265
+ ])
266
+
267
+ const { child, url } = await start('-c', configFilePath, '--hot-reload', 'false')
268
+ teardown(() => child.kill('SIGINT'))
269
+
270
+ {
271
+ const res = await request(`${url}/version`)
272
+ const version = await res.body.text()
273
+ equal(version, 'v1')
274
+ }
275
+
276
+ await writeFile(pluginFilePath, createLoggingPlugin('v2'))
277
+ await sleep(5000)
278
+
279
+ {
280
+ const res = await request(`${url}/version`)
281
+ const version = await res.body.text()
282
+ equal(version, 'v1')
283
+ }
284
+ })
@@ -21,11 +21,13 @@ test('config reloads', async ({ teardown, equal, pass, same }) => {
21
21
  hostname: '127.0.0.1',
22
22
  port: 0
23
23
  },
24
- plugin: {
25
- path: file,
26
- options: {
27
- message: 'hello'
28
- }
24
+ plugins: {
25
+ paths: [{
26
+ path: file,
27
+ options: {
28
+ message: 'hello'
29
+ }
30
+ }]
29
31
  },
30
32
  metrics: false
31
33
  })
@@ -43,11 +45,13 @@ test('config reloads', async ({ teardown, equal, pass, same }) => {
43
45
  hostname: '127.0.0.1',
44
46
  port: 0
45
47
  },
46
- plugin: {
47
- path: file,
48
- options: {
49
- message: 'ciao mondo'
50
- }
48
+ plugins: {
49
+ paths: [{
50
+ path: file,
51
+ options: {
52
+ message: 'ciao mondo'
53
+ }
54
+ }]
51
55
  },
52
56
  metrics: false
53
57
  })
@@ -70,11 +74,13 @@ test('config reloads from a written file', async ({ teardown, equal, pass, same
70
74
  hostname: '127.0.0.1',
71
75
  port: 0
72
76
  },
73
- plugin: {
74
- path: file,
75
- options: {
76
- message: 'hello'
77
- }
77
+ plugins: {
78
+ paths: [{
79
+ path: file,
80
+ options: {
81
+ message: 'hello'
82
+ }
83
+ }]
78
84
  },
79
85
  metrics: false
80
86
  }))
@@ -99,11 +105,13 @@ test('config reloads from a written file', async ({ teardown, equal, pass, same
99
105
  hostname: '127.0.0.1',
100
106
  port: 0
101
107
  },
102
- plugin: {
103
- path: file,
104
- options: {
105
- message: 'ciao mondo'
106
- }
108
+ plugins: {
109
+ paths: [{
110
+ path: file,
111
+ options: {
112
+ message: 'ciao mondo'
113
+ }
114
+ }]
107
115
  },
108
116
  metrics: false
109
117
  })
@@ -127,11 +135,13 @@ test('config reloads from a written file from a route', async ({ teardown, equal
127
135
  logger: { level: 'error' },
128
136
  port: 0
129
137
  },
130
- plugin: {
131
- path: file,
132
- options: {
133
- message: 'hello'
134
- }
138
+ plugins: {
139
+ paths: [{
140
+ path: file,
141
+ options: {
142
+ message: 'hello'
143
+ }
144
+ }]
135
145
  },
136
146
  metrics: false
137
147
  }))
@@ -146,11 +156,13 @@ test('config reloads from a written file from a route', async ({ teardown, equal
146
156
  hostname: '127.0.0.1',
147
157
  port: 0
148
158
  },
149
- plugin: {
150
- path: '${file.replace(/\\/g, '\\\\')}',
151
- options: {
152
- message: 'ciao mondo'
153
- }
159
+ plugins: {
160
+ paths: [{
161
+ path: '${file.replace(/\\/g, '\\\\')}',
162
+ options: {
163
+ message: 'ciao mondo'
164
+ }
165
+ }]
154
166
  },
155
167
  metrics: false
156
168
  })
@@ -224,11 +236,13 @@ test('custom ConfigManager', async ({ teardown, equal, pass, same }) => {
224
236
  class MyConfigManager extends ConfigManager {
225
237
  _transformConfig () {
226
238
  super._transformConfig.call(this)
227
- this.current.plugin = {
228
- path: file,
229
- options: {
230
- message: 'hello'
231
- }
239
+ this.current.plugins = {
240
+ paths: [{
241
+ path: file,
242
+ options: {
243
+ message: 'hello'
244
+ }
245
+ }]
232
246
  }
233
247
  }
234
248
  }
@@ -254,11 +268,13 @@ test('custom ConfigManager', async ({ teardown, equal, pass, same }) => {
254
268
  hostname: '127.0.0.1',
255
269
  port: 0
256
270
  },
257
- plugin: {
258
- path: file,
259
- options: {
260
- message: 'ciao mondo'
261
- }
271
+ plugins: {
272
+ paths: [{
273
+ path: file,
274
+ options: {
275
+ message: 'ciao mondo'
276
+ }
277
+ }]
262
278
  },
263
279
  metrics: false
264
280
  })
@@ -285,11 +301,13 @@ test('config reloads', async ({ teardown, equal, pass, same }) => {
285
301
  hostname: '127.0.0.1',
286
302
  port: 0
287
303
  },
288
- plugin: {
289
- path: file,
290
- options: {
291
- message: 'hello'
292
- }
304
+ plugins: {
305
+ paths: [{
306
+ path: file,
307
+ options: {
308
+ message: 'hello'
309
+ }
310
+ }]
293
311
  },
294
312
  metrics: false
295
313
  })
@@ -307,11 +325,13 @@ test('config reloads', async ({ teardown, equal, pass, same }) => {
307
325
  hostname: '127.0.0.1',
308
326
  port: 0
309
327
  },
310
- plugin: {
311
- path: file,
312
- options: {
313
- message: 'ciao mondo'
314
- }
328
+ plugins: {
329
+ paths: [{
330
+ path: file,
331
+ options: {
332
+ message: 'ciao mondo'
333
+ }
334
+ }]
315
335
  },
316
336
  metrics: false
317
337
  })
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es6.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es5.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.dom.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.scripthost.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../../../node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/codegen/code.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/codegen/scope.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/codegen/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/rules.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/util.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/validate/subschema.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/errors.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/validate/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/validate/datatype.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/additionalitems.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/propertynames.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/additionalproperties.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/anyof.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/oneof.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/validation/limitnumber.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/validation/multipleof.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/validation/required.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/validation/uniqueitems.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/validation/const.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/validation/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/format/format.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedproperties.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/unevaluated/unevaluateditems.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/validation/dependentrequired.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/errors.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/types/json-schema.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/types/jtd-schema.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/runtime/validation_error.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/ref_error.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/core.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/resolve.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/compile/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/types/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/ajv.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/jtd/error.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/jtd/type.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/jtd/values.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/vocabularies/jtd/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.12.0/node_modules/ajv/dist/jtd.d.ts","../../../../../../node_modules/.pnpm/@fastify+ajv-compiler@3.5.0/node_modules/@fastify/ajv-compiler/types/index.d.ts","../../../../../../node_modules/.pnpm/@fastify+error@3.2.0/node_modules/@fastify/error/types/index.d.ts","../../../../../../node_modules/.pnpm/fast-json-stringify@5.6.2/node_modules/fast-json-stringify/types/index.d.ts","../../../../../../node_modules/.pnpm/@fastify+fast-json-stringify-compiler@4.2.0/node_modules/@fastify/fast-json-stringify-compiler/types/index.d.ts","../../../../../../node_modules/.pnpm/find-my-way@7.5.0/node_modules/find-my-way/index.d.ts","../../../../../../node_modules/.pnpm/light-my-request@5.9.1/node_modules/light-my-request/types/index.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/utils.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/schema.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/type-provider.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/context.d.ts","../../../../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/reply.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/plugin.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/register.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/hooks.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/instance.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/route.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/assert.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/assert/strict.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/globals.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/async_hooks.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/buffer.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/child_process.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/cluster.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/console.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/constants.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/crypto.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/dgram.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/diagnostics_channel.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/dns.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/dns/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/domain.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/dom-events.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/events.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/fs.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/fs/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/http.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/http2.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/https.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/inspector.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/module.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/net.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/os.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/path.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/perf_hooks.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/process.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/punycode.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/querystring.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/readline.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/readline/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/repl.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/stream.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/stream/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/stream/consumers.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/stream/web.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/string_decoder.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/test.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/timers.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/timers/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/tls.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/trace_events.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/tty.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/url.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/util.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/v8.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/vm.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/wasi.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/worker_threads.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/zlib.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/globals.global.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.14.2/node_modules/@types/node/index.d.ts","../../../../../../node_modules/.pnpm/pino-std-serializers@6.1.0/node_modules/pino-std-serializers/index.d.ts","../../../../../../node_modules/.pnpm/sonic-boom@3.2.1/node_modules/sonic-boom/types/index.d.ts","../../../../../../node_modules/.pnpm/pino@8.11.0/node_modules/pino/pino.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/logger.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/request.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/content-type-parser.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/errors.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/types/serverfactory.d.ts","../../../../../../node_modules/.pnpm/fastify@4.13.0/node_modules/fastify/fastify.d.ts","../plugin.ts","../../../../../../node_modules/.pnpm/@types+eslint@7.29.0/node_modules/@types/eslint/helpers.d.ts","../../../../../../node_modules/.pnpm/@types+eslint@7.29.0/node_modules/@types/eslint/lib/rules/index.d.ts","../../../../../../node_modules/.pnpm/@types+json-schema@7.0.11/node_modules/@types/json-schema/index.d.ts","../../../../../../node_modules/.pnpm/@types+estree@1.0.0/node_modules/@types/estree/index.d.ts","../../../../../../node_modules/.pnpm/@types+eslint@7.29.0/node_modules/@types/eslint/index.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825","2d225e7bda2871c066a7079c88174340950fb604f624f2586d3ea27bb9e5f4ff","6a785f84e63234035e511817dd48ada756d984dd8f9344e56eb8b2bdcd8fd001","c1422d016f7df2ccd3594c06f2923199acd09898f2c42f50ea8159f1f856f618","d48084248e3fc241d87852210cabf78f2aed6ce3ea3e2bdaf070e99531c71de2","0eb6152d37c84d6119295493dfcc20c331c6fda1304a513d159cdaa599dcb78b","237df26f8c326ca00cd9d2deb40214a079749062156386b6d75bdcecc6988a6b","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","7557d4d7f19f94341f4413575a3453ba7f6039c9591015bcf4282a8e75414043","a3b2cc16f3ce2d882eca44e1066f57a24751545f2a5e4a153d4de31b4cac9bb5","ac2b3b377d3068bfb6e1cb8889c99098f2c875955e2325315991882a74d92cc8","8deb39d89095469957f73bd194d11f01d9894b8c1f1e27fbf3f6e8122576b336","a38a9c41f433b608a0d37e645a31eecf7233ef3d3fffeb626988d3219f80e32f","8e1428dcba6a984489863935049893631170a37f9584c0479f06e1a5b1f04332","1fce9ecb87a2d3898941c60df617e52e50fb0c03c9b7b2ba8381972448327285","5ef0597b8238443908b2c4bf69149ed3894ac0ddd0515ac583d38c7595b151f1","ac52b775a80badff5f4ac329c5725a26bd5aaadd57afa7ad9e98b4844767312a","6ae5b4a63010c82bf2522b4ecfc29ffe6a8b0c5eea6b2b35120077e9ac54d7a1","dd7109c49f416f218915921d44f0f28975df78e04e437c62e1e1eb3be5e18a35","eee181112e420b345fc78422a6cc32385ede3d27e2eaf8b8c4ad8b2c29e3e52e","25fbe57c8ee3079e2201fe580578fab4f3a78881c98865b7c96233af00bf9624","62cc8477858487b4c4de7d7ae5e745a8ce0015c1592f398b63ee05d6e64ca295","cc2a9ec3cb10e4c0b8738b02c31798fad312d21ef20b6a2f5be1d077e9f5409d","4b4fadcda7d34034737598c07e2dca5d7e1e633cb3ba8dd4d2e6a7782b30b296","360fdc8829a51c5428636f1f83e7db36fef6c5a15ed4411b582d00a1c2bd6e97","1cf0d15e6ab1ecabbf329b906ae8543e6b8955133b7f6655f04d433e3a0597ab","7c9f98fe812643141502b30fb2b5ec56d16aaf94f98580276ae37b7924dd44a4","b3547893f24f59d0a644c52f55901b15a3fa1a115bc5ea9a582911469b9348b7","596e5b88b6ca8399076afcc22af6e6e0c4700c7cd1f420a78d637c3fb44a885e","adddf736e08132c7059ee572b128fdacb1c2650ace80d0f582e93d097ed4fbaf","d4cad9dc13e9c5348637170ddd5d95f7ed5fdfc856ddca40234fa55518bc99a6","d70675ba7ba7d02e52b7070a369957a70827e4b2bca2c1680c38a832e87b61fd","3be71f4ce8988a01e2f5368bdd58e1d60236baf511e4510ee9291c7b3729a27e","423d2ccc38e369a7527988d682fafc40267bcd6688a7473e59c5eea20a29b64f","2f9fde0868ed030277c678b435f63fcf03d27c04301299580a4017963cc04ce6","6b6ed4aa017eb6867cef27257379cfe3e16caf628aceae3f0163dbafcaf891ff","25f1159094dc0bf3a71313a74e0885426af21c5d6564a254004f2cadf9c5b052","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","b83139ae818dd20f365118f9999335ca4cd84ae518348619adc5728e7e0372d5","c3d608cc3e97d22d1d9589262865d5d786c3ee7b0a2ae9716be08634b79b9a8c","62d26d8ba4fa15ab425c1b57a050ed76c5b0ecbffaa53f182110aa3a02405a07","87a4f46dabe0e415e3d38633e4b2295e9a2673ae841886c90a1ff3e66defb367","1a81526753a454468403c6473b7504c297bd4ee9aa8557f4ebf4092db7712fde","a6613ee552418429af38391e37389036654a882c342a1b81f2711e8ddac597f2","da47cb979ae4a849f9b983f43ef34365b7050c4f5ae2ebf818195858774e1d67","ac3bcb82d7280fc313a967f311764258d18caf33db6d2b1a0243cde607ff01a0","c9b5632d6665177030428d02603aeac3e920d31ec83ac500b55d44c7da74bd84","46456824df16d60f243a7e386562b27bac838aaba66050b9bc0f31e1ab34c1f2","b91034069e217212d8dda6c92669ee9f180b4c36273b5244c3be2c657f9286c7","0697277dd829ac2610d68fe1b457c9e758105bb52d40e149d9c15e5e2fe6dca4","b0d06dbb409369169143ede5df1fb58b2fca8d44588e199bd624b6f6d966bf08","e4b6ed6bd6e3b02d7c24090bb5bdb3992243999105fa9e041bcd923147cc3ed6","67dd027877c83c46e74cde7ed6e7faacca148526cd9018ea0772aa7579fa0abc","8071bcdab9afa3e6a8ea8b8f6f242fe85c47c48c385af6622641bde0a8864f1f","e25ac5981c6286223284dc5489ce667fab13b7fef26996035d31cd9b765b3f9e","6e50b2017454705ff94359fc0a2daeba2fa19c133f2f204213d33deed52cf7b4","095a5dce58c01452b720505dd374e4b2dfd3ac64bf7d0c31d287c12e5355e575","2bcbd036af47b473516bddfd2f6fd4db4b6260932d12431cfaaf8cbf715846de","c0c0a10022dc341b6a777c9f4372a1f030537109a5a7f39f9a720d0435de7b8e","c199dd1d88f0e08d11385d93a9f8aaf28dca14bf0562643383501401473093b2","65e75ad23492c6c2abfa5d9d999a6c55cccd77a98263ab73b39d4d004affbc90","00960e0475564ca1d51af0bea9c746e8df502ed3441716bc42f3c8c7501b3fd3","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","4d79ed1f482b3c9c172e3316a2762552f4f3439d03c07a53313e4d7c0e5a178a","bcce2ec62964bb9929458269cfadfcdb52ea758c2e44c90beba4e2b6f195e246","a8a3779913ddff18d1f516d51bec89f5e3eb149928b859ad3684fae0e10fb2d3","c8536969768127fd14c2adb3bce80d2410aa1b7bbebb9cdb191445020a61cf1c","74f4b109ea2aed3e4bf967a108e3380e3edbb89c0a2be095a926b9b9154f2ae3","6b17e40e020632b9b4c0f1cc17726a29fcf258cd9ace2a01e03b61a3e46d0b3c","7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"11e2d554398d2bd460e7d06b2fa5827a297c8acfbe00b4f894a224ac0862857f",{"version":"fc811ced095f38ad4438bb94a8d665c63bf4943e58a71ada16627add5ad93226","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","5eb881ed2a0d5b17ea36df5cd4c4be500e460c412f270c3170e906bec65580ac","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"2c45b35f4850881ab132f80d3cb51e8a359a4d8fafdc5ff2401d260dc27862f4","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","09326ae5f7e3d49be5cd9ea00eb814770e71870a438faa2efd8bdd9b4db21320",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","c4577fb855ca259bdbf3ea663ca73988ce5f84251a92b4aef80a1f4122b6f98e","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"ff07a9a03c65732ccc59b3c65bc584173da093bd563a6565411c01f5703bd3cb","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"ed2a670a77a1b80653c5bde2d813b0ab2e92872cc9b2b611ce11050b95139be6","043e933c8127f2215f940035bfac94354b82a49f419bb77af0045f0c57e6a05e","9d9f4da63084ac107eddda8b4ea92d7ee443e0c86601e8c844943b82fd3ef6f8","1bcc8d985be76ee06e7e9ef89d3d9b0ae02e56925def72281508b305fcf60f71","f83d0899ffa9bc60340a4f9bfd2f2554a31eb5d39eb1b13100b923a9be5f3955","5480c22488463b35db77cd047f2386a8f52452143695311ce18bb6ea3be3b84f","feeb4514da40bd3c50f6c884c607adb142002b3c8e6a3fe76db41ba8cce644ad","fe0ae629ddf73e1185971de6e53d1f44c96d5b92cc99e1583a99b64213e31a82","7247fd1853426de8fdc38a7027b488498bb00ea62c9a99037a760520e3944a26","c41f833d83808f1d9ccf5524176e367978b5f6ea37be5c0bf6a0ed6d52e27872","ed08f3d69fa7b43ff17b0249afce4c25a502468e7ba9dbedb247fa74797f50d8",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"0133ebdd17a823ae56861948870cde4dac18dd8818ab641039c85bbb720429e0","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","946bd1737d9412395a8f24414c70f18660b84a75a12b0b448e6eb1a2161d06dd","874d84ca5699231d5af2868fef01fc63f948bd83be928881479db48508f92ca0"],"options":{"esModuleInterop":true,"module":1,"noEmitOnError":true,"outDir":"./","sourceMap":true,"target":2},"fileIdsList":[[87,91,100,164],[164],[103,164],[164,182,183,184,185],[164,186],[118,164],[121,164],[122,127,155,164],[123,134,135,142,152,163,164],[123,124,134,142,164],[125,164],[126,127,135,143,164],[127,152,160,164],[128,130,134,142,164],[129,164],[130,131,164],[134,164],[132,134,164],[134,135,136,152,163,164],[134,135,136,149,152,155,164],[164,168],[130,137,142,152,163,164],[134,135,137,138,142,152,160,163,164],[137,139,152,160,163,164],[118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170],[134,140,164],[141,163,164],[130,134,142,152,164],[143,164],[144,164],[121,145,164],[146,162,164,168],[147,164],[148,164],[134,149,150,164],[149,151,164,166],[122,134,152,153,154,155,164],[122,152,154,164],[152,153,164],[155,164],[156,164],[134,158,159,164],[158,159,164],[127,142,152,160,164],[161,164],[142,162,164],[122,137,148,163,164],[127,164],[152,164,165],[164,166],[164,167],[122,127,134,136,145,152,163,164,166,168],[152,164,169],[50,51,55,82,83,85,86,87,89,90,164],[48,49,164],[48,164],[50,90,164],[50,51,87,88,90,164],[90,164],[47,90,91,164],[50,51,89,90,164],[50,51,53,54,89,90,164],[50,51,52,89,90,164],[50,51,55,82,83,84,85,86,89,90,164],[50,55,84,85,86,87,89,90,99,164],[47,50,51,55,87,89,164],[55,90,164],[57,58,59,60,61,62,63,64,65,66,90,164],[80,90,164],[56,67,75,76,77,78,79,81,164],[80,90,92,164],[90,92,164],[90,93,94,95,96,97,98,164],[55,90,92,164],[60,90,164],[68,69,70,71,72,73,74,90,164],[91,164],[101,102,104,105,106,107,108,109,110,112,113,114,115,116,117,137,138,139,142,164,175,176,177,178,179],[107,108,109,117,164,176],[107,164],[102,164],[102,107,108,109,112,113,114,116,117,152,164,175,176],[102,105,106,107,108,109,112,114,115,117,137,142,164,175,176,177],[102,107,108,109,112,117,164,174,176],[107,109,116,164,175],[107,113,116,164,175,180],[107,108,109,110,116,117,122,164,175,176],[101,107,108,109,110,116,117,164,175],[102,107,108,109,110,112,115,116,164,175,176],[101,164,180],[107,137,138,139,164],[108,117,164],[137,138,139,164],[137,138,164],[137,164],[137,164,171],[134,164,168,172,173],[134,164,171],[164,180]],"referencedMap":[[101,1],[102,2],[104,3],[182,2],[186,4],[183,5],[185,2],[184,2],[118,6],[119,6],[121,7],[122,8],[123,9],[124,10],[125,11],[126,12],[127,13],[128,14],[129,15],[130,16],[131,16],[133,17],[132,18],[134,17],[135,19],[136,20],[120,21],[170,2],[137,22],[138,23],[139,24],[171,25],[140,26],[141,27],[142,28],[143,29],[144,30],[145,31],[146,32],[147,33],[148,34],[149,35],[150,35],[151,36],[152,37],[154,38],[153,39],[155,40],[156,41],[157,2],[158,42],[159,43],[160,44],[161,45],[162,46],[163,47],[164,48],[165,49],[166,50],[167,51],[168,52],[169,53],[91,54],[48,2],[50,55],[49,56],[54,57],[89,58],[86,59],[88,60],[51,59],[52,61],[56,61],[55,62],[53,63],[87,64],[100,65],[85,59],[90,66],[83,2],[84,2],[57,67],[62,59],[64,59],[59,59],[60,67],[66,59],[67,68],[58,59],[63,59],[65,59],[61,59],[81,69],[80,59],[82,70],[76,59],[97,71],[95,72],[94,59],[92,57],[99,73],[96,74],[93,72],[98,72],[78,59],[77,59],[73,59],[79,75],[74,59],[75,76],[68,59],[69,59],[70,59],[71,59],[72,59],[111,2],[103,77],[180,78],[177,79],[110,80],[178,81],[115,82],[116,83],[175,84],[113,85],[114,86],[112,87],[176,88],[117,89],[108,90],[179,91],[109,92],[107,93],[105,94],[106,95],[172,96],[174,97],[173,98],[9,2],[10,2],[14,2],[13,2],[3,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[4,2],[5,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[6,2],[30,2],[31,2],[32,2],[33,2],[7,2],[37,2],[34,2],[35,2],[36,2],[38,2],[8,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[2,2],[1,2],[46,2],[12,2],[11,2],[47,2],[181,99]],"exportedModulesMap":[[101,1],[102,2],[104,3],[182,2],[186,4],[183,5],[185,2],[184,2],[118,6],[119,6],[121,7],[122,8],[123,9],[124,10],[125,11],[126,12],[127,13],[128,14],[129,15],[130,16],[131,16],[133,17],[132,18],[134,17],[135,19],[136,20],[120,21],[170,2],[137,22],[138,23],[139,24],[171,25],[140,26],[141,27],[142,28],[143,29],[144,30],[145,31],[146,32],[147,33],[148,34],[149,35],[150,35],[151,36],[152,37],[154,38],[153,39],[155,40],[156,41],[157,2],[158,42],[159,43],[160,44],[161,45],[162,46],[163,47],[164,48],[165,49],[166,50],[167,51],[168,52],[169,53],[91,54],[48,2],[50,55],[49,56],[54,57],[89,58],[86,59],[88,60],[51,59],[52,61],[56,61],[55,62],[53,63],[87,64],[100,65],[85,59],[90,66],[83,2],[84,2],[57,67],[62,59],[64,59],[59,59],[60,67],[66,59],[67,68],[58,59],[63,59],[65,59],[61,59],[81,69],[80,59],[82,70],[76,59],[97,71],[95,72],[94,59],[92,57],[99,73],[96,74],[93,72],[98,72],[78,59],[77,59],[73,59],[79,75],[74,59],[75,76],[68,59],[69,59],[70,59],[71,59],[72,59],[111,2],[103,77],[180,78],[177,79],[110,80],[178,81],[115,82],[116,83],[175,84],[113,85],[114,86],[112,87],[176,88],[117,89],[108,90],[179,91],[109,92],[107,93],[105,94],[106,95],[172,96],[174,97],[173,98],[9,2],[10,2],[14,2],[13,2],[3,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[4,2],[5,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[6,2],[30,2],[31,2],[32,2],[33,2],[7,2],[37,2],[34,2],[35,2],[36,2],[38,2],[8,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[2,2],[1,2],[46,2],[12,2],[11,2],[47,2],[181,99]],"semanticDiagnosticsPerFile":[101,102,104,182,186,183,185,184,118,119,121,122,123,124,125,126,127,128,129,130,131,133,132,134,135,136,120,170,137,138,139,171,140,141,142,143,144,145,146,147,148,149,150,151,152,154,153,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,91,48,50,49,54,89,86,88,51,52,56,55,53,87,100,85,90,83,84,57,62,64,59,60,66,67,58,63,65,61,81,80,82,76,97,95,94,92,99,96,93,98,78,77,73,79,74,75,68,69,70,71,72,111,103,180,177,110,178,115,116,175,113,114,112,176,117,108,179,109,107,105,106,172,174,173,9,10,14,13,3,15,16,17,18,19,20,21,22,4,5,26,23,24,25,27,28,29,6,30,31,32,33,7,37,34,35,36,38,8,39,44,45,40,41,42,43,2,1,46,12,11,47,[181,[{"file":"../plugin.ts","start":106,"length":3,"code":2322,"category":1,"messageText":"Type 'FastifyInstance<RawServerDefault, IncomingMessage, ServerResponse<IncomingMessage>, FastifyBaseLogger, FastifyTypeProviderDefault>' is not assignable to type 'number'."}]]],"affectedFilesPendingEmit":[[101,1],[102,1],[104,1],[182,1],[186,1],[183,1],[185,1],[184,1],[118,1],[119,1],[121,1],[122,1],[123,1],[124,1],[125,1],[126,1],[127,1],[128,1],[129,1],[130,1],[131,1],[133,1],[132,1],[134,1],[135,1],[136,1],[120,1],[170,1],[137,1],[138,1],[139,1],[171,1],[140,1],[141,1],[142,1],[143,1],[144,1],[145,1],[146,1],[147,1],[148,1],[149,1],[150,1],[151,1],[152,1],[154,1],[153,1],[155,1],[156,1],[157,1],[158,1],[159,1],[160,1],[161,1],[162,1],[163,1],[164,1],[165,1],[166,1],[167,1],[168,1],[169,1],[91,1],[48,1],[50,1],[49,1],[54,1],[89,1],[86,1],[88,1],[51,1],[52,1],[56,1],[55,1],[53,1],[87,1],[100,1],[85,1],[90,1],[83,1],[84,1],[57,1],[62,1],[64,1],[59,1],[60,1],[66,1],[67,1],[58,1],[63,1],[65,1],[61,1],[81,1],[80,1],[82,1],[76,1],[97,1],[95,1],[94,1],[92,1],[99,1],[96,1],[93,1],[98,1],[78,1],[77,1],[73,1],[79,1],[74,1],[75,1],[68,1],[69,1],[70,1],[71,1],[72,1],[111,1],[103,1],[180,1],[177,1],[110,1],[178,1],[115,1],[116,1],[175,1],[113,1],[114,1],[112,1],[176,1],[117,1],[108,1],[179,1],[109,1],[107,1],[105,1],[106,1],[172,1],[174,1],[173,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[1,1],[47,1],[181,1]]},"version":"4.9.5"}
@@ -6,11 +6,9 @@
6
6
  "hostname": "127.0.0.1",
7
7
  "port": "3042"
8
8
  },
9
- "plugin": {
10
- "path": "plugin.ts",
11
- "typescript": {
12
- "outDir": "dist"
13
- }
9
+ "plugins": {
10
+ "paths": ["plugin.ts"],
11
+ "typescript": true
14
12
  },
15
13
  "watch": true
16
14
  }
@@ -6,8 +6,8 @@
6
6
  "level": "info"
7
7
  }
8
8
  },
9
- "plugin": {
10
- "path": "./routes"
9
+ "plugins": {
10
+ "paths": ["./routes"]
11
11
  },
12
12
  "metrics": false
13
13
  }
@@ -7,8 +7,7 @@
7
7
  "port": "3042",
8
8
  "pluginTimeout": "10"
9
9
  },
10
- "plugin": {
11
- "path": "./not-load.js",
12
- "watch": false
10
+ "plugins": {
11
+ "paths": ["./not-load.js"]
13
12
  }
14
13
  }
@@ -6,10 +6,8 @@
6
6
  "hostname": "127.0.0.1",
7
7
  "port": "0"
8
8
  },
9
- "plugin": {
10
- "path": "plugin.ts",
11
- "typescript": {
12
- "outDir": "dist"
13
- }
9
+ "plugins": {
10
+ "paths": ["plugin.ts"],
11
+ "typescript": true
14
12
  }
15
13
  }
@@ -6,11 +6,8 @@
6
6
  "hostname": "127.0.0.1",
7
7
  "port": "0"
8
8
  },
9
- "plugin": {
10
- "path": "plugin.ts",
11
- "typescript": {
12
- "outDir": "dist",
13
- "build": false
14
- }
9
+ "plugins": {
10
+ "paths": ["plugin.ts"],
11
+ "typescript": false
15
12
  }
16
13
  }
@@ -21,8 +21,8 @@ test('load and reload', async ({ teardown, equal, pass, same }) => {
21
21
  hostname: '127.0.0.1',
22
22
  port: 0
23
23
  },
24
- plugin: {
25
- path: file
24
+ plugins: {
25
+ paths: [file]
26
26
  },
27
27
  metrics: false
28
28
  })
@@ -65,8 +65,8 @@ test('error', async ({ teardown, equal, pass, match }) => {
65
65
  hostname: '127.0.0.1',
66
66
  port: 0
67
67
  },
68
- plugin: {
69
- path: file
68
+ plugins: {
69
+ paths: [file]
70
70
  },
71
71
  metrics: false
72
72
  })
@@ -111,8 +111,8 @@ test('update config', async ({ teardown, equal, pass, same }) => {
111
111
  }`)
112
112
 
113
113
  await server.restart({
114
- plugin: {
115
- path: file2
114
+ plugins: {
115
+ paths: [file2]
116
116
  }
117
117
  })
118
118
 
@@ -148,8 +148,8 @@ test('mock undici is supported', async ({ teardown, equal, pass, same }) => {
148
148
  hostname: '127.0.0.1',
149
149
  port: 0
150
150
  },
151
- plugin: {
152
- path: join(__dirname, 'fixtures', 'undici-plugin.js')
151
+ plugins: {
152
+ paths: [join(__dirname, 'fixtures', 'undici-plugin.js')]
153
153
  }
154
154
  })
155
155
  teardown(server.stop)
@@ -177,8 +177,8 @@ test('load and reload with the fallback', async ({ teardown, equal, pass, same }
177
177
  hostname: '127.0.0.1',
178
178
  port: 0
179
179
  },
180
- plugin: {
181
- path: file,
180
+ plugins: {
181
+ paths: [file],
182
182
  stopTimeout: 1000,
183
183
  fallback: true
184
184
  }
@@ -220,8 +220,8 @@ test('load and reload ESM', async ({ teardown, equal, pass, same }) => {
220
220
  hostname: '127.0.0.1',
221
221
  port: 0
222
222
  },
223
- plugin: {
224
- path: file
223
+ plugins: {
224
+ paths: [file]
225
225
  }
226
226
  })
227
227
  teardown(server.stop)
@@ -263,8 +263,8 @@ test('server should be available after reload a compromised plugin', async ({ te
263
263
  hostname: '127.0.0.1',
264
264
  port: 0
265
265
  },
266
- plugin: {
267
- path: file
266
+ plugins: {
267
+ paths: [file]
268
268
  }
269
269
  }
270
270
  const restartConfig = { ...config }
@@ -313,8 +313,8 @@ test('hot reload disabled, CommonJS', async ({ teardown, equal, pass, same }) =>
313
313
  hostname: '127.0.0.1',
314
314
  port: 0
315
315
  },
316
- plugin: {
317
- path: file,
316
+ plugins: {
317
+ paths: [file],
318
318
  hotReload: false
319
319
  }
320
320
  })
@@ -365,8 +365,8 @@ test('hot reload disabled, ESM', async ({ teardown, equal, pass, same }) => {
365
365
  hostname: '127.0.0.1',
366
366
  port: 0
367
367
  },
368
- plugin: {
369
- path: file,
368
+ plugins: {
369
+ paths: [file],
370
370
  stopTimeout: 1000,
371
371
  hotReload: false
372
372
  },
@@ -420,8 +420,8 @@ test('hot reload disabled, with default export', async ({ teardown, equal, pass,
420
420
  hostname: '127.0.0.1',
421
421
  port: 0
422
422
  },
423
- plugin: {
424
- path: file,
423
+ plugins: {
424
+ paths: [file],
425
425
  stopTimeout: 1000,
426
426
  hotReload: false
427
427
  },
@@ -2,7 +2,7 @@
2
2
 
3
3
  const { test } = require('tap')
4
4
  const { buildServer } = require('..')
5
- const { buildConfig, connInfo } = require('./helper')
5
+ const { buildConfig } = require('./helper')
6
6
  const { request } = require('undici')
7
7
  const { join } = require('path')
8
8
 
@@ -16,9 +16,6 @@ test('should respond 200 on root endpoint', async ({ teardown, equal, same }) =>
16
16
  interval: 2000
17
17
  }
18
18
  },
19
- core: {
20
- ...connInfo
21
- },
22
19
  authorization: {
23
20
  adminSecret: 'secret'
24
21
  },
@@ -58,15 +55,8 @@ test('should not overwrite a plugin which define a root endpoint', async ({ tear
58
55
  interval: 2000
59
56
  }
60
57
  },
61
- core: {
62
- ...connInfo
63
- },
64
- authorization: {
65
- adminSecret: 'secret'
66
- },
67
- dashboard: false,
68
- plugin: {
69
- path: join(__dirname, 'fixtures', 'root-endpoint-plugin.js')
58
+ plugins: {
59
+ paths: [join(__dirname, 'fixtures', 'root-endpoint-plugin.js')]
70
60
  }
71
61
  }))
72
62
  teardown(server.stop)
@@ -0,0 +1,12 @@
1
+ 'use strict'
2
+
3
+ const { test } = require('tap')
4
+ const { join } = require('path')
5
+ const { schema } = require('../lib/schema')
6
+
7
+ test('schema output', async (t) => {
8
+ const { execa } = await import('execa')
9
+ const { stdout } = await execa(process.execPath, [join(__dirname, '..', 'lib', 'schema.js')])
10
+
11
+ t.same(stdout, JSON.stringify(schema, null, 2))
12
+ })