@platformatic/nuxt 0.0.1 → 3.58.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.
Files changed (106) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +26 -0
  3. package/config.d.ts +749 -0
  4. package/eslint.config.js +3 -0
  5. package/index.d.ts +35 -0
  6. package/index.js +31 -0
  7. package/lib/capability.js +255 -0
  8. package/lib/schema.js +50 -0
  9. package/package.json +39 -18
  10. package/schema.json +2805 -0
  11. package/test/backlog.test.js +88 -0
  12. package/test/development.test.js +216 -0
  13. package/test/fetch.test.js +67 -0
  14. package/test/fixtures/composer-autodetect-prefix/package.json +10 -0
  15. package/test/fixtures/composer-autodetect-prefix/platformatic.runtime.json +24 -0
  16. package/test/fixtures/composer-autodetect-prefix/services/frontend/app.vue +8 -0
  17. package/test/fixtures/composer-autodetect-prefix/services/frontend/nuxt.config.js +16 -0
  18. package/test/fixtures/composer-autodetect-prefix/services/frontend/package.json +9 -0
  19. package/test/fixtures/composer-autodetect-prefix/services/frontend/platformatic.application.json +6 -0
  20. package/test/fixtures/composer-custom-commands/package.json +11 -0
  21. package/test/fixtures/composer-custom-commands/platformatic.runtime.json +24 -0
  22. package/test/fixtures/composer-custom-commands/services/frontend/app.vue +8 -0
  23. package/test/fixtures/composer-custom-commands/services/frontend/nuxt.config.js +16 -0
  24. package/test/fixtures/composer-custom-commands/services/frontend/package.json +16 -0
  25. package/test/fixtures/composer-custom-commands/services/frontend/platformatic.application.json +11 -0
  26. package/test/fixtures/composer-with-prefix/package.json +10 -0
  27. package/test/fixtures/composer-with-prefix/platformatic.runtime.json +24 -0
  28. package/test/fixtures/composer-with-prefix/services/frontend/app.vue +8 -0
  29. package/test/fixtures/composer-with-prefix/services/frontend/nuxt.config.js +16 -0
  30. package/test/fixtures/composer-with-prefix/services/frontend/package.json +9 -0
  31. package/test/fixtures/composer-with-prefix/services/frontend/platformatic.application.json +6 -0
  32. package/test/fixtures/composer-without-prefix/package.json +10 -0
  33. package/test/fixtures/composer-without-prefix/platformatic.runtime.json +24 -0
  34. package/test/fixtures/composer-without-prefix/services/frontend/app.vue +8 -0
  35. package/test/fixtures/composer-without-prefix/services/frontend/nuxt.config.js +13 -0
  36. package/test/fixtures/composer-without-prefix/services/frontend/package.json +9 -0
  37. package/test/fixtures/composer-without-prefix/services/frontend/platformatic.application.json +3 -0
  38. package/test/fixtures/fetch-test/package.json +10 -0
  39. package/test/fixtures/fetch-test/platformatic.runtime.json +24 -0
  40. package/test/fixtures/fetch-test/services/frontend/app.vue +29 -0
  41. package/test/fixtures/fetch-test/services/frontend/nuxt.config.js +15 -0
  42. package/test/fixtures/fetch-test/services/frontend/package.json +9 -0
  43. package/test/fixtures/fetch-test/services/frontend/platformatic.application.json +6 -0
  44. package/test/fixtures/logger/package.json +8 -0
  45. package/test/fixtures/logger/platformatic.runtime.json +15 -0
  46. package/test/fixtures/logger/services/frontend/app.vue +12 -0
  47. package/test/fixtures/logger/services/frontend/logger-formatters.js +7 -0
  48. package/test/fixtures/logger/services/frontend/nuxt.config.js +12 -0
  49. package/test/fixtures/logger/services/frontend/package.json +9 -0
  50. package/test/fixtures/logger/services/frontend/platformatic.application.json +14 -0
  51. package/test/fixtures/metrics/package.json +10 -0
  52. package/test/fixtures/metrics/platformatic.runtime.json +25 -0
  53. package/test/fixtures/metrics/services/backend/package.json +6 -0
  54. package/test/fixtures/metrics/services/backend/platformatic.json +16 -0
  55. package/test/fixtures/metrics/services/backend/plugins/example.js +3 -0
  56. package/test/fixtures/metrics/services/backend/routes/root.js +30 -0
  57. package/test/fixtures/metrics/services/composer/package.json +6 -0
  58. package/test/fixtures/metrics/services/composer/platformatic.json +14 -0
  59. package/test/fixtures/metrics/services/frontend/app.vue +8 -0
  60. package/test/fixtures/metrics/services/frontend/nuxt.config.js +15 -0
  61. package/test/fixtures/metrics/services/frontend/package.json +9 -0
  62. package/test/fixtures/metrics/services/frontend/platformatic.application.json +6 -0
  63. package/test/fixtures/ssr-autodetect-prefix/package.json +10 -0
  64. package/test/fixtures/ssr-autodetect-prefix/platformatic.runtime.json +24 -0
  65. package/test/fixtures/ssr-autodetect-prefix/services/frontend/app.vue +8 -0
  66. package/test/fixtures/ssr-autodetect-prefix/services/frontend/nuxt.config.js +15 -0
  67. package/test/fixtures/ssr-autodetect-prefix/services/frontend/package.json +9 -0
  68. package/test/fixtures/ssr-autodetect-prefix/services/frontend/platformatic.application.json +6 -0
  69. package/test/fixtures/ssr-custom-commands/package.json +11 -0
  70. package/test/fixtures/ssr-custom-commands/platformatic.runtime.json +24 -0
  71. package/test/fixtures/ssr-custom-commands/services/frontend/app.vue +8 -0
  72. package/test/fixtures/ssr-custom-commands/services/frontend/nuxt.config.js +15 -0
  73. package/test/fixtures/ssr-custom-commands/services/frontend/package.json +16 -0
  74. package/test/fixtures/ssr-custom-commands/services/frontend/platformatic.application.json +11 -0
  75. package/test/fixtures/ssr-standalone/package.json +8 -0
  76. package/test/fixtures/ssr-standalone/platformatic.runtime.json +15 -0
  77. package/test/fixtures/ssr-standalone/services/frontend/app.vue +8 -0
  78. package/test/fixtures/ssr-standalone/services/frontend/nuxt.config.js +12 -0
  79. package/test/fixtures/ssr-standalone/services/frontend/package.json +9 -0
  80. package/test/fixtures/ssr-standalone/services/frontend/platformatic.application.json +3 -0
  81. package/test/fixtures/ssr-with-prefix/package.json +10 -0
  82. package/test/fixtures/ssr-with-prefix/platformatic.runtime.json +24 -0
  83. package/test/fixtures/ssr-with-prefix/services/frontend/app.vue +8 -0
  84. package/test/fixtures/ssr-with-prefix/services/frontend/nuxt.config.js +15 -0
  85. package/test/fixtures/ssr-with-prefix/services/frontend/package.json +9 -0
  86. package/test/fixtures/ssr-with-prefix/services/frontend/platformatic.application.json +6 -0
  87. package/test/fixtures/ssr-without-prefix/package.json +10 -0
  88. package/test/fixtures/ssr-without-prefix/platformatic.runtime.json +24 -0
  89. package/test/fixtures/ssr-without-prefix/services/frontend/app.vue +8 -0
  90. package/test/fixtures/ssr-without-prefix/services/frontend/nuxt.config.js +12 -0
  91. package/test/fixtures/ssr-without-prefix/services/frontend/package.json +9 -0
  92. package/test/fixtures/ssr-without-prefix/services/frontend/platformatic.application.json +3 -0
  93. package/test/fixtures/standalone/package.json +8 -0
  94. package/test/fixtures/standalone/platformatic.runtime.json +15 -0
  95. package/test/fixtures/standalone/services/frontend/app.vue +8 -0
  96. package/test/fixtures/standalone/services/frontend/nuxt.config.js +13 -0
  97. package/test/fixtures/standalone/services/frontend/package.json +9 -0
  98. package/test/fixtures/standalone/services/frontend/platformatic.application.json +3 -0
  99. package/test/helper.js +1 -0
  100. package/test/https.test.js +43 -0
  101. package/test/logger.test.js +31 -0
  102. package/test/metrics.test.js +46 -0
  103. package/test/miscellaneous.test.js +33 -0
  104. package/test/production.test.js +153 -0
  105. package/test/types/index.tst.ts +34 -0
  106. package/test/version-check.test.js +29 -0
package/schema.json ADDED
@@ -0,0 +1,2805 @@
1
+ {
2
+ "$id": "https://schemas.platformatic.dev/@platformatic/nuxt/3.58.1.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Platformatic Nuxt Config",
5
+ "type": "object",
6
+ "properties": {
7
+ "$schema": {
8
+ "type": "string"
9
+ },
10
+ "module": {
11
+ "type": "string"
12
+ },
13
+ "logger": {
14
+ "type": "object",
15
+ "properties": {
16
+ "level": {
17
+ "type": "string",
18
+ "oneOf": [
19
+ {
20
+ "enum": [
21
+ "fatal",
22
+ "error",
23
+ "warn",
24
+ "info",
25
+ "debug",
26
+ "trace",
27
+ "silent"
28
+ ]
29
+ },
30
+ {
31
+ "pattern": "^\\{.+\\}$"
32
+ }
33
+ ]
34
+ },
35
+ "transport": {
36
+ "anyOf": [
37
+ {
38
+ "type": "object",
39
+ "properties": {
40
+ "target": {
41
+ "type": "string",
42
+ "resolveModule": true
43
+ },
44
+ "options": {
45
+ "type": "object"
46
+ }
47
+ },
48
+ "additionalProperties": false
49
+ },
50
+ {
51
+ "type": "object",
52
+ "properties": {
53
+ "targets": {
54
+ "type": "array",
55
+ "items": {
56
+ "type": "object",
57
+ "properties": {
58
+ "target": {
59
+ "anyOf": [
60
+ {
61
+ "type": "string",
62
+ "resolveModule": true
63
+ },
64
+ {
65
+ "type": "string",
66
+ "resolvePath": true
67
+ }
68
+ ]
69
+ },
70
+ "options": {
71
+ "type": "object"
72
+ },
73
+ "level": {
74
+ "type": "string"
75
+ }
76
+ },
77
+ "additionalProperties": false
78
+ }
79
+ },
80
+ "options": {
81
+ "type": "object"
82
+ }
83
+ },
84
+ "additionalProperties": false
85
+ }
86
+ ]
87
+ },
88
+ "pipeline": {
89
+ "type": "object",
90
+ "properties": {
91
+ "target": {
92
+ "type": "string",
93
+ "resolveModule": true
94
+ },
95
+ "options": {
96
+ "type": "object"
97
+ }
98
+ },
99
+ "additionalProperties": false
100
+ },
101
+ "formatters": {
102
+ "type": "object",
103
+ "properties": {
104
+ "path": {
105
+ "type": "string",
106
+ "resolvePath": true
107
+ }
108
+ },
109
+ "required": [
110
+ "path"
111
+ ],
112
+ "additionalProperties": false
113
+ },
114
+ "timestamp": {
115
+ "enum": [
116
+ "epochTime",
117
+ "unixTime",
118
+ "nullTime",
119
+ "isoTime"
120
+ ]
121
+ },
122
+ "redact": {
123
+ "type": "object",
124
+ "properties": {
125
+ "paths": {
126
+ "type": "array",
127
+ "items": {
128
+ "type": "string"
129
+ }
130
+ },
131
+ "censor": {
132
+ "type": "string",
133
+ "default": "[redacted]"
134
+ }
135
+ },
136
+ "required": [
137
+ "paths"
138
+ ],
139
+ "additionalProperties": false
140
+ },
141
+ "base": {
142
+ "anyOf": [
143
+ {
144
+ "type": "object",
145
+ "additionalProperties": true
146
+ },
147
+ {
148
+ "type": "null"
149
+ }
150
+ ]
151
+ },
152
+ "messageKey": {
153
+ "type": "string"
154
+ },
155
+ "customLevels": {
156
+ "type": "object",
157
+ "additionalProperties": true
158
+ },
159
+ "openTelemetryExporter": {
160
+ "type": "object",
161
+ "properties": {
162
+ "protocol": {
163
+ "type": "string",
164
+ "enum": [
165
+ "grpc",
166
+ "http"
167
+ ]
168
+ },
169
+ "url": {
170
+ "type": "string"
171
+ }
172
+ },
173
+ "required": [
174
+ "protocol",
175
+ "url"
176
+ ],
177
+ "additionalProperties": false
178
+ }
179
+ },
180
+ "default": {},
181
+ "additionalProperties": true
182
+ },
183
+ "server": {
184
+ "type": "object",
185
+ "properties": {
186
+ "hostname": {
187
+ "type": "string"
188
+ },
189
+ "port": {
190
+ "anyOf": [
191
+ {
192
+ "type": "integer"
193
+ },
194
+ {
195
+ "type": "string"
196
+ }
197
+ ]
198
+ },
199
+ "backlog": {
200
+ "type": "integer",
201
+ "description": "The maximum length of the queue of pending connections"
202
+ },
203
+ "http2": {
204
+ "type": "boolean"
205
+ },
206
+ "https": {
207
+ "type": "object",
208
+ "properties": {
209
+ "allowHTTP1": {
210
+ "type": "boolean"
211
+ },
212
+ "key": {
213
+ "anyOf": [
214
+ {
215
+ "type": "string"
216
+ },
217
+ {
218
+ "type": "object",
219
+ "properties": {
220
+ "path": {
221
+ "type": "string",
222
+ "resolvePath": true
223
+ }
224
+ },
225
+ "additionalProperties": false
226
+ },
227
+ {
228
+ "type": "array",
229
+ "items": {
230
+ "anyOf": [
231
+ {
232
+ "type": "string"
233
+ },
234
+ {
235
+ "type": "object",
236
+ "properties": {
237
+ "path": {
238
+ "type": "string",
239
+ "resolvePath": true
240
+ }
241
+ },
242
+ "additionalProperties": false
243
+ }
244
+ ]
245
+ }
246
+ }
247
+ ]
248
+ },
249
+ "cert": {
250
+ "anyOf": [
251
+ {
252
+ "type": "string"
253
+ },
254
+ {
255
+ "type": "object",
256
+ "properties": {
257
+ "path": {
258
+ "type": "string",
259
+ "resolvePath": true
260
+ }
261
+ },
262
+ "additionalProperties": false
263
+ },
264
+ {
265
+ "type": "array",
266
+ "items": {
267
+ "anyOf": [
268
+ {
269
+ "type": "string"
270
+ },
271
+ {
272
+ "type": "object",
273
+ "properties": {
274
+ "path": {
275
+ "type": "string",
276
+ "resolvePath": true
277
+ }
278
+ },
279
+ "additionalProperties": false
280
+ }
281
+ ]
282
+ }
283
+ }
284
+ ]
285
+ },
286
+ "requestCert": {
287
+ "type": "boolean"
288
+ },
289
+ "rejectUnauthorized": {
290
+ "type": "boolean"
291
+ }
292
+ },
293
+ "additionalProperties": false,
294
+ "required": [
295
+ "key",
296
+ "cert"
297
+ ]
298
+ }
299
+ },
300
+ "additionalProperties": false
301
+ },
302
+ "watch": {
303
+ "anyOf": [
304
+ {
305
+ "type": "object",
306
+ "properties": {
307
+ "enabled": {
308
+ "default": true,
309
+ "anyOf": [
310
+ {
311
+ "type": "boolean"
312
+ },
313
+ {
314
+ "type": "string"
315
+ }
316
+ ]
317
+ },
318
+ "allow": {
319
+ "type": "array",
320
+ "items": {
321
+ "type": "string"
322
+ },
323
+ "minItems": 1,
324
+ "nullable": true,
325
+ "default": null
326
+ },
327
+ "ignore": {
328
+ "type": "array",
329
+ "items": {
330
+ "type": "string"
331
+ },
332
+ "nullable": true,
333
+ "default": null
334
+ }
335
+ },
336
+ "additionalProperties": false
337
+ },
338
+ {
339
+ "type": "boolean"
340
+ },
341
+ {
342
+ "type": "string"
343
+ }
344
+ ]
345
+ },
346
+ "application": {
347
+ "type": "object",
348
+ "properties": {
349
+ "basePath": {
350
+ "type": "string"
351
+ },
352
+ "outputDirectory": {
353
+ "type": "string",
354
+ "default": "dist"
355
+ },
356
+ "include": {
357
+ "type": "array",
358
+ "items": {
359
+ "type": "string"
360
+ },
361
+ "default": [
362
+ "dist"
363
+ ]
364
+ },
365
+ "commands": {
366
+ "type": "object",
367
+ "properties": {
368
+ "install": {
369
+ "type": "string",
370
+ "default": "npm ci --omit-dev"
371
+ },
372
+ "build": {
373
+ "type": "string"
374
+ },
375
+ "development": {
376
+ "type": "string"
377
+ },
378
+ "production": {
379
+ "type": "string"
380
+ }
381
+ },
382
+ "default": {},
383
+ "additionalProperties": false
384
+ },
385
+ "entrypointPort": {
386
+ "type": "number"
387
+ },
388
+ "changeDirectoryBeforeExecution": {
389
+ "type": "boolean",
390
+ "default": false
391
+ },
392
+ "preferLocalCommands": {
393
+ "type": "boolean",
394
+ "default": true
395
+ },
396
+ "processSpawner": {
397
+ "type": "string"
398
+ }
399
+ },
400
+ "additionalProperties": false,
401
+ "required": [],
402
+ "default": {}
403
+ },
404
+ "runtime": {
405
+ "type": "object",
406
+ "properties": {
407
+ "preload": {
408
+ "anyOf": [
409
+ {
410
+ "type": "string",
411
+ "resolvePath": true
412
+ },
413
+ {
414
+ "type": "array",
415
+ "items": {
416
+ "type": "string",
417
+ "resolvePath": true
418
+ }
419
+ }
420
+ ]
421
+ },
422
+ "basePath": {
423
+ "type": "string"
424
+ },
425
+ "services": {
426
+ "type": "array",
427
+ "items": {
428
+ "type": "object",
429
+ "anyOf": [
430
+ {
431
+ "required": [
432
+ "id",
433
+ "path"
434
+ ]
435
+ },
436
+ {
437
+ "required": [
438
+ "id",
439
+ "url"
440
+ ]
441
+ }
442
+ ],
443
+ "properties": {
444
+ "id": {
445
+ "type": "string"
446
+ },
447
+ "path": {
448
+ "type": "string",
449
+ "allowEmptyPaths": true,
450
+ "resolvePath": true
451
+ },
452
+ "config": {
453
+ "type": "string"
454
+ },
455
+ "url": {
456
+ "type": "string"
457
+ },
458
+ "gitBranch": {
459
+ "type": "string",
460
+ "default": "main"
461
+ },
462
+ "useHttp": {
463
+ "type": "boolean"
464
+ },
465
+ "reuseTcpPorts": {
466
+ "type": "boolean",
467
+ "default": true
468
+ },
469
+ "workers": {
470
+ "anyOf": [
471
+ {
472
+ "type": "number"
473
+ },
474
+ {
475
+ "type": "string"
476
+ },
477
+ {
478
+ "type": "object",
479
+ "properties": {
480
+ "static": {
481
+ "type": "number",
482
+ "minimum": 1
483
+ },
484
+ "minimum": {
485
+ "type": "number",
486
+ "minimum": 1
487
+ },
488
+ "maximum": {
489
+ "type": "number",
490
+ "minimum": 0
491
+ },
492
+ "scaleUpELU": {
493
+ "type": "number",
494
+ "minimum": 0,
495
+ "maximum": 1
496
+ },
497
+ "scaleDownELU": {
498
+ "type": "number",
499
+ "minimum": 0,
500
+ "maximum": 1
501
+ }
502
+ }
503
+ }
504
+ ]
505
+ },
506
+ "health": {
507
+ "type": "object",
508
+ "default": {},
509
+ "properties": {
510
+ "enabled": {
511
+ "anyOf": [
512
+ {
513
+ "type": "boolean"
514
+ },
515
+ {
516
+ "type": "string"
517
+ }
518
+ ]
519
+ },
520
+ "interval": {
521
+ "anyOf": [
522
+ {
523
+ "type": "number",
524
+ "minimum": 0
525
+ },
526
+ {
527
+ "type": "string"
528
+ }
529
+ ]
530
+ },
531
+ "gracePeriod": {
532
+ "anyOf": [
533
+ {
534
+ "type": "number",
535
+ "minimum": 0
536
+ },
537
+ {
538
+ "type": "string"
539
+ }
540
+ ]
541
+ },
542
+ "maxUnhealthyChecks": {
543
+ "anyOf": [
544
+ {
545
+ "type": "number",
546
+ "minimum": 1
547
+ },
548
+ {
549
+ "type": "string"
550
+ }
551
+ ]
552
+ },
553
+ "maxELU": {
554
+ "anyOf": [
555
+ {
556
+ "type": "number",
557
+ "minimum": 0,
558
+ "maximum": 1
559
+ },
560
+ {
561
+ "type": "string"
562
+ }
563
+ ]
564
+ },
565
+ "maxHeapUsed": {
566
+ "anyOf": [
567
+ {
568
+ "type": "number",
569
+ "minimum": 0,
570
+ "maximum": 1
571
+ },
572
+ {
573
+ "type": "string"
574
+ }
575
+ ]
576
+ },
577
+ "maxHeapTotal": {
578
+ "anyOf": [
579
+ {
580
+ "type": "number",
581
+ "minimum": 0
582
+ },
583
+ {
584
+ "type": "string"
585
+ }
586
+ ]
587
+ },
588
+ "maxYoungGeneration": {
589
+ "anyOf": [
590
+ {
591
+ "type": "number",
592
+ "minimum": 0
593
+ },
594
+ {
595
+ "type": "string"
596
+ }
597
+ ]
598
+ },
599
+ "codeRangeSize": {
600
+ "anyOf": [
601
+ {
602
+ "type": "number",
603
+ "minimum": 0
604
+ },
605
+ {
606
+ "type": "string"
607
+ }
608
+ ]
609
+ },
610
+ "bufferPoolSize": {
611
+ "anyOf": [
612
+ {
613
+ "type": "number",
614
+ "minimum": 0
615
+ },
616
+ {
617
+ "type": "string"
618
+ }
619
+ ]
620
+ },
621
+ "defaultHighWaterMark": {
622
+ "anyOf": [
623
+ {
624
+ "type": "number",
625
+ "minimum": 0
626
+ },
627
+ {
628
+ "type": "string"
629
+ }
630
+ ]
631
+ }
632
+ },
633
+ "additionalProperties": false
634
+ },
635
+ "dependencies": {
636
+ "type": "array",
637
+ "items": {
638
+ "type": "string"
639
+ },
640
+ "default": []
641
+ },
642
+ "arguments": {
643
+ "type": "array",
644
+ "items": {
645
+ "type": "string"
646
+ }
647
+ },
648
+ "env": {
649
+ "type": "object",
650
+ "additionalProperties": {
651
+ "type": "string"
652
+ }
653
+ },
654
+ "envfile": {
655
+ "type": "string"
656
+ },
657
+ "sourceMaps": {
658
+ "type": "boolean"
659
+ },
660
+ "nodeModulesSourceMaps": {
661
+ "type": "array",
662
+ "items": {
663
+ "type": "string"
664
+ }
665
+ },
666
+ "packageManager": {
667
+ "type": "string",
668
+ "enum": [
669
+ "npm",
670
+ "pnpm",
671
+ "yarn"
672
+ ]
673
+ },
674
+ "preload": {
675
+ "anyOf": [
676
+ {
677
+ "type": "string",
678
+ "resolvePath": true
679
+ },
680
+ {
681
+ "type": "array",
682
+ "items": {
683
+ "type": "string",
684
+ "resolvePath": true
685
+ }
686
+ }
687
+ ]
688
+ },
689
+ "nodeOptions": {
690
+ "type": "string"
691
+ },
692
+ "execArgv": {
693
+ "type": "array",
694
+ "items": {
695
+ "type": "string"
696
+ }
697
+ },
698
+ "permissions": {
699
+ "type": "object",
700
+ "properties": {
701
+ "fs": {
702
+ "type": "object",
703
+ "properties": {
704
+ "read": {
705
+ "type": "array",
706
+ "items": {
707
+ "type": "string"
708
+ }
709
+ },
710
+ "write": {
711
+ "type": "array",
712
+ "items": {
713
+ "type": "string"
714
+ }
715
+ }
716
+ },
717
+ "additionalProperties": false
718
+ }
719
+ },
720
+ "additionalProperties": false
721
+ },
722
+ "telemetry": {
723
+ "type": "object",
724
+ "properties": {
725
+ "instrumentations": {
726
+ "type": "array",
727
+ "description": "An array of instrumentations loaded if telemetry is enabled",
728
+ "items": {
729
+ "oneOf": [
730
+ {
731
+ "type": "string"
732
+ },
733
+ {
734
+ "type": "object",
735
+ "properties": {
736
+ "package": {
737
+ "type": "string"
738
+ },
739
+ "exportName": {
740
+ "type": "string"
741
+ },
742
+ "options": {
743
+ "type": "object",
744
+ "additionalProperties": true
745
+ }
746
+ },
747
+ "required": [
748
+ "package"
749
+ ]
750
+ }
751
+ ]
752
+ }
753
+ }
754
+ }
755
+ },
756
+ "compileCache": {
757
+ "anyOf": [
758
+ {
759
+ "type": "boolean"
760
+ },
761
+ {
762
+ "type": "object",
763
+ "properties": {
764
+ "enabled": {
765
+ "type": "boolean",
766
+ "default": true,
767
+ "description": "Enable Node.js module compile cache for faster startup"
768
+ },
769
+ "directory": {
770
+ "type": "string",
771
+ "description": "Directory to store compile cache. Defaults to .plt/compile-cache in app root"
772
+ }
773
+ },
774
+ "additionalProperties": false
775
+ }
776
+ ]
777
+ },
778
+ "management": {
779
+ "anyOf": [
780
+ {
781
+ "type": "boolean"
782
+ },
783
+ {
784
+ "type": "object",
785
+ "properties": {
786
+ "enabled": {
787
+ "type": "boolean",
788
+ "default": true
789
+ },
790
+ "operations": {
791
+ "type": "array",
792
+ "items": {
793
+ "type": "string"
794
+ }
795
+ }
796
+ },
797
+ "additionalProperties": false
798
+ }
799
+ ]
800
+ }
801
+ }
802
+ }
803
+ },
804
+ "workers": {
805
+ "anyOf": [
806
+ {
807
+ "type": "number",
808
+ "minimum": 1
809
+ },
810
+ {
811
+ "type": "string"
812
+ },
813
+ {
814
+ "type": "object",
815
+ "properties": {
816
+ "static": {
817
+ "type": "number",
818
+ "minimum": 1
819
+ },
820
+ "dynamic": {
821
+ "type": "boolean",
822
+ "default": false
823
+ },
824
+ "minimum": {
825
+ "type": "number",
826
+ "minimum": 1
827
+ },
828
+ "maximum": {
829
+ "type": "number",
830
+ "minimum": 0
831
+ },
832
+ "total": {
833
+ "type": "number",
834
+ "minimum": 1
835
+ },
836
+ "maxMemory": {
837
+ "type": "number",
838
+ "minimum": 0
839
+ },
840
+ "cooldown": {
841
+ "type": "number",
842
+ "minimum": 0
843
+ },
844
+ "gracePeriod": {
845
+ "type": "number",
846
+ "minimum": 0
847
+ },
848
+ "scaleUpELU": {
849
+ "type": "number",
850
+ "minimum": 0,
851
+ "maximum": 1
852
+ },
853
+ "scaleDownELU": {
854
+ "type": "number",
855
+ "minimum": 0,
856
+ "maximum": 1
857
+ }
858
+ }
859
+ }
860
+ ]
861
+ },
862
+ "workersRestartDelay": {
863
+ "anyOf": [
864
+ {
865
+ "type": "number",
866
+ "minimum": 0
867
+ },
868
+ {
869
+ "type": "string"
870
+ }
871
+ ],
872
+ "default": 0
873
+ },
874
+ "logger": {
875
+ "type": "object",
876
+ "properties": {
877
+ "level": {
878
+ "type": "string",
879
+ "oneOf": [
880
+ {
881
+ "enum": [
882
+ "fatal",
883
+ "error",
884
+ "warn",
885
+ "info",
886
+ "debug",
887
+ "trace",
888
+ "silent"
889
+ ]
890
+ },
891
+ {
892
+ "pattern": "^\\{.+\\}$"
893
+ }
894
+ ]
895
+ },
896
+ "transport": {
897
+ "anyOf": [
898
+ {
899
+ "type": "object",
900
+ "properties": {
901
+ "target": {
902
+ "type": "string",
903
+ "resolveModule": true
904
+ },
905
+ "options": {
906
+ "type": "object"
907
+ }
908
+ },
909
+ "additionalProperties": false
910
+ },
911
+ {
912
+ "type": "object",
913
+ "properties": {
914
+ "targets": {
915
+ "type": "array",
916
+ "items": {
917
+ "type": "object",
918
+ "properties": {
919
+ "target": {
920
+ "anyOf": [
921
+ {
922
+ "type": "string",
923
+ "resolveModule": true
924
+ },
925
+ {
926
+ "type": "string",
927
+ "resolvePath": true
928
+ }
929
+ ]
930
+ },
931
+ "options": {
932
+ "type": "object"
933
+ },
934
+ "level": {
935
+ "type": "string"
936
+ }
937
+ },
938
+ "additionalProperties": false
939
+ }
940
+ },
941
+ "options": {
942
+ "type": "object"
943
+ }
944
+ },
945
+ "additionalProperties": false
946
+ }
947
+ ]
948
+ },
949
+ "pipeline": {
950
+ "type": "object",
951
+ "properties": {
952
+ "target": {
953
+ "type": "string",
954
+ "resolveModule": true
955
+ },
956
+ "options": {
957
+ "type": "object"
958
+ }
959
+ },
960
+ "additionalProperties": false
961
+ },
962
+ "formatters": {
963
+ "type": "object",
964
+ "properties": {
965
+ "path": {
966
+ "type": "string",
967
+ "resolvePath": true
968
+ }
969
+ },
970
+ "required": [
971
+ "path"
972
+ ],
973
+ "additionalProperties": false
974
+ },
975
+ "timestamp": {
976
+ "enum": [
977
+ "epochTime",
978
+ "unixTime",
979
+ "nullTime",
980
+ "isoTime"
981
+ ]
982
+ },
983
+ "redact": {
984
+ "type": "object",
985
+ "properties": {
986
+ "paths": {
987
+ "type": "array",
988
+ "items": {
989
+ "type": "string"
990
+ }
991
+ },
992
+ "censor": {
993
+ "type": "string",
994
+ "default": "[redacted]"
995
+ }
996
+ },
997
+ "required": [
998
+ "paths"
999
+ ],
1000
+ "additionalProperties": false
1001
+ },
1002
+ "base": {
1003
+ "anyOf": [
1004
+ {
1005
+ "type": "object",
1006
+ "additionalProperties": true
1007
+ },
1008
+ {
1009
+ "type": "null"
1010
+ }
1011
+ ]
1012
+ },
1013
+ "messageKey": {
1014
+ "type": "string"
1015
+ },
1016
+ "customLevels": {
1017
+ "type": "object",
1018
+ "additionalProperties": true
1019
+ },
1020
+ "openTelemetryExporter": {
1021
+ "type": "object",
1022
+ "properties": {
1023
+ "protocol": {
1024
+ "type": "string",
1025
+ "enum": [
1026
+ "grpc",
1027
+ "http"
1028
+ ]
1029
+ },
1030
+ "url": {
1031
+ "type": "string"
1032
+ }
1033
+ },
1034
+ "required": [
1035
+ "protocol",
1036
+ "url"
1037
+ ],
1038
+ "additionalProperties": false
1039
+ }
1040
+ },
1041
+ "default": {},
1042
+ "additionalProperties": true
1043
+ },
1044
+ "server": {
1045
+ "type": "object",
1046
+ "properties": {
1047
+ "hostname": {
1048
+ "type": "string"
1049
+ },
1050
+ "port": {
1051
+ "anyOf": [
1052
+ {
1053
+ "type": "integer"
1054
+ },
1055
+ {
1056
+ "type": "string"
1057
+ }
1058
+ ]
1059
+ },
1060
+ "backlog": {
1061
+ "type": "integer",
1062
+ "description": "The maximum length of the queue of pending connections"
1063
+ },
1064
+ "http2": {
1065
+ "type": "boolean"
1066
+ },
1067
+ "https": {
1068
+ "type": "object",
1069
+ "properties": {
1070
+ "allowHTTP1": {
1071
+ "type": "boolean"
1072
+ },
1073
+ "key": {
1074
+ "anyOf": [
1075
+ {
1076
+ "type": "string"
1077
+ },
1078
+ {
1079
+ "type": "object",
1080
+ "properties": {
1081
+ "path": {
1082
+ "type": "string",
1083
+ "resolvePath": true
1084
+ }
1085
+ },
1086
+ "additionalProperties": false
1087
+ },
1088
+ {
1089
+ "type": "array",
1090
+ "items": {
1091
+ "anyOf": [
1092
+ {
1093
+ "type": "string"
1094
+ },
1095
+ {
1096
+ "type": "object",
1097
+ "properties": {
1098
+ "path": {
1099
+ "type": "string",
1100
+ "resolvePath": true
1101
+ }
1102
+ },
1103
+ "additionalProperties": false
1104
+ }
1105
+ ]
1106
+ }
1107
+ }
1108
+ ]
1109
+ },
1110
+ "cert": {
1111
+ "anyOf": [
1112
+ {
1113
+ "type": "string"
1114
+ },
1115
+ {
1116
+ "type": "object",
1117
+ "properties": {
1118
+ "path": {
1119
+ "type": "string",
1120
+ "resolvePath": true
1121
+ }
1122
+ },
1123
+ "additionalProperties": false
1124
+ },
1125
+ {
1126
+ "type": "array",
1127
+ "items": {
1128
+ "anyOf": [
1129
+ {
1130
+ "type": "string"
1131
+ },
1132
+ {
1133
+ "type": "object",
1134
+ "properties": {
1135
+ "path": {
1136
+ "type": "string",
1137
+ "resolvePath": true
1138
+ }
1139
+ },
1140
+ "additionalProperties": false
1141
+ }
1142
+ ]
1143
+ }
1144
+ }
1145
+ ]
1146
+ },
1147
+ "requestCert": {
1148
+ "type": "boolean"
1149
+ },
1150
+ "rejectUnauthorized": {
1151
+ "type": "boolean"
1152
+ }
1153
+ },
1154
+ "additionalProperties": false,
1155
+ "required": [
1156
+ "key",
1157
+ "cert"
1158
+ ]
1159
+ }
1160
+ },
1161
+ "additionalProperties": false
1162
+ },
1163
+ "reuseTcpPorts": {
1164
+ "type": "boolean",
1165
+ "default": true
1166
+ },
1167
+ "startTimeout": {
1168
+ "default": 30000,
1169
+ "type": "number",
1170
+ "minimum": 0
1171
+ },
1172
+ "restartOnError": {
1173
+ "default": true,
1174
+ "anyOf": [
1175
+ {
1176
+ "type": "boolean"
1177
+ },
1178
+ {
1179
+ "type": "number",
1180
+ "minimum": 0
1181
+ }
1182
+ ]
1183
+ },
1184
+ "exitOnUnhandledErrors": {
1185
+ "default": true,
1186
+ "anyOf": [
1187
+ {
1188
+ "type": "boolean"
1189
+ },
1190
+ {
1191
+ "type": "number"
1192
+ }
1193
+ ]
1194
+ },
1195
+ "gracefulShutdown": {
1196
+ "type": "object",
1197
+ "properties": {
1198
+ "runtime": {
1199
+ "anyOf": [
1200
+ {
1201
+ "type": "number",
1202
+ "minimum": 1
1203
+ },
1204
+ {
1205
+ "type": "string"
1206
+ }
1207
+ ],
1208
+ "default": 10000
1209
+ },
1210
+ "application": {
1211
+ "anyOf": [
1212
+ {
1213
+ "type": "number",
1214
+ "minimum": 1
1215
+ },
1216
+ {
1217
+ "type": "string"
1218
+ }
1219
+ ],
1220
+ "default": 10000
1221
+ },
1222
+ "closeConnections": {
1223
+ "type": "boolean",
1224
+ "default": true,
1225
+ "description": "Add Connection: close header to HTTP responses during graceful shutdown"
1226
+ }
1227
+ },
1228
+ "default": {},
1229
+ "required": [
1230
+ "runtime",
1231
+ "application"
1232
+ ],
1233
+ "additionalProperties": false
1234
+ },
1235
+ "health": {
1236
+ "type": "object",
1237
+ "default": {},
1238
+ "properties": {
1239
+ "enabled": {
1240
+ "anyOf": [
1241
+ {
1242
+ "type": "boolean"
1243
+ },
1244
+ {
1245
+ "type": "string"
1246
+ }
1247
+ ],
1248
+ "default": true
1249
+ },
1250
+ "interval": {
1251
+ "anyOf": [
1252
+ {
1253
+ "type": "number",
1254
+ "minimum": 0
1255
+ },
1256
+ {
1257
+ "type": "string"
1258
+ }
1259
+ ],
1260
+ "default": 30000
1261
+ },
1262
+ "gracePeriod": {
1263
+ "anyOf": [
1264
+ {
1265
+ "type": "number",
1266
+ "minimum": 0
1267
+ },
1268
+ {
1269
+ "type": "string"
1270
+ }
1271
+ ],
1272
+ "default": 30000
1273
+ },
1274
+ "maxUnhealthyChecks": {
1275
+ "anyOf": [
1276
+ {
1277
+ "type": "number",
1278
+ "minimum": 1
1279
+ },
1280
+ {
1281
+ "type": "string"
1282
+ }
1283
+ ],
1284
+ "default": 10
1285
+ },
1286
+ "maxELU": {
1287
+ "anyOf": [
1288
+ {
1289
+ "type": "number",
1290
+ "minimum": 0,
1291
+ "maximum": 1
1292
+ },
1293
+ {
1294
+ "type": "string"
1295
+ }
1296
+ ],
1297
+ "default": 0.99
1298
+ },
1299
+ "maxHeapUsed": {
1300
+ "anyOf": [
1301
+ {
1302
+ "type": "number",
1303
+ "minimum": 0,
1304
+ "maximum": 1
1305
+ },
1306
+ {
1307
+ "type": "string"
1308
+ }
1309
+ ],
1310
+ "default": 0.99
1311
+ },
1312
+ "maxHeapTotal": {
1313
+ "anyOf": [
1314
+ {
1315
+ "type": "number",
1316
+ "minimum": 0
1317
+ },
1318
+ {
1319
+ "type": "string"
1320
+ }
1321
+ ],
1322
+ "default": 4294967296
1323
+ },
1324
+ "maxYoungGeneration": {
1325
+ "anyOf": [
1326
+ {
1327
+ "type": "number",
1328
+ "minimum": 0
1329
+ },
1330
+ {
1331
+ "type": "string"
1332
+ }
1333
+ ],
1334
+ "default": 134217728
1335
+ },
1336
+ "codeRangeSize": {
1337
+ "anyOf": [
1338
+ {
1339
+ "type": "number",
1340
+ "minimum": 0
1341
+ },
1342
+ {
1343
+ "type": "string"
1344
+ }
1345
+ ],
1346
+ "default": 268435456
1347
+ },
1348
+ "bufferPoolSize": {
1349
+ "anyOf": [
1350
+ {
1351
+ "type": "number",
1352
+ "minimum": 0
1353
+ },
1354
+ {
1355
+ "type": "string"
1356
+ }
1357
+ ],
1358
+ "default": 262144
1359
+ },
1360
+ "defaultHighWaterMark": {
1361
+ "anyOf": [
1362
+ {
1363
+ "type": "number",
1364
+ "minimum": 0
1365
+ },
1366
+ {
1367
+ "type": "string"
1368
+ }
1369
+ ],
1370
+ "default": 262144
1371
+ }
1372
+ },
1373
+ "additionalProperties": false
1374
+ },
1375
+ "healthProbes": {
1376
+ "anyOf": [
1377
+ {
1378
+ "type": "boolean"
1379
+ },
1380
+ {
1381
+ "type": "string"
1382
+ }
1383
+ ],
1384
+ "default": true
1385
+ },
1386
+ "undici": {
1387
+ "type": "object",
1388
+ "properties": {
1389
+ "agentOptions": {
1390
+ "type": "object",
1391
+ "additionalProperties": true
1392
+ },
1393
+ "interceptors": {
1394
+ "anyOf": [
1395
+ {
1396
+ "type": "array",
1397
+ "items": {
1398
+ "type": "object",
1399
+ "properties": {
1400
+ "module": {
1401
+ "type": "string"
1402
+ },
1403
+ "options": {
1404
+ "type": "object",
1405
+ "additionalProperties": true
1406
+ }
1407
+ },
1408
+ "required": [
1409
+ "module",
1410
+ "options"
1411
+ ]
1412
+ }
1413
+ },
1414
+ {
1415
+ "type": "object",
1416
+ "properties": {
1417
+ "Client": {
1418
+ "type": "array",
1419
+ "items": {
1420
+ "type": "object",
1421
+ "properties": {
1422
+ "module": {
1423
+ "type": "string"
1424
+ },
1425
+ "options": {
1426
+ "type": "object",
1427
+ "additionalProperties": true
1428
+ }
1429
+ },
1430
+ "required": [
1431
+ "module",
1432
+ "options"
1433
+ ]
1434
+ }
1435
+ },
1436
+ "Pool": {
1437
+ "type": "array",
1438
+ "items": {
1439
+ "type": "object",
1440
+ "properties": {
1441
+ "module": {
1442
+ "type": "string"
1443
+ },
1444
+ "options": {
1445
+ "type": "object",
1446
+ "additionalProperties": true
1447
+ }
1448
+ },
1449
+ "required": [
1450
+ "module",
1451
+ "options"
1452
+ ]
1453
+ }
1454
+ },
1455
+ "Agent": {
1456
+ "type": "array",
1457
+ "items": {
1458
+ "type": "object",
1459
+ "properties": {
1460
+ "module": {
1461
+ "type": "string"
1462
+ },
1463
+ "options": {
1464
+ "type": "object",
1465
+ "additionalProperties": true
1466
+ }
1467
+ },
1468
+ "required": [
1469
+ "module",
1470
+ "options"
1471
+ ]
1472
+ }
1473
+ }
1474
+ }
1475
+ }
1476
+ ]
1477
+ }
1478
+ }
1479
+ },
1480
+ "httpCache": {
1481
+ "oneOf": [
1482
+ {
1483
+ "type": "boolean"
1484
+ },
1485
+ {
1486
+ "type": "object",
1487
+ "properties": {
1488
+ "store": {
1489
+ "type": "string"
1490
+ },
1491
+ "methods": {
1492
+ "type": "array",
1493
+ "items": {
1494
+ "type": "string"
1495
+ },
1496
+ "default": [
1497
+ "GET",
1498
+ "HEAD"
1499
+ ],
1500
+ "minItems": 1
1501
+ },
1502
+ "cacheTagsHeader": {
1503
+ "type": "string"
1504
+ },
1505
+ "maxSize": {
1506
+ "type": "integer"
1507
+ },
1508
+ "maxEntrySize": {
1509
+ "type": "integer"
1510
+ },
1511
+ "maxCount": {
1512
+ "type": "integer"
1513
+ },
1514
+ "origins": {
1515
+ "type": "array",
1516
+ "items": {
1517
+ "type": "string"
1518
+ },
1519
+ "description": "Whitelist of origins to cache. Supports exact strings and regex patterns (e.g., \"/https:\\\\/\\\\/.*\\\\.example\\\\.com/\")."
1520
+ },
1521
+ "cacheByDefault": {
1522
+ "type": "integer",
1523
+ "description": "Default cache duration in seconds for responses without explicit expiration headers."
1524
+ },
1525
+ "type": {
1526
+ "type": "string",
1527
+ "enum": [
1528
+ "shared",
1529
+ "private"
1530
+ ],
1531
+ "default": "shared",
1532
+ "description": "Cache type. \"shared\" caches may be shared between users, \"private\" caches are user-specific."
1533
+ }
1534
+ }
1535
+ }
1536
+ ]
1537
+ },
1538
+ "watch": {
1539
+ "anyOf": [
1540
+ {
1541
+ "type": "boolean"
1542
+ },
1543
+ {
1544
+ "type": "string"
1545
+ }
1546
+ ]
1547
+ },
1548
+ "managementApi": {
1549
+ "anyOf": [
1550
+ {
1551
+ "type": "boolean"
1552
+ },
1553
+ {
1554
+ "type": "string"
1555
+ },
1556
+ {
1557
+ "type": "object",
1558
+ "properties": {
1559
+ "logs": {
1560
+ "type": "object",
1561
+ "properties": {
1562
+ "maxSize": {
1563
+ "type": "number",
1564
+ "minimum": 5,
1565
+ "default": 200
1566
+ }
1567
+ },
1568
+ "additionalProperties": false
1569
+ },
1570
+ "socket": {
1571
+ "type": "string",
1572
+ "description": "Custom path for the control socket. If not specified, uses the default platform-specific location."
1573
+ }
1574
+ },
1575
+ "additionalProperties": false
1576
+ }
1577
+ ],
1578
+ "default": true
1579
+ },
1580
+ "management": {
1581
+ "anyOf": [
1582
+ {
1583
+ "type": "boolean"
1584
+ },
1585
+ {
1586
+ "type": "object",
1587
+ "properties": {
1588
+ "enabled": {
1589
+ "type": "boolean",
1590
+ "default": true
1591
+ },
1592
+ "operations": {
1593
+ "type": "array",
1594
+ "items": {
1595
+ "type": "string"
1596
+ }
1597
+ }
1598
+ },
1599
+ "additionalProperties": false
1600
+ }
1601
+ ]
1602
+ },
1603
+ "metrics": {
1604
+ "anyOf": [
1605
+ {
1606
+ "type": "boolean"
1607
+ },
1608
+ {
1609
+ "type": "object",
1610
+ "properties": {
1611
+ "port": {
1612
+ "anyOf": [
1613
+ {
1614
+ "type": "integer"
1615
+ },
1616
+ {
1617
+ "type": "string"
1618
+ }
1619
+ ]
1620
+ },
1621
+ "enabled": {
1622
+ "anyOf": [
1623
+ {
1624
+ "type": "boolean"
1625
+ },
1626
+ {
1627
+ "type": "string"
1628
+ }
1629
+ ]
1630
+ },
1631
+ "hostname": {
1632
+ "type": "string"
1633
+ },
1634
+ "endpoint": {
1635
+ "type": "string"
1636
+ },
1637
+ "https": {
1638
+ "type": "object",
1639
+ "properties": {
1640
+ "allowHTTP1": {
1641
+ "type": "boolean"
1642
+ },
1643
+ "key": {
1644
+ "anyOf": [
1645
+ {
1646
+ "type": "string"
1647
+ },
1648
+ {
1649
+ "type": "object",
1650
+ "properties": {
1651
+ "path": {
1652
+ "type": "string",
1653
+ "resolvePath": true
1654
+ }
1655
+ },
1656
+ "additionalProperties": false
1657
+ },
1658
+ {
1659
+ "type": "array",
1660
+ "items": {
1661
+ "anyOf": [
1662
+ {
1663
+ "type": "string"
1664
+ },
1665
+ {
1666
+ "type": "object",
1667
+ "properties": {
1668
+ "path": {
1669
+ "type": "string",
1670
+ "resolvePath": true
1671
+ }
1672
+ },
1673
+ "additionalProperties": false
1674
+ }
1675
+ ]
1676
+ }
1677
+ }
1678
+ ]
1679
+ },
1680
+ "cert": {
1681
+ "anyOf": [
1682
+ {
1683
+ "type": "string"
1684
+ },
1685
+ {
1686
+ "type": "object",
1687
+ "properties": {
1688
+ "path": {
1689
+ "type": "string",
1690
+ "resolvePath": true
1691
+ }
1692
+ },
1693
+ "additionalProperties": false
1694
+ },
1695
+ {
1696
+ "type": "array",
1697
+ "items": {
1698
+ "anyOf": [
1699
+ {
1700
+ "type": "string"
1701
+ },
1702
+ {
1703
+ "type": "object",
1704
+ "properties": {
1705
+ "path": {
1706
+ "type": "string",
1707
+ "resolvePath": true
1708
+ }
1709
+ },
1710
+ "additionalProperties": false
1711
+ }
1712
+ ]
1713
+ }
1714
+ }
1715
+ ]
1716
+ },
1717
+ "requestCert": {
1718
+ "type": "boolean"
1719
+ },
1720
+ "rejectUnauthorized": {
1721
+ "type": "boolean"
1722
+ }
1723
+ },
1724
+ "additionalProperties": false,
1725
+ "required": [
1726
+ "key",
1727
+ "cert"
1728
+ ]
1729
+ },
1730
+ "auth": {
1731
+ "type": "object",
1732
+ "properties": {
1733
+ "username": {
1734
+ "type": "string"
1735
+ },
1736
+ "password": {
1737
+ "type": "string"
1738
+ }
1739
+ },
1740
+ "additionalProperties": false,
1741
+ "required": [
1742
+ "username",
1743
+ "password"
1744
+ ]
1745
+ },
1746
+ "labels": {
1747
+ "type": "object",
1748
+ "additionalProperties": {
1749
+ "type": "string"
1750
+ }
1751
+ },
1752
+ "applicationLabel": {
1753
+ "type": "string",
1754
+ "default": "applicationId",
1755
+ "description": "The label name to use for the application identifier in metrics (e.g., applicationId, serviceId)"
1756
+ },
1757
+ "httpClientMetrics": {
1758
+ "anyOf": [
1759
+ {
1760
+ "type": "boolean"
1761
+ },
1762
+ {
1763
+ "type": "string"
1764
+ }
1765
+ ],
1766
+ "default": false,
1767
+ "description": "Enable outgoing HTTP client request duration metrics"
1768
+ },
1769
+ "readiness": {
1770
+ "anyOf": [
1771
+ {
1772
+ "type": "boolean"
1773
+ },
1774
+ {
1775
+ "type": "object",
1776
+ "properties": {
1777
+ "endpoint": {
1778
+ "type": "string"
1779
+ },
1780
+ "success": {
1781
+ "type": "object",
1782
+ "properties": {
1783
+ "statusCode": {
1784
+ "type": "number"
1785
+ },
1786
+ "body": {
1787
+ "type": "string"
1788
+ }
1789
+ },
1790
+ "additionalProperties": false
1791
+ },
1792
+ "fail": {
1793
+ "type": "object",
1794
+ "properties": {
1795
+ "statusCode": {
1796
+ "type": "number"
1797
+ },
1798
+ "body": {
1799
+ "type": "string"
1800
+ }
1801
+ },
1802
+ "additionalProperties": false
1803
+ }
1804
+ },
1805
+ "additionalProperties": false
1806
+ }
1807
+ ]
1808
+ },
1809
+ "liveness": {
1810
+ "anyOf": [
1811
+ {
1812
+ "type": "boolean"
1813
+ },
1814
+ {
1815
+ "type": "object",
1816
+ "properties": {
1817
+ "endpoint": {
1818
+ "type": "string"
1819
+ },
1820
+ "success": {
1821
+ "type": "object",
1822
+ "properties": {
1823
+ "statusCode": {
1824
+ "type": "number"
1825
+ },
1826
+ "body": {
1827
+ "type": "string"
1828
+ }
1829
+ },
1830
+ "additionalProperties": false
1831
+ },
1832
+ "fail": {
1833
+ "type": "object",
1834
+ "properties": {
1835
+ "statusCode": {
1836
+ "type": "number"
1837
+ },
1838
+ "body": {
1839
+ "type": "string"
1840
+ }
1841
+ },
1842
+ "additionalProperties": false
1843
+ }
1844
+ },
1845
+ "additionalProperties": false
1846
+ }
1847
+ ]
1848
+ },
1849
+ "healthChecksTimeouts": {
1850
+ "anyOf": [
1851
+ {
1852
+ "type": "integer"
1853
+ },
1854
+ {
1855
+ "type": "string"
1856
+ }
1857
+ ],
1858
+ "default": 5000
1859
+ },
1860
+ "plugins": {
1861
+ "type": "array",
1862
+ "items": {
1863
+ "anyOf": [
1864
+ {
1865
+ "type": "string",
1866
+ "resolvePath": true
1867
+ }
1868
+ ]
1869
+ }
1870
+ },
1871
+ "timeout": {
1872
+ "anyOf": [
1873
+ {
1874
+ "type": "integer"
1875
+ },
1876
+ {
1877
+ "type": "string"
1878
+ }
1879
+ ],
1880
+ "default": 10000
1881
+ },
1882
+ "otlpExporter": {
1883
+ "type": "object",
1884
+ "description": "Configuration for exporting metrics to an OTLP endpoint",
1885
+ "properties": {
1886
+ "enabled": {
1887
+ "anyOf": [
1888
+ {
1889
+ "type": "boolean"
1890
+ },
1891
+ {
1892
+ "type": "string"
1893
+ }
1894
+ ],
1895
+ "description": "Enable or disable OTLP metrics export"
1896
+ },
1897
+ "endpoint": {
1898
+ "type": "string",
1899
+ "description": "OTLP endpoint URL (e.g., http://collector:4318/v1/metrics)"
1900
+ },
1901
+ "interval": {
1902
+ "anyOf": [
1903
+ {
1904
+ "type": "integer"
1905
+ },
1906
+ {
1907
+ "type": "string"
1908
+ }
1909
+ ],
1910
+ "default": 60000,
1911
+ "description": "Interval in milliseconds between metric pushes"
1912
+ },
1913
+ "headers": {
1914
+ "type": "object",
1915
+ "additionalProperties": {
1916
+ "type": "string"
1917
+ },
1918
+ "description": "Additional HTTP headers for authentication"
1919
+ },
1920
+ "serviceName": {
1921
+ "type": "string",
1922
+ "description": "Service name for OTLP resource attributes"
1923
+ },
1924
+ "serviceVersion": {
1925
+ "type": "string",
1926
+ "description": "Service version for OTLP resource attributes"
1927
+ }
1928
+ },
1929
+ "required": [
1930
+ "endpoint"
1931
+ ],
1932
+ "additionalProperties": false
1933
+ },
1934
+ "httpCustomLabels": {
1935
+ "type": "array",
1936
+ "description": "Custom labels to add to HTTP metrics (http_request_all_duration_seconds). Each label extracts its value from an HTTP request header.",
1937
+ "items": {
1938
+ "type": "object",
1939
+ "properties": {
1940
+ "name": {
1941
+ "type": "string",
1942
+ "description": "The label name to use in metrics"
1943
+ },
1944
+ "header": {
1945
+ "type": "string",
1946
+ "description": "The HTTP request header to extract the value from"
1947
+ },
1948
+ "default": {
1949
+ "type": "string",
1950
+ "description": "Default value when header is missing (defaults to \"unknown\")"
1951
+ }
1952
+ },
1953
+ "required": [
1954
+ "name",
1955
+ "header"
1956
+ ],
1957
+ "additionalProperties": false
1958
+ }
1959
+ }
1960
+ },
1961
+ "additionalProperties": false
1962
+ }
1963
+ ]
1964
+ },
1965
+ "telemetry": {
1966
+ "type": "object",
1967
+ "properties": {
1968
+ "enabled": {
1969
+ "anyOf": [
1970
+ {
1971
+ "type": "boolean"
1972
+ },
1973
+ {
1974
+ "type": "string"
1975
+ }
1976
+ ]
1977
+ },
1978
+ "applicationName": {
1979
+ "type": "string",
1980
+ "description": "The name of the application. Defaults to the folder name if not specified."
1981
+ },
1982
+ "version": {
1983
+ "type": "string",
1984
+ "description": "The version of the application (optional)"
1985
+ },
1986
+ "skip": {
1987
+ "type": "array",
1988
+ "description": "An array of paths to skip when creating spans. Useful for health checks and other endpoints that do not need to be traced.",
1989
+ "items": {
1990
+ "type": "object",
1991
+ "properties": {
1992
+ "path": {
1993
+ "type": "string",
1994
+ "description": "The path to skip. Can be a string or a regex."
1995
+ },
1996
+ "method": {
1997
+ "description": "HTTP method to skip",
1998
+ "type": "string",
1999
+ "enum": [
2000
+ "GET",
2001
+ "POST",
2002
+ "PUT",
2003
+ "DELETE",
2004
+ "PATCH",
2005
+ "HEAD",
2006
+ "OPTIONS"
2007
+ ]
2008
+ }
2009
+ }
2010
+ }
2011
+ },
2012
+ "exporter": {
2013
+ "anyOf": [
2014
+ {
2015
+ "type": "array",
2016
+ "items": {
2017
+ "type": "object",
2018
+ "properties": {
2019
+ "type": {
2020
+ "type": "string",
2021
+ "enum": [
2022
+ "console",
2023
+ "otlp",
2024
+ "zipkin",
2025
+ "memory",
2026
+ "file"
2027
+ ],
2028
+ "default": "console"
2029
+ },
2030
+ "options": {
2031
+ "type": "object",
2032
+ "description": "Options for the exporter. These are passed directly to the exporter.",
2033
+ "properties": {
2034
+ "url": {
2035
+ "type": "string",
2036
+ "description": "The URL to send the traces to. Not used for console or memory exporters."
2037
+ },
2038
+ "headers": {
2039
+ "type": "object",
2040
+ "description": "Headers to send to the exporter. Not used for console or memory exporters."
2041
+ },
2042
+ "path": {
2043
+ "type": "string",
2044
+ "description": "The path to write the traces to. Only for file exporter."
2045
+ },
2046
+ "protocol": {
2047
+ "type": "string",
2048
+ "enum": [
2049
+ "http",
2050
+ "grpc"
2051
+ ],
2052
+ "description": "The OTLP transport protocol to use. Only for the otlp exporter. Defaults to http."
2053
+ },
2054
+ "transport": {
2055
+ "type": "string",
2056
+ "enum": [
2057
+ "http",
2058
+ "grpc"
2059
+ ],
2060
+ "description": "Alias for protocol. Only for the otlp exporter. Defaults to http."
2061
+ }
2062
+ }
2063
+ },
2064
+ "additionalProperties": false
2065
+ }
2066
+ }
2067
+ },
2068
+ {
2069
+ "type": "object",
2070
+ "properties": {
2071
+ "type": {
2072
+ "type": "string",
2073
+ "enum": [
2074
+ "console",
2075
+ "otlp",
2076
+ "zipkin",
2077
+ "memory",
2078
+ "file"
2079
+ ],
2080
+ "default": "console"
2081
+ },
2082
+ "options": {
2083
+ "type": "object",
2084
+ "description": "Options for the exporter. These are passed directly to the exporter.",
2085
+ "properties": {
2086
+ "url": {
2087
+ "type": "string",
2088
+ "description": "The URL to send the traces to. Not used for console or memory exporters."
2089
+ },
2090
+ "headers": {
2091
+ "type": "object",
2092
+ "description": "Headers to send to the exporter. Not used for console or memory exporters."
2093
+ },
2094
+ "path": {
2095
+ "type": "string",
2096
+ "description": "The path to write the traces to. Only for file exporter."
2097
+ },
2098
+ "protocol": {
2099
+ "type": "string",
2100
+ "enum": [
2101
+ "http",
2102
+ "grpc"
2103
+ ],
2104
+ "description": "The OTLP transport protocol to use. Only for the otlp exporter. Defaults to http."
2105
+ },
2106
+ "transport": {
2107
+ "type": "string",
2108
+ "enum": [
2109
+ "http",
2110
+ "grpc"
2111
+ ],
2112
+ "description": "Alias for protocol. Only for the otlp exporter. Defaults to http."
2113
+ }
2114
+ }
2115
+ },
2116
+ "additionalProperties": false
2117
+ }
2118
+ }
2119
+ ]
2120
+ },
2121
+ "diagLogger": {
2122
+ "anyOf": [
2123
+ {
2124
+ "type": "boolean"
2125
+ },
2126
+ {
2127
+ "type": "string"
2128
+ }
2129
+ ],
2130
+ "description": "Enable the OpenTelemetry diagnostic logger. Diagnostic messages are forwarded to the Platformatic global logger using the current logger level."
2131
+ }
2132
+ },
2133
+ "required": [
2134
+ "applicationName"
2135
+ ],
2136
+ "additionalProperties": false
2137
+ },
2138
+ "verticalScaler": {
2139
+ "type": "object",
2140
+ "properties": {
2141
+ "enabled": {
2142
+ "type": "boolean",
2143
+ "default": true
2144
+ },
2145
+ "maxTotalWorkers": {
2146
+ "type": "number",
2147
+ "minimum": 1
2148
+ },
2149
+ "maxTotalMemory": {
2150
+ "type": "number",
2151
+ "minimum": 0
2152
+ },
2153
+ "minWorkers": {
2154
+ "type": "number",
2155
+ "minimum": 1
2156
+ },
2157
+ "maxWorkers": {
2158
+ "type": "number",
2159
+ "minimum": 1
2160
+ },
2161
+ "cooldownSec": {
2162
+ "type": "number",
2163
+ "minimum": 0
2164
+ },
2165
+ "gracePeriod": {
2166
+ "type": "number",
2167
+ "minimum": 0
2168
+ },
2169
+ "scaleUpELU": {
2170
+ "type": "number",
2171
+ "minimum": 0,
2172
+ "maximum": 1
2173
+ },
2174
+ "scaleDownELU": {
2175
+ "type": "number",
2176
+ "minimum": 0,
2177
+ "maximum": 1
2178
+ },
2179
+ "timeWindowSec": {
2180
+ "type": "number",
2181
+ "minimum": 0,
2182
+ "deprecated": true
2183
+ },
2184
+ "scaleDownTimeWindowSec": {
2185
+ "type": "number",
2186
+ "minimum": 0,
2187
+ "deprecated": true
2188
+ },
2189
+ "scaleIntervalSec": {
2190
+ "type": "number",
2191
+ "minimum": 0,
2192
+ "deprecated": true
2193
+ }
2194
+ },
2195
+ "additionalProperties": false
2196
+ },
2197
+ "inspectorOptions": {
2198
+ "type": "object",
2199
+ "properties": {
2200
+ "host": {
2201
+ "type": "string"
2202
+ },
2203
+ "port": {
2204
+ "type": "number"
2205
+ },
2206
+ "breakFirstLine": {
2207
+ "type": "boolean"
2208
+ },
2209
+ "watchDisabled": {
2210
+ "type": "boolean"
2211
+ }
2212
+ }
2213
+ },
2214
+ "applicationTimeout": {
2215
+ "anyOf": [
2216
+ {
2217
+ "type": "number",
2218
+ "minimum": 1
2219
+ },
2220
+ {
2221
+ "type": "string"
2222
+ }
2223
+ ],
2224
+ "default": 300000
2225
+ },
2226
+ "startupConcurrency": {
2227
+ "anyOf": [
2228
+ {
2229
+ "type": "number",
2230
+ "minimum": 1
2231
+ },
2232
+ {
2233
+ "type": "string"
2234
+ }
2235
+ ]
2236
+ },
2237
+ "messagingTimeout": {
2238
+ "anyOf": [
2239
+ {
2240
+ "type": "number",
2241
+ "minimum": 1
2242
+ },
2243
+ {
2244
+ "type": "string"
2245
+ }
2246
+ ],
2247
+ "default": 30000
2248
+ },
2249
+ "env": {
2250
+ "type": "object",
2251
+ "additionalProperties": {
2252
+ "type": "string"
2253
+ }
2254
+ },
2255
+ "envfile": {
2256
+ "type": "string"
2257
+ },
2258
+ "sourceMaps": {
2259
+ "type": "boolean",
2260
+ "default": false
2261
+ },
2262
+ "nodeModulesSourceMaps": {
2263
+ "type": "array",
2264
+ "items": {
2265
+ "type": "string"
2266
+ },
2267
+ "default": []
2268
+ },
2269
+ "scheduler": {
2270
+ "type": "array",
2271
+ "items": {
2272
+ "type": "object",
2273
+ "properties": {
2274
+ "enabled": {
2275
+ "anyOf": [
2276
+ {
2277
+ "type": "boolean"
2278
+ },
2279
+ {
2280
+ "type": "string"
2281
+ }
2282
+ ],
2283
+ "default": true
2284
+ },
2285
+ "name": {
2286
+ "type": "string"
2287
+ },
2288
+ "cron": {
2289
+ "type": "string"
2290
+ },
2291
+ "callbackUrl": {
2292
+ "type": "string"
2293
+ },
2294
+ "method": {
2295
+ "type": "string",
2296
+ "enum": [
2297
+ "GET",
2298
+ "POST",
2299
+ "PUT",
2300
+ "PATCH",
2301
+ "DELETE"
2302
+ ],
2303
+ "default": "GET"
2304
+ },
2305
+ "headers": {
2306
+ "type": "object",
2307
+ "additionalProperties": {
2308
+ "type": "string"
2309
+ }
2310
+ },
2311
+ "body": {
2312
+ "anyOf": [
2313
+ {
2314
+ "type": "string"
2315
+ },
2316
+ {
2317
+ "type": "object",
2318
+ "additionalProperties": true
2319
+ }
2320
+ ]
2321
+ },
2322
+ "maxRetries": {
2323
+ "type": "number",
2324
+ "minimum": 0,
2325
+ "default": 3
2326
+ }
2327
+ },
2328
+ "required": [
2329
+ "name",
2330
+ "cron",
2331
+ "callbackUrl"
2332
+ ]
2333
+ }
2334
+ },
2335
+ "policies": {
2336
+ "type": "object",
2337
+ "properties": {
2338
+ "deny": {
2339
+ "type": "object",
2340
+ "patternProperties": {
2341
+ "^.*$": {
2342
+ "oneOf": [
2343
+ {
2344
+ "type": "string"
2345
+ },
2346
+ {
2347
+ "type": "array",
2348
+ "items": {
2349
+ "type": "string"
2350
+ },
2351
+ "minItems": 1
2352
+ }
2353
+ ]
2354
+ }
2355
+ }
2356
+ }
2357
+ },
2358
+ "required": [
2359
+ "deny"
2360
+ ],
2361
+ "additionalProperties": false
2362
+ },
2363
+ "compileCache": {
2364
+ "anyOf": [
2365
+ {
2366
+ "type": "boolean"
2367
+ },
2368
+ {
2369
+ "type": "object",
2370
+ "properties": {
2371
+ "enabled": {
2372
+ "type": "boolean",
2373
+ "default": true,
2374
+ "description": "Enable Node.js module compile cache for faster startup"
2375
+ },
2376
+ "directory": {
2377
+ "type": "string",
2378
+ "description": "Directory to store compile cache. Defaults to .plt/compile-cache in app root"
2379
+ }
2380
+ },
2381
+ "additionalProperties": false
2382
+ }
2383
+ ]
2384
+ },
2385
+ "application": {
2386
+ "type": "object",
2387
+ "properties": {
2388
+ "reuseTcpPorts": {
2389
+ "type": "boolean",
2390
+ "default": true
2391
+ },
2392
+ "workers": {
2393
+ "anyOf": [
2394
+ {
2395
+ "type": "number"
2396
+ },
2397
+ {
2398
+ "type": "string"
2399
+ },
2400
+ {
2401
+ "type": "object",
2402
+ "properties": {
2403
+ "static": {
2404
+ "type": "number",
2405
+ "minimum": 1
2406
+ },
2407
+ "minimum": {
2408
+ "type": "number",
2409
+ "minimum": 1
2410
+ },
2411
+ "maximum": {
2412
+ "type": "number",
2413
+ "minimum": 0
2414
+ },
2415
+ "scaleUpELU": {
2416
+ "type": "number",
2417
+ "minimum": 0,
2418
+ "maximum": 1
2419
+ },
2420
+ "scaleDownELU": {
2421
+ "type": "number",
2422
+ "minimum": 0,
2423
+ "maximum": 1
2424
+ }
2425
+ }
2426
+ }
2427
+ ]
2428
+ },
2429
+ "health": {
2430
+ "type": "object",
2431
+ "default": {},
2432
+ "properties": {
2433
+ "enabled": {
2434
+ "anyOf": [
2435
+ {
2436
+ "type": "boolean"
2437
+ },
2438
+ {
2439
+ "type": "string"
2440
+ }
2441
+ ]
2442
+ },
2443
+ "interval": {
2444
+ "anyOf": [
2445
+ {
2446
+ "type": "number",
2447
+ "minimum": 0
2448
+ },
2449
+ {
2450
+ "type": "string"
2451
+ }
2452
+ ]
2453
+ },
2454
+ "gracePeriod": {
2455
+ "anyOf": [
2456
+ {
2457
+ "type": "number",
2458
+ "minimum": 0
2459
+ },
2460
+ {
2461
+ "type": "string"
2462
+ }
2463
+ ]
2464
+ },
2465
+ "maxUnhealthyChecks": {
2466
+ "anyOf": [
2467
+ {
2468
+ "type": "number",
2469
+ "minimum": 1
2470
+ },
2471
+ {
2472
+ "type": "string"
2473
+ }
2474
+ ]
2475
+ },
2476
+ "maxELU": {
2477
+ "anyOf": [
2478
+ {
2479
+ "type": "number",
2480
+ "minimum": 0,
2481
+ "maximum": 1
2482
+ },
2483
+ {
2484
+ "type": "string"
2485
+ }
2486
+ ]
2487
+ },
2488
+ "maxHeapUsed": {
2489
+ "anyOf": [
2490
+ {
2491
+ "type": "number",
2492
+ "minimum": 0,
2493
+ "maximum": 1
2494
+ },
2495
+ {
2496
+ "type": "string"
2497
+ }
2498
+ ]
2499
+ },
2500
+ "maxHeapTotal": {
2501
+ "anyOf": [
2502
+ {
2503
+ "type": "number",
2504
+ "minimum": 0
2505
+ },
2506
+ {
2507
+ "type": "string"
2508
+ }
2509
+ ]
2510
+ },
2511
+ "maxYoungGeneration": {
2512
+ "anyOf": [
2513
+ {
2514
+ "type": "number",
2515
+ "minimum": 0
2516
+ },
2517
+ {
2518
+ "type": "string"
2519
+ }
2520
+ ]
2521
+ },
2522
+ "codeRangeSize": {
2523
+ "anyOf": [
2524
+ {
2525
+ "type": "number",
2526
+ "minimum": 0
2527
+ },
2528
+ {
2529
+ "type": "string"
2530
+ }
2531
+ ]
2532
+ },
2533
+ "bufferPoolSize": {
2534
+ "anyOf": [
2535
+ {
2536
+ "type": "number",
2537
+ "minimum": 0
2538
+ },
2539
+ {
2540
+ "type": "string"
2541
+ }
2542
+ ]
2543
+ },
2544
+ "defaultHighWaterMark": {
2545
+ "anyOf": [
2546
+ {
2547
+ "type": "number",
2548
+ "minimum": 0
2549
+ },
2550
+ {
2551
+ "type": "string"
2552
+ }
2553
+ ]
2554
+ }
2555
+ },
2556
+ "additionalProperties": false
2557
+ },
2558
+ "arguments": {
2559
+ "type": "array",
2560
+ "items": {
2561
+ "type": "string"
2562
+ }
2563
+ },
2564
+ "env": {
2565
+ "type": "object",
2566
+ "additionalProperties": {
2567
+ "type": "string"
2568
+ }
2569
+ },
2570
+ "envfile": {
2571
+ "type": "string"
2572
+ },
2573
+ "sourceMaps": {
2574
+ "type": "boolean"
2575
+ },
2576
+ "nodeModulesSourceMaps": {
2577
+ "type": "array",
2578
+ "items": {
2579
+ "type": "string"
2580
+ }
2581
+ },
2582
+ "packageManager": {
2583
+ "type": "string",
2584
+ "enum": [
2585
+ "npm",
2586
+ "pnpm",
2587
+ "yarn"
2588
+ ]
2589
+ },
2590
+ "preload": {
2591
+ "anyOf": [
2592
+ {
2593
+ "type": "string",
2594
+ "resolvePath": true
2595
+ },
2596
+ {
2597
+ "type": "array",
2598
+ "items": {
2599
+ "type": "string",
2600
+ "resolvePath": true
2601
+ }
2602
+ }
2603
+ ]
2604
+ },
2605
+ "nodeOptions": {
2606
+ "type": "string"
2607
+ },
2608
+ "execArgv": {
2609
+ "type": "array",
2610
+ "items": {
2611
+ "type": "string"
2612
+ }
2613
+ },
2614
+ "permissions": {
2615
+ "type": "object",
2616
+ "properties": {
2617
+ "fs": {
2618
+ "type": "object",
2619
+ "properties": {
2620
+ "read": {
2621
+ "type": "array",
2622
+ "items": {
2623
+ "type": "string"
2624
+ }
2625
+ },
2626
+ "write": {
2627
+ "type": "array",
2628
+ "items": {
2629
+ "type": "string"
2630
+ }
2631
+ }
2632
+ },
2633
+ "additionalProperties": false
2634
+ }
2635
+ },
2636
+ "additionalProperties": false
2637
+ },
2638
+ "telemetry": {
2639
+ "type": "object",
2640
+ "properties": {
2641
+ "instrumentations": {
2642
+ "type": "array",
2643
+ "description": "An array of instrumentations loaded if telemetry is enabled",
2644
+ "items": {
2645
+ "oneOf": [
2646
+ {
2647
+ "type": "string"
2648
+ },
2649
+ {
2650
+ "type": "object",
2651
+ "properties": {
2652
+ "package": {
2653
+ "type": "string"
2654
+ },
2655
+ "exportName": {
2656
+ "type": "string"
2657
+ },
2658
+ "options": {
2659
+ "type": "object",
2660
+ "additionalProperties": true
2661
+ }
2662
+ },
2663
+ "required": [
2664
+ "package"
2665
+ ]
2666
+ }
2667
+ ]
2668
+ }
2669
+ }
2670
+ }
2671
+ },
2672
+ "compileCache": {
2673
+ "anyOf": [
2674
+ {
2675
+ "type": "boolean"
2676
+ },
2677
+ {
2678
+ "type": "object",
2679
+ "properties": {
2680
+ "enabled": {
2681
+ "type": "boolean",
2682
+ "default": true,
2683
+ "description": "Enable Node.js module compile cache for faster startup"
2684
+ },
2685
+ "directory": {
2686
+ "type": "string",
2687
+ "description": "Directory to store compile cache. Defaults to .plt/compile-cache in app root"
2688
+ }
2689
+ },
2690
+ "additionalProperties": false
2691
+ }
2692
+ ]
2693
+ }
2694
+ },
2695
+ "additionalProperties": false
2696
+ }
2697
+ },
2698
+ "additionalProperties": false
2699
+ },
2700
+ "vite": {
2701
+ "type": "object",
2702
+ "properties": {
2703
+ "configFile": {
2704
+ "oneOf": [
2705
+ {
2706
+ "type": "string"
2707
+ },
2708
+ {
2709
+ "type": "boolean"
2710
+ }
2711
+ ]
2712
+ },
2713
+ "devServer": {
2714
+ "type": "object",
2715
+ "properties": {
2716
+ "strict": {
2717
+ "type": "boolean",
2718
+ "default": false
2719
+ }
2720
+ },
2721
+ "additionalProperties": false,
2722
+ "default": {}
2723
+ },
2724
+ "ssr": {
2725
+ "anyOf": [
2726
+ {
2727
+ "type": "object",
2728
+ "properties": {
2729
+ "enabled": {
2730
+ "type": "boolean"
2731
+ },
2732
+ "entrypoint": {
2733
+ "type": "string",
2734
+ "default": "server.js"
2735
+ },
2736
+ "clientDirectory": {
2737
+ "type": "string",
2738
+ "default": "client"
2739
+ },
2740
+ "serverDirectory": {
2741
+ "type": "string",
2742
+ "default": "server"
2743
+ }
2744
+ },
2745
+ "required": [
2746
+ "entrypoint"
2747
+ ],
2748
+ "additionalProperties": false
2749
+ },
2750
+ {
2751
+ "type": "boolean"
2752
+ }
2753
+ ],
2754
+ "default": false
2755
+ },
2756
+ "notFoundHandler": {
2757
+ "anyOf": [
2758
+ {
2759
+ "type": "boolean"
2760
+ },
2761
+ {
2762
+ "type": "string"
2763
+ },
2764
+ {
2765
+ "type": "object",
2766
+ "properties": {
2767
+ "enabled": {
2768
+ "type": "boolean"
2769
+ },
2770
+ "path": {
2771
+ "type": "string",
2772
+ "default": "index.html"
2773
+ },
2774
+ "contentType": {
2775
+ "type": "string",
2776
+ "default": "text/html; charset=utf-8"
2777
+ },
2778
+ "statusCode": {
2779
+ "type": "number",
2780
+ "default": 200
2781
+ }
2782
+ },
2783
+ "additionalProperties": false
2784
+ }
2785
+ ],
2786
+ "default": false
2787
+ }
2788
+ },
2789
+ "default": {},
2790
+ "additionalProperties": false
2791
+ },
2792
+ "nuxt": {
2793
+ "type": "object",
2794
+ "properties": {
2795
+ "outputDirectory": {
2796
+ "type": "string",
2797
+ "default": ".output"
2798
+ }
2799
+ },
2800
+ "default": {},
2801
+ "additionalProperties": false
2802
+ }
2803
+ },
2804
+ "additionalProperties": false
2805
+ }