@marinoscar/platform-contract 0.0.0-stage → 0.1.0-next.3

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 (134) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +21 -0
  3. package/README.md +145 -2
  4. package/dist/cjs/doctor/constants.d.ts +59 -0
  5. package/dist/cjs/doctor/constants.d.ts.map +1 -0
  6. package/dist/cjs/doctor/constants.js +57 -0
  7. package/dist/cjs/doctor/constants.js.map +1 -0
  8. package/dist/cjs/doctor/index.d.ts +5 -0
  9. package/dist/cjs/doctor/index.d.ts.map +1 -0
  10. package/dist/cjs/doctor/index.js +24 -0
  11. package/dist/cjs/doctor/index.js.map +1 -0
  12. package/dist/cjs/doctor/schemas.d.ts +186 -0
  13. package/dist/cjs/doctor/schemas.d.ts.map +1 -0
  14. package/dist/cjs/doctor/schemas.js +183 -0
  15. package/dist/cjs/doctor/schemas.js.map +1 -0
  16. package/dist/cjs/index.d.ts +13 -0
  17. package/dist/cjs/index.d.ts.map +1 -0
  18. package/dist/cjs/index.js +16 -0
  19. package/dist/cjs/index.js.map +1 -0
  20. package/dist/cjs/package.json +3 -0
  21. package/dist/cjs/telemetry/assistant.d.ts +173 -0
  22. package/dist/cjs/telemetry/assistant.d.ts.map +1 -0
  23. package/dist/cjs/telemetry/assistant.js +43 -0
  24. package/dist/cjs/telemetry/assistant.js.map +1 -0
  25. package/dist/cjs/telemetry/config.d.ts +92 -0
  26. package/dist/cjs/telemetry/config.d.ts.map +1 -0
  27. package/dist/cjs/telemetry/config.js +101 -0
  28. package/dist/cjs/telemetry/config.js.map +1 -0
  29. package/dist/cjs/telemetry/connection.d.ts +355 -0
  30. package/dist/cjs/telemetry/connection.d.ts.map +1 -0
  31. package/dist/cjs/telemetry/connection.js +451 -0
  32. package/dist/cjs/telemetry/connection.js.map +1 -0
  33. package/dist/cjs/telemetry/constants.d.ts +442 -0
  34. package/dist/cjs/telemetry/constants.d.ts.map +1 -0
  35. package/dist/cjs/telemetry/constants.js +400 -0
  36. package/dist/cjs/telemetry/constants.js.map +1 -0
  37. package/dist/cjs/telemetry/dashboard.d.ts +826 -0
  38. package/dist/cjs/telemetry/dashboard.d.ts.map +1 -0
  39. package/dist/cjs/telemetry/dashboard.js +697 -0
  40. package/dist/cjs/telemetry/dashboard.js.map +1 -0
  41. package/dist/cjs/telemetry/enum.d.ts +5 -0
  42. package/dist/cjs/telemetry/enum.d.ts.map +1 -0
  43. package/dist/cjs/telemetry/enum.js +12 -0
  44. package/dist/cjs/telemetry/enum.js.map +1 -0
  45. package/dist/cjs/telemetry/index.d.ts +5 -0
  46. package/dist/cjs/telemetry/index.d.ts.map +1 -0
  47. package/dist/cjs/telemetry/index.js +128 -0
  48. package/dist/cjs/telemetry/index.js.map +1 -0
  49. package/dist/cjs/telemetry/query.d.ts +147 -0
  50. package/dist/cjs/telemetry/query.d.ts.map +1 -0
  51. package/dist/cjs/telemetry/query.js +141 -0
  52. package/dist/cjs/telemetry/query.js.map +1 -0
  53. package/dist/cjs/telemetry/schemas.d.ts +17 -0
  54. package/dist/cjs/telemetry/schemas.d.ts.map +1 -0
  55. package/dist/cjs/telemetry/schemas.js +89 -0
  56. package/dist/cjs/telemetry/schemas.js.map +1 -0
  57. package/dist/cjs/telemetry/settings.d.ts +65 -0
  58. package/dist/cjs/telemetry/settings.d.ts.map +1 -0
  59. package/dist/cjs/telemetry/settings.js +77 -0
  60. package/dist/cjs/telemetry/settings.js.map +1 -0
  61. package/dist/cjs/telemetry/stack.d.ts +87 -0
  62. package/dist/cjs/telemetry/stack.d.ts.map +1 -0
  63. package/dist/cjs/telemetry/stack.js +93 -0
  64. package/dist/cjs/telemetry/stack.js.map +1 -0
  65. package/dist/cjs/telemetry/status.d.ts +65 -0
  66. package/dist/cjs/telemetry/status.d.ts.map +1 -0
  67. package/dist/cjs/telemetry/status.js +65 -0
  68. package/dist/cjs/telemetry/status.js.map +1 -0
  69. package/dist/esm/doctor/constants.d.ts +59 -0
  70. package/dist/esm/doctor/constants.d.ts.map +1 -0
  71. package/dist/esm/doctor/constants.js +54 -0
  72. package/dist/esm/doctor/constants.js.map +1 -0
  73. package/dist/esm/doctor/index.d.ts +5 -0
  74. package/dist/esm/doctor/index.d.ts.map +1 -0
  75. package/dist/esm/doctor/index.js +10 -0
  76. package/dist/esm/doctor/index.js.map +1 -0
  77. package/dist/esm/doctor/schemas.d.ts +186 -0
  78. package/dist/esm/doctor/schemas.d.ts.map +1 -0
  79. package/dist/esm/doctor/schemas.js +180 -0
  80. package/dist/esm/doctor/schemas.js.map +1 -0
  81. package/dist/esm/index.d.ts +13 -0
  82. package/dist/esm/index.d.ts.map +1 -0
  83. package/dist/esm/index.js +13 -0
  84. package/dist/esm/index.js.map +1 -0
  85. package/dist/esm/package.json +3 -0
  86. package/dist/esm/telemetry/assistant.d.ts +173 -0
  87. package/dist/esm/telemetry/assistant.d.ts.map +1 -0
  88. package/dist/esm/telemetry/assistant.js +40 -0
  89. package/dist/esm/telemetry/assistant.js.map +1 -0
  90. package/dist/esm/telemetry/config.d.ts +92 -0
  91. package/dist/esm/telemetry/config.d.ts.map +1 -0
  92. package/dist/esm/telemetry/config.js +98 -0
  93. package/dist/esm/telemetry/config.js.map +1 -0
  94. package/dist/esm/telemetry/connection.d.ts +355 -0
  95. package/dist/esm/telemetry/connection.d.ts.map +1 -0
  96. package/dist/esm/telemetry/connection.js +447 -0
  97. package/dist/esm/telemetry/connection.js.map +1 -0
  98. package/dist/esm/telemetry/constants.d.ts +442 -0
  99. package/dist/esm/telemetry/constants.d.ts.map +1 -0
  100. package/dist/esm/telemetry/constants.js +397 -0
  101. package/dist/esm/telemetry/constants.js.map +1 -0
  102. package/dist/esm/telemetry/dashboard.d.ts +826 -0
  103. package/dist/esm/telemetry/dashboard.d.ts.map +1 -0
  104. package/dist/esm/telemetry/dashboard.js +690 -0
  105. package/dist/esm/telemetry/dashboard.js.map +1 -0
  106. package/dist/esm/telemetry/enum.d.ts +5 -0
  107. package/dist/esm/telemetry/enum.d.ts.map +1 -0
  108. package/dist/esm/telemetry/enum.js +9 -0
  109. package/dist/esm/telemetry/enum.js.map +1 -0
  110. package/dist/esm/telemetry/index.d.ts +5 -0
  111. package/dist/esm/telemetry/index.d.ts.map +1 -0
  112. package/dist/esm/telemetry/index.js +10 -0
  113. package/dist/esm/telemetry/index.js.map +1 -0
  114. package/dist/esm/telemetry/query.d.ts +147 -0
  115. package/dist/esm/telemetry/query.d.ts.map +1 -0
  116. package/dist/esm/telemetry/query.js +138 -0
  117. package/dist/esm/telemetry/query.js.map +1 -0
  118. package/dist/esm/telemetry/schemas.d.ts +17 -0
  119. package/dist/esm/telemetry/schemas.d.ts.map +1 -0
  120. package/dist/esm/telemetry/schemas.js +12 -0
  121. package/dist/esm/telemetry/schemas.js.map +1 -0
  122. package/dist/esm/telemetry/settings.d.ts +65 -0
  123. package/dist/esm/telemetry/settings.d.ts.map +1 -0
  124. package/dist/esm/telemetry/settings.js +74 -0
  125. package/dist/esm/telemetry/settings.js.map +1 -0
  126. package/dist/esm/telemetry/stack.d.ts +87 -0
  127. package/dist/esm/telemetry/stack.d.ts.map +1 -0
  128. package/dist/esm/telemetry/stack.js +90 -0
  129. package/dist/esm/telemetry/stack.js.map +1 -0
  130. package/dist/esm/telemetry/status.d.ts +65 -0
  131. package/dist/esm/telemetry/status.d.ts.map +1 -0
  132. package/dist/esm/telemetry/status.js +62 -0
  133. package/dist/esm/telemetry/status.js.map +1 -0
  134. package/package.json +78 -4
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Every status of a Doctor check, in severity order, lowest first
3
+ * (`pass < skip < warn < fail`). Also the display order of the web page.
4
+ *
5
+ * - `pass`: verified healthy.
6
+ * - `skip`: not evaluated (a check it depends on did not pass, or the
7
+ * capability is intentionally switched off).
8
+ * - `warn`: works, but needs attention.
9
+ * - `fail`: broken.
10
+ *
11
+ * @stability stable
12
+ */
13
+ export declare const DOCTOR_STATUSES: readonly ["pass", "skip", "warn", "fail"];
14
+ /**
15
+ * The four outcomes of a check, identical to the CLI doctor's `CheckStatus`:
16
+ * `pass`, `warn`, `fail` or `skip`.
17
+ *
18
+ * @stability stable
19
+ */
20
+ export type DoctorStatus = (typeof DOCTOR_STATUSES)[number];
21
+ /**
22
+ * How bad a status is, for a report's overall verdict: the worst wins.
23
+ *
24
+ * `skip` ranks just above `pass`: a report whose only non-pass entries are
25
+ * intentional skips (AI off, telemetry off) is healthy, but it proved less than
26
+ * an all-pass one, and a report where nothing ran must not read as `pass`.
27
+ *
28
+ * @stability stable
29
+ */
30
+ export declare const DOCTOR_STATUS_RANK: Readonly<Record<DoctorStatus, number>>;
31
+ /**
32
+ * The version of the support bundle format (`GET /api/admin/doctor/support-bundle`,
33
+ * issue #772). Bumped only by a breaking change to `supportBundleSchema`.
34
+ *
35
+ * @stability experimental
36
+ */
37
+ export declare const SUPPORT_BUNDLE_VERSION: 1;
38
+ /**
39
+ * The redaction rule set applied to every support bundle. `v1` is documented
40
+ * in docs/specs/doctor.md ("Support bundle").
41
+ *
42
+ * @stability experimental
43
+ */
44
+ export declare const SUPPORT_BUNDLE_REDACTION_RULES: "v1";
45
+ /**
46
+ * The statuses of one support-bundle section: `ok` (collected), `omitted` (not
47
+ * collected: a permission is missing or the capability is off) and `error`
48
+ * (the section threw, timed out or broke its schema; its data is dropped).
49
+ *
50
+ * @stability experimental
51
+ */
52
+ export declare const SUPPORT_BUNDLE_SECTION_STATUSES: readonly ["ok", "omitted", "error"];
53
+ /**
54
+ * One support-bundle section's status.
55
+ *
56
+ * @stability experimental
57
+ */
58
+ export type SupportBundleSectionStatus = (typeof SUPPORT_BUNDLE_SECTION_STATUSES)[number];
59
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/doctor/constants.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,2CAA4C,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAKrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAG,CAAU,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,EAAG,IAAa,CAAC;AAE5D;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,qCAAsC,CAAC;AAEnF;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ // The Doctor's plain values (issue #701). Zod-free by rule: a browser that only
2
+ // needs a status list or a type never pulls the schemas, and with them zod,
3
+ // into its bundle (test/no-zod-in-constants.test.ts).
4
+ /**
5
+ * Every status of a Doctor check, in severity order, lowest first
6
+ * (`pass < skip < warn < fail`). Also the display order of the web page.
7
+ *
8
+ * - `pass`: verified healthy.
9
+ * - `skip`: not evaluated (a check it depends on did not pass, or the
10
+ * capability is intentionally switched off).
11
+ * - `warn`: works, but needs attention.
12
+ * - `fail`: broken.
13
+ *
14
+ * @stability stable
15
+ */
16
+ export const DOCTOR_STATUSES = ['pass', 'skip', 'warn', 'fail'];
17
+ /**
18
+ * How bad a status is, for a report's overall verdict: the worst wins.
19
+ *
20
+ * `skip` ranks just above `pass`: a report whose only non-pass entries are
21
+ * intentional skips (AI off, telemetry off) is healthy, but it proved less than
22
+ * an all-pass one, and a report where nothing ran must not read as `pass`.
23
+ *
24
+ * @stability stable
25
+ */
26
+ export const DOCTOR_STATUS_RANK = {
27
+ pass: 0,
28
+ skip: 1,
29
+ warn: 2,
30
+ fail: 3,
31
+ };
32
+ /**
33
+ * The version of the support bundle format (`GET /api/admin/doctor/support-bundle`,
34
+ * issue #772). Bumped only by a breaking change to `supportBundleSchema`.
35
+ *
36
+ * @stability experimental
37
+ */
38
+ export const SUPPORT_BUNDLE_VERSION = 1;
39
+ /**
40
+ * The redaction rule set applied to every support bundle. `v1` is documented
41
+ * in docs/specs/doctor.md ("Support bundle").
42
+ *
43
+ * @stability experimental
44
+ */
45
+ export const SUPPORT_BUNDLE_REDACTION_RULES = 'v1';
46
+ /**
47
+ * The statuses of one support-bundle section: `ok` (collected), `omitted` (not
48
+ * collected: a permission is missing or the capability is off) and `error`
49
+ * (the section threw, timed out or broke its schema; its data is dropped).
50
+ *
51
+ * @stability experimental
52
+ */
53
+ export const SUPPORT_BUNDLE_SECTION_STATUSES = ['ok', 'omitted', 'error'];
54
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/doctor/constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,4EAA4E;AAC5E,sDAAsD;AAEtD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAUzE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2C;IACxE,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;CACR,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAa,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { DOCTOR_STATUSES, DOCTOR_STATUS_RANK, SUPPORT_BUNDLE_REDACTION_RULES, SUPPORT_BUNDLE_SECTION_STATUSES, SUPPORT_BUNDLE_VERSION, } from './constants.js';
2
+ export type { DoctorStatus, SupportBundleSectionStatus } from './constants.js';
3
+ export { doctorCheckReportSchema, doctorQuerySchema, doctorReportSchema, doctorStatusSchema, supportBundleSchema, supportBundleSectionResultSchema, } from './schemas.js';
4
+ export type { DoctorBooleanStringEnum, DoctorCheckReport, DoctorQuery, DoctorReport, DoctorReportQueryInput, DoctorStatusEnum, SupportBundle, SupportBundleSectionResult, } from './schemas.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,0BAA0B,GAC3B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,10 @@
1
+ // `@marinoscar/platform-contract/doctor`: the Doctor's wire shapes, shared by
2
+ // `@marinoscar/platform-api/doctor` (the DTOs) and
3
+ // `@marinoscar/platform-web/doctor` (the client's types) (issue #701).
4
+ // Documented in ./README.md. Explicit named exports only.
5
+ //
6
+ // constants.ts is zod-free; a consumer that imports only the constants and the
7
+ // types (the web app) never bundles schemas.ts or zod (`"sideEffects": false`).
8
+ export { DOCTOR_STATUSES, DOCTOR_STATUS_RANK, SUPPORT_BUNDLE_REDACTION_RULES, SUPPORT_BUNDLE_SECTION_STATUSES, SUPPORT_BUNDLE_VERSION, } from './constants.js';
9
+ export { doctorCheckReportSchema, doctorQuerySchema, doctorReportSchema, doctorStatusSchema, supportBundleSchema, supportBundleSectionResultSchema, } from './schemas.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,mDAAmD;AACnD,uEAAuE;AACvE,0DAA0D;AAC1D,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAEhF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,cAAc,CAAC"}
@@ -0,0 +1,186 @@
1
+ import { z } from 'zod';
2
+ import type { DoctorStatus } from './constants.js';
3
+ /**
4
+ * The entries of {@link doctorStatusSchema}, as `z.enum` types them: each
5
+ * status keyed by itself. Named so the schema's type reads as a reference.
6
+ *
7
+ * @stability stable
8
+ */
9
+ export type DoctorStatusEnum = {
10
+ [S in DoctorStatus]: S;
11
+ };
12
+ /**
13
+ * The entries of the `refresh` query parameter: the strings `'true'` and
14
+ * `'false'`, each keyed by itself, as `z.enum` types them.
15
+ *
16
+ * @stability stable
17
+ */
18
+ export type DoctorBooleanStringEnum = {
19
+ [S in 'true' | 'false']: S;
20
+ };
21
+ /**
22
+ * A check's status on the wire.
23
+ *
24
+ * The enum lists the values in the order the OpenAPI document has always
25
+ * published (`pass, warn, fail, skip`), which is not the severity order of
26
+ * {@link DOCTOR_STATUSES}; rank statuses with {@link DOCTOR_STATUS_RANK}.
27
+ *
28
+ * @extensionPoint schema
29
+ * @stability stable
30
+ */
31
+ export declare const doctorStatusSchema: z.ZodEnum<DoctorStatusEnum>;
32
+ /**
33
+ * One row of the report, as `GET /api/admin/doctor` returns it.
34
+ *
35
+ * Fields: `id` (stable dotted id, `storage.bucket`), `category` (`core`,
36
+ * `auth`, ...; an app may add its own), `label`, `settingsPath` (the web route
37
+ * that fixes it, or `null`), `status`, `detail` (one line: what was found),
38
+ * `remedy` (set on `warn` and `fail`, otherwise `null`), `error` (the
39
+ * underlying probe error, or `null`), `data` (small scalar facts, never secret
40
+ * material, or `null`) and `durationMs` (0 when skipped without running).
41
+ *
42
+ * @extensionPoint schema
43
+ * @stability stable
44
+ */
45
+ export declare const doctorCheckReportSchema: z.ZodObject<{
46
+ id: z.ZodString;
47
+ category: z.ZodString;
48
+ label: z.ZodString;
49
+ settingsPath: z.ZodNullable<z.ZodString>;
50
+ status: z.ZodEnum<DoctorStatusEnum>;
51
+ detail: z.ZodString;
52
+ remedy: z.ZodNullable<z.ZodString>;
53
+ error: z.ZodNullable<z.ZodString>;
54
+ data: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>>;
55
+ durationMs: z.ZodNumber;
56
+ }, z.core.$strip>;
57
+ /**
58
+ * The whole report, as `GET /api/admin/doctor` returns it: `verdict` (the
59
+ * worst status in `checks`, `skip` when none ran), `generatedAt` (ISO 8601; a
60
+ * cached report keeps its original time), `durationMs` (wall time of the run)
61
+ * and `checks` (sorted by category, configured order first, then registration
62
+ * order).
63
+ *
64
+ * @extensionPoint schema
65
+ * @stability stable
66
+ */
67
+ export declare const doctorReportSchema: z.ZodObject<{
68
+ verdict: z.ZodEnum<DoctorStatusEnum>;
69
+ generatedAt: z.ZodISODateTime;
70
+ durationMs: z.ZodNumber;
71
+ checks: z.ZodArray<z.ZodObject<{
72
+ id: z.ZodString;
73
+ category: z.ZodString;
74
+ label: z.ZodString;
75
+ settingsPath: z.ZodNullable<z.ZodString>;
76
+ status: z.ZodEnum<DoctorStatusEnum>;
77
+ detail: z.ZodString;
78
+ remedy: z.ZodNullable<z.ZodString>;
79
+ error: z.ZodNullable<z.ZodString>;
80
+ data: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>>;
81
+ durationMs: z.ZodNumber;
82
+ }, z.core.$strip>>;
83
+ }, z.core.$strip>;
84
+ /**
85
+ * `GET /api/admin/doctor` query: `category` (a lowercase identifier; only the
86
+ * checks in that category, plus, unreported, whatever they depend on) and
87
+ * `refresh` (`'true'` bypasses the 15-second report cache).
88
+ *
89
+ * `refresh` is `z.enum(['true','false']).transform(...)` and NOT
90
+ * `z.coerce.boolean()`: every query parameter is a string and
91
+ * `Boolean('false')` is `true`.
92
+ *
93
+ * @extensionPoint schema
94
+ * @stability stable
95
+ */
96
+ export declare const doctorQuerySchema: z.ZodObject<{
97
+ category: z.ZodOptional<z.ZodString>;
98
+ refresh: z.ZodOptional<z.ZodPipe<z.ZodEnum<DoctorBooleanStringEnum>, z.ZodTransform<boolean, "true" | "false">>>;
99
+ }, z.core.$strip>;
100
+ /**
101
+ * One row of the report. Every nullable field is present on every row.
102
+ *
103
+ * @stability stable
104
+ */
105
+ export type DoctorCheckReport = z.infer<typeof doctorCheckReportSchema>;
106
+ /**
107
+ * The whole report.
108
+ *
109
+ * @stability stable
110
+ */
111
+ export type DoctorReport = z.infer<typeof doctorReportSchema>;
112
+ /**
113
+ * The parsed query of `GET /api/admin/doctor` (`refresh` already a boolean).
114
+ *
115
+ * @stability stable
116
+ */
117
+ export type DoctorQuery = z.output<typeof doctorQuerySchema>;
118
+ /**
119
+ * The query a client builds before serializing it: restrict the run to one
120
+ * `category`, or `refresh` to bypass the server-side cache.
121
+ *
122
+ * @stability stable
123
+ */
124
+ export interface DoctorReportQueryInput {
125
+ /** Restrict the run to one category (a lowercase identifier). */
126
+ category?: string;
127
+ /** Bypass the server-side report cache and run every probe again. */
128
+ refresh?: boolean;
129
+ }
130
+ /**
131
+ * One section of a bundle. `truncated: true` with `data: null` means the
132
+ * section was larger than its size cap and its data was dropped.
133
+ *
134
+ * @extensionPoint schema
135
+ * @stability experimental
136
+ */
137
+ export declare const supportBundleSectionResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
138
+ status: z.ZodLiteral<"ok">;
139
+ data: z.ZodUnknown;
140
+ truncated: z.ZodOptional<z.ZodBoolean>;
141
+ }, z.core.$strip>, z.ZodObject<{
142
+ status: z.ZodLiteral<"omitted">;
143
+ reason: z.ZodString;
144
+ }, z.core.$strip>, z.ZodObject<{
145
+ status: z.ZodLiteral<"error">;
146
+ error: z.ZodString;
147
+ }, z.core.$strip>], "status">;
148
+ /**
149
+ * One section of a bundle, as parsed.
150
+ *
151
+ * @stability experimental
152
+ */
153
+ export type SupportBundleSectionResult = z.infer<typeof supportBundleSectionResultSchema>;
154
+ /**
155
+ * The support bundle: what `GET /api/admin/doctor/support-bundle` returns as a
156
+ * JSON attachment.
157
+ *
158
+ * @extensionPoint schema
159
+ * @stability experimental
160
+ */
161
+ export declare const supportBundleSchema: z.ZodObject<{
162
+ bundleVersion: z.ZodLiteral<1>;
163
+ generatedAt: z.ZodString;
164
+ redaction: z.ZodObject<{
165
+ rules: z.ZodLiteral<"v1">;
166
+ replacements: z.ZodNumber;
167
+ }, z.core.$strip>;
168
+ sections: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
169
+ status: z.ZodLiteral<"ok">;
170
+ data: z.ZodUnknown;
171
+ truncated: z.ZodOptional<z.ZodBoolean>;
172
+ }, z.core.$strip>, z.ZodObject<{
173
+ status: z.ZodLiteral<"omitted">;
174
+ reason: z.ZodString;
175
+ }, z.core.$strip>, z.ZodObject<{
176
+ status: z.ZodLiteral<"error">;
177
+ error: z.ZodString;
178
+ }, z.core.$strip>], "status">>;
179
+ }, z.core.$strip>;
180
+ /**
181
+ * The support bundle, as parsed.
182
+ *
183
+ * @stability experimental
184
+ */
185
+ export type SupportBundle = z.infer<typeof supportBundleSchema>;
186
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/doctor/schemas.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;KAAG,CAAC,IAAI,YAAY,GAAG,CAAC;CAAE,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG;KAAG,CAAC,IAAI,MAAM,GAAG,OAAO,GAAG,CAAC;CAAE,CAAC;AAErE;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAMxD,CAAC;AAEJ;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAqBlC,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;iBAS7B,CAAC;AAKH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB;;;iBAU5B,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkBD;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;6BAqB3C,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;iBAkB9B,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,180 @@
1
+ // =============================================================================
2
+ // The Doctor's wire shapes (issue #634; moved here from
3
+ // `@marinoscar/platform-api/doctor` by #701)
4
+ // =============================================================================
5
+ //
6
+ // ALWAYS A 200 FOR AN AUTHORIZED CALLER. A failing check is a row with
7
+ // `status: 'fail'`, never an error status: the report is read precisely when
8
+ // something is wrong, and a 500 or a 503 would withhold the list of what.
9
+ //
10
+ // Every nullable field is present on every row (`null` rather than absent), so
11
+ // a client renders one shape without optional-chaining through it.
12
+ //
13
+ // ⚠ OpenAPI is generated from these schemas (nestjs-zod, through the DTOs of
14
+ // `@marinoscar/platform-api/doctor`). Field order, `.describe()` texts and the
15
+ // order of the status enum are part of the published document: change them
16
+ // only as a deliberate API change.
17
+ // =============================================================================
18
+ import { z } from 'zod';
19
+ import { SUPPORT_BUNDLE_REDACTION_RULES, SUPPORT_BUNDLE_VERSION } from './constants.js';
20
+ /**
21
+ * A check's status on the wire.
22
+ *
23
+ * The enum lists the values in the order the OpenAPI document has always
24
+ * published (`pass, warn, fail, skip`), which is not the severity order of
25
+ * {@link DOCTOR_STATUSES}; rank statuses with {@link DOCTOR_STATUS_RANK}.
26
+ *
27
+ * @extensionPoint schema
28
+ * @stability stable
29
+ */
30
+ export const doctorStatusSchema = z
31
+ .enum(['pass', 'warn', 'fail', 'skip'])
32
+ .describe('`pass` — verified healthy. `warn` — works, but needs attention. `fail` — broken. ' +
33
+ '`skip` — not evaluated: a check it depends on did not pass, or the capability is ' +
34
+ 'intentionally switched off.');
35
+ /**
36
+ * One row of the report, as `GET /api/admin/doctor` returns it.
37
+ *
38
+ * Fields: `id` (stable dotted id, `storage.bucket`), `category` (`core`,
39
+ * `auth`, ...; an app may add its own), `label`, `settingsPath` (the web route
40
+ * that fixes it, or `null`), `status`, `detail` (one line: what was found),
41
+ * `remedy` (set on `warn` and `fail`, otherwise `null`), `error` (the
42
+ * underlying probe error, or `null`), `data` (small scalar facts, never secret
43
+ * material, or `null`) and `durationMs` (0 when skipped without running).
44
+ *
45
+ * @extensionPoint schema
46
+ * @stability stable
47
+ */
48
+ export const doctorCheckReportSchema = z.object({
49
+ /** Stable dotted id, e.g. `storage.bucket`. */
50
+ id: z.string(),
51
+ /** `core`, `auth`, `storage`, ... — a fork may add its own. */
52
+ category: z.string(),
53
+ /** Short human label: "Object storage bucket". */
54
+ label: z.string(),
55
+ /** The web route that fixes this check, when there is one. */
56
+ settingsPath: z.string().nullable(),
57
+ /** `pass`, `warn`, `fail` or `skip`. */
58
+ status: doctorStatusSchema,
59
+ /** One line: what was found. */
60
+ detail: z.string(),
61
+ /** What to do about a `warn` or `fail`. Always set on those two. */
62
+ remedy: z.string().nullable(),
63
+ /** The underlying error message, when a probe failed. */
64
+ error: z.string().nullable(),
65
+ /** Small scalar facts: counts, versions, latencies. Never secret material. */
66
+ data: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])).nullable(),
67
+ /** How long this check took; 0 when it was skipped without running. */
68
+ durationMs: z.number().int(),
69
+ });
70
+ /**
71
+ * The whole report, as `GET /api/admin/doctor` returns it: `verdict` (the
72
+ * worst status in `checks`, `skip` when none ran), `generatedAt` (ISO 8601; a
73
+ * cached report keeps its original time), `durationMs` (wall time of the run)
74
+ * and `checks` (sorted by category, configured order first, then registration
75
+ * order).
76
+ *
77
+ * @extensionPoint schema
78
+ * @stability stable
79
+ */
80
+ export const doctorReportSchema = z.object({
81
+ /** The worst status in `checks` (`pass < skip < warn < fail`); `skip` when none ran. */
82
+ verdict: doctorStatusSchema,
83
+ /** When this report was produced. A cached report keeps its original time. */
84
+ generatedAt: z.iso.datetime(),
85
+ /** Wall time of the whole run. */
86
+ durationMs: z.number().int(),
87
+ /** Sorted by category (shipped order first), then registration order. */
88
+ checks: z.array(doctorCheckReportSchema),
89
+ });
90
+ // The query's `'true' | 'false'` parameter, typed through its named entries.
91
+ const booleanStringSchema = z.enum(['true', 'false']);
92
+ /**
93
+ * `GET /api/admin/doctor` query: `category` (a lowercase identifier; only the
94
+ * checks in that category, plus, unreported, whatever they depend on) and
95
+ * `refresh` (`'true'` bypasses the 15-second report cache).
96
+ *
97
+ * `refresh` is `z.enum(['true','false']).transform(...)` and NOT
98
+ * `z.coerce.boolean()`: every query parameter is a string and
99
+ * `Boolean('false')` is `true`.
100
+ *
101
+ * @extensionPoint schema
102
+ * @stability stable
103
+ */
104
+ export const doctorQuerySchema = z.object({
105
+ /** Only the checks in this category (plus, unreported, whatever they depend on). */
106
+ category: z
107
+ .string()
108
+ .regex(/^[a-z0-9][a-z0-9_-]{0,63}$/, 'category must be a lowercase identifier')
109
+ .optional(),
110
+ /** `true` bypasses the 15-second report cache. */
111
+ refresh: booleanStringSchema
112
+ .transform((value) => value === 'true')
113
+ .optional(),
114
+ });
115
+ const statusEnumMatchesConstants = true;
116
+ const queryInputMatchesSchema = true;
117
+ void statusEnumMatchesConstants;
118
+ void queryInputMatchesSchema;
119
+ // -----------------------------------------------------------------------------
120
+ // The support bundle (issue #772): the envelope `GET /api/admin/doctor/support-bundle`
121
+ // returns. Each section's `data` is validated by that section's own strict
122
+ // schema on the server (`@marinoscar/platform-api/doctor`), so here it stays
123
+ // `unknown`.
124
+ // -----------------------------------------------------------------------------
125
+ /**
126
+ * One section of a bundle. `truncated: true` with `data: null` means the
127
+ * section was larger than its size cap and its data was dropped.
128
+ *
129
+ * @extensionPoint schema
130
+ * @stability experimental
131
+ */
132
+ export const supportBundleSectionResultSchema = z.discriminatedUnion('status', [
133
+ z.object({
134
+ /** Collected. */
135
+ status: z.literal('ok'),
136
+ /** The section's data, validated by its strict schema and redacted; `null` when truncated. */
137
+ data: z.unknown().describe("The section's data, already validated by its strict schema and redacted."),
138
+ /** `true` when a size cap dropped the data. */
139
+ truncated: z.boolean().optional().describe('`true` when a size cap dropped the data (`data` is then `null`).'),
140
+ }),
141
+ z.object({
142
+ /** Not collected. */
143
+ status: z.literal('omitted'),
144
+ /** Why: a missing permission, a capability switched off. */
145
+ reason: z.string().describe('Why the section was not collected (a missing permission, a capability switched off).'),
146
+ }),
147
+ z.object({
148
+ /** Collected, but dropped. */
149
+ status: z.literal('error'),
150
+ /** One redacted line saying why. */
151
+ error: z.string().describe('One redacted line: a throw, a timeout or a schema violation. Never the raw value.'),
152
+ }),
153
+ ]);
154
+ /**
155
+ * The support bundle: what `GET /api/admin/doctor/support-bundle` returns as a
156
+ * JSON attachment.
157
+ *
158
+ * @extensionPoint schema
159
+ * @stability experimental
160
+ */
161
+ export const supportBundleSchema = z.object({
162
+ /** The bundle format version, {@link SUPPORT_BUNDLE_VERSION}. */
163
+ bundleVersion: z.literal(SUPPORT_BUNDLE_VERSION).describe('The bundle format version.'),
164
+ /** When the bundle was built (ISO 8601, UTC). */
165
+ generatedAt: z.string().describe('When the bundle was built (ISO 8601, UTC).'),
166
+ /** The central redaction pass. */
167
+ redaction: z
168
+ .object({
169
+ /** The rule set applied, {@link SUPPORT_BUNDLE_REDACTION_RULES}. */
170
+ rules: z.literal(SUPPORT_BUNDLE_REDACTION_RULES).describe('The redaction rule set applied.'),
171
+ /** How many values the pass replaced. */
172
+ replacements: z.number().int().describe('How many values the redaction pass replaced.'),
173
+ })
174
+ .describe('The central redaction pass, applied on top of every section schema.'),
175
+ /** One result per registered section, keyed by section id. */
176
+ sections: z
177
+ .record(z.string(), supportBundleSectionResultSchema)
178
+ .describe('One entry per registered section, keyed by section id.'),
179
+ });
180
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/doctor/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The npm name of this package, which holds Zod DTOs and types shared by the platform API and web packages.
3
+ *
4
+ * The root entry exports only this name, so the smoke imports in CI have
5
+ * something to load end to end. Every slice is a subpath export
6
+ * (`@marinoscar/platform-contract/<slice>`, the first being `./doctor`) and is
7
+ * deliberately not re-exported here: a consumer loads only the slices it
8
+ * imports, and importing the root never loads zod.
9
+ *
10
+ * @stability experimental
11
+ */
12
+ export declare const PLATFORM_PACKAGE: "@marinoscar/platform-contract";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAG,+BAAwC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The npm name of this package, which holds Zod DTOs and types shared by the platform API and web packages.
3
+ *
4
+ * The root entry exports only this name, so the smoke imports in CI have
5
+ * something to load end to end. Every slice is a subpath export
6
+ * (`@marinoscar/platform-contract/<slice>`, the first being `./doctor`) and is
7
+ * deliberately not re-exported here: a consumer loads only the slices it
8
+ * imports, and importing the root never loads zod.
9
+ *
10
+ * @stability experimental
11
+ */
12
+ export const PLATFORM_PACKAGE = '@marinoscar/platform-contract';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,+BAAwC,CAAC"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }