@marinoscar/platform-api 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 (616) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/LICENSE +21 -0
  3. package/README.md +106 -2
  4. package/dist/core/crypto/encryption-key-startup-check.d.ts +29 -0
  5. package/dist/core/crypto/encryption-key-startup-check.d.ts.map +1 -0
  6. package/dist/core/crypto/encryption-key-startup-check.js +221 -0
  7. package/dist/core/crypto/encryption-key-startup-check.js.map +1 -0
  8. package/dist/core/crypto/secret-cipher.d.ts +151 -0
  9. package/dist/core/crypto/secret-cipher.d.ts.map +1 -0
  10. package/dist/core/crypto/secret-cipher.js +452 -0
  11. package/dist/core/crypto/secret-cipher.js.map +1 -0
  12. package/dist/core/data-access/index.d.ts +6 -0
  13. package/dist/core/data-access/index.d.ts.map +1 -0
  14. package/dist/core/data-access/index.js +19 -0
  15. package/dist/core/data-access/index.js.map +1 -0
  16. package/dist/core/data-access/scoped-access.error.d.ts +35 -0
  17. package/dist/core/data-access/scoped-access.error.d.ts.map +1 -0
  18. package/dist/core/data-access/scoped-access.error.js +43 -0
  19. package/dist/core/data-access/scoped-access.error.js.map +1 -0
  20. package/dist/core/data-access/scoped-client.d.ts +104 -0
  21. package/dist/core/data-access/scoped-client.d.ts.map +1 -0
  22. package/dist/core/data-access/scoped-client.js +270 -0
  23. package/dist/core/data-access/scoped-client.js.map +1 -0
  24. package/dist/core/data-access/types.d.ts +85 -0
  25. package/dist/core/data-access/types.d.ts.map +1 -0
  26. package/dist/core/data-access/types.js +12 -0
  27. package/dist/core/data-access/types.js.map +1 -0
  28. package/dist/core/data-access/user-owned-data.registry.d.ts +60 -0
  29. package/dist/core/data-access/user-owned-data.registry.d.ts.map +1 -0
  30. package/dist/core/data-access/user-owned-data.registry.js +140 -0
  31. package/dist/core/data-access/user-owned-data.registry.js.map +1 -0
  32. package/dist/core/errors/database-seed.exception.d.ts +23 -0
  33. package/dist/core/errors/database-seed.exception.d.ts.map +1 -0
  34. package/dist/core/errors/database-seed.exception.js +49 -0
  35. package/dist/core/errors/database-seed.exception.js.map +1 -0
  36. package/dist/core/errors/error.dto.d.ts +47 -0
  37. package/dist/core/errors/error.dto.d.ts.map +1 -0
  38. package/dist/core/errors/error.dto.js +121 -0
  39. package/dist/core/errors/error.dto.js.map +1 -0
  40. package/dist/core/errors/http-exception.filter.d.ts +63 -0
  41. package/dist/core/errors/http-exception.filter.d.ts.map +1 -0
  42. package/dist/core/errors/http-exception.filter.js +234 -0
  43. package/dist/core/errors/http-exception.filter.js.map +1 -0
  44. package/dist/core/errors/verbatim-error-body.exception.d.ts +46 -0
  45. package/dist/core/errors/verbatim-error-body.exception.d.ts.map +1 -0
  46. package/dist/core/errors/verbatim-error-body.exception.js +135 -0
  47. package/dist/core/errors/verbatim-error-body.exception.js.map +1 -0
  48. package/dist/core/host/index.d.ts +7 -0
  49. package/dist/core/host/index.d.ts.map +1 -0
  50. package/dist/core/host/index.js +14 -0
  51. package/dist/core/host/index.js.map +1 -0
  52. package/dist/core/host/platform-host.d.ts +58 -0
  53. package/dist/core/host/platform-host.d.ts.map +1 -0
  54. package/dist/core/host/platform-host.js +104 -0
  55. package/dist/core/host/platform-host.js.map +1 -0
  56. package/dist/core/host/platform-host.module.d.ts +53 -0
  57. package/dist/core/host/platform-host.module.d.ts.map +1 -0
  58. package/dist/core/host/platform-host.module.js +90 -0
  59. package/dist/core/host/platform-host.module.js.map +1 -0
  60. package/dist/core/host/ports.d.ts +132 -0
  61. package/dist/core/host/ports.d.ts.map +1 -0
  62. package/dist/core/host/ports.js +48 -0
  63. package/dist/core/host/ports.js.map +1 -0
  64. package/dist/core/index.d.ts +15 -0
  65. package/dist/core/index.d.ts.map +1 -0
  66. package/dist/core/index.js +77 -0
  67. package/dist/core/index.js.map +1 -0
  68. package/dist/core/openapi/openapi-tag.registry.d.ts +80 -0
  69. package/dist/core/openapi/openapi-tag.registry.d.ts.map +1 -0
  70. package/dist/core/openapi/openapi-tag.registry.js +72 -0
  71. package/dist/core/openapi/openapi-tag.registry.js.map +1 -0
  72. package/dist/core/principal/index.d.ts +6 -0
  73. package/dist/core/principal/index.d.ts.map +1 -0
  74. package/dist/core/principal/index.js +3 -0
  75. package/dist/core/principal/index.js.map +1 -0
  76. package/dist/core/principal/principal.types.d.ts +222 -0
  77. package/dist/core/principal/principal.types.d.ts.map +1 -0
  78. package/dist/core/principal/principal.types.js +22 -0
  79. package/dist/core/principal/principal.types.js.map +1 -0
  80. package/dist/core/registry/index.d.ts +4 -0
  81. package/dist/core/registry/index.d.ts.map +1 -0
  82. package/dist/core/registry/index.js +19 -0
  83. package/dist/core/registry/index.js.map +1 -0
  84. package/dist/core/registry/registry-freeze.service.d.ts +14 -0
  85. package/dist/core/registry/registry-freeze.service.d.ts.map +1 -0
  86. package/dist/core/registry/registry-freeze.service.js +55 -0
  87. package/dist/core/registry/registry-freeze.service.js.map +1 -0
  88. package/dist/core/registry/registry.d.ts +268 -0
  89. package/dist/core/registry/registry.d.ts.map +1 -0
  90. package/dist/core/registry/registry.js +351 -0
  91. package/dist/core/registry/registry.js.map +1 -0
  92. package/dist/core/registry/testing.d.ts +29 -0
  93. package/dist/core/registry/testing.d.ts.map +1 -0
  94. package/dist/core/registry/testing.js +63 -0
  95. package/dist/core/registry/testing.js.map +1 -0
  96. package/dist/doctor/doctor-check.interface.d.ts +100 -0
  97. package/dist/doctor/doctor-check.interface.d.ts.map +1 -0
  98. package/dist/doctor/doctor-check.interface.js +95 -0
  99. package/dist/doctor/doctor-check.interface.js.map +1 -0
  100. package/dist/doctor/doctor-check.registry.d.ts +37 -0
  101. package/dist/doctor/doctor-check.registry.d.ts.map +1 -0
  102. package/dist/doctor/doctor-check.registry.js +96 -0
  103. package/dist/doctor/doctor-check.registry.js.map +1 -0
  104. package/dist/doctor/doctor.controller.factory.d.ts +29 -0
  105. package/dist/doctor/doctor.controller.factory.d.ts.map +1 -0
  106. package/dist/doctor/doctor.controller.factory.js +121 -0
  107. package/dist/doctor/doctor.controller.factory.js.map +1 -0
  108. package/dist/doctor/doctor.module.d.ts +78 -0
  109. package/dist/doctor/doctor.module.d.ts.map +1 -0
  110. package/dist/doctor/doctor.module.js +158 -0
  111. package/dist/doctor/doctor.module.js.map +1 -0
  112. package/dist/doctor/doctor.options.d.ts +39 -0
  113. package/dist/doctor/doctor.options.d.ts.map +1 -0
  114. package/dist/doctor/doctor.options.js +21 -0
  115. package/dist/doctor/doctor.options.js.map +1 -0
  116. package/dist/doctor/doctor.service.d.ts +80 -0
  117. package/dist/doctor/doctor.service.d.ts.map +1 -0
  118. package/dist/doctor/doctor.service.js +301 -0
  119. package/dist/doctor/doctor.service.js.map +1 -0
  120. package/dist/doctor/dto/doctor-query.dto.d.ts +15 -0
  121. package/dist/doctor/dto/doctor-query.dto.d.ts.map +1 -0
  122. package/dist/doctor/dto/doctor-query.dto.js +16 -0
  123. package/dist/doctor/dto/doctor-query.dto.js.map +1 -0
  124. package/dist/doctor/dto/doctor-report.dto.d.ts +27 -0
  125. package/dist/doctor/dto/doctor-report.dto.d.ts.map +1 -0
  126. package/dist/doctor/dto/doctor-report.dto.js +23 -0
  127. package/dist/doctor/dto/doctor-report.dto.js.map +1 -0
  128. package/dist/doctor/egress/classify-host.d.ts +73 -0
  129. package/dist/doctor/egress/classify-host.d.ts.map +1 -0
  130. package/dist/doctor/egress/classify-host.js +210 -0
  131. package/dist/doctor/egress/classify-host.js.map +1 -0
  132. package/dist/doctor/egress/egress.registry.d.ts +34 -0
  133. package/dist/doctor/egress/egress.registry.d.ts.map +1 -0
  134. package/dist/doctor/egress/egress.registry.js +70 -0
  135. package/dist/doctor/egress/egress.registry.js.map +1 -0
  136. package/dist/doctor/egress/egress.types.d.ts +135 -0
  137. package/dist/doctor/egress/egress.types.d.ts.map +1 -0
  138. package/dist/doctor/egress/egress.types.js +42 -0
  139. package/dist/doctor/egress/egress.types.js.map +1 -0
  140. package/dist/doctor/egress/index.d.ts +6 -0
  141. package/dist/doctor/egress/index.d.ts.map +1 -0
  142. package/dist/doctor/egress/index.js +23 -0
  143. package/dist/doctor/egress/index.js.map +1 -0
  144. package/dist/doctor/egress/network-egress.doctor-check.d.ts +78 -0
  145. package/dist/doctor/egress/network-egress.doctor-check.d.ts.map +1 -0
  146. package/dist/doctor/egress/network-egress.doctor-check.js +226 -0
  147. package/dist/doctor/egress/network-egress.doctor-check.js.map +1 -0
  148. package/dist/doctor/index.d.ts +19 -0
  149. package/dist/doctor/index.d.ts.map +1 -0
  150. package/dist/doctor/index.js +66 -0
  151. package/dist/doctor/index.js.map +1 -0
  152. package/dist/doctor/support-bundle/index.d.ts +12 -0
  153. package/dist/doctor/support-bundle/index.d.ts.map +1 -0
  154. package/dist/doctor/support-bundle/index.js +32 -0
  155. package/dist/doctor/support-bundle/index.js.map +1 -0
  156. package/dist/doctor/support-bundle/redact.d.ts +76 -0
  157. package/dist/doctor/support-bundle/redact.d.ts.map +1 -0
  158. package/dist/doctor/support-bundle/redact.js +236 -0
  159. package/dist/doctor/support-bundle/redact.js.map +1 -0
  160. package/dist/doctor/support-bundle/sections/doctor.section.d.ts +81 -0
  161. package/dist/doctor/support-bundle/sections/doctor.section.d.ts.map +1 -0
  162. package/dist/doctor/support-bundle/sections/doctor.section.js +83 -0
  163. package/dist/doctor/support-bundle/sections/doctor.section.js.map +1 -0
  164. package/dist/doctor/support-bundle/sections/egress.section.d.ts +73 -0
  165. package/dist/doctor/support-bundle/sections/egress.section.d.ts.map +1 -0
  166. package/dist/doctor/support-bundle/sections/egress.section.js +97 -0
  167. package/dist/doctor/support-bundle/sections/egress.section.js.map +1 -0
  168. package/dist/doctor/support-bundle/sections/meta.section.d.ts +39 -0
  169. package/dist/doctor/support-bundle/sections/meta.section.d.ts.map +1 -0
  170. package/dist/doctor/support-bundle/sections/meta.section.js +89 -0
  171. package/dist/doctor/support-bundle/sections/meta.section.js.map +1 -0
  172. package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts +100 -0
  173. package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts.map +1 -0
  174. package/dist/doctor/support-bundle/support-bundle-section.interface.js +59 -0
  175. package/dist/doctor/support-bundle/support-bundle-section.interface.js.map +1 -0
  176. package/dist/doctor/support-bundle/support-bundle.controller.d.ts +57 -0
  177. package/dist/doctor/support-bundle/support-bundle.controller.d.ts.map +1 -0
  178. package/dist/doctor/support-bundle/support-bundle.controller.js +141 -0
  179. package/dist/doctor/support-bundle/support-bundle.controller.js.map +1 -0
  180. package/dist/doctor/support-bundle/support-bundle.options.d.ts +92 -0
  181. package/dist/doctor/support-bundle/support-bundle.options.d.ts.map +1 -0
  182. package/dist/doctor/support-bundle/support-bundle.options.js +100 -0
  183. package/dist/doctor/support-bundle/support-bundle.options.js.map +1 -0
  184. package/dist/doctor/support-bundle/support-bundle.registry.d.ts +38 -0
  185. package/dist/doctor/support-bundle/support-bundle.registry.d.ts.map +1 -0
  186. package/dist/doctor/support-bundle/support-bundle.registry.js +90 -0
  187. package/dist/doctor/support-bundle/support-bundle.registry.js.map +1 -0
  188. package/dist/doctor/support-bundle/support-bundle.service.d.ts +63 -0
  189. package/dist/doctor/support-bundle/support-bundle.service.d.ts.map +1 -0
  190. package/dist/doctor/support-bundle/support-bundle.service.js +244 -0
  191. package/dist/doctor/support-bundle/support-bundle.service.js.map +1 -0
  192. package/dist/index.d.ts +11 -0
  193. package/dist/index.d.ts.map +1 -0
  194. package/dist/index.js +14 -0
  195. package/dist/index.js.map +1 -0
  196. package/dist/otel-core/index.d.ts +9 -0
  197. package/dist/otel-core/index.d.ts.map +1 -0
  198. package/dist/otel-core/index.js +58 -0
  199. package/dist/otel-core/index.js.map +1 -0
  200. package/dist/otel-core/metrics/gauge-provider.d.ts +44 -0
  201. package/dist/otel-core/metrics/gauge-provider.d.ts.map +1 -0
  202. package/dist/otel-core/metrics/gauge-provider.js +37 -0
  203. package/dist/otel-core/metrics/gauge-provider.js.map +1 -0
  204. package/dist/otel-core/metrics/labels.d.ts +79 -0
  205. package/dist/otel-core/metrics/labels.d.ts.map +1 -0
  206. package/dist/otel-core/metrics/labels.js +135 -0
  207. package/dist/otel-core/metrics/labels.js.map +1 -0
  208. package/dist/otel-core/metrics/metric-name.registry.d.ts +130 -0
  209. package/dist/otel-core/metrics/metric-name.registry.d.ts.map +1 -0
  210. package/dist/otel-core/metrics/metric-name.registry.js +134 -0
  211. package/dist/otel-core/metrics/metric-name.registry.js.map +1 -0
  212. package/dist/otel-core/metrics/metrics-host.service.d.ts +163 -0
  213. package/dist/otel-core/metrics/metrics-host.service.d.ts.map +1 -0
  214. package/dist/otel-core/metrics/metrics-host.service.js +344 -0
  215. package/dist/otel-core/metrics/metrics-host.service.js.map +1 -0
  216. package/dist/otel-core/metrics/otel-metrics.module.d.ts +54 -0
  217. package/dist/otel-core/metrics/otel-metrics.module.d.ts.map +1 -0
  218. package/dist/otel-core/metrics/otel-metrics.module.js +83 -0
  219. package/dist/otel-core/metrics/otel-metrics.module.js.map +1 -0
  220. package/dist/otel-core/sdk/index.d.ts +5 -0
  221. package/dist/otel-core/sdk/index.d.ts.map +1 -0
  222. package/dist/otel-core/sdk/index.js +27 -0
  223. package/dist/otel-core/sdk/index.js.map +1 -0
  224. package/dist/otel-core/sdk/initialize-otel.d.ts +126 -0
  225. package/dist/otel-core/sdk/initialize-otel.d.ts.map +1 -0
  226. package/dist/otel-core/sdk/initialize-otel.js +204 -0
  227. package/dist/otel-core/sdk/initialize-otel.js.map +1 -0
  228. package/dist/otel-core/sdk/instance-id.d.ts +29 -0
  229. package/dist/otel-core/sdk/instance-id.d.ts.map +1 -0
  230. package/dist/otel-core/sdk/instance-id.js +65 -0
  231. package/dist/otel-core/sdk/instance-id.js.map +1 -0
  232. package/dist/otel-core/sdk/service-name.d.ts +28 -0
  233. package/dist/otel-core/sdk/service-name.d.ts.map +1 -0
  234. package/dist/otel-core/sdk/service-name.js +63 -0
  235. package/dist/otel-core/sdk/service-name.js.map +1 -0
  236. package/dist/otel-core/sdk/telemetry-gate.d.ts +116 -0
  237. package/dist/otel-core/sdk/telemetry-gate.d.ts.map +1 -0
  238. package/dist/otel-core/sdk/telemetry-gate.js +297 -0
  239. package/dist/otel-core/sdk/telemetry-gate.js.map +1 -0
  240. package/dist/otel-core/spans/request-span-attributes.d.ts +58 -0
  241. package/dist/otel-core/spans/request-span-attributes.d.ts.map +1 -0
  242. package/dist/otel-core/spans/request-span-attributes.js +155 -0
  243. package/dist/otel-core/spans/request-span-attributes.js.map +1 -0
  244. package/dist/otel-core/spans/trace.decorator.d.ts +36 -0
  245. package/dist/otel-core/spans/trace.decorator.d.ts.map +1 -0
  246. package/dist/otel-core/spans/trace.decorator.js +74 -0
  247. package/dist/otel-core/spans/trace.decorator.js.map +1 -0
  248. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts +15 -0
  249. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts.map +1 -0
  250. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js +50 -0
  251. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js.map +1 -0
  252. package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts +14 -0
  253. package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts.map +1 -0
  254. package/dist/telemetry/assistant/telemetry-assistant.controller.js +178 -0
  255. package/dist/telemetry/assistant/telemetry-assistant.controller.js.map +1 -0
  256. package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts +147 -0
  257. package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts.map +1 -0
  258. package/dist/telemetry/assistant/telemetry-assistant.metrics.js +495 -0
  259. package/dist/telemetry/assistant/telemetry-assistant.metrics.js.map +1 -0
  260. package/dist/telemetry/assistant/telemetry-assistant.service.d.ts +216 -0
  261. package/dist/telemetry/assistant/telemetry-assistant.service.d.ts.map +1 -0
  262. package/dist/telemetry/assistant/telemetry-assistant.service.js +1256 -0
  263. package/dist/telemetry/assistant/telemetry-assistant.service.js.map +1 -0
  264. package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts +69 -0
  265. package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts.map +1 -0
  266. package/dist/telemetry/assistant/telemetry-assistant.sql.js +471 -0
  267. package/dist/telemetry/assistant/telemetry-assistant.sql.js.map +1 -0
  268. package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts +15 -0
  269. package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts.map +1 -0
  270. package/dist/telemetry/assistant/telemetry-assistant.sse.js +68 -0
  271. package/dist/telemetry/assistant/telemetry-assistant.sse.js.map +1 -0
  272. package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts +92 -0
  273. package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts.map +1 -0
  274. package/dist/telemetry/connection/dto/telemetry-connection.dto.js +41 -0
  275. package/dist/telemetry/connection/dto/telemetry-connection.dto.js.map +1 -0
  276. package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts +45 -0
  277. package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts.map +1 -0
  278. package/dist/telemetry/connection/telemetry-connection-admin.service.js +303 -0
  279. package/dist/telemetry/connection/telemetry-connection-admin.service.js.map +1 -0
  280. package/dist/telemetry/connection/telemetry-connection-test.service.d.ts +41 -0
  281. package/dist/telemetry/connection/telemetry-connection-test.service.d.ts.map +1 -0
  282. package/dist/telemetry/connection/telemetry-connection-test.service.js +187 -0
  283. package/dist/telemetry/connection/telemetry-connection-test.service.js.map +1 -0
  284. package/dist/telemetry/connection/telemetry-connection.controller.d.ts +14 -0
  285. package/dist/telemetry/connection/telemetry-connection.controller.d.ts.map +1 -0
  286. package/dist/telemetry/connection/telemetry-connection.controller.js +192 -0
  287. package/dist/telemetry/connection/telemetry-connection.controller.js.map +1 -0
  288. package/dist/telemetry/connection/telemetry-connection.schema.d.ts +28 -0
  289. package/dist/telemetry/connection/telemetry-connection.schema.d.ts.map +1 -0
  290. package/dist/telemetry/connection/telemetry-connection.schema.js +106 -0
  291. package/dist/telemetry/connection/telemetry-connection.schema.js.map +1 -0
  292. package/dist/telemetry/connection/telemetry-connection.service.d.ts +197 -0
  293. package/dist/telemetry/connection/telemetry-connection.service.d.ts.map +1 -0
  294. package/dist/telemetry/connection/telemetry-connection.service.js +461 -0
  295. package/dist/telemetry/connection/telemetry-connection.service.js.map +1 -0
  296. package/dist/telemetry/dashboard/sql-literals.d.ts +19 -0
  297. package/dist/telemetry/dashboard/sql-literals.d.ts.map +1 -0
  298. package/dist/telemetry/dashboard/sql-literals.js +75 -0
  299. package/dist/telemetry/dashboard/sql-literals.js.map +1 -0
  300. package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts +14 -0
  301. package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts.map +1 -0
  302. package/dist/telemetry/dashboard/telemetry-dashboard.controller.js +277 -0
  303. package/dist/telemetry/dashboard/telemetry-dashboard.controller.js.map +1 -0
  304. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +112 -0
  305. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -0
  306. package/dist/telemetry/dashboard/telemetry-dashboard.service.js +904 -0
  307. package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -0
  308. package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts +212 -0
  309. package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts.map +1 -0
  310. package/dist/telemetry/dashboard/telemetry-dashboard.sql.js +486 -0
  311. package/dist/telemetry/dashboard/telemetry-dashboard.sql.js.map +1 -0
  312. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +235 -0
  313. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -0
  314. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +269 -0
  315. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -0
  316. package/dist/telemetry/dashboard/verdict-policy.d.ts +51 -0
  317. package/dist/telemetry/dashboard/verdict-policy.d.ts.map +1 -0
  318. package/dist/telemetry/dashboard/verdict-policy.js +77 -0
  319. package/dist/telemetry/dashboard/verdict-policy.js.map +1 -0
  320. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts +21 -0
  321. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts.map +1 -0
  322. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js +59 -0
  323. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js.map +1 -0
  324. package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts +23 -0
  325. package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts.map +1 -0
  326. package/dist/telemetry/doctor/telemetry-connection.doctor-check.js +69 -0
  327. package/dist/telemetry/doctor/telemetry-connection.doctor-check.js.map +1 -0
  328. package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts +33 -0
  329. package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts.map +1 -0
  330. package/dist/telemetry/doctor/telemetry-export.doctor-check.js +105 -0
  331. package/dist/telemetry/doctor/telemetry-export.doctor-check.js.map +1 -0
  332. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts +38 -0
  333. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts.map +1 -0
  334. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js +104 -0
  335. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js.map +1 -0
  336. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts +23 -0
  337. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts.map +1 -0
  338. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js +65 -0
  339. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js.map +1 -0
  340. package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts +23 -0
  341. package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts.map +1 -0
  342. package/dist/telemetry/doctor/telemetry-tables.doctor-check.js +91 -0
  343. package/dist/telemetry/doctor/telemetry-tables.doctor-check.js.map +1 -0
  344. package/dist/telemetry/dto/telemetry-assistant.dto.d.ts +14 -0
  345. package/dist/telemetry/dto/telemetry-assistant.dto.d.ts.map +1 -0
  346. package/dist/telemetry/dto/telemetry-assistant.dto.js +29 -0
  347. package/dist/telemetry/dto/telemetry-assistant.dto.js.map +1 -0
  348. package/dist/telemetry/dto/telemetry-config.dto.d.ts +59 -0
  349. package/dist/telemetry/dto/telemetry-config.dto.d.ts.map +1 -0
  350. package/dist/telemetry/dto/telemetry-config.dto.js +18 -0
  351. package/dist/telemetry/dto/telemetry-config.dto.js.map +1 -0
  352. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +397 -0
  353. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts.map +1 -0
  354. package/dist/telemetry/dto/telemetry-dashboard.dto.js +118 -0
  355. package/dist/telemetry/dto/telemetry-dashboard.dto.js.map +1 -0
  356. package/dist/telemetry/dto/telemetry-query.dto.d.ts +44 -0
  357. package/dist/telemetry/dto/telemetry-query.dto.d.ts.map +1 -0
  358. package/dist/telemetry/dto/telemetry-query.dto.js +42 -0
  359. package/dist/telemetry/dto/telemetry-query.dto.js.map +1 -0
  360. package/dist/telemetry/dto/telemetry-status.dto.d.ts +22 -0
  361. package/dist/telemetry/dto/telemetry-status.dto.d.ts.map +1 -0
  362. package/dist/telemetry/dto/telemetry-status.dto.js +12 -0
  363. package/dist/telemetry/dto/telemetry-status.dto.js.map +1 -0
  364. package/dist/telemetry/export/parquet-writer.loader.d.ts +13 -0
  365. package/dist/telemetry/export/parquet-writer.loader.d.ts.map +1 -0
  366. package/dist/telemetry/export/parquet-writer.loader.js +29 -0
  367. package/dist/telemetry/export/parquet-writer.loader.js.map +1 -0
  368. package/dist/telemetry/export/telemetry-export.service.d.ts +39 -0
  369. package/dist/telemetry/export/telemetry-export.service.d.ts.map +1 -0
  370. package/dist/telemetry/export/telemetry-export.service.js +185 -0
  371. package/dist/telemetry/export/telemetry-export.service.js.map +1 -0
  372. package/dist/telemetry/greptime/greptime-host.d.ts +44 -0
  373. package/dist/telemetry/greptime/greptime-host.d.ts.map +1 -0
  374. package/dist/telemetry/greptime/greptime-host.js +114 -0
  375. package/dist/telemetry/greptime/greptime-host.js.map +1 -0
  376. package/dist/telemetry/greptime/greptime.client.d.ts +171 -0
  377. package/dist/telemetry/greptime/greptime.client.d.ts.map +1 -0
  378. package/dist/telemetry/greptime/greptime.client.js +352 -0
  379. package/dist/telemetry/greptime/greptime.client.js.map +1 -0
  380. package/dist/telemetry/greptime/greptime.errors.d.ts +59 -0
  381. package/dist/telemetry/greptime/greptime.errors.d.ts.map +1 -0
  382. package/dist/telemetry/greptime/greptime.errors.js +100 -0
  383. package/dist/telemetry/greptime/greptime.errors.js.map +1 -0
  384. package/dist/telemetry/handlers/telemetry-retention.handler.d.ts +27 -0
  385. package/dist/telemetry/handlers/telemetry-retention.handler.d.ts.map +1 -0
  386. package/dist/telemetry/handlers/telemetry-retention.handler.js +123 -0
  387. package/dist/telemetry/handlers/telemetry-retention.handler.js.map +1 -0
  388. package/dist/telemetry/index.d.ts +37 -0
  389. package/dist/telemetry/index.d.ts.map +1 -0
  390. package/dist/telemetry/index.js +97 -0
  391. package/dist/telemetry/index.js.map +1 -0
  392. package/dist/telemetry/internal/blank-secret.d.ts +3 -0
  393. package/dist/telemetry/internal/blank-secret.d.ts.map +1 -0
  394. package/dist/telemetry/internal/blank-secret.js +14 -0
  395. package/dist/telemetry/internal/blank-secret.js.map +1 -0
  396. package/dist/telemetry/internal/csv.d.ts +9 -0
  397. package/dist/telemetry/internal/csv.d.ts.map +1 -0
  398. package/dist/telemetry/internal/csv.js +23 -0
  399. package/dist/telemetry/internal/csv.js.map +1 -0
  400. package/dist/telemetry/internal/sse.d.ts +23 -0
  401. package/dist/telemetry/internal/sse.d.ts.map +1 -0
  402. package/dist/telemetry/internal/sse.js +43 -0
  403. package/dist/telemetry/internal/sse.js.map +1 -0
  404. package/dist/telemetry/metrics/groups/database.metric-group.d.ts +7 -0
  405. package/dist/telemetry/metrics/groups/database.metric-group.d.ts.map +1 -0
  406. package/dist/telemetry/metrics/groups/database.metric-group.js +159 -0
  407. package/dist/telemetry/metrics/groups/database.metric-group.js.map +1 -0
  408. package/dist/telemetry/metrics/groups/host.metric-group.d.ts +7 -0
  409. package/dist/telemetry/metrics/groups/host.metric-group.d.ts.map +1 -0
  410. package/dist/telemetry/metrics/groups/host.metric-group.js +146 -0
  411. package/dist/telemetry/metrics/groups/host.metric-group.js.map +1 -0
  412. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts +7 -0
  413. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -0
  414. package/dist/telemetry/metrics/groups/nodes.metric-group.js +159 -0
  415. package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -0
  416. package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts +7 -0
  417. package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts.map +1 -0
  418. package/dist/telemetry/metrics/groups/pipeline.metric-group.js +144 -0
  419. package/dist/telemetry/metrics/groups/pipeline.metric-group.js.map +1 -0
  420. package/dist/telemetry/metrics/groups/queue.metric-group.d.ts +7 -0
  421. package/dist/telemetry/metrics/groups/queue.metric-group.d.ts.map +1 -0
  422. package/dist/telemetry/metrics/groups/queue.metric-group.js +163 -0
  423. package/dist/telemetry/metrics/groups/queue.metric-group.js.map +1 -0
  424. package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts +7 -0
  425. package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts.map +1 -0
  426. package/dist/telemetry/metrics/groups/uptime.metric-group.js +103 -0
  427. package/dist/telemetry/metrics/groups/uptime.metric-group.js.map +1 -0
  428. package/dist/telemetry/metrics/metric-catalog.d.ts +324 -0
  429. package/dist/telemetry/metrics/metric-catalog.d.ts.map +1 -0
  430. package/dist/telemetry/metrics/metric-catalog.helpers.d.ts +30 -0
  431. package/dist/telemetry/metrics/metric-catalog.helpers.d.ts.map +1 -0
  432. package/dist/telemetry/metrics/metric-catalog.helpers.js +37 -0
  433. package/dist/telemetry/metrics/metric-catalog.helpers.js.map +1 -0
  434. package/dist/telemetry/metrics/metric-catalog.js +180 -0
  435. package/dist/telemetry/metrics/metric-catalog.js.map +1 -0
  436. package/dist/telemetry/metrics/metric-group-registry.service.d.ts +59 -0
  437. package/dist/telemetry/metrics/metric-group-registry.service.d.ts.map +1 -0
  438. package/dist/telemetry/metrics/metric-group-registry.service.js +99 -0
  439. package/dist/telemetry/metrics/metric-group-registry.service.js.map +1 -0
  440. package/dist/telemetry/metrics/metric-group.d.ts +113 -0
  441. package/dist/telemetry/metrics/metric-group.d.ts.map +1 -0
  442. package/dist/telemetry/metrics/metric-group.js +647 -0
  443. package/dist/telemetry/metrics/metric-group.js.map +1 -0
  444. package/dist/telemetry/metrics/metric-group.manifest.d.ts +2 -0
  445. package/dist/telemetry/metrics/metric-group.manifest.d.ts.map +1 -0
  446. package/dist/telemetry/metrics/metric-group.manifest.js +30 -0
  447. package/dist/telemetry/metrics/metric-group.manifest.js.map +1 -0
  448. package/dist/telemetry/metrics/metric-group.registry.d.ts +109 -0
  449. package/dist/telemetry/metrics/metric-group.registry.d.ts.map +1 -0
  450. package/dist/telemetry/metrics/metric-group.registry.js +181 -0
  451. package/dist/telemetry/metrics/metric-group.registry.js.map +1 -0
  452. package/dist/telemetry/metrics/metric-sql.d.ts +98 -0
  453. package/dist/telemetry/metrics/metric-sql.d.ts.map +1 -0
  454. package/dist/telemetry/metrics/metric-sql.js +259 -0
  455. package/dist/telemetry/metrics/metric-sql.js.map +1 -0
  456. package/dist/telemetry/metrics/metric-values.d.ts +19 -0
  457. package/dist/telemetry/metrics/metric-values.d.ts.map +1 -0
  458. package/dist/telemetry/metrics/metric-values.js +97 -0
  459. package/dist/telemetry/metrics/metric-values.js.map +1 -0
  460. package/dist/telemetry/metrics/metric-verdict.d.ts +20 -0
  461. package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -0
  462. package/dist/telemetry/metrics/metric-verdict.js +218 -0
  463. package/dist/telemetry/metrics/metric-verdict.js.map +1 -0
  464. package/dist/telemetry/ports.d.ts +575 -0
  465. package/dist/telemetry/ports.d.ts.map +1 -0
  466. package/dist/telemetry/ports.js +78 -0
  467. package/dist/telemetry/ports.js.map +1 -0
  468. package/dist/telemetry/query/sql-guard.d.ts +71 -0
  469. package/dist/telemetry/query/sql-guard.d.ts.map +1 -0
  470. package/dist/telemetry/query/sql-guard.js +258 -0
  471. package/dist/telemetry/query/sql-guard.js.map +1 -0
  472. package/dist/telemetry/query/telemetry-availability.d.ts +11 -0
  473. package/dist/telemetry/query/telemetry-availability.d.ts.map +1 -0
  474. package/dist/telemetry/query/telemetry-availability.js +55 -0
  475. package/dist/telemetry/query/telemetry-availability.js.map +1 -0
  476. package/dist/telemetry/query/telemetry-query.errors.d.ts +48 -0
  477. package/dist/telemetry/query/telemetry-query.errors.d.ts.map +1 -0
  478. package/dist/telemetry/query/telemetry-query.errors.js +100 -0
  479. package/dist/telemetry/query/telemetry-query.errors.js.map +1 -0
  480. package/dist/telemetry/query/telemetry-query.service.d.ts +57 -0
  481. package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -0
  482. package/dist/telemetry/query/telemetry-query.service.js +194 -0
  483. package/dist/telemetry/query/telemetry-query.service.js.map +1 -0
  484. package/dist/telemetry/query/telemetry-schema.service.d.ts +36 -0
  485. package/dist/telemetry/query/telemetry-schema.service.d.ts.map +1 -0
  486. package/dist/telemetry/query/telemetry-schema.service.js +154 -0
  487. package/dist/telemetry/query/telemetry-schema.service.js.map +1 -0
  488. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +29 -0
  489. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts.map +1 -0
  490. package/dist/telemetry/stack/dto/telemetry-stack.dto.js +27 -0
  491. package/dist/telemetry/stack/dto/telemetry-stack.dto.js.map +1 -0
  492. package/dist/telemetry/stack/stack-agent.client.d.ts +76 -0
  493. package/dist/telemetry/stack/stack-agent.client.d.ts.map +1 -0
  494. package/dist/telemetry/stack/stack-agent.client.js +208 -0
  495. package/dist/telemetry/stack/stack-agent.client.js.map +1 -0
  496. package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts +43 -0
  497. package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts.map +1 -0
  498. package/dist/telemetry/stack/telemetry-stack-deploy.handler.js +159 -0
  499. package/dist/telemetry/stack/telemetry-stack-deploy.handler.js.map +1 -0
  500. package/dist/telemetry/stack/telemetry-stack.controller.d.ts +14 -0
  501. package/dist/telemetry/stack/telemetry-stack.controller.d.ts.map +1 -0
  502. package/dist/telemetry/stack/telemetry-stack.controller.js +107 -0
  503. package/dist/telemetry/stack/telemetry-stack.controller.js.map +1 -0
  504. package/dist/telemetry/stack/telemetry-stack.service.d.ts +19 -0
  505. package/dist/telemetry/stack/telemetry-stack.service.d.ts.map +1 -0
  506. package/dist/telemetry/stack/telemetry-stack.service.js +122 -0
  507. package/dist/telemetry/stack/telemetry-stack.service.js.map +1 -0
  508. package/dist/telemetry/tasks/telemetry-retention.task.d.ts +8 -0
  509. package/dist/telemetry/tasks/telemetry-retention.task.d.ts.map +1 -0
  510. package/dist/telemetry/tasks/telemetry-retention.task.js +61 -0
  511. package/dist/telemetry/tasks/telemetry-retention.task.js.map +1 -0
  512. package/dist/telemetry/telemetry-admin.controller.d.ts +14 -0
  513. package/dist/telemetry/telemetry-admin.controller.d.ts.map +1 -0
  514. package/dist/telemetry/telemetry-admin.controller.js +148 -0
  515. package/dist/telemetry/telemetry-admin.controller.js.map +1 -0
  516. package/dist/telemetry/telemetry-config.controller.d.ts +14 -0
  517. package/dist/telemetry/telemetry-config.controller.d.ts.map +1 -0
  518. package/dist/telemetry/telemetry-config.controller.js +73 -0
  519. package/dist/telemetry/telemetry-config.controller.js.map +1 -0
  520. package/dist/telemetry/telemetry-explorer.controller.d.ts +14 -0
  521. package/dist/telemetry/telemetry-explorer.controller.d.ts.map +1 -0
  522. package/dist/telemetry/telemetry-explorer.controller.js +193 -0
  523. package/dist/telemetry/telemetry-explorer.controller.js.map +1 -0
  524. package/dist/telemetry/telemetry-settings.service.d.ts +85 -0
  525. package/dist/telemetry/telemetry-settings.service.d.ts.map +1 -0
  526. package/dist/telemetry/telemetry-settings.service.js +278 -0
  527. package/dist/telemetry/telemetry-settings.service.js.map +1 -0
  528. package/dist/telemetry/telemetry-status.service.d.ts +28 -0
  529. package/dist/telemetry/telemetry-status.service.d.ts.map +1 -0
  530. package/dist/telemetry/telemetry-status.service.js +185 -0
  531. package/dist/telemetry/telemetry-status.service.js.map +1 -0
  532. package/dist/telemetry/telemetry-support-bundle.section.d.ts +163 -0
  533. package/dist/telemetry/telemetry-support-bundle.section.d.ts.map +1 -0
  534. package/dist/telemetry/telemetry-support-bundle.section.js +187 -0
  535. package/dist/telemetry/telemetry-support-bundle.section.js.map +1 -0
  536. package/dist/telemetry/telemetry.module.d.ts +35 -0
  537. package/dist/telemetry/telemetry.module.d.ts.map +1 -0
  538. package/dist/telemetry/telemetry.module.js +210 -0
  539. package/dist/telemetry/telemetry.module.js.map +1 -0
  540. package/dist/telemetry/telemetry.options.d.ts +176 -0
  541. package/dist/telemetry/telemetry.options.d.ts.map +1 -0
  542. package/dist/telemetry/telemetry.options.js +246 -0
  543. package/dist/telemetry/telemetry.options.js.map +1 -0
  544. package/dist/telemetry/telemetry.permissions.d.ts +76 -0
  545. package/dist/telemetry/telemetry.permissions.d.ts.map +1 -0
  546. package/dist/telemetry/telemetry.permissions.js +85 -0
  547. package/dist/telemetry/telemetry.permissions.js.map +1 -0
  548. package/dist/telemetry/telemetry.settings.d.ts +79 -0
  549. package/dist/telemetry/telemetry.settings.d.ts.map +1 -0
  550. package/dist/telemetry/telemetry.settings.js +92 -0
  551. package/dist/telemetry/telemetry.settings.js.map +1 -0
  552. package/dist/telemetry/testing/coach-metric-group.fixture.d.ts +17 -0
  553. package/dist/telemetry/testing/coach-metric-group.fixture.d.ts.map +1 -0
  554. package/dist/telemetry/testing/coach-metric-group.fixture.js +128 -0
  555. package/dist/telemetry/testing/coach-metric-group.fixture.js.map +1 -0
  556. package/dist/telemetry/testing/conformance.d.ts +257 -0
  557. package/dist/telemetry/testing/conformance.d.ts.map +1 -0
  558. package/dist/telemetry/testing/conformance.js +626 -0
  559. package/dist/telemetry/testing/conformance.js.map +1 -0
  560. package/dist/telemetry/testing/index.d.ts +10 -0
  561. package/dist/telemetry/testing/index.d.ts.map +1 -0
  562. package/dist/telemetry/testing/index.js +41 -0
  563. package/dist/telemetry/testing/index.js.map +1 -0
  564. package/dist/telemetry/testing/metric-schema.fixture.d.ts +73 -0
  565. package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -0
  566. package/dist/telemetry/testing/metric-schema.fixture.js +362 -0
  567. package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -0
  568. package/dist/telemetry/testing/stub-ports.d.ts +46 -0
  569. package/dist/telemetry/testing/stub-ports.d.ts.map +1 -0
  570. package/dist/telemetry/testing/stub-ports.js +119 -0
  571. package/dist/telemetry/testing/stub-ports.js.map +1 -0
  572. package/dist/testing/conformance-suite.d.ts +106 -0
  573. package/dist/testing/conformance-suite.d.ts.map +1 -0
  574. package/dist/testing/conformance-suite.js +8 -0
  575. package/dist/testing/conformance-suite.js.map +1 -0
  576. package/dist/testing/conformance-suites.d.ts +14 -0
  577. package/dist/testing/conformance-suites.d.ts.map +1 -0
  578. package/dist/testing/conformance-suites.js +27 -0
  579. package/dist/testing/conformance-suites.js.map +1 -0
  580. package/dist/testing/host/in-memory-audit-sink.d.ts +23 -0
  581. package/dist/testing/host/in-memory-audit-sink.d.ts.map +1 -0
  582. package/dist/testing/host/in-memory-audit-sink.js +30 -0
  583. package/dist/testing/host/in-memory-audit-sink.js.map +1 -0
  584. package/dist/testing/host/in-memory-system-settings-store.d.ts +31 -0
  585. package/dist/testing/host/in-memory-system-settings-store.d.ts.map +1 -0
  586. package/dist/testing/host/in-memory-system-settings-store.js +54 -0
  587. package/dist/testing/host/in-memory-system-settings-store.js.map +1 -0
  588. package/dist/testing/host/index.d.ts +4 -0
  589. package/dist/testing/host/index.d.ts.map +1 -0
  590. package/dist/testing/host/index.js +13 -0
  591. package/dist/testing/host/index.js.map +1 -0
  592. package/dist/testing/host/test-platform-host.d.ts +35 -0
  593. package/dist/testing/host/test-platform-host.d.ts.map +1 -0
  594. package/dist/testing/host/test-platform-host.js +81 -0
  595. package/dist/testing/host/test-platform-host.js.map +1 -0
  596. package/dist/testing/index.d.ts +12 -0
  597. package/dist/testing/index.d.ts.map +1 -0
  598. package/dist/testing/index.js +32 -0
  599. package/dist/testing/index.js.map +1 -0
  600. package/dist/testing/prisma-schema.d.ts +99 -0
  601. package/dist/testing/prisma-schema.d.ts.map +1 -0
  602. package/dist/testing/prisma-schema.js +175 -0
  603. package/dist/testing/prisma-schema.js.map +1 -0
  604. package/dist/testing/run-platform-conformance.d.ts +70 -0
  605. package/dist/testing/run-platform-conformance.d.ts.map +1 -0
  606. package/dist/testing/run-platform-conformance.js +77 -0
  607. package/dist/testing/run-platform-conformance.js.map +1 -0
  608. package/dist/testing/suites/cron-enqueue-only.d.ts +46 -0
  609. package/dist/testing/suites/cron-enqueue-only.d.ts.map +1 -0
  610. package/dist/testing/suites/cron-enqueue-only.js +177 -0
  611. package/dist/testing/suites/cron-enqueue-only.js.map +1 -0
  612. package/dist/testing/suites/user-owned-data.d.ts +86 -0
  613. package/dist/testing/suites/user-owned-data.d.ts.map +1 -0
  614. package/dist/testing/suites/user-owned-data.js +329 -0
  615. package/dist/testing/suites/user-owned-data.js.map +1 -0
  616. package/package.json +129 -4
@@ -0,0 +1,222 @@
1
+ /**
2
+ * How a deployment isolates its users: one organisation everyone auto-joins
3
+ * (`'single'`) or one organisation per customer (`'multi'`).
4
+ *
5
+ * A deployment setting, not a code path: the same code and the same tables
6
+ * serve both modes. This type only names the two values; parsing the setting
7
+ * is not part of this contract.
8
+ *
9
+ * @stability experimental
10
+ * @example
11
+ * ```ts
12
+ * const mode: TenancyMode = 'single';
13
+ * ```
14
+ */
15
+ export type TenancyMode = 'single' | 'multi';
16
+ /**
17
+ * How the request authenticated. One value per credential family the
18
+ * authentication guard accepts:
19
+ *
20
+ * - `'session'`: a browser access JWT (`Authorization: Bearer <jwt>`) whose
21
+ * payload has no `did` claim.
22
+ * - `'device'`: an access JWT carrying `did`, issued by the device
23
+ * authorization flow. A device flow that issued a `pat_` presents a PAT and
24
+ * is `'pat'`: the kind names the credential presented, not the flow that
25
+ * minted it.
26
+ * - `'pat'`: a `pat_` personal access token.
27
+ * - `'node'`: a `nod_` worker-node credential, confined to `/api/nodes`.
28
+ *
29
+ * Small and closed, so unlike an org id it is safe as a metric label.
30
+ *
31
+ * @stability experimental
32
+ * @example
33
+ * ```ts
34
+ * const kind: CredentialKind = payload.did ? 'device' : 'session';
35
+ * ```
36
+ */
37
+ export type CredentialKind = 'session' | 'device' | 'pat' | 'node';
38
+ /**
39
+ * Discriminant of {@link Principal}: a human user (directly or through a
40
+ * credential they delegated) or an unattended worker node.
41
+ *
42
+ * @stability experimental
43
+ */
44
+ export type PrincipalKind = 'user' | 'node';
45
+ /**
46
+ * One organisation a principal belongs to.
47
+ *
48
+ * @stability experimental
49
+ * @example
50
+ * ```ts
51
+ * const membership: OrgMembership = { orgId: 'org_1', role: 'member' };
52
+ * ```
53
+ */
54
+ export interface OrgMembership {
55
+ /** The organisation's id. */
56
+ readonly orgId: string;
57
+ /** Org-scoped role name (spec: "Org roles"), e.g. `'org_admin'`, `'member'`. */
58
+ readonly role: string;
59
+ }
60
+ /**
61
+ * One group a principal belongs to. A group is a set of users inside one
62
+ * organisation that can own and share content; it is never a tenant.
63
+ *
64
+ * @stability experimental
65
+ * @example
66
+ * ```ts
67
+ * const group: GroupMembership = { groupId: 'grp_1', orgId: 'org_1', role: 'member' };
68
+ * ```
69
+ */
70
+ export interface GroupMembership {
71
+ /** The group's id. */
72
+ readonly groupId: string;
73
+ /** The organisation the group lives in. */
74
+ readonly orgId: string;
75
+ /** The member's role inside the group, e.g. `'owner'`, `'member'`. */
76
+ readonly role: string;
77
+ }
78
+ /**
79
+ * Fields every principal carries. Not exported: build a {@link UserPrincipal}
80
+ * or a {@link NodePrincipal}.
81
+ */
82
+ interface PrincipalBase {
83
+ /** Discriminant; narrow on it. */
84
+ readonly kind: PrincipalKind;
85
+ /**
86
+ * The user whose authority is exercised. For a node principal, the owner of
87
+ * the node credential.
88
+ */
89
+ readonly userId: string;
90
+ /** That user's email, for logs and audit. */
91
+ readonly email: string;
92
+ /** How the request authenticated. */
93
+ readonly credential: CredentialKind;
94
+ /**
95
+ * System role names (spec: "System roles operate the deployment"). Today
96
+ * every role is a system role.
97
+ */
98
+ readonly roles: readonly string[];
99
+ /** Effective permission strings, deduplicated. */
100
+ readonly permissions: readonly string[];
101
+ /**
102
+ * The active organisation. ABSENT until organisations exist; afterwards
103
+ * always present on a user principal (single mode: the default org) and
104
+ * never present on a node principal, which stays system-scoped. Carried in
105
+ * the access token; switching org re-issues the token.
106
+ */
107
+ readonly activeOrgId?: string;
108
+ /** Every organisation the user belongs to. Absent until organisations exist. */
109
+ readonly memberships?: readonly OrgMembership[];
110
+ /** Every group the user belongs to. Absent until groups exist. */
111
+ readonly groups?: readonly GroupMembership[];
112
+ }
113
+ /**
114
+ * A human caller: a browser session, a device-flow token or a personal
115
+ * access token. A snapshot for one request; every field is readonly and a
116
+ * change (for example switching org) produces a new principal on the next
117
+ * request.
118
+ *
119
+ * There is no `isActive`: an inactive user never becomes a principal.
120
+ *
121
+ * @stability experimental
122
+ * @example
123
+ * ```ts
124
+ * const principal: UserPrincipal = {
125
+ * kind: 'user',
126
+ * userId: requestUser.id,
127
+ * email: requestUser.email,
128
+ * credential: 'session',
129
+ * roles: requestUser.roles,
130
+ * permissions: requestUser.permissions,
131
+ * };
132
+ * ```
133
+ */
134
+ export interface UserPrincipal extends PrincipalBase {
135
+ readonly kind: 'user';
136
+ readonly credential: 'session' | 'device' | 'pat';
137
+ }
138
+ /**
139
+ * An unattended worker process authenticated with a `nod_` credential. It
140
+ * acts with its owning user's roles and permissions and is confined to
141
+ * `/api/nodes` by the authentication guard.
142
+ *
143
+ * @stability experimental
144
+ * @example
145
+ * ```ts
146
+ * const principal: NodePrincipal = {
147
+ * kind: 'node',
148
+ * userId: owner.id,
149
+ * email: owner.email,
150
+ * credential: 'node',
151
+ * roles: owner.roles,
152
+ * permissions: owner.permissions,
153
+ * };
154
+ * ```
155
+ */
156
+ export interface NodePrincipal extends PrincipalBase {
157
+ readonly kind: 'node';
158
+ readonly credential: 'node';
159
+ /** The worker node the credential is enrolled as, when known. */
160
+ readonly nodeId?: string;
161
+ }
162
+ /**
163
+ * Who is calling. Narrow on `kind` (or `credential`) before reading the
164
+ * variant-specific fields.
165
+ *
166
+ * @stability experimental
167
+ * @example
168
+ * ```ts
169
+ * function describe(principal: Principal): string {
170
+ * return principal.kind === 'node' ? `node ${principal.nodeId ?? '?'}` : principal.email;
171
+ * }
172
+ * ```
173
+ */
174
+ export type Principal = UserPrincipal | NodePrincipal;
175
+ /**
176
+ * The data boundary one operation runs in.
177
+ *
178
+ * Derived from a {@link Principal}, NEVER from request input (path, query or
179
+ * body): `userId = principal.userId`, `orgId = principal.activeOrgId`,
180
+ * `groupIds` = the principal's group ids, optionally narrowed by the
181
+ * operation, never widened.
182
+ *
183
+ * - `userId` is always required.
184
+ * - `orgId` is required once organisations exist; it is what row-level
185
+ * security's transaction-local `app.org_id` setting will carry.
186
+ * - `groupIds` narrows to groups the principal belongs to (sharing).
187
+ *
188
+ * @stability experimental
189
+ * @example
190
+ * ```ts
191
+ * const scope: Scope = { userId: principal.userId, orgId: principal.activeOrgId };
192
+ * ```
193
+ */
194
+ export interface Scope {
195
+ /** The user the operation acts for: always `principal.userId`. */
196
+ readonly userId: string;
197
+ /** The organisation: `principal.activeOrgId`. Required once organisations exist. */
198
+ readonly orgId?: string;
199
+ /** Groups to narrow to, each one the principal belongs to; never widened. */
200
+ readonly groupIds?: readonly string[];
201
+ }
202
+ /**
203
+ * An explicit, named escape from scoping for system work (backups, purges,
204
+ * the Doctor). The only way to run unscoped. Never derived from a request.
205
+ *
206
+ * @stability experimental
207
+ * @example
208
+ * ```ts
209
+ * const actor: SystemActor = { kind: 'system', reason: 'retention.purge' };
210
+ * ```
211
+ */
212
+ export interface SystemActor {
213
+ /** Discriminant: always `'system'`. */
214
+ readonly kind: 'system';
215
+ /**
216
+ * Short, greppable reason, e.g. `'retention.purge'`, `'db.backup.run'`.
217
+ * Logged and put on spans.
218
+ */
219
+ readonly reason: string;
220
+ }
221
+ export {};
222
+ //# sourceMappingURL=principal.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"principal.types.d.ts","sourceRoot":"","sources":["../../../src/core/principal/principal.types.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,QAAQ,GACR,KAAK,GACL,MAAM,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,UAAU,aAAa;IACrB,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAChD,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,KAAK;IACpB,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // The org-aware principal and scope contract (ADR 0001)
4
+ // =============================================================================
5
+ //
6
+ // TYPES ONLY. This file has no runtime exports and imports nothing: not
7
+ // `@prisma/client`, not `@nestjs/*`, not an app module. It was written that
8
+ // way in the app (issue #687) so it could move into
9
+ // `@marinoscar/platform-api/core` unchanged, which it did (issue #698). Both
10
+ // properties are pinned by `test/core/principal.spec.ts` in this package.
11
+ //
12
+ // Nothing in the reference app consumes it yet. Requests still carry the
13
+ // app's `RequestUser` (`apps/api/src/auth/interfaces/authenticated-user.interface.ts`);
14
+ // attaching a `Principal` to the request, the runtime `toPrincipal()` mapper
15
+ // and `@CurrentPrincipal()` arrive later (issue #724). The derivation rules
16
+ // this contract is built on (credential mapping, scope derivation, tenancy
17
+ // modes, `SystemActor`) are written down in
18
+ // docs/adr/0001-org-aware-principal-and-scope.md. Read it before changing a
19
+ // field here.
20
+ // =============================================================================
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ //# sourceMappingURL=principal.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"principal.types.js","sourceRoot":"","sources":["../../../src/core/principal/principal.types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,wDAAwD;AACxD,gFAAgF;AAChF,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,oDAAoD;AACpD,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,yEAAyE;AACzE,wFAAwF;AACxF,6EAA6E;AAC7E,4EAA4E;AAC5E,2EAA2E;AAC3E,4CAA4C;AAC5C,4EAA4E;AAC5E,cAAc;AACd,gFAAgF"}
@@ -0,0 +1,4 @@
1
+ export { DEFAULT_REGISTRY_ID_PATTERN, REGISTRY_ID_MAX_LENGTH, Registry, RegistryError, defineRegistry, freezeDefinedRegistries, listDefinedRegistries, } from './registry';
2
+ export type { RegistryErrorCode, RegistryOptions, RegistrySnapshot } from './registry';
3
+ export { withTemporaryEntries } from './testing';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/registry/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ // The framework-free registry primitive (issue #675). Recipe: ./README.md.
3
+ //
4
+ // `RegistryFreezeService` is deliberately NOT re-exported: this barrel must stay
5
+ // importable where no Nest container exists (prisma/seed.ts, storage-purge.main.ts,
6
+ // module-evaluation-time DTOs). Import the service from './registry-freeze.service'.
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.withTemporaryEntries = exports.listDefinedRegistries = exports.freezeDefinedRegistries = exports.defineRegistry = exports.RegistryError = exports.Registry = exports.REGISTRY_ID_MAX_LENGTH = exports.DEFAULT_REGISTRY_ID_PATTERN = void 0;
9
+ var registry_1 = require("./registry");
10
+ Object.defineProperty(exports, "DEFAULT_REGISTRY_ID_PATTERN", { enumerable: true, get: function () { return registry_1.DEFAULT_REGISTRY_ID_PATTERN; } });
11
+ Object.defineProperty(exports, "REGISTRY_ID_MAX_LENGTH", { enumerable: true, get: function () { return registry_1.REGISTRY_ID_MAX_LENGTH; } });
12
+ Object.defineProperty(exports, "Registry", { enumerable: true, get: function () { return registry_1.Registry; } });
13
+ Object.defineProperty(exports, "RegistryError", { enumerable: true, get: function () { return registry_1.RegistryError; } });
14
+ Object.defineProperty(exports, "defineRegistry", { enumerable: true, get: function () { return registry_1.defineRegistry; } });
15
+ Object.defineProperty(exports, "freezeDefinedRegistries", { enumerable: true, get: function () { return registry_1.freezeDefinedRegistries; } });
16
+ Object.defineProperty(exports, "listDefinedRegistries", { enumerable: true, get: function () { return registry_1.listDefinedRegistries; } });
17
+ var testing_1 = require("./testing");
18
+ Object.defineProperty(exports, "withTemporaryEntries", { enumerable: true, get: function () { return testing_1.withTemporaryEntries; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/registry/index.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,EAAE;AACF,iFAAiF;AACjF,oFAAoF;AACpF,qFAAqF;;;AAErF,uCAQoB;AAPlB,uHAAA,2BAA2B,OAAA;AAC3B,kHAAA,sBAAsB,OAAA;AACtB,oGAAA,QAAQ,OAAA;AACR,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AACd,mHAAA,uBAAuB,OAAA;AACvB,iHAAA,qBAAqB,OAAA;AAGvB,qCAAiD;AAAxC,+GAAA,oBAAoB,OAAA"}
@@ -0,0 +1,14 @@
1
+ import { OnApplicationBootstrap } from '@nestjs/common';
2
+ /**
3
+ * Freezes every registry made with `defineRegistry` once the Nest application
4
+ * has bootstrapped. Provide it in a module of the app (the base provides it in
5
+ * `CommonModule`).
6
+ *
7
+ * @stability stable
8
+ */
9
+ export declare class RegistryFreezeService implements OnApplicationBootstrap {
10
+ private readonly logger;
11
+ /** Freezes every registry created with `defineRegistry` and logs their sizes. */
12
+ onApplicationBootstrap(): void;
13
+ }
14
+ //# sourceMappingURL=registry-freeze.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-freeze.service.d.ts","sourceRoot":"","sources":["../../../src/core/registry/registry-freeze.service.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAI5E;;;;;;GAMG;AACH,qBACa,qBAAsB,YAAW,sBAAsB;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IAEjE,iFAAiF;IACjF,sBAAsB,IAAI,IAAI;CAO/B"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // RegistryFreezeService (issue #675, PP-1.3)
4
+ // =============================================================================
5
+ //
6
+ // Static registries (`defineRegistry`) fill at import time, from their
7
+ // manifests, so every entry is present before Nest instantiates a single
8
+ // provider. Once the application has bootstrapped, a late `register()` can only
9
+ // be a mistake: some consumer may already have read the list (a DTO built its
10
+ // enum, the seed ran, a guard cached a lookup). Freezing turns that mistake into
11
+ // a loud `FROZEN` error instead of a list that differs depending on timing.
12
+ //
13
+ // `onApplicationBootstrap`, not `onModuleInit`, so the freeze runs after every
14
+ // module's init hook, the same lifecycle point `jobs/job.worker.ts` starts work
15
+ // at. Not `main.ts`: integration specs bootstrap through
16
+ // `Test.createTestingModule({ imports: [AppModule] })` and would never exercise
17
+ // it. `npm run openapi:dump` (Nest preview mode) never bootstraps, so nothing
18
+ // freezes there, which is fine: nothing registers there either.
19
+ //
20
+ // Freezing is idempotent, so the second Nest application a Jest worker creates
21
+ // simply finds the registries already frozen.
22
+ // =============================================================================
23
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
24
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
25
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
26
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
27
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
28
+ };
29
+ var RegistryFreezeService_1;
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.RegistryFreezeService = void 0;
32
+ const common_1 = require("@nestjs/common");
33
+ const registry_1 = require("./registry");
34
+ /**
35
+ * Freezes every registry made with `defineRegistry` once the Nest application
36
+ * has bootstrapped. Provide it in a module of the app (the base provides it in
37
+ * `CommonModule`).
38
+ *
39
+ * @stability stable
40
+ */
41
+ let RegistryFreezeService = RegistryFreezeService_1 = class RegistryFreezeService {
42
+ logger = new common_1.Logger(RegistryFreezeService_1.name);
43
+ /** Freezes every registry created with `defineRegistry` and logs their sizes. */
44
+ onApplicationBootstrap() {
45
+ (0, registry_1.freezeDefinedRegistries)();
46
+ const registries = (0, registry_1.listDefinedRegistries)();
47
+ const summary = registries.map((r) => `${r.name}(${r.size})`).join(', ');
48
+ this.logger.debug(`Froze ${registries.length} static registries: ${summary || '(none)'}`);
49
+ }
50
+ };
51
+ exports.RegistryFreezeService = RegistryFreezeService;
52
+ exports.RegistryFreezeService = RegistryFreezeService = RegistryFreezeService_1 = __decorate([
53
+ (0, common_1.Injectable)()
54
+ ], RegistryFreezeService);
55
+ //# sourceMappingURL=registry-freeze.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-freeze.service.js","sourceRoot":"","sources":["../../../src/core/registry/registry-freeze.service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,6CAA6C;AAC7C,gFAAgF;AAChF,EAAE;AACF,uEAAuE;AACvE,yEAAyE;AACzE,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,4EAA4E;AAC5E,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,yDAAyD;AACzD,gFAAgF;AAChF,8EAA8E;AAC9E,gEAAgE;AAChE,EAAE;AACF,+EAA+E;AAC/E,8CAA8C;AAC9C,gFAAgF;;;;;;;;;;AAEhF,2CAA4E;AAE5E,yCAA4E;AAE5E;;;;;;GAMG;AAEI,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IACf,MAAM,GAAG,IAAI,eAAM,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;IAEjE,iFAAiF;IACjF,sBAAsB;QACpB,IAAA,kCAAuB,GAAE,CAAC;QAE1B,MAAM,UAAU,GAAG,IAAA,gCAAqB,GAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,UAAU,CAAC,MAAM,uBAAuB,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC5F,CAAC;CACF,CAAA;AAXY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAWjC"}
@@ -0,0 +1,268 @@
1
+ /**
2
+ * The default pattern every registry id must match: a letter or digit first,
3
+ * then letters, digits and `. _ : / @ -`.
4
+ *
5
+ * It admits every id shape the codebase already uses (`db.connection`,
6
+ * `jobs:read`, `auth.initial-admin`, `coach/weekly-review`) and rejects whitespace and a
7
+ * leading separator. Override it per registry with {@link RegistryOptions.idPattern}.
8
+ *
9
+ * @stability stable
10
+ */
11
+ export declare const DEFAULT_REGISTRY_ID_PATTERN: RegExp;
12
+ /**
13
+ * The longest id any registry accepts, in UTF-16 code units.
14
+ *
15
+ * @stability stable
16
+ */
17
+ export declare const REGISTRY_ID_MAX_LENGTH = 128;
18
+ /**
19
+ * Why a registry refused an operation. Stable: callers may switch on it.
20
+ *
21
+ * - `INVALID_ID`: the id is not a string, is empty, is longer than
22
+ * {@link REGISTRY_ID_MAX_LENGTH}, or fails the registry's id pattern.
23
+ * - `INVALID_ENTRY`: the registry's `validate` hook threw.
24
+ * - `DUPLICATE_ID`: the id is already registered and the policy is `'throw'`.
25
+ * - `FROZEN`: a write after {@link Registry.freeze}.
26
+ * - `UNKNOWN_ID`: {@link Registry.require} found no entry.
27
+ * - `DUPLICATE_REGISTRY`: {@link defineRegistry} was given a name already in use.
28
+ *
29
+ * @stability stable
30
+ */
31
+ export type RegistryErrorCode = 'INVALID_ID' | 'INVALID_ENTRY' | 'DUPLICATE_ID' | 'FROZEN' | 'UNKNOWN_ID' | 'DUPLICATE_REGISTRY';
32
+ /**
33
+ * The single error type every registry operation throws.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * try {
38
+ * permissions.register(entry);
39
+ * } catch (err) {
40
+ * if (err instanceof RegistryError && err.code === 'DUPLICATE_ID') { ... }
41
+ * }
42
+ * ```
43
+ *
44
+ * @stability stable
45
+ */
46
+ export declare class RegistryError extends Error {
47
+ /** Machine-readable reason; see {@link RegistryErrorCode}. */
48
+ readonly code: RegistryErrorCode;
49
+ /** The `name` of the registry that refused the operation. */
50
+ readonly registry: string;
51
+ /** The entry id involved, when there is one. */
52
+ readonly id?: string;
53
+ /**
54
+ * @param code - why the operation was refused.
55
+ * @param registry - the refusing registry's name.
56
+ * @param message - human-readable explanation.
57
+ * @param details - the id involved and, for `INVALID_ENTRY`, the original error as `cause`.
58
+ */
59
+ constructor(code: RegistryErrorCode, registry: string, message: string, details?: {
60
+ id?: string;
61
+ cause?: unknown;
62
+ });
63
+ }
64
+ /**
65
+ * How a registry identifies, checks, de-duplicates and orders its entries.
66
+ *
67
+ * @typeParam T - the entry type.
68
+ *
69
+ * @stability stable
70
+ */
71
+ export interface RegistryOptions<T> {
72
+ /**
73
+ * Name used in errors and introspection, e.g. `'permissions'`. Must be unique
74
+ * among registries created with {@link defineRegistry}.
75
+ */
76
+ name: string;
77
+ /** Extracts the entry's id. Called once per registration. */
78
+ idOf: (entry: T) => string;
79
+ /**
80
+ * Pattern every id must match. Default {@link DEFAULT_REGISTRY_ID_PATTERN}.
81
+ * A `g` or `y` flag is ignored, so matching never depends on `lastIndex`.
82
+ */
83
+ idPattern?: RegExp;
84
+ /**
85
+ * Rejects an entry by throwing (any value). The throw is wrapped as
86
+ * `INVALID_ENTRY`, keeping the original message and the original error as
87
+ * `cause`. Runs after the id check and before the duplicate check. During
88
+ * {@link Registry.registerAll} the registry passed in does not yet contain the
89
+ * batch's earlier entries.
90
+ */
91
+ validate?: (entry: T, registry: Registry<T>) => void;
92
+ /**
93
+ * What a second entry with an existing id does. Default `'throw'`
94
+ * (`DUPLICATE_ID`). `'replace'` keeps the NEW entry at the OLD entry's
95
+ * position and calls {@link RegistryOptions.onReplace}.
96
+ */
97
+ onDuplicate?: 'throw' | 'replace';
98
+ /**
99
+ * Called for each replacement under `onDuplicate: 'replace'`, after the write
100
+ * has been committed (never for a batch that was rejected).
101
+ */
102
+ onReplace?: (previous: T, next: T) => void;
103
+ /**
104
+ * Custom `DUPLICATE_ID` message. Default:
105
+ * `Duplicate id "<id>" in registry "<name>".`
106
+ */
107
+ describeDuplicate?: (existing: T, incoming: T) => string;
108
+ /**
109
+ * The order of {@link Registry.list} and {@link Registry.ids}. Default
110
+ * `'registration'`. `'id'` sorts by id in code-unit order (locale-independent,
111
+ * so `'B'` sorts before `'a'`). A comparator sorts entries; ties keep
112
+ * registration order.
113
+ */
114
+ order?: 'registration' | 'id' | ((a: T, b: T) => number);
115
+ }
116
+ /**
117
+ * The introspection shape of {@link Registry.snapshot}.
118
+ *
119
+ * @stability stable
120
+ */
121
+ export interface RegistrySnapshot {
122
+ /** The registry's name. */
123
+ name: string;
124
+ /** Whether writes are refused. */
125
+ frozen: boolean;
126
+ /** Every id, in {@link Registry.list} order. */
127
+ ids: string[];
128
+ }
129
+ /** Opaque saved state; see {@link Registry._captureState}. @internal */
130
+ export interface RegistryState<T> {
131
+ readonly entries: ReadonlyMap<string, T>;
132
+ readonly frozen: boolean;
133
+ }
134
+ /**
135
+ * An additive, typed, string-keyed list with a duplicate policy, deterministic
136
+ * order and an optional freeze.
137
+ *
138
+ * Entries are stored as given (never cloned); {@link list} and {@link ids}
139
+ * return fresh arrays, so mutating them never changes the registry. Because the
140
+ * registry holds references, entries should be `as const` or `Object.freeze`d
141
+ * data.
142
+ *
143
+ * @typeParam T - the entry type.
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * const colours = new Registry<{ id: string; hex: string }>({
148
+ * name: 'colours',
149
+ * idOf: (c) => c.id,
150
+ * validate: (c) => {
151
+ * if (!/^#[0-9a-f]{6}$/i.test(c.hex)) throw new Error(`bad hex ${c.hex}`);
152
+ * },
153
+ * });
154
+ * colours.register({ id: 'brand', hex: '#3366ff' });
155
+ * colours.require('brand').hex; // '#3366ff'
156
+ * ```
157
+ *
158
+ * @extensionPoint registry
159
+ * @stability stable
160
+ */
161
+ export declare class Registry<T> {
162
+ private readonly options;
163
+ /** The registry's name, as given in {@link RegistryOptions.name}. */
164
+ readonly name: string;
165
+ private entries;
166
+ private isFrozen;
167
+ private readonly idPattern;
168
+ /**
169
+ * @param options - see {@link RegistryOptions}.
170
+ * @throws RegistryError `INVALID_ID` when `options.name` is empty.
171
+ */
172
+ constructor(options: RegistryOptions<T>);
173
+ /**
174
+ * Adds one entry.
175
+ *
176
+ * @throws RegistryError `FROZEN`, `INVALID_ID`, `INVALID_ENTRY` or
177
+ * `DUPLICATE_ID` (see {@link RegistryErrorCode}); the registry is unchanged
178
+ * when it throws.
179
+ */
180
+ register(entry: T): void;
181
+ /**
182
+ * Adds every entry, all or nothing: each entry is checked (id, `validate`,
183
+ * duplicates against the registry AND earlier entries of the same batch)
184
+ * before any is added, so one bad entry rejects the whole batch and leaves the
185
+ * registry unchanged.
186
+ *
187
+ * @throws RegistryError as {@link register}; the first failing entry wins.
188
+ */
189
+ registerAll(entries: readonly T[]): void;
190
+ /** The entry registered under `id`, or `undefined`. */
191
+ get(id: string): T | undefined;
192
+ /**
193
+ * The entry registered under `id`.
194
+ *
195
+ * @throws RegistryError `UNKNOWN_ID` when there is none.
196
+ */
197
+ require(id: string): T;
198
+ /** Whether an entry is registered under `id`. */
199
+ has(id: string): boolean;
200
+ /** Every id, as a fresh array, in {@link list} order. */
201
+ ids(): string[];
202
+ /** Every entry, as a fresh array, in the order {@link RegistryOptions.order} names. */
203
+ list(): T[];
204
+ /** How many entries are registered. */
205
+ get size(): number;
206
+ /** Refuses every later write with `FROZEN`. Reads keep working. Idempotent. */
207
+ freeze(): void;
208
+ /** Whether {@link freeze} has been called. */
209
+ get frozen(): boolean;
210
+ /** Name, frozen state and ids, for logs, diagnostics and snapshot tests. */
211
+ snapshot(): RegistrySnapshot;
212
+ /**
213
+ * Saves the entries and frozen state. For `testing.ts` only.
214
+ * @internal
215
+ */
216
+ _captureState(): RegistryState<T>;
217
+ /**
218
+ * Restores a state saved by {@link _captureState}. For `testing.ts` only.
219
+ * @internal
220
+ */
221
+ _restoreState(state: RegistryState<T>): void;
222
+ /**
223
+ * Allows writes again. For `testing.ts` only.
224
+ * @internal
225
+ */
226
+ _unfreeze(): void;
227
+ private assertWritable;
228
+ private checkedId;
229
+ private sortedEntries;
230
+ }
231
+ /**
232
+ * Creates a module-level ("static") registry and records it in the catalogue,
233
+ * so {@link freezeDefinedRegistries} (called by `RegistryFreezeService` after
234
+ * bootstrap) freezes it and {@link listDefinedRegistries} reports it.
235
+ *
236
+ * Call it once, at module scope, in the registry's own file; fill it from the
237
+ * registry's manifest (see README.md next to this file).
238
+ *
239
+ * @param options - see {@link RegistryOptions}.
240
+ * @returns the new registry.
241
+ * @throws RegistryError `DUPLICATE_REGISTRY` when a defined registry already has that name.
242
+ *
243
+ * @example
244
+ * ```ts
245
+ * // apps/api/src/common/permissions/permission.registry.ts
246
+ * export const permissionRegistry = defineRegistry<PermissionDefinition>({
247
+ * name: 'permissions',
248
+ * idOf: (p) => p.id,
249
+ * });
250
+ * ```
251
+ *
252
+ * @extensionPoint registry
253
+ * @stability stable
254
+ */
255
+ export declare function defineRegistry<T>(options: RegistryOptions<T>): Registry<T>;
256
+ /**
257
+ * Every registry created with {@link defineRegistry}, in definition order.
258
+ *
259
+ * @stability stable
260
+ */
261
+ export declare function listDefinedRegistries(): ReadonlyArray<Registry<unknown>>;
262
+ /**
263
+ * Freezes every registry created with {@link defineRegistry}. Idempotent.
264
+ *
265
+ * @stability stable
266
+ */
267
+ export declare function freezeDefinedRegistries(): void;
268
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/registry/registry.ts"],"names":[],"mappings":"AA+BA;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,QAAoC,CAAC;AAE7E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,eAAe,GACf,cAAc,GACd,QAAQ,GACR,YAAY,GACZ,oBAAoB,CAAC;AAEzB;;;;;;;;;;;;;GAaG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;gBAED,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO;CAQjD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACrD;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC3C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC;IACzD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;CAC1D;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,QAAQ,CAAC,CAAC;IAYT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;OAGG;gBAC0B,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IASxD;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAIxB;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI;IA6CxC,uDAAuD;IACvD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;IAetB,iDAAiD;IACjD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,yDAAyD;IACzD,GAAG,IAAI,MAAM,EAAE;IAIf,uFAAuF;IACvF,IAAI,IAAI,CAAC,EAAE;IAIX,uCAAuC;IACvC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,+EAA+E;IAC/E,MAAM,IAAI,IAAI;IAId,8CAA8C;IAC9C,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,4EAA4E;IAC5E,QAAQ,IAAI,gBAAgB;IAI5B;;;OAGG;IACH,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC;IAIjC;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAK5C;;;OAGG;IACH,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,aAAa;CAUtB;AAQD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAW1E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAExE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}