@platformatic/runtime 1.53.3 → 2.0.0-alpha.10

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 (178) hide show
  1. package/config.d.ts +284 -0
  2. package/eslint.config.js +8 -0
  3. package/fixtures/botched-start/platformatic.runtime.json +1 -1
  4. package/fixtures/botched-start/services/a/platformatic.service.json +1 -1
  5. package/fixtures/composerApp/platformatic.composer.json +1 -1
  6. package/fixtures/configs/{monorepo-hotreload.json → invalid-autoload-with-services.json} +8 -8
  7. package/fixtures/configs/invalid-entrypoint.json +1 -1
  8. package/fixtures/configs/invalid-schema-type.config.json +1 -1
  9. package/fixtures/configs/missing-property.config.json +1 -1
  10. package/fixtures/configs/missing-service-config.json +1 -1
  11. package/fixtures/configs/monorepo-composer-no-autoload.json +32 -0
  12. package/fixtures/configs/monorepo-composer.json +2 -2
  13. package/fixtures/configs/monorepo-create-cycle.json +2 -3
  14. package/fixtures/configs/monorepo-missing-dependencies.json +9 -0
  15. package/fixtures/configs/monorepo-no-cycles.json +2 -3
  16. package/fixtures/configs/monorepo-openapi.json +2 -2
  17. package/fixtures/configs/{hotreload.json → monorepo-watch-env.json} +2 -3
  18. package/fixtures/configs/monorepo-watch-single.json +12 -0
  19. package/fixtures/configs/monorepo-watch.json +26 -9
  20. package/fixtures/configs/monorepo-with-dependencies.json +2 -2
  21. package/fixtures/configs/{monorepo-client-without-id.json → monorepo-with-management-api-without-metrics.json} +5 -8
  22. package/fixtures/configs/monorepo-with-management-api.json +2 -3
  23. package/fixtures/configs/monorepo-with-metrics.json +1 -2
  24. package/fixtures/configs/monorepo.json +2 -3
  25. package/fixtures/configs/no-services.config.json +1 -1
  26. package/fixtures/configs/no-sources.config.json +1 -1
  27. package/fixtures/configs/service-throws-on-start.json +1 -1
  28. package/fixtures/configs/service-with-env-port.json +2 -3
  29. package/fixtures/configs/service-with-stdio.json +12 -0
  30. package/fixtures/configs/{monorepo-hotreload-env.json → watch.json} +2 -3
  31. package/fixtures/crash-on-bootstrap/platformatic.runtime.json +15 -0
  32. package/fixtures/crash-on-bootstrap/services/service-1/platformatic.service.json +14 -0
  33. package/fixtures/crash-on-bootstrap/services/service-1/plugin.js +5 -0
  34. package/fixtures/crash-on-bootstrap/services/service-2/platformatic.service.json +14 -0
  35. package/fixtures/crash-on-bootstrap/services/service-2/plugin.js +5 -0
  36. package/fixtures/dbApp/platformatic.db.json +1 -1
  37. package/fixtures/dbAppNoName/platformatic.db.json +1 -1
  38. package/fixtures/dbAppNoPackageJson/platformatic.db.json +1 -1
  39. package/fixtures/dbAppWithMigrationError/platformatic.db.json +1 -1
  40. package/fixtures/do-not-reload-dependencies/platformatic.service.json +1 -1
  41. package/fixtures/do-not-restart-on-crash/platformatic.runtime.json +3 -2
  42. package/fixtures/do-not-restart-on-crash/services/a/platformatic.service.json +1 -1
  43. package/fixtures/express/platformatic.runtime.json +1 -1
  44. package/fixtures/express/services/a/platformatic.service.json +1 -1
  45. package/fixtures/express/services/b/platformatic.service.json +1 -1
  46. package/fixtures/external-client/platformatic.service.json +1 -1
  47. package/fixtures/interceptors/idp.js +2 -2
  48. package/fixtures/interceptors/platformatic.runtime.json +1 -1
  49. package/fixtures/interceptors/services/a/platformatic.service.json +1 -1
  50. package/fixtures/interceptors-2/platformatic.runtime.json +1 -1
  51. package/fixtures/interceptors-2/services/a/platformatic.service.json +1 -1
  52. package/fixtures/leven/platformatic.runtime.json +2 -3
  53. package/fixtures/leven/services/deeply-spittle/platformatic.service.json +1 -1
  54. package/fixtures/leven/services/rainy-empire/platformatic.composer.json +1 -1
  55. package/fixtures/management-api/platformatic.json +8 -4
  56. package/fixtures/management-api/services/service-1/platformatic.json +1 -1
  57. package/fixtures/management-api/services/service-1/plugin.js +4 -3
  58. package/fixtures/management-api/services/service-2/platformatic.json +1 -1
  59. package/fixtures/management-api/services/service-db/platformatic.db.json +1 -1
  60. package/fixtures/management-api-custom-labels/platformatic.json +2 -3
  61. package/fixtures/management-api-custom-labels/services/service-1/platformatic.json +1 -1
  62. package/fixtures/management-api-custom-labels/services/service-1/plugin.js +4 -3
  63. package/fixtures/management-api-custom-labels/services/service-2/platformatic.json +1 -1
  64. package/fixtures/management-api-custom-labels/services/service-db/platformatic.db.json +1 -1
  65. package/fixtures/management-api-without-metrics/platformatic.json +3 -3
  66. package/fixtures/management-api-without-metrics/services/service-1/platformatic.json +1 -1
  67. package/fixtures/monorepo/composerApp/platformatic.composer.json +1 -2
  68. package/fixtures/monorepo/dbApp/platformatic.db.json +1 -1
  69. package/fixtures/monorepo/serviceApp/platformatic.service.json +3 -2
  70. package/fixtures/monorepo/serviceApp/with-logger/with-logger.cjs +2 -2
  71. package/fixtures/monorepo/serviceApp/with-logger/with-logger.d.ts +7 -7
  72. package/fixtures/monorepo/serviceAppWithLogger/platformatic.service.json +1 -1
  73. package/fixtures/monorepo/serviceAppWithLogger/plugin.js +12 -0
  74. package/fixtures/monorepo/serviceAppWithMultiplePlugins/platformatic.service.json +3 -2
  75. package/fixtures/monorepo-missing-dependencies/composer/platformatic.json +24 -0
  76. package/fixtures/monorepo-openapi/serviceAppWithoutOpenapi/platformatic.service.json +1 -1
  77. package/fixtures/monorepo-watch/service1/platformatic.service.json +1 -1
  78. package/fixtures/monorepo-with-dependencies/main/platformatic.json +1 -1
  79. package/fixtures/monorepo-with-dependencies/service-1/platformatic.json +1 -1
  80. package/fixtures/monorepo-with-dependencies/service-2/platformatic.json +1 -1
  81. package/fixtures/no-env.service.json +1 -1
  82. package/fixtures/preload/platformatic.runtime.json +1 -1
  83. package/fixtures/preload/services/a/platformatic.service.json +1 -1
  84. package/fixtures/prom-server/platformatic.json +2 -3
  85. package/fixtures/prom-server/services/service-1/platformatic.json +1 -1
  86. package/fixtures/prom-server/services/service-2/platformatic.json +1 -1
  87. package/fixtures/restart-on-crash/platformatic.runtime.json +1 -1
  88. package/fixtures/restart-on-crash/services/a/platformatic.service.json +1 -1
  89. package/fixtures/sample-runtime/package.json +1 -1
  90. package/fixtures/sample-runtime/platformatic.json +2 -3
  91. package/fixtures/sample-runtime/services/rival/package.json +1 -1
  92. package/fixtures/sample-runtime/services/rival/platformatic.json +1 -1
  93. package/fixtures/sample-runtime-with-2-services/package.json +1 -1
  94. package/fixtures/sample-runtime-with-2-services/platformatic.json +2 -3
  95. package/fixtures/sample-runtime-with-2-services/services/foobar/package.json +1 -1
  96. package/fixtures/sample-runtime-with-2-services/services/foobar/platformatic.json +1 -1
  97. package/fixtures/sample-runtime-with-2-services/services/rival/package.json +1 -1
  98. package/fixtures/sample-runtime-with-2-services/services/rival/platformatic.json +1 -1
  99. package/fixtures/server/logger-transport/platformatic.runtime.json +2 -3
  100. package/fixtures/server/logger-transport/services/echo/platformatic.service.json +1 -1
  101. package/fixtures/server/overrides-service/platformatic.runtime.json +2 -3
  102. package/fixtures/server/overrides-service/services/echo/platformatic.service.json +1 -1
  103. package/fixtures/server/runtime-server/platformatic.runtime.json +2 -3
  104. package/fixtures/server/runtime-server/services/echo/platformatic.service.json +1 -1
  105. package/fixtures/serviceAppThrowsOnStart/platformatic.service.json +1 -1
  106. package/fixtures/stackables/node_modules/foo/foo.js +2 -1
  107. package/fixtures/start-command-in-runtime.js +1 -1
  108. package/fixtures/stdio/platformatic.service.json +6 -0
  109. package/fixtures/stdio/plugin.js +24 -0
  110. package/fixtures/telemetry/platformatic.runtime.json +2 -3
  111. package/fixtures/telemetry/services/echo/platformatic.service.json +1 -1
  112. package/fixtures/telemetry/services/echo/routes/span.js +16 -2
  113. package/fixtures/telemetry/services/service-1/platformatic.service.json +19 -0
  114. package/fixtures/telemetry/services/service-1/routes/echo.js +7 -0
  115. package/fixtures/typescript/platformatic.runtime.json +2 -3
  116. package/fixtures/typescript/services/composer/platformatic.composer.json +1 -1
  117. package/fixtures/typescript/services/movies/global.d.ts +2 -3
  118. package/fixtures/typescript/services/movies/platformatic.db.json +1 -1
  119. package/fixtures/typescript/services/movies/types/Movie.d.ts +3 -3
  120. package/fixtures/typescript/services/movies/types/index.d.ts +6 -6
  121. package/fixtures/typescript/services/titles/client/client.d.ts +35 -35
  122. package/fixtures/typescript/services/titles/platformatic.service.json +1 -1
  123. package/fixtures/typescript-custom-flags/platformatic.runtime.json +2 -3
  124. package/fixtures/typescript-custom-flags/services/composer/platformatic.composer.json +1 -1
  125. package/fixtures/typescript-custom-flags/services/movies/global.d.ts +2 -3
  126. package/fixtures/typescript-custom-flags/services/movies/platformatic.db.json +1 -1
  127. package/fixtures/typescript-custom-flags/services/movies/types/Movie.d.ts +3 -3
  128. package/fixtures/typescript-custom-flags/services/movies/types/index.d.ts +6 -6
  129. package/fixtures/typescript-custom-flags/services/titles/client/client.d.ts +35 -35
  130. package/fixtures/typescript-custom-flags/services/titles/platformatic.service.json +1 -1
  131. package/fixtures/typescript-no-env/platformatic.runtime.json +2 -3
  132. package/fixtures/typescript-no-env/services/composer/platformatic.composer.json +1 -1
  133. package/fixtures/typescript-no-env/services/movies/global.d.ts +2 -3
  134. package/fixtures/typescript-no-env/services/movies/platformatic.db.json +1 -1
  135. package/fixtures/typescript-no-env/services/movies/types/Movie.d.ts +3 -3
  136. package/fixtures/typescript-no-env/services/movies/types/index.d.ts +6 -6
  137. package/fixtures/typescript-no-env/services/titles/client/client.d.ts +35 -35
  138. package/fixtures/typescript-no-env/services/titles/platformatic.service.json +1 -1
  139. package/index.d.ts +7 -8
  140. package/index.js +15 -10
  141. package/index.test-d.ts +10 -12
  142. package/lib/build-server.js +23 -15
  143. package/lib/compile.js +56 -13
  144. package/lib/config.js +27 -139
  145. package/lib/dependencies.js +59 -0
  146. package/lib/errors.js +6 -2
  147. package/lib/generator/errors.js +1 -1
  148. package/lib/generator/runtime-generator.d.ts +15 -15
  149. package/lib/generator/runtime-generator.js +81 -66
  150. package/lib/logger.js +55 -0
  151. package/lib/management-api.js +29 -44
  152. package/lib/prom-server.js +5 -9
  153. package/lib/runtime.js +1005 -0
  154. package/lib/schema.js +46 -44
  155. package/lib/start.js +49 -117
  156. package/lib/upgrade.js +4 -3
  157. package/lib/utils.js +49 -1
  158. package/lib/versions/v1.36.0.js +1 -1
  159. package/lib/versions/v1.5.0.js +1 -1
  160. package/lib/versions/v2.0.0.js +17 -0
  161. package/lib/worker/app.js +266 -0
  162. package/lib/worker/default-stackable.js +32 -0
  163. package/lib/worker/itc.js +149 -0
  164. package/lib/worker/main.js +129 -0
  165. package/lib/worker/metrics.js +106 -0
  166. package/lib/worker/symbols.js +7 -0
  167. package/package.json +44 -44
  168. package/runtime.mjs +11 -6
  169. package/schema.json +25 -13
  170. package/fixtures/monorepo/serviceApp/platformatic.service-client-without-id.json +0 -21
  171. package/lib/api-client.js +0 -497
  172. package/lib/api.js +0 -397
  173. package/lib/app.js +0 -365
  174. package/lib/load-config.js +0 -20
  175. package/lib/loader.mjs +0 -103
  176. package/lib/message-port-writable.js +0 -50
  177. package/lib/worker.js +0 -182
  178. /package/lib/{interceptors.js → worker/interceptors.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platformatic/runtime",
3
- "version": "1.53.3",
3
+ "version": "2.0.0-alpha.10",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -17,72 +17,72 @@
17
17
  },
18
18
  "homepage": "https://github.com/platformatic/platformatic#readme",
19
19
  "devDependencies": {
20
- "@fastify/express": "^3.0.0",
21
- "@fastify/formbody": "^7.4.0",
22
- "@matteo.collina/tspl": "^0.1.1",
23
- "borp": "^0.16.0",
24
- "c8": "^10.1.2",
20
+ "@fastify/express": "^4.0.0",
21
+ "@fastify/formbody": "^8.0.0",
22
+ "borp": "^0.17.0",
23
+ "c8": "^10.0.0",
24
+ "eslint": "9",
25
25
  "execa": "^8.0.1",
26
- "express": "^4.20.0",
27
- "fast-jwt": "^4.0.5",
26
+ "express": "^4.18.3",
27
+ "fast-jwt": "^4.0.0",
28
28
  "get-port": "^7.1.0",
29
- "pino-abstract-transport": "^1.2.0",
30
- "snazzy": "^9.0.0",
29
+ "json-schema-to-typescript": "^15.0.0",
30
+ "neostandard": "^0.11.1",
31
+ "pino-abstract-transport": "^2.0.0",
31
32
  "split2": "^4.2.0",
32
- "standard": "^17.1.0",
33
- "tsd": "^0.31.2",
34
- "typescript": "^5.6.2",
33
+ "tsd": "^0.31.0",
34
+ "typescript": "^5.5.4",
35
35
  "undici-oidc-interceptor": "^0.5.0",
36
36
  "why-is-node-running": "^2.2.2",
37
- "@platformatic/sql-graphql": "1.53.3",
38
- "@platformatic/sql-mapper": "1.53.3"
37
+ "@platformatic/composer": "2.0.0-alpha.10",
38
+ "@platformatic/db": "2.0.0-alpha.10",
39
+ "@platformatic/sql-graphql": "2.0.0-alpha.10",
40
+ "@platformatic/service": "2.0.0-alpha.10",
41
+ "@platformatic/sql-mapper": "2.0.0-alpha.10"
39
42
  },
40
43
  "dependencies": {
41
- "@fastify/error": "^3.4.1",
42
- "@fastify/websocket": "^10.0.1",
44
+ "@fastify/error": "^4.0.0",
45
+ "@fastify/websocket": "^10.0.0",
43
46
  "@hapi/topo": "^6.0.2",
47
+ "@platformatic/http-metrics": "^0.1.0",
44
48
  "@watchable/unpromise": "^1.0.2",
45
49
  "boring-name-generator": "^1.0.3",
46
50
  "change-case-all": "^2.1.0",
47
- "close-with-grace": "^1.3.0",
51
+ "close-with-grace": "^2.0.0",
48
52
  "commist": "^3.2.0",
49
- "debounce": "^2.1.1",
53
+ "debounce": "^2.0.0",
50
54
  "desm": "^1.3.1",
51
55
  "dotenv-tool": "^0.1.1",
52
56
  "es-main": "^1.3.0",
53
57
  "fastest-levenshtein": "^1.0.16",
54
- "fastify": "^4.28.1",
58
+ "fastify": "5.0.0-alpha.4",
55
59
  "fastify-undici-dispatcher": "^0.6.0",
56
- "graphql": "^16.9.0",
60
+ "graphql": "^16.8.1",
57
61
  "help-me": "^5.0.0",
58
62
  "minimist": "^1.2.8",
59
- "pino": "^8.21.0",
60
- "pino-pretty": "^11.2.2",
61
- "pino-roll": "^1.3.0",
63
+ "pino": "^8.19.0",
64
+ "pino-pretty": "^11.0.0",
65
+ "pino-roll": "^1.0.0",
66
+ "prom-client": "^15.1.2",
62
67
  "semgrator": "^0.3.0",
63
68
  "tail-file-stream": "^0.2.0",
64
- "undici": "^6.19.8",
65
- "why-is-node-running": "^2.3.0",
66
- "ws": "^8.18.0",
67
- "@platformatic/bus": "1.53.3",
68
- "@platformatic/composer": "1.53.3",
69
- "@platformatic/config": "1.53.3",
70
- "@platformatic/db": "1.53.3",
71
- "@platformatic/generators": "1.53.3",
72
- "@platformatic/telemetry": "1.53.3",
73
- "@platformatic/service": "1.53.3",
74
- "@platformatic/utils": "1.53.3"
75
- },
76
- "standard": {
77
- "ignore": [
78
- "**/dist/*",
79
- "**/test/tmp"
80
- ]
69
+ "undici": "^6.9.0",
70
+ "undici-thread-interceptor": "^0.6.1",
71
+ "ws": "^8.16.0",
72
+ "@platformatic/config": "2.0.0-alpha.10",
73
+ "@platformatic/generators": "2.0.0-alpha.10",
74
+ "@platformatic/itc": "2.0.0-alpha.10",
75
+ "@platformatic/telemetry": "2.0.0-alpha.10",
76
+ "@platformatic/ts-compiler": "2.0.0-alpha.10",
77
+ "@platformatic/utils": "2.0.0-alpha.10",
78
+ "@platformatic/basic": "2.0.0-alpha.10"
81
79
  },
82
80
  "scripts": {
83
- "build": "node lib/schema.js > schema.json",
84
81
  "test": "npm run lint && borp --concurrency=1 --timeout=180000 && tsd",
85
- "coverage": "npm run lint && borp -X=fixtures -X=test -C --concurrency=1 --timeout=120000 && tsd",
86
- "lint": "standard | snazzy"
82
+ "coverage": "npm run lint && borp -X=fixtures -X=test -C --concurrency=1 --timeout=180000 && tsd",
83
+ "gen-schema": "node lib/schema.js > schema.json",
84
+ "gen-types": "json2ts > config.d.ts < schema.json",
85
+ "build": "pnpm run gen-schema && pnpm run gen-types",
86
+ "lint": "eslint"
87
87
  }
88
88
  }
package/runtime.mjs CHANGED
@@ -14,7 +14,7 @@ export const compile = compileCmd
14
14
  const help = helpMe({
15
15
  dir: join(import.meta.url, 'help'),
16
16
  // the default
17
- ext: '.txt'
17
+ ext: '.txt',
18
18
  })
19
19
 
20
20
  const program = commist({ maxDistance: 2 })
@@ -28,22 +28,27 @@ program.register('compile', compile)
28
28
  export async function run (argv) {
29
29
  const args = parseArgs(argv, {
30
30
  alias: {
31
- v: 'version'
32
- }
31
+ v: 'version',
32
+ },
33
33
  })
34
34
 
35
35
  if (args.version) {
36
- console.log('v' + JSON.parse(await readFile(join(import.meta.url, 'package.json'))).version)
36
+ console.log('v' + JSON.parse(await readFile(join(import.meta.url, 'package.json'), 'utf-8')).version)
37
37
  process.exit(0)
38
38
  }
39
39
 
40
40
  /* c8 ignore next 4 */
41
41
  return {
42
42
  output: await program.parseAsync(argv),
43
- help
43
+ help,
44
44
  }
45
45
  }
46
46
 
47
47
  if (isMain(import.meta)) {
48
- await run(process.argv.slice(2))
48
+ try {
49
+ await run(process.argv.slice(2))
50
+ } catch (err) {
51
+ console.error(err)
52
+ process.exit(1)
53
+ }
49
54
  }
package/schema.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "https://platformatic.dev/schemas/v1.53.3/runtime",
2
+ "$id": "https://schemas.platformatic.dev/@platformatic/runtime/2.0.0-alpha.10.json",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "type": "object",
5
5
  "properties": {
@@ -34,8 +34,7 @@
34
34
  "type": "object",
35
35
  "additionalProperties": false,
36
36
  "required": [
37
- "id",
38
- "config"
37
+ "id"
39
38
  ],
40
39
  "properties": {
41
40
  "id": {
@@ -317,6 +316,9 @@
317
316
  }
318
317
  ]
319
318
  },
319
+ "loggerInstance": {
320
+ "type": "object"
321
+ },
320
322
  "serializerOpts": {
321
323
  "type": "object",
322
324
  "properties": {
@@ -607,7 +609,7 @@
607
609
  "entrypoint": {
608
610
  "type": "string"
609
611
  },
610
- "hotReload": {
612
+ "watch": {
611
613
  "anyOf": [
612
614
  {
613
615
  "type": "boolean"
@@ -617,9 +619,6 @@
617
619
  }
618
620
  ]
619
621
  },
620
- "allowCycles": {
621
- "type": "boolean"
622
- },
623
622
  "inspectorOptions": {
624
623
  "type": "object",
625
624
  "properties": {
@@ -632,7 +631,7 @@
632
631
  "breakFirstLine": {
633
632
  "type": "boolean"
634
633
  },
635
- "hotReloadDisabled": {
634
+ "watchDisabled": {
636
635
  "type": "boolean"
637
636
  }
638
637
  }
@@ -761,7 +760,8 @@
761
760
  "type": "boolean"
762
761
  },
763
762
  {
764
- "type": "string"
763
+ "type": "number",
764
+ "minimum": 100
765
765
  }
766
766
  ]
767
767
  },
@@ -769,10 +769,19 @@
769
769
  "type": "array",
770
770
  "items": {
771
771
  "type": "object",
772
- "required": [
773
- "id",
774
- "path",
775
- "config"
772
+ "anyOf": [
773
+ {
774
+ "required": [
775
+ "id",
776
+ "path"
777
+ ]
778
+ },
779
+ {
780
+ "required": [
781
+ "id",
782
+ "url"
783
+ ]
784
+ }
776
785
  ],
777
786
  "properties": {
778
787
  "id": {
@@ -785,6 +794,9 @@
785
794
  "config": {
786
795
  "type": "string"
787
796
  },
797
+ "url": {
798
+ "type": "string"
799
+ },
788
800
  "useHttp": {
789
801
  "type": "boolean"
790
802
  }
@@ -1,21 +0,0 @@
1
- {
2
- "$schema": "https://platformatic.dev/schemas/v0.20.0/service",
3
- "server": {
4
- "hostname": "127.0.0.1",
5
- "port": 0
6
- },
7
- "service": {
8
- "openapi": true
9
- },
10
- "plugins": {
11
- "paths": [
12
- "plugin.js"
13
- ]
14
- },
15
- "clients": [
16
- {
17
- "path": "./with-logger",
18
- "url": "{PLT_WITH_LOGGER_URL}"
19
- }
20
- ]
21
- }