@platformatic/watt-admin 0.4.0 → 0.6.0-alpha.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 (36) hide show
  1. package/README.md +4 -0
  2. package/cli.js +85 -91
  3. package/lib/start.js +73 -12
  4. package/package.json +47 -42
  5. package/tsconfig.json +22 -0
  6. package/watt.json +1 -1
  7. package/web/backend/platformatic.json +2 -3
  8. package/web/backend/tsconfig.json +4 -1
  9. package/web/composer/platformatic.json +3 -3
  10. package/web/frontend/dist/index.html +2977 -6
  11. package/web/frontend/index.html +0 -1
  12. package/web/frontend/tsconfig.json +2 -1
  13. package/web/frontend/watt.json +2 -2
  14. package/web/backend/dist/plugins/metrics.js +0 -13
  15. package/web/backend/dist/plugins/metrics.js.map +0 -1
  16. package/web/backend/dist/plugins/websocket.js +0 -11
  17. package/web/backend/dist/plugins/websocket.js.map +0 -1
  18. package/web/backend/dist/routes/metrics.js +0 -45
  19. package/web/backend/dist/routes/metrics.js.map +0 -1
  20. package/web/backend/dist/routes/root.js +0 -174
  21. package/web/backend/dist/routes/root.js.map +0 -1
  22. package/web/backend/dist/routes/ws.js +0 -38
  23. package/web/backend/dist/routes/ws.js.map +0 -1
  24. package/web/backend/dist/schemas/index.js +0 -120
  25. package/web/backend/dist/schemas/index.js.map +0 -1
  26. package/web/backend/dist/utils/calc.js +0 -248
  27. package/web/backend/dist/utils/calc.js.map +0 -1
  28. package/web/backend/dist/utils/client.openapi.js +0 -31
  29. package/web/backend/dist/utils/client.openapi.js.map +0 -1
  30. package/web/backend/dist/utils/log.js +0 -29
  31. package/web/backend/dist/utils/log.js.map +0 -1
  32. package/web/backend/openapi.json +0 -786
  33. package/web/frontend/dist/assets/index-BpxIrIMq.js +0 -267
  34. package/web/frontend/dist/assets/index-BpxIrIMq.js.map +0 -1
  35. package/web/frontend/dist/assets/index-DM7peTyq.css +0 -1
  36. package/web/frontend/postcss.config.cjs +0 -11
@@ -11,7 +11,6 @@
11
11
  <body>
12
12
  <div id="root"></div>
13
13
  <script type="module" src="/src/main.tsx"></script>
14
- <script src="/browser-source-map-support.js"></script>
15
14
  <script>sourceMapSupport.install();</script>
16
15
  </body>
17
16
  </html>
@@ -5,7 +5,8 @@
5
5
  "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
6
  "module": "ESNext",
7
7
  "skipLibCheck": true,
8
-
8
+ "verbatimModuleSyntax": true,
9
+
9
10
  /* Bundler mode */
10
11
  "moduleResolution": "bundler",
11
12
  "allowImportingTsExtensions": true,
@@ -1,6 +1,6 @@
1
1
  {
2
- "$schema": "https://schemas.platformatic.dev/@platformatic/vite/2.67.0.json",
3
- "application": { "basePath": "/", "commands": { "build": "tsc --noEmit && vite build" } },
2
+ "$schema": "https://schemas.platformatic.dev/@platformatic/vite/3.11.0.json",
3
+ "application": { "basePath": "/", "commands": { "build": "vite build" } },
4
4
  "vite": {
5
5
  "ssr": false
6
6
  }
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = default_1;
4
- const calc_1 = require("../utils/calc");
5
- async function default_1(fastify) {
6
- fastify.decorate('mappedMetrics', {});
7
- fastify.decorate('metricsInterval', setInterval(() => (0, calc_1.calculateMetrics)(fastify), 1000));
8
- fastify.addHook('onClose', async () => {
9
- fastify.log.info('Closing the backend...');
10
- clearInterval(fastify.metricsInterval);
11
- });
12
- }
13
- //# sourceMappingURL=metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../plugins/metrics.ts"],"names":[],"mappings":";;AAGA,4BAUC;AAZD,wCAAgD;AAEjC,KAAK,oBAAW,OAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IAErC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,IAAA,uBAAgB,EAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAEvF,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAEpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QAC1C,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = default_1;
7
- const websocket_1 = __importDefault(require("@fastify/websocket"));
8
- async function default_1(fastify) {
9
- await fastify.register(websocket_1.default);
10
- }
11
- //# sourceMappingURL=websocket.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../plugins/websocket.ts"],"names":[],"mappings":";;;;;AAGA,4BAEC;AALD,mEAA0C;AAG3B,KAAK,oBAAW,OAAwB;IACrD,MAAM,OAAO,CAAC,QAAQ,CAAC,mBAAS,CAAC,CAAA;AACnC,CAAC"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = default_1;
4
- const schemas_1 = require("../schemas");
5
- async function default_1(fastify) {
6
- const typedFastify = fastify.withTypeProvider();
7
- const emptyMetrics = { dataCpu: [], dataLatency: [], dataMem: [], dataReq: [] };
8
- typedFastify.get('/runtimes/:pid/metrics', {
9
- schema: { params: schemas_1.pidParamSchema, response: { 200: schemas_1.metricResponseSchema } },
10
- }, async ({ params: { pid } }) => {
11
- return typedFastify.mappedMetrics[pid]?.aggregated || emptyMetrics;
12
- });
13
- typedFastify.get('/runtimes/:pid/metrics/:serviceId', {
14
- schema: {
15
- params: {
16
- type: 'object',
17
- properties: {
18
- pid: { type: 'number' },
19
- serviceId: { type: 'string' }
20
- },
21
- required: ['pid', 'serviceId']
22
- },
23
- response: { 200: schemas_1.metricResponseSchema }
24
- }
25
- }, async ({ params: { pid, serviceId } }) => {
26
- return fastify.mappedMetrics[pid]?.services[serviceId]?.all || emptyMetrics;
27
- });
28
- typedFastify.get('/runtimes/:pid/metrics/:serviceId/:workerId', {
29
- schema: {
30
- params: {
31
- type: 'object',
32
- properties: {
33
- pid: { type: 'number' },
34
- serviceId: { type: 'string' },
35
- workerId: { type: 'number' },
36
- },
37
- required: ['pid', 'serviceId', 'workerId']
38
- },
39
- response: { 200: schemas_1.metricResponseSchema }
40
- }
41
- }, async ({ params: { pid, serviceId, workerId } }) => {
42
- return fastify.mappedMetrics[pid]?.services[serviceId]?.[workerId] || emptyMetrics;
43
- });
44
- }
45
- //# sourceMappingURL=metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../routes/metrics.ts"],"names":[],"mappings":";;AAIA,4BA0CC;AA5CD,wCAAiE;AAElD,KAAK,oBAAW,OAAwB;IACrD,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,EAA0B,CAAA;IACvE,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IAE/E,YAAY,CAAC,GAAG,CAAC,wBAAwB,EAAE;QACzC,MAAM,EAAE,EAAE,MAAM,EAAE,wBAAc,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,8BAAoB,EAAE,EAAE;KAC5E,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;QAC/B,OAAO,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,UAAU,IAAI,YAAY,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,YAAY,CAAC,GAAG,CAAC,mCAAmC,EAAE;QACpD,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC9B;gBACD,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;aAC/B;YACD,QAAQ,EAAE,EAAE,GAAG,EAAE,8BAAoB,EAAE;SACxC;KACF,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE;QAC1C,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,YAAY,CAAA;IAC7E,CAAC,CAAC,CAAA;IAEF,YAAY,CAAC,GAAG,CAAC,6CAA6C,EAAE;QAC9D,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC7B;gBACD,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC;aAC3C;YACD,QAAQ,EAAE,EAAE,GAAG,EAAE,8BAAoB,EAAE;SACxC;KACF,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;QACpD,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAA;IACpF,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,174 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = default_1;
4
- const control_1 = require("@platformatic/control");
5
- const schemas_1 = require("../schemas");
6
- async function default_1(fastify) {
7
- const typedFastify = fastify.withTypeProvider();
8
- const api = new control_1.RuntimeApiClient();
9
- typedFastify.get('/runtimes', {
10
- schema: {
11
- querystring: {
12
- type: 'object',
13
- properties: {
14
- includeAdmin: {
15
- type: 'boolean',
16
- default: false,
17
- },
18
- },
19
- },
20
- response: { 200: { type: 'array', items: schemas_1.selectableRuntimeSchema } }
21
- }
22
- }, async (request) => {
23
- const runtimes = await api.getRuntimes();
24
- const selectableRuntimes = [];
25
- for (const runtime of runtimes) {
26
- if (!request.query.includeAdmin && runtime.packageName === 'watt-admin') {
27
- continue;
28
- }
29
- let selected = true;
30
- if (process.env.SELECTED_RUNTIME) {
31
- selected = process.env.SELECTED_RUNTIME === runtime.pid.toString();
32
- }
33
- selectableRuntimes.push({ ...runtime, packageName: runtime.packageName || '', packageVersion: runtime.packageVersion || '', url: runtime.url || '', selected });
34
- }
35
- return selectableRuntimes;
36
- });
37
- typedFastify.get('/runtimes/:pid/health', {
38
- schema: {
39
- params: schemas_1.pidParamSchema,
40
- response: {
41
- 200: {
42
- type: 'object',
43
- additionalProperties: false,
44
- properties: {
45
- status: {
46
- type: 'string',
47
- enum: ['OK', 'KO'],
48
- description: "Status can only be 'OK' or 'KO'"
49
- }
50
- },
51
- required: ['status']
52
- }
53
- }
54
- }
55
- }, async ({ params: { pid } }) => {
56
- try {
57
- const result = await api.getMatchingRuntime({ pid: pid.toString() });
58
- if (result.pid === pid) {
59
- return { status: 'OK' };
60
- }
61
- return { status: 'KO' };
62
- }
63
- catch {
64
- return { status: 'KO' };
65
- }
66
- });
67
- typedFastify.get('/runtimes/:pid/services', {
68
- schema: {
69
- params: schemas_1.pidParamSchema,
70
- response: {
71
- 200: {
72
- type: 'object',
73
- additionalProperties: false,
74
- required: ['entrypoint', 'production', 'services'],
75
- properties: {
76
- entrypoint: {
77
- type: 'string'
78
- },
79
- production: {
80
- type: 'boolean'
81
- },
82
- services: {
83
- type: 'array',
84
- items: {
85
- anyOf: [
86
- {
87
- type: 'object',
88
- required: ['id', 'type', 'status', 'version', 'localUrl', 'entrypoint', 'dependencies'],
89
- properties: {
90
- id: {
91
- type: 'string'
92
- },
93
- type: {
94
- type: 'string'
95
- },
96
- status: {
97
- type: 'string'
98
- },
99
- version: {
100
- type: 'string'
101
- },
102
- localUrl: {
103
- type: 'string'
104
- },
105
- entrypoint: {
106
- type: 'boolean'
107
- },
108
- workers: {
109
- type: 'number'
110
- },
111
- url: {
112
- type: 'string'
113
- },
114
- dependencies: {
115
- type: 'array',
116
- items: {
117
- type: 'object',
118
- required: ['id', 'url', 'local'],
119
- properties: {
120
- id: {
121
- type: 'string'
122
- },
123
- url: {
124
- type: 'string'
125
- },
126
- local: {
127
- type: 'boolean'
128
- }
129
- }
130
- }
131
- }
132
- }
133
- },
134
- {
135
- type: 'object',
136
- required: ['id', 'status'],
137
- properties: {
138
- id: {
139
- type: 'string'
140
- },
141
- status: {
142
- type: 'string'
143
- }
144
- }
145
- }
146
- ]
147
- }
148
- }
149
- }
150
- }
151
- }
152
- }
153
- }, async (request) => {
154
- return api.getRuntimeServices(request.params.pid);
155
- });
156
- typedFastify.get('/runtimes/:pid/openapi/:serviceId', {
157
- schema: {
158
- params: { type: 'object', properties: { pid: { type: 'number' }, serviceId: { type: 'string' } }, required: ['pid', 'serviceId'] }
159
- }
160
- }, async ({ params: { pid, serviceId } }) => {
161
- return api.getRuntimeOpenapi(pid, serviceId);
162
- });
163
- typedFastify.post('/runtimes/:pid/restart', {
164
- schema: { params: schemas_1.pidParamSchema, body: { type: 'object' } }
165
- }, async (request) => {
166
- try {
167
- await api.restartRuntime(request.params.pid);
168
- }
169
- catch (err) {
170
- fastify.log.warn({ err }, 'Issue restarting the runtime');
171
- }
172
- });
173
- }
174
- //# sourceMappingURL=root.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../routes/root.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = default_1;
7
- const split2_1 = __importDefault(require("split2"));
8
- const control_1 = require("@platformatic/control");
9
- const schemas_1 = require("../schemas");
10
- const promises_1 = require("node:stream/promises");
11
- async function default_1(fastify) {
12
- const typedFastify = fastify.withTypeProvider();
13
- const api = new control_1.RuntimeApiClient();
14
- const wsSendAsync = (socket, data) => new Promise((resolve, reject) => setTimeout(() => socket.send(data, (err) => (err)
15
- ? reject(err)
16
- : resolve()), 100));
17
- typedFastify.get('/runtimes/:pid/logs/ws', {
18
- schema: { params: schemas_1.pidParamSchema },
19
- websocket: true
20
- }, async (socket, { params: { pid } }) => {
21
- try {
22
- const clientStream = api.getRuntimeLiveLogsStream(pid);
23
- socket.on('close', () => {
24
- clientStream.destroy();
25
- });
26
- await (0, promises_1.pipeline)(clientStream, (0, split2_1.default)(), async function* (source) {
27
- for await (const line of source) {
28
- await wsSendAsync(socket, line);
29
- }
30
- });
31
- }
32
- catch (error) {
33
- fastify.log.error({ error }, 'fatal error on runtime logs ws');
34
- socket.close();
35
- }
36
- });
37
- }
38
- //# sourceMappingURL=ws.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../routes/ws.ts"],"names":[],"mappings":";;;;;AAQA,4BAmCC;AA1CD,oDAA2B;AAG3B,mDAAwD;AACxD,wCAAqD;AACrD,mDAA+C;AAEhC,KAAK,oBAAW,OAAwB;IACrD,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,EAA0B,CAAA;IACvE,MAAM,GAAG,GAAG,IAAI,0BAAgB,EAAE,CAAA;IAElC,MAAM,WAAW,GAAG,CAAC,MAAiB,EAAE,IAAY,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;QACxJ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACb,CAAC,CAAC,OAAO,EAAE,CACZ,EAAE,GAAG,CAAC,CACN,CAAA;IAED,YAAY,CAAC,GAAG,CAAuB,wBAAwB,EAAE;QAC/D,MAAM,EAAE,EAAE,MAAM,EAAE,wBAAc,EAAE;QAClC,SAAS,EAAE,IAAI;KAChB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAA;YAEtD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,YAAY,CAAC,OAAO,EAAE,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,MAAM,IAAA,mBAAQ,EACZ,YAAY,EACZ,IAAA,gBAAM,GAAE,EACR,KAAK,SAAU,CAAC,EAAE,MAA6B;gBAC7C,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;oBAChC,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC,CACF,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,gCAAgC,CAAC,CAAA;YAC9D,MAAM,CAAC,KAAK,EAAE,CAAA;QAChB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,120 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.selectableRuntimeSchema = exports.pidParamSchema = exports.metricResponseSchema = void 0;
4
- const dateSchema = { type: 'string', format: 'date-time' };
5
- const memoryDataPointSchema = {
6
- type: 'object',
7
- additionalProperties: false,
8
- properties: {
9
- date: dateSchema,
10
- rss: { type: 'number' },
11
- totalHeap: { type: 'number' },
12
- usedHeap: { type: 'number' },
13
- newSpace: { type: 'number' },
14
- oldSpace: { type: 'number' }
15
- },
16
- required: ['date', 'rss', 'totalHeap', 'usedHeap', 'newSpace', 'oldSpace']
17
- };
18
- const cpuDataPointSchema = {
19
- type: 'object',
20
- additionalProperties: false,
21
- properties: {
22
- date: dateSchema,
23
- cpu: { type: 'number' },
24
- eventLoop: { type: 'number' }
25
- },
26
- required: ['date', 'cpu', 'eventLoop']
27
- };
28
- const latencyDataPointSchema = {
29
- type: 'object',
30
- additionalProperties: false,
31
- properties: {
32
- date: { type: 'string', format: 'date-time' },
33
- p90: { type: 'number' },
34
- p95: { type: 'number' },
35
- p99: { type: 'number' }
36
- },
37
- required: ['date', 'p90', 'p95', 'p99']
38
- };
39
- const requestDataPointSchema = {
40
- type: 'object',
41
- additionalProperties: false,
42
- properties: {
43
- date: { type: 'string', format: 'date-time' },
44
- count: { type: 'number' },
45
- rps: { type: 'number' }
46
- },
47
- required: ['date', 'count', 'rps']
48
- };
49
- exports.metricResponseSchema = {
50
- type: 'object',
51
- additionalProperties: false,
52
- properties: {
53
- dataMem: { type: 'array', items: memoryDataPointSchema },
54
- dataCpu: { type: 'array', items: cpuDataPointSchema },
55
- dataLatency: { type: 'array', items: latencyDataPointSchema },
56
- dataReq: { type: 'array', items: requestDataPointSchema }
57
- },
58
- required: ['dataMem', 'dataCpu', 'dataLatency', 'dataReq']
59
- };
60
- exports.pidParamSchema = { type: 'object', additionalProperties: false, properties: { pid: { type: 'number' } }, required: ['pid'] };
61
- exports.selectableRuntimeSchema = {
62
- type: 'object',
63
- additionalProperties: false,
64
- properties: {
65
- pid: {
66
- type: 'integer'
67
- },
68
- cwd: {
69
- type: 'string'
70
- },
71
- argv: {
72
- type: 'array',
73
- items: {
74
- type: 'string'
75
- }
76
- },
77
- uptimeSeconds: {
78
- type: 'number'
79
- },
80
- execPath: {
81
- type: 'string'
82
- },
83
- nodeVersion: {
84
- type: 'string'
85
- },
86
- projectDir: {
87
- type: 'string'
88
- },
89
- packageName: {
90
- type: 'string'
91
- },
92
- packageVersion: {
93
- type: 'string'
94
- },
95
- url: {
96
- type: 'string'
97
- },
98
- platformaticVersion: {
99
- type: 'string'
100
- },
101
- selected: {
102
- type: 'boolean'
103
- }
104
- },
105
- required: [
106
- 'pid',
107
- 'cwd',
108
- 'argv',
109
- 'uptimeSeconds',
110
- 'execPath',
111
- 'nodeVersion',
112
- 'projectDir',
113
- 'packageName',
114
- 'packageVersion',
115
- 'url',
116
- 'platformaticVersion',
117
- 'selected'
118
- ]
119
- };
120
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../schemas/index.ts"],"names":[],"mappings":"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"}