@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,452 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.USER_CREDENTIAL_DOMAIN_PREFIX = void 0;
4
+ exports.isCanonicalUuid = isCanonicalUuid;
5
+ exports.encryptSecret = encryptSecret;
6
+ exports.decryptSecret = decryptSecret;
7
+ exports.assertEncryptionKeyConfigured = assertEncryptionKeyConfigured;
8
+ exports.deriveSigningKey = deriveSigningKey;
9
+ exports.userCredentialPurpose = userCredentialPurpose;
10
+ const node_crypto_1 = require("node:crypto");
11
+ // =============================================================================
12
+ // AES-256-GCM Secret Cipher (issues #114, epic #108)
13
+ // =============================================================================
14
+ //
15
+ // The primitive underneath every runtime-configured secret this application
16
+ // will ever store. Deploy-time secrets (JWT_SECRET, GOOGLE_CLIENT_SECRET)
17
+ // correctly live in the environment; this module exists for the other kind —
18
+ // an SMTP password or an SES secret access key an administrator types into a
19
+ // form, which cannot come from an env var because it needs a redeploy to
20
+ // change.
21
+ //
22
+ // Payload layout (concatenated, then base64-encoded into one opaque string):
23
+ //
24
+ // [iv: 12 bytes][authTag: 16 bytes][ciphertext: variable]
25
+ //
26
+ // Self-describing on purpose: a single `text` column holds the whole thing, so
27
+ // the IV and the auth tag can never be stored in separate columns and drift
28
+ // away from the ciphertext they authenticate.
29
+ //
30
+ // Key source: SECRETS_ENCRYPTION_KEY, a base64-encoded 32 bytes.
31
+ // Generate with: openssl rand -base64 32
32
+ //
33
+ // MOVED INTO @marinoscar/platform-api/core (issue #698) BYTE-COMPATIBLE: the
34
+ // env var name, the sub-key label, the IV/tag lengths, the payload layout and
35
+ // every error text are unchanged. A ciphertext written by the app before the
36
+ // move decrypts after it (apps/api/test/platform/secret-cipher-compat.spec.ts).
37
+ //
38
+ // THIS MODULE MUST NOT LOG. Every value passing through it is either a secret,
39
+ // a key, or a key-derived value; a Logger here is a plaintext leak waiting for
40
+ // someone to raise the log level. Errors carry lengths and variable names only.
41
+ // =============================================================================
42
+ /**
43
+ * 96 bits. The GCM-standard IV size, and not an arbitrary choice: at exactly 12
44
+ * bytes the spec uses the IV directly as the initial counter block, while any
45
+ * other length is folded through GHASH first. Twelve is the well-analysed path
46
+ * and the one every other implementation interoperates on.
47
+ */
48
+ const IV_LENGTH = 12;
49
+ /**
50
+ * 128 bits — the full GCM tag. Node will happily accept a truncated tag (as
51
+ * short as 4 bytes) via `setAuthTag`, and a shorter tag means proportionally
52
+ * cheaper forgery. We always write and read exactly 16.
53
+ */
54
+ const AUTH_TAG_LENGTH = 16;
55
+ /** AES-256 key size, for both the master key and every derived sub-key. */
56
+ const KEY_LENGTH = 32;
57
+ const KEY_ENV_VAR = 'SECRETS_ENCRYPTION_KEY';
58
+ /**
59
+ * Fixed, versioned label prefix for sub-key derivation. The `v1` is the hook
60
+ * for ever changing the derivation scheme: bumping it changes every derived
61
+ * key, which makes existing ciphertexts undecryptable, so it must only move
62
+ * together with a re-encryption migration.
63
+ */
64
+ const SUBKEY_LABEL_PREFIX = 'enterpriseappbase:secret-cipher:v1:';
65
+ /**
66
+ * Fixed, versioned label prefix for MAC (signing) sub-keys (issue #822).
67
+ * Never change it: it is part of every derived signing key, so a different
68
+ * label invalidates every outstanding token signed under it. It differs from
69
+ * {@link SUBKEY_LABEL_PREFIX} at a fixed position (`signing-key` vs
70
+ * `secret-cipher`), so no signing purpose can ever produce an encryption
71
+ * sub-key, or the reverse.
72
+ */
73
+ const SIGNING_SUBKEY_LABEL_PREFIX = 'enterpriseappbase:signing-key:v1:';
74
+ /**
75
+ * First segment of every owner-bound sub-key domain (issue #387). See
76
+ * {@link userCredentialPurpose}. System purposes may not contain `:` at all
77
+ * (the reference app enforces it in `credentials/credential-internals.ts`),
78
+ * so no system purpose can begin with this.
79
+ *
80
+ * @stability stable
81
+ * @example
82
+ * ```ts
83
+ * purpose.startsWith(USER_CREDENTIAL_DOMAIN_PREFIX); // an owner-bound domain
84
+ * ```
85
+ */
86
+ exports.USER_CREDENTIAL_DOMAIN_PREFIX = 'user:';
87
+ /**
88
+ * A canonical UUID: lowercase hex, 8-4-4-4-12. Postgres and Prisma both
89
+ * render `uuid` values this way, so an id read back from the database always
90
+ * matches; an uppercase or brace-wrapped spelling of the same id does not.
91
+ */
92
+ const CANONICAL_UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
93
+ /**
94
+ * Is `value` a canonical (lowercase, hyphenated) UUID string?
95
+ *
96
+ * @param value - Anything.
97
+ * @returns `true` for `8-4-4-4-12` lowercase hex, the spelling Postgres and
98
+ * Prisma render.
99
+ * @stability stable
100
+ * @example
101
+ * ```ts
102
+ * isCanonicalUuid('00000000-0000-4000-8000-000000000001'); // true
103
+ * isCanonicalUuid('00000000-0000-4000-8000-00000000000A'); // false (uppercase)
104
+ * ```
105
+ */
106
+ function isCanonicalUuid(value) {
107
+ return typeof value === 'string' && CANONICAL_UUID_PATTERN.test(value);
108
+ }
109
+ /**
110
+ * Strict base64 (standard alphabet, canonical padding). We validate the *text*
111
+ * rather than trusting the decode, because `Buffer.from(x, 'base64')` silently
112
+ * skips characters it does not recognise — `"not a real key!!!"` decodes to
113
+ * some bytes rather than failing, and a typo'd key that happened to decode to
114
+ * 32 bytes would be accepted as valid and silently encrypt everything under
115
+ * the wrong key.
116
+ */
117
+ const BASE64_PATTERN = /^[A-Za-z0-9+/]+={0,2}$/;
118
+ /**
119
+ * Build the operator-facing error for a bad key. The audience is someone
120
+ * configuring a deployment, not someone reading this source, so the message
121
+ * names the variable and hands over the exact generation command.
122
+ *
123
+ * `reason` describes the *shape* of the failure (absent, not base64, wrong
124
+ * length) and may contain a byte count, never any bytes: an operator needs to
125
+ * know "24 bytes, expected 32" to fix their key, and a length is not key
126
+ * material. Nothing derived from the key value itself may appear here.
127
+ */
128
+ function keyConfigError(reason) {
129
+ return new Error(`${KEY_ENV_VAR} ${reason}. It must be a base64-encoded ${KEY_LENGTH}-byte key. ` +
130
+ `Generate one with: openssl rand -base64 ${KEY_LENGTH}`);
131
+ }
132
+ /**
133
+ * The master key, read once and cached for the life of the process.
134
+ *
135
+ * Caching is deliberate — the key cannot change without a restart, and re-
136
+ * reading `process.env` on every decrypt would only add a way for a late
137
+ * mutation of the environment to silently split the ciphertexts written before
138
+ * it from the ones written after.
139
+ *
140
+ * Consequence for tests: changing `process.env.SECRETS_ENCRYPTION_KEY` after
141
+ * this module has been touched has no effect. Use `jest.resetModules()` and
142
+ * re-`require` the module to exercise a different key.
143
+ */
144
+ let cachedMasterKey = null;
145
+ function getMasterKey() {
146
+ if (cachedMasterKey)
147
+ return cachedMasterKey;
148
+ const raw = process.env[KEY_ENV_VAR];
149
+ if (!raw) {
150
+ throw keyConfigError('is not set');
151
+ }
152
+ // .env files and container orchestrators routinely leave a trailing newline
153
+ // or stray space on a value. That is an operator typo we can absorb safely —
154
+ // whitespace carries no information for a base64 key — and refusing it would
155
+ // burn someone's afternoon on an invisible character.
156
+ const trimmed = raw.trim();
157
+ if (!BASE64_PATTERN.test(trimmed)) {
158
+ throw keyConfigError('is not valid base64');
159
+ }
160
+ const key = Buffer.from(trimmed, 'base64');
161
+ if (key.length !== KEY_LENGTH) {
162
+ throw keyConfigError(`decoded to ${key.length} bytes`);
163
+ }
164
+ cachedMasterKey = key;
165
+ return cachedMasterKey;
166
+ }
167
+ /**
168
+ * Derived sub-keys, cached by purpose.
169
+ *
170
+ * A derived key is a pure function of two values that are both fixed for the
171
+ * life of the process (the master key and the purpose string), so the cache
172
+ * can never go stale — and it is only ever populated through `deriveKey`,
173
+ * which resolves the master key first, so an unconfigured key still throws
174
+ * before anything lands here.
175
+ *
176
+ * The purpose set is a small, closed vocabulary chosen by callers in code
177
+ * ('smtp', 'oauth', …), not user input, so this Map cannot grow unboundedly.
178
+ *
179
+ * OWNER-BOUND DOMAINS ARE NOT CACHED (issue #387). A per-user domain
180
+ * (`userCredentialPurpose()` below) is one string per user × purpose, which is
181
+ * exactly the open-ended vocabulary this cache must not hold: it would grow
182
+ * with the user base for the life of the process and keep one derived key per
183
+ * user resident in the heap. One HMAC-SHA256 per decrypt costs microseconds.
184
+ */
185
+ const derivedKeyCache = new Map();
186
+ /**
187
+ * Derive the 32-byte key actually used for a given purpose.
188
+ *
189
+ * WHY NOT JUST USE THE MASTER KEY: domain separation. Every purpose gets an
190
+ * independent key, so a ciphertext lifted out of one column and pasted into
191
+ * another — an attacker with a SQL write but not the key, or a bug that copies
192
+ * a row across tables — fails authentication instead of decrypting into a
193
+ * context where it means something else. Without this, the only thing standing
194
+ * between an SMTP password blob and being read as, say, an OAuth client secret
195
+ * is whichever code happens to parse it. That is a lateral-movement control,
196
+ * and it is the whole reason `purpose` is a required parameter rather than an
197
+ * option with a default.
198
+ *
199
+ * WHY HMAC-SHA256 AND NOT scrypt/argon2/PBKDF2: those are *password* KDFs, and
200
+ * their slowness exists to punish guessing a low-entropy input. The input here
201
+ * is already 32 bytes of `openssl rand` output — there is nothing to brute
202
+ * force — so a slow KDF would buy zero security and add latency to every
203
+ * decrypt. HMAC over a fixed label keyed by a full-entropy secret is the
204
+ * standard construction for exactly this case (it is HKDF's extract step).
205
+ *
206
+ * WHY THE LABEL IS SAFE TO CONCATENATE: `purpose` is the final field of the
207
+ * label, so distinct purposes always produce distinct labels — the prefix is
208
+ * constant and cannot be shifted into it. If a second variable field were ever
209
+ * added *after* the purpose, this would need explicit length-prefixing to stop
210
+ * ('ab', 'c') and ('a', 'bc') from colliding onto one key.
211
+ */
212
+ function deriveKey(purpose) {
213
+ // An empty or non-string purpose would silently collapse every domain onto a
214
+ // single key, quietly removing the separation above while everything still
215
+ // appeared to work. Reject it loudly. The check is a runtime one despite the
216
+ // `string` type because a plain-JS caller, a JSON round-trip, or an
217
+ // undefined config value can all deliver something else here.
218
+ if (typeof purpose !== 'string' || purpose.length === 0) {
219
+ throw new Error('encryptSecret/decryptSecret require a non-empty purpose string (e.g. "smtp").');
220
+ }
221
+ const cacheable = !purpose.startsWith(exports.USER_CREDENTIAL_DOMAIN_PREFIX);
222
+ if (cacheable) {
223
+ const cached = derivedKeyCache.get(purpose);
224
+ if (cached)
225
+ return cached;
226
+ }
227
+ const derived = (0, node_crypto_1.createHmac)('sha256', getMasterKey())
228
+ .update(`${SUBKEY_LABEL_PREFIX}${purpose}`)
229
+ .digest();
230
+ if (cacheable)
231
+ derivedKeyCache.set(purpose, derived);
232
+ return derived;
233
+ }
234
+ /**
235
+ * Encrypt `plaintext` under the purpose-bound sub-key for `purpose`.
236
+ *
237
+ * Returns a base64 string carrying its own IV and auth tag — safe to put
238
+ * straight into a `text` column.
239
+ *
240
+ * @param plaintext - The secret, as UTF-8 text.
241
+ * @param purpose - The sub-key domain: a short fixed string per kind of
242
+ * secret (`'smtp'`), or {@link userCredentialPurpose} for a per-user one.
243
+ * @returns base64 of `[iv: 12 bytes][authTag: 16 bytes][ciphertext]`.
244
+ * @throws if the key is missing/malformed, or `purpose` is empty.
245
+ * @stability stable
246
+ * @example
247
+ * ```ts
248
+ * const stored = encryptSecret(password, 'smtp');
249
+ * ```
250
+ */
251
+ function encryptSecret(plaintext, purpose) {
252
+ const key = deriveKey(purpose);
253
+ // A FRESH RANDOM IV ON EVERY CALL — never a counter, never a hash of the
254
+ // plaintext, never reused. This is the single most destructive mistake
255
+ // available in GCM: reusing an IV under the same key does not merely leak
256
+ // the XOR of the two plaintexts, it exposes the GHASH subkey and lets an
257
+ // attacker forge auth tags for that key outright. Deriving the IV from the
258
+ // plaintext would do exactly that for two equal secrets.
259
+ //
260
+ // It is also what keeps the store from leaking equality: two credentials
261
+ // holding the same password must not produce the same ciphertext, or the
262
+ // table answers "do these two accounts share a password?" to anyone who can
263
+ // read it.
264
+ const iv = (0, node_crypto_1.randomBytes)(IV_LENGTH);
265
+ const cipher = (0, node_crypto_1.createCipheriv)('aes-256-gcm', key, iv, {
266
+ authTagLength: AUTH_TAG_LENGTH,
267
+ });
268
+ const ciphertext = Buffer.concat([
269
+ cipher.update(plaintext, 'utf8'),
270
+ cipher.final(),
271
+ ]);
272
+ // getAuthTag() is only valid after final(); reading it earlier returns a tag
273
+ // that does not cover the whole message.
274
+ const authTag = cipher.getAuthTag();
275
+ return Buffer.concat([iv, authTag, ciphertext]).toString('base64');
276
+ }
277
+ /**
278
+ * Decrypt a payload produced by `encryptSecret` under the SAME `purpose`.
279
+ *
280
+ * Any tampering — a flipped bit in the IV, the tag, or the ciphertext — and
281
+ * any purpose mismatch fails here rather than returning plausible garbage.
282
+ * That is the entire reason this is GCM and not CBC: an unauthenticated mode
283
+ * would hand back corrupted bytes that then get used as an SMTP password.
284
+ *
285
+ * @param payload - A string returned by {@link encryptSecret}.
286
+ * @param purpose - The same purpose it was encrypted under.
287
+ * @returns The plaintext.
288
+ * @throws if the key is missing/malformed, `purpose` is empty, the payload is
289
+ * truncated, or authentication fails.
290
+ * @stability stable
291
+ * @example
292
+ * ```ts
293
+ * const password = decryptSecret(row.encryptedValue, 'smtp');
294
+ * ```
295
+ */
296
+ function decryptSecret(payload, purpose) {
297
+ const key = deriveKey(purpose);
298
+ // Invalid base64 is not rejected up front here (unlike the key, where a typo
299
+ // must be caught at configuration time): `Buffer.from` skips unrecognised
300
+ // characters, and whatever survives is caught by the length check below or
301
+ // by the auth tag. The tag — not input parsing — is what makes a payload
302
+ // trustworthy, so there is nothing to gain by pre-screening the encoding.
303
+ const buf = Buffer.from(payload, 'base64');
304
+ // A payload shorter than the header cannot be ours. Check BEFORE slicing:
305
+ // `subarray` clamps out-of-range indices instead of throwing, so a truncated
306
+ // input would silently yield a short IV and an empty tag and fail somewhere
307
+ // deeper with a far less obvious error. Equality is allowed — a 28-byte
308
+ // payload is the legitimate encryption of an empty string.
309
+ if (buf.length < IV_LENGTH + AUTH_TAG_LENGTH) {
310
+ throw new Error(`Malformed encrypted payload: expected at least ${IV_LENGTH + AUTH_TAG_LENGTH} bytes, got ${buf.length}.`);
311
+ }
312
+ const iv = buf.subarray(0, IV_LENGTH);
313
+ const authTag = buf.subarray(IV_LENGTH, IV_LENGTH + AUTH_TAG_LENGTH);
314
+ const ciphertext = buf.subarray(IV_LENGTH + AUTH_TAG_LENGTH);
315
+ try {
316
+ const decipher = (0, node_crypto_1.createDecipheriv)('aes-256-gcm', key, iv, {
317
+ authTagLength: AUTH_TAG_LENGTH,
318
+ });
319
+ decipher.setAuthTag(authTag);
320
+ return Buffer.concat([
321
+ decipher.update(ciphertext),
322
+ decipher.final(), // verifies the auth tag; throws if it does not match
323
+ ]).toString('utf8');
324
+ }
325
+ catch {
326
+ // Deliberately swallow the underlying error and throw a flat one instead.
327
+ //
328
+ // Two reasons. First, a caught error can be logged by a caller along with
329
+ // its `cause`, and we will not risk anything derived from the key or the
330
+ // partially-decrypted plaintext travelling out of this module in a stack.
331
+ // Second, a wrong purpose, a wrong key and a tampered byte are all the
332
+ // same event to the caller — "this payload is not readable here" — and
333
+ // distinguishing them only helps someone probing.
334
+ //
335
+ // The empty catch binding is intentional: there is nothing here we are
336
+ // willing to inspect or forward.
337
+ throw new Error('Failed to decrypt secret: the payload is corrupt, was encrypted under a different purpose, or the encryption key has changed.');
338
+ }
339
+ }
340
+ /**
341
+ * Throw unless `SECRETS_ENCRYPTION_KEY` is present and well-formed.
342
+ *
343
+ * Exists so startup can fail on a bad key instead of the first administrator
344
+ * who tries to save a credential — a misconfiguration should surface in the
345
+ * deploy logs, not as a 500 weeks later. Wiring this into bootstrap is #116;
346
+ * this issue only provides the check.
347
+ *
348
+ * Also warms the cache, so the first real encrypt does not pay for validation.
349
+ *
350
+ * @throws the operator-facing key error (names the variable, the shape of the
351
+ * failure and the generation command; never key material).
352
+ * @stability stable
353
+ * @example
354
+ * ```ts
355
+ * assertEncryptionKeyConfigured(); // throws if SECRETS_ENCRYPTION_KEY is unusable
356
+ * ```
357
+ */
358
+ function assertEncryptionKeyConfigured() {
359
+ getMasterKey();
360
+ }
361
+ /**
362
+ * Signing sub-keys, cached by purpose. Same reasoning as `derivedKeyCache`:
363
+ * the purpose is a code constant, never user input, so the map stays small.
364
+ */
365
+ const signingKeyCache = new Map();
366
+ /**
367
+ * A 32-byte HMAC key for `purpose`, derived from `SECRETS_ENCRYPTION_KEY`
368
+ * (issue #822).
369
+ *
370
+ * For server-signed, short-lived tokens (a download link, a one-time URL)
371
+ * that need a deployment secret without a new environment variable: the
372
+ * master key is already mandatory and validated at startup, and the label
373
+ * `enterpriseappbase:signing-key:v1:` keeps every signing domain independent
374
+ * of every encryption domain, so a signing key can never decrypt a stored
375
+ * credential.
376
+ *
377
+ * Derivation: `HMAC-SHA256(masterKey, "enterpriseappbase:signing-key:v1:" + purpose)`.
378
+ * The label is permanent. Rotating the master key invalidates every
379
+ * outstanding token, which for minutes-long tokens is the desired behaviour.
380
+ *
381
+ * `purpose` is a code constant (`'android-app-download'`), never user input:
382
+ * derived keys are cached per purpose for the life of the process. Never log
383
+ * or return the key.
384
+ *
385
+ * @param purpose - The signing domain: a short fixed string per kind of token.
386
+ * @returns A 32-byte key for `createHmac('sha256', key)`.
387
+ * @throws if the key is missing/malformed (the same operator-facing error as
388
+ * {@link assertEncryptionKeyConfigured}), or `purpose` is empty.
389
+ * @stability stable
390
+ * @example
391
+ * ```ts
392
+ * const mac = createHmac('sha256', deriveSigningKey('android-app-download'))
393
+ * .update(payload)
394
+ * .digest('base64url');
395
+ * ```
396
+ */
397
+ function deriveSigningKey(purpose) {
398
+ if (typeof purpose !== 'string' || purpose.length === 0) {
399
+ throw new Error('deriveSigningKey requires a non-empty purpose string.');
400
+ }
401
+ const cached = signingKeyCache.get(purpose);
402
+ if (cached)
403
+ return cached;
404
+ const derived = (0, node_crypto_1.createHmac)('sha256', getMasterKey())
405
+ .update(`${SIGNING_SUBKEY_LABEL_PREFIX}${purpose}`)
406
+ .digest();
407
+ signingKeyCache.set(purpose, derived);
408
+ return derived;
409
+ }
410
+ /**
411
+ * The owner-bound sub-key domain for a PER-USER credential (issue #387):
412
+ * `user:<userId>:<purpose>`.
413
+ *
414
+ * Pass the result as the `purpose` argument of {@link encryptSecret} /
415
+ * {@link decryptSecret}; those functions are unchanged. Binding the owner into
416
+ * the domain means a ciphertext copied from user A's row into user B's row —
417
+ * a SQL write, a bug copying rows — fails GCM authentication rather than
418
+ * handing B the use of A's key. The system store's domain is the bare purpose;
419
+ * this is the same construction with the owner prepended.
420
+ *
421
+ * WHY THE STRING DECOMPOSES ONE WAY ONLY:
422
+ * - `userId` must be a canonical UUID: fixed length, no `:`, one spelling
423
+ * per id (an uppercase variant would otherwise derive a second key for
424
+ * the same user and strand every row written under the first).
425
+ * - `purpose` must not contain `:`, so the final segment is unambiguous.
426
+ * - System purposes may not contain `:` either, so no system purpose can
427
+ * equal, or begin with, `user:` — the two key spaces cannot collide.
428
+ * Together that makes (userId, purpose) → domain injective, which is what the
429
+ * concatenation in `deriveKey` relies on.
430
+ *
431
+ * @throws a plain Error (no values in it) on a non-canonical id or a bad
432
+ * purpose. Callers validate first and report their own 400; this is
433
+ * the backstop that keeps a malformed domain from ever deriving a key.
434
+ * @param userId - The owner: a canonical UUID.
435
+ * @param purpose - The kind of secret; non-empty, no `:`.
436
+ * @returns `user:<userId>:<purpose>`.
437
+ * @stability stable
438
+ * @example
439
+ * ```ts
440
+ * const stored = encryptSecret(apiKey, userCredentialPurpose(userId, 'ai_user_key'));
441
+ * ```
442
+ */
443
+ function userCredentialPurpose(userId, purpose) {
444
+ if (!isCanonicalUuid(userId)) {
445
+ throw new Error('userCredentialPurpose requires a canonical (lowercase, hyphenated) UUID userId.');
446
+ }
447
+ if (typeof purpose !== 'string' || purpose.length === 0 || purpose.includes(':')) {
448
+ throw new Error('userCredentialPurpose requires a non-empty purpose containing no ":".');
449
+ }
450
+ return `${exports.USER_CREDENTIAL_DOMAIN_PREFIX}${userId}:${purpose}`;
451
+ }
452
+ //# sourceMappingURL=secret-cipher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secret-cipher.js","sourceRoot":"","sources":["../../../src/core/crypto/secret-cipher.ts"],"names":[],"mappings":";;;AAgHA,0CAEC;AAgKD,sCA8BC;AAqBD,sCAqDC;AAoBD,sEAEC;AAuCD,4CAaC;AAmCD,sDAcC;AArfD,6CAKqB;AAErB,gFAAgF;AAChF,sDAAsD;AACtD,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,yEAAyE;AACzE,UAAU;AACV,EAAE;AACF,6EAA6E;AAC7E,EAAE;AACF,8DAA8D;AAC9D,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,8CAA8C;AAC9C,EAAE;AACF,iEAAiE;AACjE,yCAAyC;AACzC,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,gFAAgF;AAChF,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;GAIG;AACH,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,2EAA2E;AAC3E,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,qCAAqC,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,2BAA2B,GAAG,mCAAmC,CAAC;AAExE;;;;;;;;;;;GAWG;AACU,QAAA,6BAA6B,GAAG,OAAO,CAAC;AAErD;;;;GAIG;AACH,MAAM,sBAAsB,GAC1B,gEAAgE,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD;;;;;;;;;GASG;AACH,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,IAAI,KAAK,CACd,GAAG,WAAW,IAAI,MAAM,iCAAiC,UAAU,aAAa;QAC9E,2CAA2C,UAAU,EAAE,CAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,IAAI,eAAe,GAAkB,IAAI,CAAC;AAE1C,SAAS,YAAY;IACnB,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC;IAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,sDAAsD;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3C,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,cAAc,CAAC,cAAc,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,eAAe,GAAG,GAAG,CAAC;IACtB,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAS,SAAS,CAAC,OAAe;IAChC,6EAA6E;IAC7E,2EAA2E;IAC3E,6EAA6E;IAC7E,oEAAoE;IACpE,8DAA8D;IAC9D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,qCAA6B,CAAC,CAAC;IAErE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;SACjD,MAAM,CAAC,GAAG,mBAAmB,GAAG,OAAO,EAAE,CAAC;SAC1C,MAAM,EAAE,CAAC;IAEZ,IAAI,SAAS;QAAE,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,aAAa,CAAC,SAAiB,EAAE,OAAe;IAC9D,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAE/B,yEAAyE;IACzE,uEAAuE;IACvE,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,yDAAyD;IACzD,EAAE;IACF,yEAAyE;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,WAAW;IACX,MAAM,EAAE,GAAG,IAAA,yBAAW,EAAC,SAAS,CAAC,CAAC;IAElC,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE;QACpD,aAAa,EAAE,eAAe;KAC/B,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC;QAChC,MAAM,CAAC,KAAK,EAAE;KACf,CAAC,CAAC;IAEH,6EAA6E;IAC7E,yCAAyC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEpC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,aAAa,CAAC,OAAe,EAAE,OAAe;IAC5D,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAE/B,6EAA6E;IAC7E,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE3C,0EAA0E;IAC1E,6EAA6E;IAC7E,4EAA4E;IAC5E,wEAAwE;IACxE,2DAA2D;IAC3D,IAAI,GAAG,CAAC,MAAM,GAAG,SAAS,GAAG,eAAe,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,kDACE,SAAS,GAAG,eACd,eAAe,GAAG,CAAC,MAAM,GAAG,CAC7B,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,eAAe,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAA,8BAAgB,EAAC,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE;YACxD,aAAa,EAAE,eAAe;SAC/B,CAAC,CAAC;QACH,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;YAC3B,QAAQ,CAAC,KAAK,EAAE,EAAE,qDAAqD;SACxE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,EAAE;QACF,0EAA0E;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,uEAAuE;QACvE,uEAAuE;QACvE,kDAAkD;QAClD,EAAE;QACF,uEAAuE;QACvE,iCAAiC;QACjC,MAAM,IAAI,KAAK,CACb,+HAA+H,CAChI,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,6BAA6B;IAC3C,YAAY,EAAE,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,OAAO,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;SACjD,MAAM,CAAC,GAAG,2BAA2B,GAAG,OAAO,EAAE,CAAC;SAClD,MAAM,EAAE,CAAC;IACZ,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,SAAgB,qBAAqB,CAAC,MAAc,EAAE,OAAe;IACnE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,qCAA6B,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;AAChE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type { ExportPolicy, PurgePolicy, UserOwnedModelDef, UserOwnedModelLookup } from './types';
2
+ export { ScopedAccessError } from './scoped-access.error';
3
+ export { ownerFieldOf, ownerRelationOf, registerUserOwnedModels, userOwnedModelRegistry, } from './user-owned-data.registry';
4
+ export { asSystem, forUser, userScopeExtension } from './scoped-client';
5
+ export type { ExtendableClient, UserScopeExtension } from './scoped-client';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/data-access/index.ts"],"names":[],"mappings":"AAKA,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ // Scoped data access (issue #699; origin #688): the user-owned data registry,
3
+ // `forUser()` / `userScopeExtension()` and `asSystem()`. Framework-free and
4
+ // schema-independent: model names are strings, and the only Prisma import is
5
+ // `@prisma/client/extension`. See ../README.md, "Scoped data access".
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.userScopeExtension = exports.forUser = exports.asSystem = exports.userOwnedModelRegistry = exports.registerUserOwnedModels = exports.ownerRelationOf = exports.ownerFieldOf = exports.ScopedAccessError = void 0;
8
+ var scoped_access_error_1 = require("./scoped-access.error");
9
+ Object.defineProperty(exports, "ScopedAccessError", { enumerable: true, get: function () { return scoped_access_error_1.ScopedAccessError; } });
10
+ var user_owned_data_registry_1 = require("./user-owned-data.registry");
11
+ Object.defineProperty(exports, "ownerFieldOf", { enumerable: true, get: function () { return user_owned_data_registry_1.ownerFieldOf; } });
12
+ Object.defineProperty(exports, "ownerRelationOf", { enumerable: true, get: function () { return user_owned_data_registry_1.ownerRelationOf; } });
13
+ Object.defineProperty(exports, "registerUserOwnedModels", { enumerable: true, get: function () { return user_owned_data_registry_1.registerUserOwnedModels; } });
14
+ Object.defineProperty(exports, "userOwnedModelRegistry", { enumerable: true, get: function () { return user_owned_data_registry_1.userOwnedModelRegistry; } });
15
+ var scoped_client_1 = require("./scoped-client");
16
+ Object.defineProperty(exports, "asSystem", { enumerable: true, get: function () { return scoped_client_1.asSystem; } });
17
+ Object.defineProperty(exports, "forUser", { enumerable: true, get: function () { return scoped_client_1.forUser; } });
18
+ Object.defineProperty(exports, "userScopeExtension", { enumerable: true, get: function () { return scoped_client_1.userScopeExtension; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/data-access/index.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,sEAAsE;;;AAGtE,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAC1B,uEAKoC;AAJlC,wHAAA,YAAY,OAAA;AACZ,2HAAA,eAAe,OAAA;AACf,mIAAA,uBAAuB,OAAA;AACvB,kIAAA,sBAAsB,OAAA;AAExB,iDAAwE;AAA/D,yGAAA,QAAQ,OAAA;AAAE,wGAAA,OAAO,OAAA;AAAE,mHAAA,kBAAkB,OAAA"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Thrown by a user-scoped Prisma client when a call would step outside its
3
+ * scope: a model that is not user-owned, raw SQL, or a write naming another
4
+ * owner. Also thrown by {@link asSystem} for an actor without a reason.
5
+ *
6
+ * A programming error, not a client error: it is deliberately not an
7
+ * `HttpException`, so a request that reaches it fails as a 500 and the log
8
+ * names the model. A row owned by someone else is never reported this way;
9
+ * reads and writes on it behave as "not found".
10
+ *
11
+ * @stability experimental
12
+ * @example
13
+ * ```ts
14
+ * try {
15
+ * await forUser(prisma, { userId }).auditEvent.findMany();
16
+ * } catch (err) {
17
+ * if (err instanceof ScopedAccessError) logger.error(`${err.model}.${err.operation}: ${err.message}`);
18
+ * }
19
+ * ```
20
+ */
21
+ export declare class ScopedAccessError extends Error {
22
+ /** The Prisma model involved, when there is one. */
23
+ readonly model?: string;
24
+ /** The Prisma operation involved, e.g. `'findMany'` or `'$queryRaw'`. */
25
+ readonly operation?: string;
26
+ /**
27
+ * @param message - what was refused and what to do instead.
28
+ * @param details - the model and operation involved, when known.
29
+ */
30
+ constructor(message: string, details?: {
31
+ model?: string;
32
+ operation?: string;
33
+ });
34
+ }
35
+ //# sourceMappingURL=scoped-access.error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoped-access.error.d.ts","sourceRoot":"","sources":["../../../src/core/data-access/scoped-access.error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,oDAAoD;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;CAMlF"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScopedAccessError = void 0;
4
+ /**
5
+ * Thrown by a user-scoped Prisma client when a call would step outside its
6
+ * scope: a model that is not user-owned, raw SQL, or a write naming another
7
+ * owner. Also thrown by {@link asSystem} for an actor without a reason.
8
+ *
9
+ * A programming error, not a client error: it is deliberately not an
10
+ * `HttpException`, so a request that reaches it fails as a 500 and the log
11
+ * names the model. A row owned by someone else is never reported this way;
12
+ * reads and writes on it behave as "not found".
13
+ *
14
+ * @stability experimental
15
+ * @example
16
+ * ```ts
17
+ * try {
18
+ * await forUser(prisma, { userId }).auditEvent.findMany();
19
+ * } catch (err) {
20
+ * if (err instanceof ScopedAccessError) logger.error(`${err.model}.${err.operation}: ${err.message}`);
21
+ * }
22
+ * ```
23
+ */
24
+ class ScopedAccessError extends Error {
25
+ /** The Prisma model involved, when there is one. */
26
+ model;
27
+ /** The Prisma operation involved, e.g. `'findMany'` or `'$queryRaw'`. */
28
+ operation;
29
+ /**
30
+ * @param message - what was refused and what to do instead.
31
+ * @param details - the model and operation involved, when known.
32
+ */
33
+ constructor(message, details = {}) {
34
+ super(message);
35
+ this.name = 'ScopedAccessError';
36
+ if (details.model !== undefined)
37
+ this.model = details.model;
38
+ if (details.operation !== undefined)
39
+ this.operation = details.operation;
40
+ }
41
+ }
42
+ exports.ScopedAccessError = ScopedAccessError;
43
+ //# sourceMappingURL=scoped-access.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoped-access.error.js","sourceRoot":"","sources":["../../../src/core/data-access/scoped-access.error.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,oDAAoD;IAC3C,KAAK,CAAU;IACxB,yEAAyE;IAChE,SAAS,CAAU;IAE5B;;;OAGG;IACH,YAAY,OAAe,EAAE,UAAkD,EAAE;QAC/E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5D,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAC1E,CAAC;CACF;AAhBD,8CAgBC"}