@harperfast/harper 5.2.9 → 5.3.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/agent/mcpTools.ts +1 -1
  2. package/agent/session.ts +25 -14
  3. package/bin/cliOperations.ts +46 -9
  4. package/bin/copyDb.ts +282 -59
  5. package/bin/deploySetup.ts +16 -5
  6. package/bin/harper.ts +1 -1
  7. package/bin/help.ts +4 -1
  8. package/bin/lite.ts +4 -1
  9. package/bin/restart.ts +59 -3
  10. package/bin/run.ts +6 -11
  11. package/bin/upgrade.js +7 -3
  12. package/bin/workloadIdentity.ts +119 -0
  13. package/components/Application.ts +2414 -242
  14. package/components/ApplicationScope.ts +8 -0
  15. package/components/EntryHandler.ts +59 -39
  16. package/components/OptionsWatcher.ts +150 -74
  17. package/components/RuntimeModuleTracker.ts +38 -7
  18. package/components/Scope.ts +37 -15
  19. package/components/awaitRestart.ts +84 -0
  20. package/components/componentLoader.ts +340 -30
  21. package/components/componentPreparationLock.ts +16 -5
  22. package/components/mcp/adapters/harperHttp.ts +4 -0
  23. package/components/mcp/listChanged.ts +4 -0
  24. package/components/mcp/toolRegistry.ts +2 -0
  25. package/components/mcp/tools/operations.ts +9 -0
  26. package/components/mcp/tools/schemas/operationDescriptions.ts +2 -2
  27. package/components/operations.js +270 -78
  28. package/components/operationsValidation.js +49 -1
  29. package/components/status/ComponentStatusRegistry.ts +59 -0
  30. package/config/RootConfigWatcher.ts +80 -34
  31. package/config/configUtils.ts +291 -34
  32. package/config/harperConfigEnvVars.ts +170 -27
  33. package/config-root.schema.json +29 -0
  34. package/dataLayer/blobBackup.ts +160 -50
  35. package/dataLayer/delete.ts +6 -1
  36. package/dataLayer/harperBridge/ResourceBridge.ts +52 -8
  37. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
  38. package/dataLayer/hdbInfoController.ts +34 -1
  39. package/dataLayer/insert.ts +44 -1
  40. package/dataLayer/rocksdbBackup.ts +53 -10
  41. package/dataLayer/schema.ts +11 -1
  42. package/dataLayer/schemaDescribe.ts +8 -1
  43. package/dist/agent/mcpTools.js +1 -1
  44. package/dist/agent/mcpTools.js.map +1 -1
  45. package/dist/agent/session.d.ts +22 -0
  46. package/dist/agent/session.js +26 -15
  47. package/dist/agent/session.js.map +1 -1
  48. package/dist/bin/cliOperations.js +48 -9
  49. package/dist/bin/cliOperations.js.map +1 -1
  50. package/dist/bin/copyDb.d.ts +12 -1
  51. package/dist/bin/copyDb.js +248 -60
  52. package/dist/bin/copyDb.js.map +1 -1
  53. package/dist/bin/deploySetup.d.ts +2 -0
  54. package/dist/bin/deploySetup.js +11 -3
  55. package/dist/bin/deploySetup.js.map +1 -1
  56. package/dist/bin/harper.js +1 -1
  57. package/dist/bin/harper.js.map +1 -1
  58. package/dist/bin/help.js +4 -1
  59. package/dist/bin/help.js.map +1 -1
  60. package/dist/bin/lite.js +4 -1
  61. package/dist/bin/lite.js.map +1 -1
  62. package/dist/bin/restart.js +54 -5
  63. package/dist/bin/restart.js.map +1 -1
  64. package/dist/bin/run.js +4 -10
  65. package/dist/bin/run.js.map +1 -1
  66. package/dist/bin/upgrade.js +4 -3
  67. package/dist/bin/upgrade.js.map +1 -1
  68. package/dist/bin/workloadIdentity.d.ts +18 -0
  69. package/dist/bin/workloadIdentity.js +100 -0
  70. package/dist/bin/workloadIdentity.js.map +1 -0
  71. package/dist/components/Application.d.ts +139 -16
  72. package/dist/components/Application.js +2215 -267
  73. package/dist/components/Application.js.map +1 -1
  74. package/dist/components/ApplicationScope.d.ts +8 -0
  75. package/dist/components/ApplicationScope.js +7 -0
  76. package/dist/components/ApplicationScope.js.map +1 -1
  77. package/dist/components/EntryHandler.js +26 -10
  78. package/dist/components/EntryHandler.js.map +1 -1
  79. package/dist/components/OptionsWatcher.d.ts +1 -0
  80. package/dist/components/OptionsWatcher.js +141 -74
  81. package/dist/components/OptionsWatcher.js.map +1 -1
  82. package/dist/components/RuntimeModuleTracker.js +40 -6
  83. package/dist/components/RuntimeModuleTracker.js.map +1 -1
  84. package/dist/components/Scope.js +38 -13
  85. package/dist/components/Scope.js.map +1 -1
  86. package/dist/components/awaitRestart.d.ts +33 -0
  87. package/dist/components/awaitRestart.js +61 -0
  88. package/dist/components/awaitRestart.js.map +1 -0
  89. package/dist/components/componentLoader.d.ts +38 -1
  90. package/dist/components/componentLoader.js +279 -22
  91. package/dist/components/componentLoader.js.map +1 -1
  92. package/dist/components/componentPreparationLock.d.ts +5 -0
  93. package/dist/components/componentPreparationLock.js +14 -6
  94. package/dist/components/componentPreparationLock.js.map +1 -1
  95. package/dist/components/mcp/adapters/harperHttp.js +4 -0
  96. package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
  97. package/dist/components/mcp/listChanged.js +5 -0
  98. package/dist/components/mcp/listChanged.js.map +1 -1
  99. package/dist/components/mcp/toolRegistry.d.ts +1 -0
  100. package/dist/components/mcp/toolRegistry.js.map +1 -1
  101. package/dist/components/mcp/tools/operations.d.ts +5 -0
  102. package/dist/components/mcp/tools/operations.js +9 -0
  103. package/dist/components/mcp/tools/operations.js.map +1 -1
  104. package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -2
  105. package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
  106. package/dist/components/operations.js +231 -77
  107. package/dist/components/operations.js.map +1 -1
  108. package/dist/components/operationsValidation.js +49 -1
  109. package/dist/components/operationsValidation.js.map +1 -1
  110. package/dist/components/status/ComponentStatusRegistry.d.ts +0 -4
  111. package/dist/components/status/ComponentStatusRegistry.js +63 -0
  112. package/dist/components/status/ComponentStatusRegistry.js.map +1 -1
  113. package/dist/config/RootConfigWatcher.d.ts +7 -1
  114. package/dist/config/RootConfigWatcher.js +64 -27
  115. package/dist/config/RootConfigWatcher.js.map +1 -1
  116. package/dist/config/configUtils.d.ts +9 -1
  117. package/dist/config/configUtils.js +254 -33
  118. package/dist/config/configUtils.js.map +1 -1
  119. package/dist/config/harperConfigEnvVars.d.ts +16 -0
  120. package/dist/config/harperConfigEnvVars.js +162 -25
  121. package/dist/config/harperConfigEnvVars.js.map +1 -1
  122. package/dist/dataLayer/blobBackup.d.ts +49 -20
  123. package/dist/dataLayer/blobBackup.js +139 -50
  124. package/dist/dataLayer/blobBackup.js.map +1 -1
  125. package/dist/dataLayer/delete.js +1 -1
  126. package/dist/dataLayer/delete.js.map +1 -1
  127. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +14 -1
  128. package/dist/dataLayer/harperBridge/ResourceBridge.js +51 -10
  129. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  130. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.d.ts +3 -1
  131. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
  132. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js.map +1 -1
  133. package/dist/dataLayer/hdbInfoController.d.ts +10 -0
  134. package/dist/dataLayer/hdbInfoController.js +30 -1
  135. package/dist/dataLayer/hdbInfoController.js.map +1 -1
  136. package/dist/dataLayer/insert.d.ts +9 -1
  137. package/dist/dataLayer/insert.js +30 -0
  138. package/dist/dataLayer/insert.js.map +1 -1
  139. package/dist/dataLayer/rocksdbBackup.d.ts +2 -2
  140. package/dist/dataLayer/rocksdbBackup.js +45 -8
  141. package/dist/dataLayer/rocksdbBackup.js.map +1 -1
  142. package/dist/dataLayer/schema.js +8 -0
  143. package/dist/dataLayer/schema.js.map +1 -1
  144. package/dist/dataLayer/schemaDescribe.js +8 -1
  145. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  146. package/dist/index.d.ts +1 -1
  147. package/dist/index.js.map +1 -1
  148. package/dist/json/systemSchema.json +52 -0
  149. package/dist/resources/DatabaseTransaction.d.ts +55 -0
  150. package/dist/resources/DatabaseTransaction.js +459 -45
  151. package/dist/resources/DatabaseTransaction.js.map +1 -1
  152. package/dist/resources/LMDBTransaction.js +22 -4
  153. package/dist/resources/LMDBTransaction.js.map +1 -1
  154. package/dist/resources/PrimaryRocksDatabase.d.ts +1 -0
  155. package/dist/resources/PrimaryRocksDatabase.js +29 -0
  156. package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
  157. package/dist/resources/RecordEncoder.d.ts +20 -0
  158. package/dist/resources/RecordEncoder.js +94 -9
  159. package/dist/resources/RecordEncoder.js.map +1 -1
  160. package/dist/resources/RequestTarget.d.ts +2 -0
  161. package/dist/resources/RequestTarget.js.map +1 -1
  162. package/dist/resources/Resource.js +20 -11
  163. package/dist/resources/Resource.js.map +1 -1
  164. package/dist/resources/ResourceInterface.d.ts +20 -1
  165. package/dist/resources/ResourceInterface.js.map +1 -1
  166. package/dist/resources/RocksIndexStore.d.ts +6 -1
  167. package/dist/resources/RocksIndexStore.js +24 -9
  168. package/dist/resources/RocksIndexStore.js.map +1 -1
  169. package/dist/resources/RocksTransactionLogStore.d.ts +14 -1
  170. package/dist/resources/RocksTransactionLogStore.js +57 -17
  171. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  172. package/dist/resources/Table.d.ts +112 -8
  173. package/dist/resources/Table.js +1073 -191
  174. package/dist/resources/Table.js.map +1 -1
  175. package/dist/resources/auditStore.d.ts +11 -2
  176. package/dist/resources/auditStore.js +325 -71
  177. package/dist/resources/auditStore.js.map +1 -1
  178. package/dist/resources/blob.d.ts +129 -9
  179. package/dist/resources/blob.js +992 -114
  180. package/dist/resources/blob.js.map +1 -1
  181. package/dist/resources/branchDatabase.d.ts +48 -0
  182. package/dist/resources/branchDatabase.js +892 -0
  183. package/dist/resources/branchDatabase.js.map +1 -0
  184. package/dist/resources/crdt.js +50 -12
  185. package/dist/resources/crdt.js.map +1 -1
  186. package/dist/resources/databases.d.ts +150 -0
  187. package/dist/resources/databases.js +1200 -239
  188. package/dist/resources/databases.js.map +1 -1
  189. package/dist/resources/defineTable.d.ts +10 -2
  190. package/dist/resources/defineTable.js +9 -1
  191. package/dist/resources/defineTable.js.map +1 -1
  192. package/dist/resources/graphql.d.ts +1 -1
  193. package/dist/resources/graphql.js +50 -15
  194. package/dist/resources/graphql.js.map +1 -1
  195. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +1 -0
  196. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +6 -2
  197. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  198. package/dist/resources/longLivedTransactions.d.ts +71 -0
  199. package/dist/resources/longLivedTransactions.js +358 -0
  200. package/dist/resources/longLivedTransactions.js.map +1 -0
  201. package/dist/resources/models/backendRegistry.d.ts +26 -0
  202. package/dist/resources/models/backendRegistry.js +60 -2
  203. package/dist/resources/models/backendRegistry.js.map +1 -1
  204. package/dist/resources/models/bootstrap.d.ts +33 -1
  205. package/dist/resources/models/bootstrap.js +416 -31
  206. package/dist/resources/models/bootstrap.js.map +1 -1
  207. package/dist/resources/recordLock.d.ts +80 -0
  208. package/dist/resources/recordLock.js +184 -0
  209. package/dist/resources/recordLock.js.map +1 -0
  210. package/dist/resources/replayLogs.d.ts +14 -1
  211. package/dist/resources/replayLogs.js +152 -24
  212. package/dist/resources/replayLogs.js.map +1 -1
  213. package/dist/resources/replayLogsGuards.d.ts +94 -7
  214. package/dist/resources/replayLogsGuards.js +111 -7
  215. package/dist/resources/replayLogsGuards.js.map +1 -1
  216. package/dist/resources/search.js +158 -6
  217. package/dist/resources/search.js.map +1 -1
  218. package/dist/resources/transactionBroadcast.d.ts +1 -1
  219. package/dist/resources/transactionBroadcast.js +2 -2
  220. package/dist/resources/transactionBroadcast.js.map +1 -1
  221. package/dist/security/auth.js +61 -30
  222. package/dist/security/auth.js.map +1 -1
  223. package/dist/security/authn/oidc/claims.d.ts +22 -0
  224. package/dist/security/authn/oidc/claims.js +71 -0
  225. package/dist/security/authn/oidc/claims.js.map +1 -0
  226. package/dist/security/authn/oidc/identityToken.d.ts +27 -0
  227. package/dist/security/authn/oidc/identityToken.js +111 -0
  228. package/dist/security/authn/oidc/identityToken.js.map +1 -0
  229. package/dist/security/authn/oidc/jwks.d.ts +25 -0
  230. package/dist/security/authn/oidc/jwks.js +261 -0
  231. package/dist/security/authn/oidc/jwks.js.map +1 -0
  232. package/dist/security/authn/oidc/providers/generic.d.ts +13 -0
  233. package/dist/security/authn/oidc/providers/generic.js +34 -0
  234. package/dist/security/authn/oidc/providers/generic.js.map +1 -0
  235. package/dist/security/authn/oidc/providers/githubActions.d.ts +11 -0
  236. package/dist/security/authn/oidc/providers/githubActions.js +129 -0
  237. package/dist/security/authn/oidc/providers/githubActions.js.map +1 -0
  238. package/dist/security/authn/oidc/providers/index.d.ts +37 -0
  239. package/dist/security/authn/oidc/providers/index.js +24 -0
  240. package/dist/security/authn/oidc/providers/index.js.map +1 -0
  241. package/dist/security/authn/oidc/tokenExchange.d.ts +12 -0
  242. package/dist/security/authn/oidc/tokenExchange.js +306 -0
  243. package/dist/security/authn/oidc/tokenExchange.js.map +1 -0
  244. package/dist/security/authn/oidc/trustPolicyOperations.d.ts +49 -0
  245. package/dist/security/authn/oidc/trustPolicyOperations.js +358 -0
  246. package/dist/security/authn/oidc/trustPolicyOperations.js.map +1 -0
  247. package/dist/security/authn/oidc/types.d.ts +38 -0
  248. package/dist/security/authn/oidc/types.js +6 -0
  249. package/dist/security/authn/oidc/types.js.map +1 -0
  250. package/dist/security/certificateVerification/index.js +40 -11
  251. package/dist/security/certificateVerification/index.js.map +1 -1
  252. package/dist/security/certificateVerification/trustedIssuers.d.ts +24 -0
  253. package/dist/security/certificateVerification/trustedIssuers.js +79 -0
  254. package/dist/security/certificateVerification/trustedIssuers.js.map +1 -0
  255. package/dist/security/certificateVerification/types.d.ts +1 -0
  256. package/dist/security/credentialProvenance.d.ts +35 -0
  257. package/dist/security/credentialProvenance.js +51 -0
  258. package/dist/security/credentialProvenance.js.map +1 -0
  259. package/dist/security/credentialRejection.d.ts +4 -0
  260. package/dist/security/credentialRejection.js +24 -0
  261. package/dist/security/credentialRejection.js.map +1 -0
  262. package/dist/security/deferredAuthentication.d.ts +36 -0
  263. package/dist/security/deferredAuthentication.js +70 -0
  264. package/dist/security/deferredAuthentication.js.map +1 -0
  265. package/dist/security/impersonation.d.ts +21 -0
  266. package/dist/security/impersonation.js +108 -9
  267. package/dist/security/impersonation.js.map +1 -1
  268. package/dist/security/jsLoader.d.ts +6 -0
  269. package/dist/security/jsLoader.js +75 -15
  270. package/dist/security/jsLoader.js.map +1 -1
  271. package/dist/security/keys.js +301 -71
  272. package/dist/security/keys.js.map +1 -1
  273. package/dist/security/operationScope.d.ts +21 -0
  274. package/dist/security/operationScope.js +36 -0
  275. package/dist/security/operationScope.js.map +1 -0
  276. package/dist/security/permissionsTranslator.js +21 -0
  277. package/dist/security/permissionsTranslator.js.map +1 -1
  278. package/dist/security/tokenAuthentication.d.ts +19 -1
  279. package/dist/security/tokenAuthentication.js +191 -10
  280. package/dist/security/tokenAuthentication.js.map +1 -1
  281. package/dist/security/user.js +4 -3
  282. package/dist/security/user.js.map +1 -1
  283. package/dist/server/DurableSubscriptionsSession.d.ts +2 -2
  284. package/dist/server/DurableSubscriptionsSession.js +67 -10
  285. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  286. package/dist/server/REST.js +73 -0
  287. package/dist/server/REST.js.map +1 -1
  288. package/dist/server/graphqlQuerying.js +4 -0
  289. package/dist/server/graphqlQuerying.js.map +1 -1
  290. package/dist/server/http.d.ts +11 -0
  291. package/dist/server/http.js +88 -15
  292. package/dist/server/http.js.map +1 -1
  293. package/dist/server/itc/serverHandlers.js +8 -1
  294. package/dist/server/itc/serverHandlers.js.map +1 -1
  295. package/dist/server/jobs/jobProcess.js +6 -2
  296. package/dist/server/jobs/jobProcess.js.map +1 -1
  297. package/dist/server/jobs/jobs.js +4 -1
  298. package/dist/server/jobs/jobs.js.map +1 -1
  299. package/dist/server/liveSubscriptionAuth.d.ts +26 -4
  300. package/dist/server/liveSubscriptionAuth.js +105 -39
  301. package/dist/server/liveSubscriptionAuth.js.map +1 -1
  302. package/dist/server/loadRootComponents.js +49 -10
  303. package/dist/server/loadRootComponents.js.map +1 -1
  304. package/dist/server/mqtt.d.ts +2 -0
  305. package/dist/server/mqtt.js +165 -30
  306. package/dist/server/mqtt.js.map +1 -1
  307. package/dist/server/nodeName.d.ts +2 -0
  308. package/dist/server/nodeName.js +107 -23
  309. package/dist/server/nodeName.js.map +1 -1
  310. package/dist/server/serverHelpers/Headers.d.ts +25 -0
  311. package/dist/server/serverHelpers/Headers.js +139 -1
  312. package/dist/server/serverHelpers/Headers.js.map +1 -1
  313. package/dist/server/serverHelpers/contentTypes.d.ts +9 -0
  314. package/dist/server/serverHelpers/contentTypes.js +32 -25
  315. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  316. package/dist/server/serverHelpers/deployValidationState.d.ts +3 -0
  317. package/dist/server/serverHelpers/deployValidationState.js +9 -19
  318. package/dist/server/serverHelpers/deployValidationState.js.map +1 -1
  319. package/dist/server/serverHelpers/operationAuthorizationState.d.ts +12 -0
  320. package/dist/server/serverHelpers/operationAuthorizationState.js +24 -2
  321. package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -1
  322. package/dist/server/serverHelpers/registeredOperations.d.ts +5 -4
  323. package/dist/server/serverHelpers/registeredOperations.js +74 -21
  324. package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
  325. package/dist/server/serverHelpers/requestSanitization.d.ts +11 -0
  326. package/dist/server/serverHelpers/requestSanitization.js +20 -0
  327. package/dist/server/serverHelpers/requestSanitization.js.map +1 -0
  328. package/dist/server/serverHelpers/serverHandlers.js +6 -3
  329. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  330. package/dist/server/serverHelpers/serverUtilities.d.ts +18 -0
  331. package/dist/server/serverHelpers/serverUtilities.js +90 -20
  332. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  333. package/dist/server/serverHelpers/sharedMessageEncoding.d.ts +67 -0
  334. package/dist/server/serverHelpers/sharedMessageEncoding.js +280 -0
  335. package/dist/server/serverHelpers/sharedMessageEncoding.js.map +1 -0
  336. package/dist/server/serverHelpers/uwsServer.js +19 -1
  337. package/dist/server/serverHelpers/uwsServer.js.map +1 -1
  338. package/dist/server/static.js +24 -28
  339. package/dist/server/static.js.map +1 -1
  340. package/dist/server/storageReclamation.d.ts +12 -0
  341. package/dist/server/storageReclamation.js +26 -0
  342. package/dist/server/storageReclamation.js.map +1 -1
  343. package/dist/server/threads/itc.d.ts +7 -2
  344. package/dist/server/threads/itc.js +5 -1
  345. package/dist/server/threads/itc.js.map +1 -1
  346. package/dist/server/threads/manageThreads.d.ts +26 -3
  347. package/dist/server/threads/manageThreads.js +517 -65
  348. package/dist/server/threads/manageThreads.js.map +1 -1
  349. package/dist/server/threads/socketRouter.js +89 -26
  350. package/dist/server/threads/socketRouter.js.map +1 -1
  351. package/dist/server/threads/threadHeapMemory.d.ts +2 -0
  352. package/dist/server/threads/threadHeapMemory.js +31 -0
  353. package/dist/server/threads/threadHeapMemory.js.map +1 -0
  354. package/dist/server/threads/threadServer.js +46 -15
  355. package/dist/server/threads/threadServer.js.map +1 -1
  356. package/dist/sqlEngine/config.d.ts +1 -3
  357. package/dist/sqlEngine/config.js +19 -16
  358. package/dist/sqlEngine/config.js.map +1 -1
  359. package/dist/sqlTranslator/index.d.ts +1 -1
  360. package/dist/sqlTranslator/index.js +30 -7
  361. package/dist/sqlTranslator/index.js.map +1 -1
  362. package/dist/upgrade/directives/5-3-0.d.ts +7 -0
  363. package/dist/upgrade/directives/5-3-0.js +148 -0
  364. package/dist/upgrade/directives/5-3-0.js.map +1 -0
  365. package/dist/upgrade/directives/directivesController.js +2 -1
  366. package/dist/upgrade/directives/directivesController.js.map +1 -1
  367. package/dist/utility/OperationFunctionCaller.js +2 -1
  368. package/dist/utility/OperationFunctionCaller.js.map +1 -1
  369. package/dist/utility/common_utils.d.ts +16 -0
  370. package/dist/utility/common_utils.js +32 -6
  371. package/dist/utility/common_utils.js.map +1 -1
  372. package/dist/utility/componentNames.d.ts +8 -0
  373. package/dist/utility/componentNames.js +12 -1
  374. package/dist/utility/componentNames.js.map +1 -1
  375. package/dist/utility/environment/environmentManager.js +3 -6
  376. package/dist/utility/environment/environmentManager.js.map +1 -1
  377. package/dist/utility/environment/systemInformation.d.ts +1 -0
  378. package/dist/utility/environment/systemInformation.js +1 -0
  379. package/dist/utility/environment/systemInformation.js.map +1 -1
  380. package/dist/utility/errors/commonErrors.d.ts +2 -0
  381. package/dist/utility/errors/commonErrors.js +2 -0
  382. package/dist/utility/errors/commonErrors.js.map +1 -1
  383. package/dist/utility/errors/hdbError.d.ts +17 -0
  384. package/dist/utility/errors/hdbError.js +30 -1
  385. package/dist/utility/errors/hdbError.js.map +1 -1
  386. package/dist/utility/globalSchema.d.ts +18 -0
  387. package/dist/utility/hdbTerms.d.ts +16 -0
  388. package/dist/utility/hdbTerms.js +18 -2
  389. package/dist/utility/hdbTerms.js.map +1 -1
  390. package/dist/utility/logging/harper_logger.d.ts +2 -0
  391. package/dist/utility/logging/harper_logger.js +91 -14
  392. package/dist/utility/logging/harper_logger.js.map +1 -1
  393. package/dist/utility/logging/logRotator.js +76 -49
  394. package/dist/utility/logging/logRotator.js.map +1 -1
  395. package/dist/utility/nodeIdentity.d.ts +9 -0
  396. package/dist/utility/nodeIdentity.js +58 -0
  397. package/dist/utility/nodeIdentity.js.map +1 -0
  398. package/dist/utility/npmUtilities.js +9 -7
  399. package/dist/utility/npmUtilities.js.map +1 -1
  400. package/dist/utility/operationPermissions.d.ts +3 -1
  401. package/dist/utility/operationPermissions.js +16 -1
  402. package/dist/utility/operationPermissions.js.map +1 -1
  403. package/dist/utility/operation_authorization.d.ts +10 -7
  404. package/dist/utility/operation_authorization.js +212 -41
  405. package/dist/utility/operation_authorization.js.map +1 -1
  406. package/dist/utility/watchPath.d.ts +29 -0
  407. package/dist/utility/watchPath.js +68 -0
  408. package/dist/utility/watchPath.js.map +1 -0
  409. package/dist/utility/watcherFallback.d.ts +86 -0
  410. package/dist/utility/watcherFallback.js +278 -1
  411. package/dist/utility/watcherFallback.js.map +1 -1
  412. package/dist/validation/configValidator.d.ts +12 -0
  413. package/dist/validation/configValidator.js +199 -72
  414. package/dist/validation/configValidator.js.map +1 -1
  415. package/dist/validation/installValidator.js +12 -0
  416. package/dist/validation/installValidator.js.map +1 -1
  417. package/dist/validation/validationWrapper.d.ts +11 -0
  418. package/dist/validation/validationWrapper.js +16 -3
  419. package/dist/validation/validationWrapper.js.map +1 -1
  420. package/index.ts +2 -0
  421. package/json/systemSchema.json +52 -0
  422. package/npm-shrinkwrap.json +196 -194
  423. package/package.json +7 -6
  424. package/resources/DESIGN.md +114 -52
  425. package/resources/DatabaseTransaction.ts +521 -43
  426. package/resources/LMDBTransaction.ts +26 -4
  427. package/resources/PrimaryRocksDatabase.ts +28 -1
  428. package/resources/RecordEncoder.ts +103 -8
  429. package/resources/RequestTarget.ts +2 -0
  430. package/resources/Resource.ts +17 -9
  431. package/resources/ResourceInterface.ts +23 -0
  432. package/resources/RocksIndexStore.ts +30 -9
  433. package/resources/RocksTransactionLogStore.ts +78 -21
  434. package/resources/Table.ts +1110 -159
  435. package/resources/auditStore.ts +331 -73
  436. package/resources/blob.ts +1029 -110
  437. package/resources/branchDatabase.ts +941 -0
  438. package/resources/crdt.ts +76 -12
  439. package/resources/databases.ts +1310 -252
  440. package/resources/defineTable.ts +18 -2
  441. package/resources/graphql.ts +70 -16
  442. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +6 -2
  443. package/resources/longLivedTransactions.ts +360 -0
  444. package/resources/models/backendRegistry.ts +84 -2
  445. package/resources/models/bootstrap.ts +473 -28
  446. package/resources/recordLock.ts +253 -0
  447. package/resources/replayLogs.ts +147 -26
  448. package/resources/replayLogsGuards.ts +171 -8
  449. package/resources/search.ts +154 -7
  450. package/resources/transactionBroadcast.ts +3 -3
  451. package/security/auth.ts +68 -29
  452. package/security/authn/oidc/claims.ts +72 -0
  453. package/security/authn/oidc/identityToken.ts +129 -0
  454. package/security/authn/oidc/jwks.ts +260 -0
  455. package/security/authn/oidc/providers/generic.ts +40 -0
  456. package/security/authn/oidc/providers/githubActions.ts +137 -0
  457. package/security/authn/oidc/providers/index.ts +52 -0
  458. package/security/authn/oidc/tokenExchange.ts +300 -0
  459. package/security/authn/oidc/trustPolicyOperations.ts +343 -0
  460. package/security/authn/oidc/types.ts +41 -0
  461. package/security/certificateVerification/index.ts +54 -13
  462. package/security/certificateVerification/trustedIssuers.ts +76 -0
  463. package/security/certificateVerification/types.ts +1 -0
  464. package/security/credentialProvenance.ts +47 -0
  465. package/security/credentialRejection.ts +22 -0
  466. package/security/deferredAuthentication.ts +71 -0
  467. package/security/impersonation.ts +117 -12
  468. package/security/jsLoader.ts +81 -18
  469. package/security/keys.ts +298 -72
  470. package/security/operationScope.ts +33 -0
  471. package/security/permissionsTranslator.js +23 -0
  472. package/security/tokenAuthentication.ts +233 -12
  473. package/security/user.ts +4 -3
  474. package/server/DESIGN.md +183 -16
  475. package/server/DurableSubscriptionsSession.ts +71 -11
  476. package/server/REST.ts +79 -1
  477. package/server/graphqlQuerying.ts +4 -0
  478. package/server/http.ts +99 -18
  479. package/server/itc/serverHandlers.js +8 -1
  480. package/server/jobs/jobProcess.ts +8 -2
  481. package/server/jobs/jobs.ts +4 -1
  482. package/server/liveSubscriptionAuth.ts +129 -46
  483. package/server/loadRootComponents.js +50 -8
  484. package/server/mqtt.ts +179 -38
  485. package/server/nodeName.ts +103 -21
  486. package/server/serverHelpers/Headers.ts +131 -0
  487. package/server/serverHelpers/contentTypes.ts +29 -21
  488. package/server/serverHelpers/deployValidationState.ts +24 -13
  489. package/server/serverHelpers/operationAuthorizationState.ts +34 -3
  490. package/server/serverHelpers/registeredOperations.ts +79 -22
  491. package/server/serverHelpers/requestSanitization.ts +15 -0
  492. package/server/serverHelpers/serverHandlers.js +6 -3
  493. package/server/serverHelpers/serverUtilities.ts +104 -31
  494. package/server/serverHelpers/sharedMessageEncoding.ts +307 -0
  495. package/server/serverHelpers/uwsServer.ts +17 -2
  496. package/server/static.ts +23 -29
  497. package/server/storageReclamation.ts +23 -0
  498. package/server/threads/itc.js +11 -1
  499. package/server/threads/manageThreads.js +526 -56
  500. package/server/threads/socketRouter.ts +81 -26
  501. package/server/threads/threadHeapMemory.ts +26 -0
  502. package/server/threads/threadServer.js +43 -15
  503. package/sqlTranslator/index.ts +31 -8
  504. package/studio/web/assets/Chat-BnCBegQz.js +2267 -0
  505. package/studio/web/assets/FloatingChat-CoDW1ySS.js +23 -0
  506. package/studio/web/assets/{abnfDiagram-VCTEODGH-C0_BAZyO.js → abnfDiagram-VCTEODGH-B0BebmD2.js} +1 -1
  507. package/studio/web/assets/{alertDialog-DIHt7Z0r.js → alertDialog-CQyAJJhl.js} +1 -1
  508. package/studio/web/assets/{apiToken-c3Rd-w6g.js → apiToken-Bwk5BLXW.js} +1 -1
  509. package/studio/web/assets/applications-DHxGi7JH.js +296 -0
  510. package/studio/web/assets/architecture-7GRP2DOG-LB-MLAAb.js +1 -0
  511. package/studio/web/assets/{architectureDiagram-5GKGNRK7-BWzrASgm.js → architectureDiagram-5GKGNRK7-7SW3GD-K.js} +1 -1
  512. package/studio/web/assets/authStore-C3Nfubqr.js +3 -0
  513. package/studio/web/assets/{blockDiagram-NRAW4CY4-BdJX9Khj.js → blockDiagram-I7D4REHJ-BqguiadH.js} +2 -2
  514. package/studio/web/assets/{button-DhiX-njv.js → button-BIsUKRZq.js} +2 -2
  515. package/studio/web/assets/{c4Diagram-UCG6FXSJ-CI6MzGmQ.js → c4Diagram-7LVT6UL2-LBNf8t_X.js} +1 -1
  516. package/studio/web/assets/channel-yictG-U-.js +1 -0
  517. package/studio/web/assets/{chevron-up-Df2c8uoU.js → chevron-up-DtKGqDn3.js} +1 -1
  518. package/studio/web/assets/{chunk-TEH6E4GO-P87k5mNi.js → chunk-4HAMMTFA-DWtTut21.js} +1 -1
  519. package/studio/web/assets/{chunk-75Z2AOVW-BT8tVmks.js → chunk-75Z2AOVW-QGQD6th2.js} +1 -1
  520. package/studio/web/assets/{chunk-DU6HZSFF-9kAOOmI6.js → chunk-DU6HZSFF-Chq20Ba5.js} +1 -1
  521. package/studio/web/assets/{chunk-F27PBJKO-BW7ao8AY.js → chunk-F27PBJKO-BVA5EPhV.js} +1 -1
  522. package/studio/web/assets/{chunk-GMAD6QVW-BNyXpoQO.js → chunk-GMAD6QVW-BeS7S07A.js} +1 -1
  523. package/studio/web/assets/{chunk-OBVCFTLP-D4wWOqDQ.js → chunk-GVQU2GXP-sbwVIQ8i.js} +1 -1
  524. package/studio/web/assets/{chunk-G27WJ6UU-COyLMcgK.js → chunk-IMKFNOWR-Bnh3tAVd.js} +1 -1
  525. package/studio/web/assets/{chunk-JQ64N6SF-Cyz1IeLf.js → chunk-L3NEJ4N5-COfUyKII.js} +1 -1
  526. package/studio/web/assets/chunk-OSK3NFVY-ByciRftO.js +10 -0
  527. package/studio/web/assets/{chunk-P2QGCYS3-DmIFY4d7.js → chunk-P2QGCYS3-CP1VhG_c.js} +1 -1
  528. package/studio/web/assets/{chunk-POPQ4Y6H-BPrvMyKz.js → chunk-POPQ4Y6H-ClWhhkwW.js} +1 -1
  529. package/studio/web/assets/{chunk-PWAF6VOD-2zB6IW9i.js → chunk-PWAF6VOD-1z1THyS5.js} +1 -1
  530. package/studio/web/assets/{chunk-RHFEMEQ7-2FgyI8YU.js → chunk-SHT3W25Y-LpQkMsah.js} +2 -2
  531. package/studio/web/assets/{chunk-SVP7TREG-FwtbH2QC.js → chunk-SVP7TREG-jtdAHw0S.js} +1 -1
  532. package/studio/web/assets/{chunk-LCL6LL3I-HOzK_ppE.js → chunk-TICWLB2K-VOwzetX-.js} +1 -1
  533. package/studio/web/assets/classDiagram-ZZMXUADV-VaEwSy_g.js +1 -0
  534. package/studio/web/assets/classDiagram-v2-VYDZK3BY-VaEwSy_g.js +1 -0
  535. package/studio/web/assets/{createLucideIcon-BKGPfjm2.js → createLucideIcon-CzW9508A.js} +1 -1
  536. package/studio/web/assets/{cssMode-CEN2mzSA.js → cssMode-s0cWI-_M.js} +1 -1
  537. package/studio/web/assets/{cynefin-OW5HDTMX-BRkpLFQV.js → cynefin-OW5HDTMX-BbdbCvub.js} +1 -1
  538. package/studio/web/assets/{cynefinDiagram-5FMLGOSQ-CHT1DaX6.js → cynefinDiagram-5FMLGOSQ-TP-aIqbt.js} +1 -1
  539. package/studio/web/assets/{dagre-3AP2YEHR-DpUXBh63.js → dagre-GXQ25YYZ-DShnGpGo.js} +1 -1
  540. package/studio/web/assets/{diagram-S7CK7UJ4-BuymVFZT.js → diagram-S7CK7UJ4-aoCVTtcy.js} +1 -1
  541. package/studio/web/assets/{diagram-UQ7AKVKN-CyP148RM.js → diagram-UQ7AKVKN-DglXtQ6x.js} +1 -1
  542. package/studio/web/assets/{diagram-VSXAHHWV-CoCAg3M9.js → diagram-VSXAHHWV-fhEdmkwM.js} +1 -1
  543. package/studio/web/assets/{diagram-VX7I27RA-BpOqCFca.js → diagram-VX7I27RA-DccVJet6.js} +1 -1
  544. package/studio/web/assets/{diagram-Z3DM3KII-Bfpw7Vbj.js → diagram-Z3DM3KII-D-RyJJb7.js} +1 -1
  545. package/studio/web/assets/{dialog-CBf0Mr1d.js → dialog-Cn2uWgD4.js} +1 -1
  546. package/studio/web/assets/{dist-lkA3O3eM.js → dist-DP8UjMB_.js} +1 -1
  547. package/studio/web/assets/{download-BtTOBem-.js → download-B5T5r7ss.js} +1 -1
  548. package/studio/web/assets/{ebnfDiagram-PWID7BFC-DS_6aWqL.js → ebnfDiagram-PWID7BFC-DJGpIpz_.js} +1 -1
  549. package/studio/web/assets/{editor-D8oDeCTL.js → editor-DNcRHK54.js} +1 -1
  550. package/studio/web/assets/{erDiagram-SSCWMZ5O-DJNk6Fgw.js → erDiagram-RLTQ6QDP-CIfNlgkC.js} +1 -1
  551. package/studio/web/assets/eventmodeling-NTZA5JFV-CLxnp2CR.js +1 -0
  552. package/studio/web/assets/flowDiagram-HODETNUW-BIbhmz9f.js +1 -0
  553. package/studio/web/assets/{ganttDiagram-EL5Y4UJY-2pOExxMY.js → ganttDiagram-EL5Y4UJY-BxToTzzD.js} +1 -1
  554. package/studio/web/assets/{getAnalytics-D4LKGeVy.js → getAnalytics-GHK8ORfM.js} +1 -1
  555. package/studio/web/assets/{gitGraph-4MIJSDKK-CH5ZxwzF.js → gitGraph-4MIJSDKK-D2s2w8lE.js} +1 -1
  556. package/studio/web/assets/{gitGraphDiagram-WWUBYQGX-DVIsIhbO.js → gitGraphDiagram-WWUBYQGX-Dwntd4-x.js} +1 -1
  557. package/studio/web/assets/{html-u3vOg7LJ.js → html-Bdssedlg.js} +1 -1
  558. package/studio/web/assets/{htmlMode-DyO31v-P.js → htmlMode-CoDlJ3fw.js} +1 -1
  559. package/studio/web/assets/{index-Cxj2_wsl.css → index-7RMEgVG1.css} +1 -1
  560. package/studio/web/assets/index-D6sxmFLR.js +824 -0
  561. package/studio/web/assets/index.lazy-tmU5BS8s.js +2 -0
  562. package/studio/web/assets/{info-A6RAGUB7-CPQfTnaG.js → info-A6RAGUB7-DYjkvb0C.js} +1 -1
  563. package/studio/web/assets/{infoDiagram-RXCK75RN-DlwLYlwm.js → infoDiagram-27XIBGKW-Bnp1FJE5.js} +1 -1
  564. package/studio/web/assets/{ishikawaDiagram-5VMMS53U-BRXRp29U.js → ishikawaDiagram-5VMMS53U-D9Xh2r6X.js} +1 -1
  565. package/studio/web/assets/{javascript-CUvxOyTC.js → javascript-B8meVSTH.js} +1 -1
  566. package/studio/web/assets/{journeyDiagram-EYS64GPL-B0ou8k0n.js → journeyDiagram-3NMN7TZE-CokIi6ll.js} +2 -2
  567. package/studio/web/assets/{jsonMode-f_IwbF3D.js → jsonMode-DpIPd35T.js} +1 -1
  568. package/studio/web/assets/{kanban-definition-3QL26DDD-uYg7iYzp.js → kanban-definition-UXKFOSKX-CukSFJfX.js} +1 -1
  569. package/studio/web/assets/{languageServices-DXtZ6rEF.js → languageServices-C_5FMJzQ.js} +1 -1
  570. package/studio/web/assets/{lspLanguageFeatures-B4pCF1zO.js → lspLanguageFeatures-BIzNBzPK.js} +1 -1
  571. package/studio/web/assets/{mermaid-parser.core-Ck-fC8b7.js → mermaid-parser.core-BlEsOWNO.js} +3 -3
  572. package/studio/web/assets/{mermaid.core-CP8aNNYm.js → mermaid.core-BlkGaMIH.js} +5 -5
  573. package/studio/web/assets/{mindmap-definition-FBJOCRG2-CgTZ-rit.js → mindmap-definition-YA3MSWOX-IprMc_0j.js} +1 -1
  574. package/studio/web/assets/{notifications-D3tIQ4sg.js → notifications-CQf18QKb.js} +1 -1
  575. package/studio/web/assets/notifications-CvZivSbh.js +1 -0
  576. package/studio/web/assets/{packet-AYTQ26CC-DEyoPtPb.js → packet-AYTQ26CC-Bi3V04Zi.js} +1 -1
  577. package/studio/web/assets/{pegDiagram-XKGWAZYB-DrD-7sD9.js → pegDiagram-XKGWAZYB-BNuPDLZY.js} +1 -1
  578. package/studio/web/assets/{pie-WAS4IAKB-wjj-EI1d.js → pie-WAS4IAKB-_6DoDbng.js} +1 -1
  579. package/studio/web/assets/{pieDiagram-E7YTZNPT-GntqDCzv.js → pieDiagram-E7YTZNPT-DqNb6Ht2.js} +1 -1
  580. package/studio/web/assets/{profile-DZWU7MgT.js → profile-DdOwtntb.js} +1 -1
  581. package/studio/web/assets/{quadrantDiagram-AXDQQJYC-0UeqXQGd.js → quadrantDiagram-AXDQQJYC-BGH9E2YR.js} +1 -1
  582. package/studio/web/assets/{radar-RG4KPBEZ-DFSA5h7k.js → radar-RG4KPBEZ-DDdVczcL.js} +1 -1
  583. package/studio/web/assets/{railroad-74A4TZTK-CaOUG9wR.js → railroad-74A4TZTK-BJUP4Jds.js} +1 -1
  584. package/studio/web/assets/railroad-abnf-HS5TGJTU-Bm3L1L0h.js +1 -0
  585. package/studio/web/assets/railroad-ebnf-LZEXJU2U-CKzLGlkw.js +1 -0
  586. package/studio/web/assets/railroad-peg-WCYAUIDC-S8xLjslx.js +1 -0
  587. package/studio/web/assets/{railroadDiagram-O6MQD6OU-yHUELZaV.js → railroadDiagram-O6MQD6OU-DGTPh2KZ.js} +1 -1
  588. package/studio/web/assets/{regions-CkyurXzE.js → regions-n69fwagr.js} +1 -1
  589. package/studio/web/assets/{register-BUyhWjBO.js → register-PfWTCXWB.js} +3 -3
  590. package/studio/web/assets/{requirementDiagram-EFPCY7ZU-DNEGFjuW.js → requirementDiagram-BXWQKSXE-BJnO6uLz.js} +1 -1
  591. package/studio/web/assets/{sankeyDiagram-P5KCCOFB-DpyAmSVR.js → sankeyDiagram-P5KCCOFB-0vSOdymH.js} +1 -1
  592. package/studio/web/assets/{sequenceDiagram-WJ2MYXX4-TyaT7xNk.js → sequenceDiagram-WJ2MYXX4-hETizDWE.js} +1 -1
  593. package/studio/web/assets/{setComponentFile-CeyKSZAa.js → setComponentFile-Bg6O7X0S.js} +1 -1
  594. package/studio/web/assets/{setup-D2kn7cAA.js → setup-CUx_aUDl.js} +2 -2
  595. package/studio/web/assets/{stateDiagram-HBIQ2CUA-CeEdTArZ.js → stateDiagram-D77RDMKH-CdYQ_KtC.js} +1 -1
  596. package/studio/web/assets/stateDiagram-v2-MP3YSRHH-CdKuzQMT.js +1 -0
  597. package/studio/web/assets/status-D7BVKqX9.js +61 -0
  598. package/studio/web/assets/{swimlanes-XN3QIQJK-B54FmF46.js → swimlanes-42K2YHIH-B8cHIpU4.js} +1 -1
  599. package/studio/web/assets/swimlanesDiagram-VR7AAH4N-DmOSJwaH.js +8 -0
  600. package/studio/web/assets/{tabs-B_G5zscN.js → tabs-BrHu7gJi.js} +1 -1
  601. package/studio/web/assets/{timeline-definition-24CTP7MA-D-a9ujbo.js → timeline-definition-24CTP7MA-BJWYSXqF.js} +1 -1
  602. package/studio/web/assets/{toggleHighContrast-C0UW6rI2.js → toggleHighContrast-DBSyXzMr.js} +1 -1
  603. package/studio/web/assets/{treeView-Q6P3EWNA-CrW_6JnS.js → treeView-Q6P3EWNA-qxe_v6CQ.js} +1 -1
  604. package/studio/web/assets/{treemap-WGGIJYW6-BxyYLdP_.js → treemap-WGGIJYW6-dDo97XXF.js} +1 -1
  605. package/studio/web/assets/{tsMode-DBC0zmDx.js → tsMode-BByKCjBS.js} +1 -1
  606. package/studio/web/assets/{typescript-DApRQir3.js → typescript-DDLnLpw9.js} +1 -1
  607. package/studio/web/assets/{useEntityRestURL-DB6JStU1.js → useEntityRestURL-31CHGaHk.js} +1 -1
  608. package/studio/web/assets/{useLocalStorage-Dtj1QS8_.js → useLocalStorage-BqMR3D8_.js} +1 -1
  609. package/studio/web/assets/vendor-core-c2JRRJpV.js +58 -0
  610. package/studio/web/assets/vendor-datadog-CLUcJXOo.js +6 -0
  611. package/studio/web/assets/{vendor-react-Dyj4O3HE.js → vendor-react-CJV_K1u4.js} +1 -1
  612. package/studio/web/assets/vendor-tanstack-DxzraizX.js +1 -0
  613. package/studio/web/assets/{vendor-ui-vhu-UHhF.js → vendor-ui-BUjK0h8a.js} +2 -2
  614. package/studio/web/assets/{vennDiagram-4TSXK5OY-Cy7s7Mpy.js → vennDiagram-4TSXK5OY-A3i-lCdl.js} +1 -1
  615. package/studio/web/assets/{wardley-WFR3VGLG-BeBL35g2.js → wardley-WFR3VGLG-B0ik-_6g.js} +1 -1
  616. package/studio/web/assets/{wardleyDiagram-VM6X3IG4-BylmIGSg.js → wardleyDiagram-VM6X3IG4-CjrkKWUR.js} +1 -1
  617. package/studio/web/assets/{workers-C0bFIedw.js → workers-pR3jRY9D.js} +1 -1
  618. package/studio/web/assets/x-DIzaLEdK.js +1 -0
  619. package/studio/web/assets/{xml-HWd01lU-.js → xml-2iRnMhQO.js} +1 -1
  620. package/studio/web/assets/{xychartDiagram-S5SC5T6Z-CoKALMXr.js → xychartDiagram-S5SC5T6Z-Biok4GYV.js} +1 -1
  621. package/studio/web/assets/{yaml-CIH0Nt-h.js → yaml-Bf92gJpd.js} +1 -1
  622. package/studio/web/index.html +14 -14
  623. package/upgrade/directives/5-3-0.ts +132 -0
  624. package/upgrade/directives/directivesController.ts +2 -1
  625. package/utility/OperationFunctionCaller.ts +2 -1
  626. package/utility/common_utils.ts +30 -5
  627. package/utility/componentNames.ts +12 -0
  628. package/utility/environment/environmentManager.ts +3 -7
  629. package/utility/environment/systemInformation.ts +7 -0
  630. package/utility/errors/commonErrors.ts +4 -0
  631. package/utility/errors/hdbError.ts +29 -0
  632. package/utility/hdbTerms.ts +17 -0
  633. package/utility/logging/harper_logger.ts +87 -14
  634. package/utility/logging/logRotator.ts +72 -45
  635. package/utility/nodeIdentity.ts +45 -0
  636. package/utility/npmUtilities.ts +10 -8
  637. package/utility/operationPermissions.ts +18 -1
  638. package/utility/operation_authorization.ts +231 -42
  639. package/utility/watchPath.ts +63 -0
  640. package/utility/watcherFallback.ts +270 -0
  641. package/validation/configValidator.ts +209 -72
  642. package/validation/installValidator.ts +15 -0
  643. package/validation/validationWrapper.ts +18 -4
  644. package/studio/web/assets/Chat-JpO8EtUu.js +0 -2067
  645. package/studio/web/assets/FloatingChat-Bcj3xSZu.js +0 -23
  646. package/studio/web/assets/applications-ByqLRKyZ.js +0 -296
  647. package/studio/web/assets/architecture-7GRP2DOG-DNdx5tEU.js +0 -1
  648. package/studio/web/assets/authStore-qKmCZcaf.js +0 -3
  649. package/studio/web/assets/channel-DtCV8PTL.js +0 -1
  650. package/studio/web/assets/chunk-R7TYR2AO-Irip67yr.js +0 -10
  651. package/studio/web/assets/classDiagram-DTDB5LWJ-DbO_dCNE.js +0 -1
  652. package/studio/web/assets/classDiagram-v2-JRS7N3AN-DbO_dCNE.js +0 -1
  653. package/studio/web/assets/eventmodeling-NTZA5JFV-5jbe4A5P.js +0 -1
  654. package/studio/web/assets/flowDiagram-A5DVABFB-Dp9Ezlow.js +0 -1
  655. package/studio/web/assets/index-aSt5tY-L.js +0 -824
  656. package/studio/web/assets/index.lazy-B9jiPwT8.js +0 -2
  657. package/studio/web/assets/notifications-CUoYgU98.js +0 -1
  658. package/studio/web/assets/railroad-abnf-HS5TGJTU-Bc0Qi0WH.js +0 -1
  659. package/studio/web/assets/railroad-ebnf-LZEXJU2U-G8rVVZ2C.js +0 -1
  660. package/studio/web/assets/railroad-peg-WCYAUIDC-CrehKBhC.js +0 -1
  661. package/studio/web/assets/stateDiagram-v2-4QOOHH4V-D4tuw9Su.js +0 -1
  662. package/studio/web/assets/status-D7Xn5ePA.js +0 -61
  663. package/studio/web/assets/swimlanesDiagram-VK2B7HYN-XOhmNEvq.js +0 -8
  664. package/studio/web/assets/vendor-core-RCcadM3e.js +0 -73
  665. package/studio/web/assets/vendor-datadog-BRv-mOv1.js +0 -6
  666. package/studio/web/assets/vendor-tanstack-BiFWSB3W.js +0 -1
  667. package/studio/web/assets/x-B9o9hsep.js +0 -1
  668. /package/studio/web/assets/{sizeCapture-X5ZJPWSS-B0uUizjq.js → sizeCapture-INFHLROL-B0uUizjq.js} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,f as n,l as r,n as i,s as a,u as o}from"./authStore-qKmCZcaf.js";import{n as s,t as c}from"./button-DhiX-njv.js";import{L as l,k as u,x as d,z as f}from"./vendor-tanstack-BiFWSB3W.js";import{a as p}from"./vendor-datadog-BRv-mOv1.js";import{r as m}from"./vendor-react-Dyj4O3HE.js";import{t as h}from"./createLucideIcon-BKGPfjm2.js";import{n as g}from"./chevron-up-Df2c8uoU.js";import{n as _}from"./setLocalStorage-D_kflv4U.js";import{t as v}from"./useLocalStorage-Dtj1QS8_.js";import{$t as y,An as b,Ar as x,Ht as S,Jn as C,Nr as w,Qt as T,Sr as E,Tr as D,Vt as O,dt as k,en as A,gr as j,mt as M,nn as ee,on as te,qn as ne,sn as re,sr as N,tn as ie,un as ae,vn as P,xn as F,xr as oe,xt as se}from"./index-aSt5tY-L.js";import{t as ce}from"./useEntityRestURL-DB6JStU1.js";import{i as I,n as L,r as R,t as z}from"./tabs-B_G5zscN.js";var B=h(`lock-open`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 9.9-1`,key:`1mm8w8`}]]),V=m(),H={get:`text-blue border-blue/40 bg-blue/10`,post:`text-green border-green/40 bg-green/10`,put:`text-yellow border-yellow/40 bg-yellow/10`,patch:`text-pink border-pink/40 bg-pink/10`,delete:`text-red border-red/40 bg-red/10`,options:`text-muted-foreground border-border bg-muted`,head:`text-muted-foreground border-border bg-muted`,trace:`text-muted-foreground border-border bg-muted`};function U({method:e,className:t}){return(0,V.jsx)(`span`,{className:s(`inline-flex shrink-0 items-center justify-center rounded-md border font-mono text-[0.68rem] font-bold uppercase tracking-wide`,`min-w-14 px-1.5 py-0.5`,H[e],t),children:e})}var W=e(p(),1),le={login:`Log in`,basic:`Basic`,bearer:`Bearer`,cookie:`Cookie`};function ue({tree:e,totalCount:t,filteredCount:n,isFiltering:r,selectedId:i,onSelect:a,filter:o,onFilterChange:c,method:l,authorized:u,settingsActive:d,onOpenSettings:f}){let[p,m]=(0,W.useState)(new Set),h=e=>m(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return(0,V.jsxs)(`div`,{className:`flex max-h-[28rem] flex-col gap-3 lg:h-full lg:max-h-none lg:min-h-0`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:f,"aria-pressed":d,className:s(`flex w-full shrink-0 items-center gap-2 rounded-md border px-2.5 py-2 text-left text-sm transition-colors`,d?`border-primary bg-primary/10 text-foreground`:`border-border hover:bg-accent/60`),children:[u?(0,V.jsx)(D,{className:`text-green size-4 shrink-0`}):(0,V.jsx)(B,{className:`text-muted-foreground size-4 shrink-0`}),(0,V.jsx)(`span`,{className:`flex-1 font-medium`,children:`Authorize`}),(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:le[l]})]}),(0,V.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,V.jsx)(j,{className:`text-muted-foreground pointer-events-none absolute top-1/2 left-2.5 size-4 -translate-y-1/2`}),(0,V.jsx)(P,{value:o,onChange:e=>c(e.target.value),placeholder:`Filter endpoints…`,className:`pl-8`,"aria-label":`Filter endpoints`})]}),(0,V.jsx)(`div`,{className:`flex-1 overflow-y-auto overscroll-contain min-h-0 pr-1`,children:n===0?(0,V.jsx)(`p`,{className:`text-muted-foreground px-1 py-6 text-center text-sm`,children:t===0?`No endpoints found in this spec.`:`No endpoints match your filter.`}):(0,V.jsx)(`div`,{className:`flex flex-col gap-1`,children:e.map(e=>(0,V.jsx)(de,{resource:e,expanded:r||!p.has(e.resource),onToggle:()=>h(e.resource),selectedId:i,onSelect:a},e.resource))})})]})}function de({resource:e,expanded:t,onToggle:n,selectedId:r,onSelect:i}){let a=(0,W.useMemo)(()=>e.paths.some(e=>e.operations.some(e=>e.id===r)),[e,r]);return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`button`,{type:`button`,onClick:n,"aria-expanded":t,className:`text-foreground hover:bg-accent/60 flex w-full items-center gap-1.5 rounded-md px-1.5 py-1.5 text-left`,children:[t?(0,V.jsx)(g,{className:`size-4 shrink-0`}):(0,V.jsx)(w,{className:`size-4 shrink-0`}),(0,V.jsx)(`span`,{className:`flex-1 truncate text-sm font-semibold`,children:e.resource}),(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e.operationCount})]}),t&&(0,V.jsx)(`div`,{className:`border-border/60 ml-3 flex flex-col gap-2 border-l pt-1 pl-2`,children:e.paths.map(e=>(0,V.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,V.jsx)(`span`,{className:s(`truncate px-1 font-mono text-xs`,a?`text-foreground`:`text-muted-foreground`),title:e.path,children:e.path}),(0,V.jsx)(`ul`,{className:`border-border/40 ml-2 flex flex-col gap-0.5 border-l pl-2`,children:e.operations.map(e=>(0,V.jsx)(`li`,{children:(0,V.jsxs)(`button`,{type:`button`,onClick:()=>i(e.id),className:s(`flex w-full items-center gap-2 rounded-md px-2 py-1 text-left transition-colors`,e.id===r?`bg-primary/10 ring-primary/30 ring-1`:`hover:bg-accent/60`),children:[(0,V.jsx)(U,{method:e.method,className:`min-w-14`}),e.operation.summary&&(0,V.jsx)(`span`,{className:`text-muted-foreground min-w-0 flex-1 truncate text-xs`,children:e.operation.summary})]})},e.id))})]},e.path))})]})}function G({code:e,className:t,label:n,maxHeightClassName:r=`max-h-96`}){let i=te();return(0,V.jsxs)(`div`,{className:s(`group bg-muted/60 relative rounded-md border`,t),children:[(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":n?`Copy ${n}`:`Copy to clipboard`,className:`absolute top-1.5 right-1.5 z-10 size-7 opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100`,onClick:()=>i(e),children:(0,V.jsx)(x,{className:`size-3.5`})}),(0,V.jsx)(`pre`,{className:s(`overflow-auto p-3 text-xs leading-relaxed`,r),children:(0,V.jsx)(`code`,{className:`font-mono`,children:e})})]})}var K=[`get`,`post`,`put`,`patch`,`delete`,`options`,`head`,`trace`],fe=`default`;function q(e){return e.split(`/`).find(Boolean)??`/`}function pe(e,t){let n=e.security??t?.security;return!Array.isArray(n)||n.length===0?!1:n.every(me)}function me(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;for(let t in e)return!0;return!1}function he(e){let t=e?.paths;if(!t)return[];let n=[];for(let[e,r]of Object.entries(t))if(r)for(let t of K){let i=r[t];if(!i)continue;let a=ge(r.parameters,i.parameters);n.push({id:`${t} ${e}`,method:t,path:e,operation:i,tag:i.tags?.[0]??fe,parameters:a,searchText:`${t} ${e} ${i.summary??``} ${i.description??``} ${i.operationId??``}`.toLowerCase()})}return n}function ge(e=[],t=[]){let n=new Map;for(let r of[...e,...t])r?.name&&r?.in&&n.set(`${r.in}:${r.name}`,r);return[...n.values()]}function _e(e){let t=new Map;for(let n of e){let e=q(n.path),r=t.get(e);r||(r=new Map,t.set(e,r));let i=r.get(n.path);i||(i=[],r.set(n.path,i)),i.push(n)}return[...t.entries()].map(([e,t])=>{let n=[...t.entries()].map(([e,t])=>({path:e,operations:t}));return{resource:e,operationCount:n.reduce((e,t)=>e+t.operations.length,0),paths:n}})}function ve(e,t){let n=t.trim().toLowerCase();return!n||e.searchText.includes(n)}function ye(e,t){let n=[],r=new Set,i=(e,t)=>{if(!e)return;let i=e.replace(/\/+$/,``);r.has(i)||(r.add(i),n.push({url:e,label:t}))};i(t??void 0,`Studio`);for(let t of e?.servers??[])i(t?.url,t?.description||`Declared in spec`);return n}var be=`#/components/schemas/`;function J(e,t){if(!e||!t||!t.startsWith(be))return;let n=t.slice(21),r=e.components?.schemas;return r&&Object.hasOwn(r,n)?r[n]:void 0}function xe(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function Y(e){if(!e)return;let t=Object.keys(e).find(e=>e.includes(`json`))??Object.keys(e)[0];return t?e[t]?.schema:void 0}var Se=1e3;function X(e,t,n=new Set,r=0,i={remaining:Se}){if(!t||r>8||i.remaining<=0)return null;let a=t.$ref?J(e,t.$ref):t;if(!a||n.has(a))return{};if(i.remaining--,a.example!==void 0)return a.example;if(a.default!==void 0)return a.default;if(a.const!==void 0)return a.const;if(Array.isArray(a.enum)&&a.enum.length>0)return a.enum[0];let o=new Set(n).add(a),s=a.allOf??a.oneOf??a.anyOf;if(s?.length)return a.allOf?a.allOf.reduce((t,n)=>{let a=X(e,n,o,r+1,i);return a&&typeof a==`object`&&!Array.isArray(a)?{...t,...a}:t},{}):X(e,s[0],o,r+1,i);switch(Array.isArray(a.type)?a.type.find(e=>e!==`null`):a.type){case`object`:return Ce(e,a,o,r+1,i);case`array`:return[X(e,a.items,o,r+1,i)];case`string`:return we(a);case`integer`:case`number`:return 0;case`boolean`:return!1;case`null`:return null;default:return a.properties?Ce(e,a,o,r+1,i):null}}function Ce(e,t,n,r,i){let a={};for(let[o,s]of Object.entries(t.properties??{})){if(i.remaining<=0)break;a[o]=X(e,s,n,r,i)}return a}function we(e){switch(e.format){case`date-time`:case`Date`:return new Date().toISOString();case`date`:return new Date().toISOString().slice(0,10);case`uuid`:return`00000000-0000-0000-0000-000000000000`;default:return``}}function Z(e){if(!e)return`any`;if(e.$ref)return xe(e.$ref);if(e.allOf||e.oneOf||e.anyOf){let t=e.allOf??e.oneOf??e.anyOf??[],n=e.allOf?` & `:` | `;return t.map(e=>Z(e)).join(n)||`object`}let t=Array.isArray(e.type)?e.type.join(` | `):e.type;return t===`array`?`${Z(e.items)}[]`:e.format&&t?`${t} <${e.format}>`:t??(e.properties?`object`:`any`)}function Te(e,t){let n=[];return{path:e.replace(/\{([^}]+)\}/g,(e,r)=>{let i=t[r];return typeof i!=`string`||i===``?(n.push(r),`{${r}}`):encodeURIComponent(i)}),missing:n}}function Ee(e){let t=new Map(e.parameters.filter(e=>e.in===`path`).map(e=>[e.name,e]));return[...e.path.matchAll(/\{([^}]+)\}/g)].map(e=>e[1]).map(e=>t.get(e)??{name:e,in:`path`,required:!0,schema:{type:`string`}})}var De=6;function Oe({spec:e,schema:t,className:n}){return t?(0,V.jsx)(`div`,{className:s(`text-sm`,n),children:(0,V.jsx)(ke,{spec:e,schema:t,depth:0,seen:new Set})}):(0,V.jsx)(`p`,{className:s(`text-muted-foreground text-sm`,n),children:`No schema provided.`})}function ke({spec:e,schema:t,depth:n,seen:r,required:i}){let a=t;if(t.$ref){let i=J(e,t.$ref);if(!i)return(0,V.jsx)(Me,{label:xe(t.$ref),note:`(unresolved reference)`});if(r.has(i)||n>=De)return(0,V.jsx)(Me,{label:Z(t),note:`(nested)`});a=i}let o=Array.isArray(a.type)?a.type.find(e=>e!==`null`):a.type;if(o===`object`||a.properties){let i=Object.entries(a.properties??{}),o=new Set(a.required??[]);if(i.length===0)return(0,V.jsxs)(`p`,{className:`text-muted-foreground`,children:[Z(t),a.additionalProperties?` (open — any additional properties allowed)`:``]});let s=new Set(r).add(a);return(0,V.jsx)(`ul`,{className:`border-border/70 flex flex-col gap-2 border-l pl-3`,children:i.map(([t,r])=>(0,V.jsxs)(`li`,{children:[(0,V.jsx)(Ae,{name:t,schema:r,spec:e,required:o.has(t)}),(0,V.jsx)(je,{spec:e,schema:r,depth:n+1,seen:s})]},t))})}if(o===`array`){let t=new Set(r).add(a);return(0,V.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,V.jsxs)(`p`,{className:`text-muted-foreground`,children:[`array of `,Z(a.items)]}),a.items&&n<De&&(0,V.jsx)(ke,{spec:e,schema:a.items,depth:n+1,seen:t})]})}return(0,V.jsx)(Me,{label:Z(t),required:i,description:a.description,enumValues:a.enum})}function Ae({name:e,schema:t,spec:n,required:r}){let i=t.$ref?J(n,t.$ref)??t:t;return(0,V.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-0.5`,children:[(0,V.jsx)(`code`,{className:`text-foreground font-medium`,children:e}),(0,V.jsx)(`span`,{className:`text-muted-foreground font-mono text-xs`,children:Z(t)}),r&&(0,V.jsx)(`span`,{className:`text-red text-xs font-medium`,children:`required`}),i.description&&(0,V.jsx)(`span`,{className:`text-muted-foreground w-full text-xs`,children:i.description}),Array.isArray(i.enum)&&i.enum.length>0&&(0,V.jsxs)(`span`,{className:`text-muted-foreground w-full text-xs`,children:[`allowed: `,i.enum.map(e=>JSON.stringify(e)).join(`, `)]})]})}function je({spec:e,schema:t,depth:n,seen:r}){if(n>=De)return null;let i=t.$ref?J(e,t.$ref):t;if(!i||r.has(i))return null;let a=Array.isArray(i.type)?i.type.find(e=>e!==`null`):i.type,o=a===`object`||!!i.properties,s=i.items?.$ref?J(e,i.items.$ref):i.items,c=a===`array`&&!!s&&(s.type===`object`||!!s.properties);if(!o&&!c)return null;let l=c?i.items:i;return(0,V.jsx)(`div`,{className:`mt-1`,children:(0,V.jsx)(ke,{spec:e,schema:l,depth:n,seen:r})})}function Me({label:e,required:t,description:n,note:r,enumValues:i}){return(0,V.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-0.5`,children:[(0,V.jsx)(`span`,{className:`text-muted-foreground font-mono text-xs`,children:e}),r&&(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:r}),t&&(0,V.jsx)(`span`,{className:`text-red text-xs font-medium`,children:`required`}),n&&(0,V.jsx)(`span`,{className:`text-muted-foreground w-full text-xs`,children:n}),Array.isArray(i)&&i.length>0&&(0,V.jsxs)(`span`,{className:`text-muted-foreground w-full text-xs`,children:[`allowed: `,i.map(e=>JSON.stringify(e)).join(`, `)]})]})}var Ne=`text-muted-foreground border-border bg-muted`;function Pe(e){return!Number.isFinite(e)||e<=0?`text-red border-red/40 bg-red/10`:e<300?`text-green border-green/40 bg-green/10`:e<400?`text-blue border-blue/40 bg-blue/10`:e<500?`text-yellow border-yellow/40 bg-yellow/10`:`text-red border-red/40 bg-red/10`}function Fe({colorClass:e,children:t}){return(0,V.jsx)(`span`,{className:s(`rounded-md border px-2 py-0.5 font-mono text-xs font-bold`,e),children:t})}function Ie(e){return e.type===`basic`&&typeof e.username==`string`&&e.username!==``||e.type===`bearer`&&typeof e.token==`string`&&e.token!==``}function Le(e){return e===`post`||e===`put`||e===`patch`}function Re(e,t){return e?`${e.replace(/\/+$/,``)}/${t.replace(/^\/+/,``)}`:t}function ze(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n)}function Be(e){switch(e.type){case`basic`:return{Authorization:`Basic ${ze(`${e.username}:${e.password}`)}`};case`bearer`:return{Authorization:`Bearer ${e.token}`};default:return{}}}function Ve(e,t,n,r){let{path:i,missing:a}=Te(e.path,n.pathParams),o=new URLSearchParams;for(let[e,t]of Object.entries(n.queryParams))t!==``&&o.append(e,t);let s=o.toString(),c=Re(t,i)+(s?`?${s}`:``),l={Accept:`application/json`};for(let[e,t]of Object.entries(n.headerParams))t!==``&&(l[e]=t);Object.assign(l,Be(r));let u=Le(e.method)&&n.body.trim()!==``;return u&&(l[`Content-Type`]=`application/json`),{method:e.method,url:c,headers:l,body:u?n.body:void 0,missingPathParams:a}}async function He(e,t=()=>Date.now()){let n=t();try{let r=await fetch(e.url,{method:e.method.toUpperCase(),headers:e.headers,body:e.body,credentials:`include`}),{text:i,truncated:a}=await We(r),o=r.headers.get(`content-type`),s={};return r.headers.forEach((e,t)=>{s[t]=e}),{ok:r.ok,status:r.status,statusText:r.statusText,headers:s,body:Ge(i,o,a),contentType:o,durationMs:Math.round(t()-n)}}catch(e){return{ok:!1,status:0,statusText:``,headers:{},body:``,contentType:null,durationMs:Math.round(t()-n),networkError:e instanceof Error?e.message:String(e)}}}var Ue=512e3;async function We(e,t=Ue){let n=e.body?.getReader?.();if(!n){let n=await e.text();return n.length>t?{text:n.slice(0,t),truncated:!0}:{text:n,truncated:!1}}let r=new TextDecoder,i=``;try{for(;i.length<t;){let{done:e,value:t}=await n.read();if(e){i+=r.decode();break}i+=r.decode(t,{stream:!0})}}finally{await n.cancel().catch(()=>{})}return i.length>t?{text:i.slice(0,t),truncated:!0}:{text:i,truncated:!1}}function Ge(e,t,n=!1){return n||e.length>512e3?`${e.length>512e3?e.slice(0,Ue):e}\n\n… response truncated for display (first ${Ue} characters shown) …`:Ke(e,t)}function Ke(e,t){if(!e)return``;if(t&&!t.includes(`json`))return e;try{return JSON.stringify(JSON.parse(e),null,` `)}catch{return e}}function qe(e){let t=[],n=Object.entries(e.headers);if(t.push(`const response = await fetch(${JSON.stringify(e.url)}, {`),t.push(`\tmethod: ${JSON.stringify(e.method.toUpperCase())},`),t.push(` credentials: "include",`),n.length){t.push(` headers: {`);for(let[e,r]of n)t.push(`\t\t${JSON.stringify(e)}: ${JSON.stringify(r)},`);t.push(` },`)}if(e.body!==void 0){let n=e.body.replace(/\\/g,`\\\\`).replace(/`/g,"\\`").replace(/\$\{/g,"\\${");t.push(`\tbody: \`${n}\`,`)}return t.push(`});`),t.push(`const data = await response.json();`),t.push(`console.log(data);`),t.join(`
2
- `)}function Je(e,t){if(!Le(t.method)||!t.operation.requestBody)return``;let n=Y(t.operation.requestBody.content);return n?JSON.stringify(X(e,n),null,` `):``}function Ye({op:e,spec:t,baseURL:n,auth:r,authRequired:i,authorized:a,onOpenAuthorize:o}){let s=S(),l=Ee(e),u=e.parameters.filter(e=>e.in===`query`),d=e.parameters.filter(e=>e.in===`header`),[f,p]=(0,W.useState)({}),[m,h]=(0,W.useState)({}),[g,_]=(0,W.useState)({}),[v,y]=(0,W.useState)(()=>Je(t,e)),[b,x]=(0,W.useState)(null),[C,w]=(0,W.useState)(!1),T={pathParams:f,queryParams:m,headerParams:g,body:v},D=(0,W.useMemo)(()=>Ve(e,n??``,T,r),[e,n,r,f,m,g,v]),k=Le(e.method)&&!!e.operation.requestBody,A=[...D.missingPathParams,...u.filter(e=>e.required&&!m[e.name]?.trim()).map(e=>e.name),...d.filter(e=>e.required&&!g[e.name]?.trim()).map(e=>e.name),...k&&e.operation.requestBody?.required&&v.trim()===``?[`request body`]:[]],j=!!n&&A.length===0&&!C;async function M(){w(!0),x(null);let e=await He(D);x(e),w(!1)}return(0,V.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[i&&!a&&(0,V.jsxs)(`div`,{className:`border-border bg-muted/40 text-muted-foreground flex flex-wrap items-center gap-1.5 rounded-md border px-3 py-2 text-xs`,children:[(0,V.jsx)(`span`,{children:`This endpoint requires authorization.`}),(0,V.jsx)(`button`,{type:`button`,onClick:o,className:`text-foreground font-medium underline underline-offset-2`,children:`Authorize →`})]}),l.length>0&&(0,V.jsx)(Xe,{title:`Path parameters`,params:l,values:f,onChange:p}),u.length>0&&(0,V.jsx)(Xe,{title:`Query parameters`,params:u,values:m,onChange:h}),d.length>0&&(0,V.jsx)(Xe,{title:`Header parameters`,params:d,values:g,onChange:_}),k&&(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:`Request body`}),(0,V.jsx)(`div`,{className:`h-56 overflow-hidden rounded-md border`,children:(0,V.jsx)(O,{className:`h-full w-full`,language:`json-worker-free`,theme:s,value:v,onChange:e=>y(e??``),options:{minimap:{enabled:!1},automaticLayout:!0,scrollBeyondLastLine:!1,fontSize:12,lineNumbers:`off`,folding:!1}})})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,V.jsxs)(c,{variant:`submit`,onClick:M,disabled:!j,children:[(0,V.jsx)(E,{}),C?`Sending…`:`Send request`]}),!n&&(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:`The REST API URL couldn't be determined for this instance.`}),n&&A.length>0&&(0,V.jsxs)(`span`,{className:`text-muted-foreground text-xs`,children:[`Fill in: `,A.join(`, `)]})]}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:`Request`}),(0,V.jsxs)(`div`,{className:`bg-muted/60 flex items-center gap-2 overflow-x-auto rounded-md border px-3 py-2 font-mono text-xs`,children:[(0,V.jsx)(`span`,{className:`uppercase`,children:D.method}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:D.url})]})]}),b&&(0,V.jsx)(Ze,{result:b}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:`Code sample — fetch`}),(0,V.jsx)(G,{code:qe(D),label:`code sample`})]})]})}function Xe({title:e,params:t,values:n,onChange:r}){return(0,V.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:e}),(0,V.jsx)(`div`,{className:`flex flex-col gap-3`,children:t.map(e=>(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsxs)(F,{htmlFor:`param-${e.in}-${e.name}`,className:`flex items-baseline gap-2`,children:[(0,V.jsx)(`code`,{children:e.name}),e.required&&(0,V.jsx)(`span`,{className:`text-red text-xs font-medium`,children:`required`}),e.schema&&(0,V.jsx)(`span`,{className:`text-muted-foreground font-mono text-xs font-normal`,children:Array.isArray(e.schema.type)?e.schema.type.join(` | `):e.schema.type??`string`})]}),(0,V.jsx)(P,{id:`param-${e.in}-${e.name}`,value:n[e.name]??``,placeholder:e.description||e.name,onChange:t=>r({...n,[e.name]:t.target.value})})]},`${e.in}:${e.name}`))})]})}function Ze({result:e}){return(0,V.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:`Response`}),(0,V.jsx)(Fe,{colorClass:Pe(e.status),children:e.networkError?`Failed`:`${e.status} ${e.statusText}`.trim()}),(0,V.jsxs)(`span`,{className:`text-muted-foreground text-xs`,children:[e.durationMs,` ms`]})]}),e.networkError?(0,V.jsxs)(`div`,{className:`border-red/40 bg-red/10 text-foreground rounded-md border p-3 text-sm`,children:[(0,V.jsx)(`p`,{className:`text-red font-medium`,children:`The request could not be completed.`}),(0,V.jsx)(`p`,{className:`text-muted-foreground mt-1 text-xs`,children:e.networkError}),(0,V.jsx)(`p`,{className:`text-muted-foreground mt-2 text-xs`,children:`This is usually a CORS or connectivity issue — check that CORS is enabled for this origin (see the banner above) and that the instance is reachable.`})]}):(0,V.jsx)(G,{code:e.body||`(empty response body)`,label:`response body`})]})}function Qe(e){let t=Number(e);return Number.isFinite(t)?Pe(t):Ne}function $e({op:e,spec:t,baseURL:n,auth:r,authorized:i,onOpenAuthorize:a}){let[o]=re(e.path),s=pe(e.operation,t),l=e.operation.summary,u=e.operation.description;return(0,V.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,V.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(U,{method:e.method}),(0,V.jsx)(`code`,{className:`text-foreground text-base font-medium break-all`,children:e.path}),(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Copy path`,className:`size-7`,onClick:o,children:(0,V.jsx)(x,{className:`size-3.5`})}),e.operation.deprecated&&(0,V.jsx)(ne,{variant:`warning`,children:`Deprecated`}),s&&(0,V.jsxs)(`button`,{type:`button`,onClick:a,className:`border-border hover:bg-accent/60 inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs transition-colors`,children:[i?(0,V.jsx)(D,{className:`text-green size-3`}):(0,V.jsx)(D,{className:`text-muted-foreground size-3`}),i?`Credential set`:`Auth required — Authorize`]})]}),l&&(0,V.jsx)(`h2`,{className:`text-lg font-medium`,children:l}),u&&u!==l&&(0,V.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:u})]}),(0,V.jsxs)(z,{defaultValue:`docs`,className:`gap-4`,children:[(0,V.jsxs)(R,{children:[(0,V.jsx)(I,{value:`docs`,children:`Documentation`}),(0,V.jsx)(I,{value:`try`,children:`Try it out`})]}),(0,V.jsxs)(L,{value:`docs`,className:`flex flex-col gap-6`,children:[(0,V.jsx)(tt,{parameters:e.parameters}),(0,V.jsx)(nt,{op:e,spec:t}),(0,V.jsx)(rt,{responses:e.operation.responses,spec:t})]}),(0,V.jsx)(L,{value:`try`,children:(0,V.jsx)(Ye,{op:e,spec:t,baseURL:n,auth:r,authRequired:s,authorized:i,onOpenAuthorize:a})})]})]})}function et({children:e}){return(0,V.jsx)(`h3`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:e})}function tt({parameters:e}){return e.length===0?null:(0,V.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,V.jsx)(et,{children:`Parameters`}),(0,V.jsx)(`ul`,{className:`flex flex-col gap-3`,children:e.map(e=>(0,V.jsxs)(`li`,{className:`flex flex-col gap-0.5`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,V.jsx)(`code`,{className:`text-foreground font-medium`,children:e.name}),(0,V.jsx)(ne,{variant:`outline`,className:`text-[0.65rem]`,children:e.in}),(0,V.jsx)(`span`,{className:`text-muted-foreground font-mono text-xs`,children:Array.isArray(e.schema?.type)?e.schema?.type.join(` | `):e.schema?.type??`string`}),e.required&&(0,V.jsx)(`span`,{className:`text-red text-xs font-medium`,children:`required`})]}),e.description&&(0,V.jsx)(`p`,{className:`text-muted-foreground text-xs`,children:e.description})]},`${e.in}:${e.name}`))})]})}function nt({op:e,spec:t}){let n=e.operation.requestBody,r=n?Y(n.content):void 0,i=(0,W.useMemo)(()=>r?JSON.stringify(X(t,r),null,` `):``,[t,r]);return n?(0,V.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,V.jsxs)(et,{children:[`Request body`,n.required?` (required)`:``]}),n.description&&(0,V.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:n.description}),(0,V.jsx)(Oe,{spec:t,schema:r}),i&&i!==`{}`&&i!==`null`&&(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:`Example`}),(0,V.jsx)(G,{code:i,label:`example request body`,maxHeightClassName:`max-h-72`})]})]}):null}function rt({responses:e,spec:t}){let n=Object.entries(e??{});return n.length===0?null:(0,V.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,V.jsx)(et,{children:`Responses`}),(0,V.jsx)(`div`,{className:`flex flex-col gap-4`,children:n.map(([e,n])=>{let r=Y(n.content);return(0,V.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,V.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,V.jsx)(Fe,{colorClass:Qe(e),children:e}),n.description&&(0,V.jsx)(`span`,{className:`text-muted-foreground text-sm`,children:n.description})]}),r&&(0,V.jsx)(`div`,{className:`pl-1`,children:(0,V.jsx)(Oe,{spec:t,schema:r})})]},e)})})]})}function it(e){let t=Object.values(e?.components?.securitySchemes??{}),n=!1,r=!1;for(let e of t){let t=typeof e?.scheme==`string`?e.scheme.toLowerCase():void 0;t===`basic`&&(n=!0),(t===`bearer`||e?.type===`oauth2`)&&(r=!0)}return!n&&!r?{basic:!0,bearer:!0}:{basic:n,bearer:r}}function at({spec:e,method:t,auth:n,authorized:r,tab:i,onTabChange:a,onSelectMethod:o,onApplyBasic:s,onApplyBearer:l,onClearAuth:u,login:d,serverOptions:f,activeServer:p,onServerChange:m,onCopyServer:h}){let g=it(e);return(0,V.jsxs)(`div`,{className:`flex max-w-2xl flex-col gap-8`,children:[(0,V.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`h2`,{className:`text-lg font-medium`,children:`Server`}),(0,V.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`The base URL that "Try it out" requests target.`})]}),(0,V.jsx)(ft,{options:f,value:p,onChange:m,onCopy:h})]}),(0,V.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[r?(0,V.jsx)(D,{className:`text-green size-4`}):(0,V.jsx)(B,{className:`text-muted-foreground size-4`}),(0,V.jsx)(`h2`,{className:`text-lg font-medium`,children:`Authorization`})]}),(0,V.jsxs)(z,{value:i,onValueChange:e=>a(e),className:`gap-4`,children:[(0,V.jsxs)(R,{children:[(0,V.jsx)(I,{value:`docs`,children:`Documentation`}),(0,V.jsx)(I,{value:`try`,children:`Try it out`})]}),(0,V.jsx)(L,{value:`docs`,children:(0,V.jsx)(ot,{available:g})}),(0,V.jsxs)(L,{value:`try`,className:`flex flex-col gap-4`,children:[(0,V.jsx)(st,{method:t,available:g,onSelect:o}),r&&(0,V.jsxs)(`div`,{className:`border-green/40 bg-green/10 text-foreground flex flex-wrap items-center gap-2 rounded-md border p-3 text-sm`,children:[(0,V.jsx)(D,{className:`text-green size-4`}),(0,V.jsx)(`span`,{className:`flex-1`,children:`Credential set — "Try it out" requests will send it.`}),(0,V.jsx)(c,{type:`button`,variant:`outline`,size:`sm`,onClick:u,children:`Clear`})]}),t===`login`&&(0,V.jsx)(ct,{login:d,authorized:r},d.revocation),t===`basic`&&(0,V.jsx)(lt,{auth:n,onApply:s}),t===`bearer`&&(0,V.jsx)(ut,{auth:n,onApply:l}),t===`cookie`&&(0,V.jsx)(dt,{})]})]})]})]})}function ot({available:e}){return(0,V.jsxs)(`div`,{className:`text-muted-foreground flex max-w-prose flex-col gap-4 text-sm`,children:[(0,V.jsx)(`p`,{children:`How "Try it out" requests authenticate. Your selection is saved in this browser tab only (session storage) and cleared when the tab closes.`}),(0,V.jsxs)(`dl`,{className:`flex flex-col gap-3`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{className:`text-foreground font-medium`,children:`Log in (recommended)`}),(0,V.jsxs)(`dd`,{children:[`Exchanges your current Studio session — or a username and password — for a short-lived Bearer token, sent as an `,(0,V.jsx)(`code`,{children:`Authorization`}),` `,`header. This works even when the instance is on a different site than Studio and cookies aren't sent. Only the minted token is stored, never your password.`]})]}),e.basic&&(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{className:`text-foreground font-medium`,children:`Basic`}),(0,V.jsxs)(`dd`,{children:[`Sends your username and password as an `,(0,V.jsx)(`code`,{children:`Authorization: Basic`}),` `,`header on every request. The username and password are stored in this browser tab until it closes.`]})]}),e.bearer&&(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{className:`text-foreground font-medium`,children:`Bearer token`}),(0,V.jsxs)(`dd`,{children:[`Paste an existing operation token; it's sent as an `,(0,V.jsx)(`code`,{children:`Authorization: Bearer`}),` header.`]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`dt`,{className:`text-foreground font-medium`,children:`Cookie`}),(0,V.jsxs)(`dd`,{children:[`Relies on your browser's instance session cookie (`,(0,V.jsx)(`code`,{children:`credentials: "include"`}),`). Whether the cookie is sent depends on how the instance is deployed relative to Studio (same site, cookie attributes, HTTPS), so it often won't work in a deployed environment — prefer Log in there.`]})]})]})]})}function st({method:e,available:t,onSelect:n}){return(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(Q,{active:e===`login`,onClick:()=>n(`login`),children:`Log in`}),t.basic&&(0,V.jsx)(Q,{active:e===`basic`,onClick:()=>n(`basic`),children:`Basic`}),t.bearer&&(0,V.jsx)(Q,{active:e===`bearer`,onClick:()=>n(`bearer`),children:`Bearer token`}),(0,V.jsx)(Q,{active:e===`cookie`,onClick:()=>n(`cookie`),children:`Cookie`})]})}function ct({login:e,authorized:t}){let[n,r]=(0,W.useState)(``),[i,a]=(0,W.useState)(``),o=e.status===`pending`,s=(0,W.useRef)(0),l=e=>{let t=s.current;e().then(e=>{e===`applied`&&s.current===t&&(r(``),a(``))})};return(0,V.jsxs)(`div`,{className:`flex max-w-sm flex-col gap-4`,children:[(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(c,{type:`button`,variant:`submit`,disabled:o,onClick:()=>l(e.runSession),children:o?`Authorizing…`:`Authorize with your current session`}),(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:`Mints a token as the user you're signed in to Studio as — no credentials to retype.`})]}),e.runCredentials&&(0,V.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:t=>{t.preventDefault();let r=e.runCredentials;r&&l(()=>r({username:n,password:i}))},children:[(0,V.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:`Or use different credentials`}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(F,{htmlFor:`api-login-username`,children:`Username`}),(0,V.jsx)(P,{id:`api-login-username`,value:n,autoComplete:`username`,onChange:e=>{s.current++,r(e.target.value)}})]}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(F,{htmlFor:`api-login-password`,children:`Password`}),(0,V.jsx)(P,{id:`api-login-password`,type:`password`,value:i,autoComplete:`current-password`,onChange:e=>{s.current++,a(e.target.value)}})]}),(0,V.jsx)(c,{type:`submit`,variant:`outline`,disabled:o||!n||!i,children:o?`Authorizing…`:`Authorize`})]}),e.status===`error`&&e.error&&(0,V.jsx)(`p`,{className:`text-red text-sm`,children:e.error}),!t&&e.status===`idle`&&(0,V.jsx)(`p`,{className:`text-muted-foreground text-xs`,children:`Not signed in — authenticated requests will be rejected.`})]})}function lt({auth:e,onApply:t}){let[n,r]=(0,W.useState)(e.type===`basic`?e.username:``),[i,a]=(0,W.useState)(e.type===`basic`?e.password:``);return(0,W.useEffect)(()=>{r(e.type===`basic`?e.username:``),a(e.type===`basic`?e.password:``)},[e]),(0,V.jsxs)(`form`,{className:`flex max-w-sm flex-col gap-3`,onSubmit:e=>{e.preventDefault(),t(n,i)},children:[(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(F,{htmlFor:`api-auth-username`,children:`Username`}),(0,V.jsx)(P,{id:`api-auth-username`,value:n,autoComplete:`username`,onChange:e=>r(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,V.jsx)(F,{htmlFor:`api-auth-password`,children:`Password`}),(0,V.jsx)(P,{id:`api-auth-password`,type:`password`,value:i,autoComplete:`current-password`,onChange:e=>a(e.target.value)})]}),(0,V.jsx)(c,{type:`submit`,variant:`outline`,disabled:!n,children:`Authorize`})]})}function ut({auth:e,onApply:t}){let[n,r]=(0,W.useState)(e.type===`bearer`?e.token:``);return(0,W.useEffect)(()=>{r(e.type===`bearer`?e.token:``)},[e]),(0,V.jsxs)(`form`,{className:`flex max-w-sm flex-col gap-1.5`,onSubmit:e=>{e.preventDefault(),t(n)},children:[(0,V.jsx)(F,{htmlFor:`api-auth-token`,children:`Token`}),(0,V.jsx)(P,{id:`api-auth-token`,value:n,placeholder:`eyJhbGciOi…`,onChange:e=>r(e.target.value)}),(0,V.jsx)(c,{type:`submit`,variant:`outline`,className:`mt-2`,disabled:!n,children:`Authorize`})]})}function dt(){return(0,V.jsxs)(`p`,{className:`text-muted-foreground max-w-prose text-sm`,children:[`Requests are sent with your browser's instance session cookie (`,(0,V.jsx)(`code`,{children:`credentials: "include"`}),`). Whether it's sent depends on how the instance is deployed relative to Studio, so it often won't work in a deployed environment — use Log in if requests come back unauthorized.`]})}function ft({options:e,value:t,onChange:n,onCopy:r}){return e.length===0?(0,V.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`No server URL could be determined for this instance.`}):e.length===1?(0,V.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,V.jsx)(`span`,{className:`font-mono break-all`,children:e[0].url}),(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Copy server URL`,className:`size-6`,onClick:r,children:(0,V.jsx)(x,{className:`size-3`})})]}):(0,V.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,V.jsxs)(T,{value:t,onValueChange:n,children:[(0,V.jsx)(ie,{className:`max-w-md min-w-0 flex-1`,"aria-label":`Server`,children:(0,V.jsx)(ee,{})}),(0,V.jsx)(y,{children:e.map(e=>(0,V.jsxs)(A,{value:e.url,children:[(0,V.jsx)(`span`,{className:`font-mono text-xs`,children:e.url}),(0,V.jsxs)(`span`,{className:`text-muted-foreground text-xs`,children:[`— `,e.label]})]},e.url))})]}),(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Copy server URL`,className:`size-6`,onClick:r,children:(0,V.jsx)(x,{className:`size-3`})})]})}function Q({active:e,onClick:t,children:n}){return(0,V.jsx)(`button`,{type:`button`,onClick:t,className:s(`rounded-md border px-3 py-1.5 text-sm transition-colors`,e?`border-primary bg-primary/10 text-foreground`:`border-border text-muted-foreground hover:bg-accent/60`),children:n})}var pt=10;function mt(e){return Math.max(240,Math.floor(e/2))}function $(e,t){return Math.round(Math.min(Math.max(Number.isFinite(e)?e:320,240),mt(t)))}function ht(){let[e,t]=v(_.ApiExplorerSidebarWidth,320),[n,r]=(0,W.useState)(!1),[i,a]=(0,W.useState)(()=>$(e,window.innerWidth)),o=(0,W.useRef)(i);o.current=i;let s=(0,W.useRef)(null);(0,W.useEffect)(()=>{n||a($(e,window.innerWidth))},[e,n]),(0,W.useEffect)(()=>{let t=()=>{n||a($(e,window.innerWidth))};return window.addEventListener(`resize`,t),()=>window.removeEventListener(`resize`,t)},[e,n]);let c=(0,W.useCallback)(e=>{e.preventDefault(),s.current={startX:e.clientX,startWidth:o.current},r(!0)},[]);return(0,W.useEffect)(()=>{if(!n)return;let e=e=>{let t=s.current;t&&a($(t.startWidth+(e.clientX-t.startX),window.innerWidth))},i=()=>{r(!1),t(o.current)},c=document.body.style.userSelect;return document.body.style.userSelect=`none`,window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,i),()=>{document.body.style.userSelect=c,window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,i)}},[n,t]),{width:i,isResizing:n,startResizing:c,handleKeyDown:(0,W.useCallback)(e=>{e.key===`ArrowLeft`?(e.preventDefault(),t(e=>$(e-pt,window.innerWidth))):e.key===`ArrowRight`&&(e.preventDefault(),t(e=>$(e+pt,window.innerWidth)))},[t])}}var gt={type:`cookie`};function _t({spec:e,baseURL:t,entityId:r,onSessionMint:a,onCredentialMint:c}){let l=(0,W.useMemo)(()=>he(e),[e]),u=(0,W.useMemo)(()=>ye(e,t),[e,t]),[d,f]=(0,W.useState)(``),[p,m]=(0,W.useState)(`operation`),[h,g]=(0,W.useState)(`docs`),[_,v]=(0,W.useState)(()=>l[0]?.id),y=e=>{g(e),m(`settings`)},[b,x]=(0,W.useState)(()=>o(r)),S=e=>{n(r,e),x(t=>({...t,...e}))},C=b.method??`login`,w=b.auth??{type:`cookie`},T=u.find(e=>e.url===b.server)?.url??u[0]?.url??t,E=(0,W.useRef)(0),D=(0,W.useRef)(!0);(0,W.useEffect)(()=>(D.current=!0,()=>{D.current=!1,E.current++}),[]);let[O,k]=(0,W.useState)(`idle`),[A,j]=(0,W.useState)(null),[M,ee]=(0,W.useState)(0),[te,N]=(0,W.useState)(()=>i.getExplorerAuthEpoch(r));(0,W.useEffect)(()=>{let e=i.onExplorerAuthInvalidated(r,()=>{E.current++,x(o(r)),k(`idle`),j(null),N(i.getExplorerAuthEpoch(r)),ee(e=>e+1)});return N(i.getExplorerAuthEpoch(r)),e},[r]);let ie=async e=>{let n=++E.current,a=i.getExplorerAuthEpoch(r);k(`pending`),j(null);try{let o=await e();return!D.current||n!==E.current?`discarded`:i.getExplorerAuthEpoch(r)===a?typeof o!=`string`||o===``?(j(`The instance did not return a usable token.`),k(`error`),`failed`):(S({method:`login`,auth:{type:`bearer`,token:o},authServer:t??void 0,authGeneration:i.getExplorerAuthEpoch(r)}),k(`idle`),`applied`):(k(`idle`),`discarded`)}catch(e){return!D.current||n!==E.current?`discarded`:(j(e instanceof Error?e.message:`Log in failed.`),k(`error`),`failed`)}},ae={status:O,error:A,revocation:M,runSession:()=>ie(a),runCredentials:c?e=>ie(()=>c(e)):null},P=e=>{E.current++,e===`cookie`?S({method:`cookie`,auth:{type:`cookie`},authServer:void 0}):e===`basic`?S({method:`basic`,auth:w.type===`basic`?w:{type:`basic`,username:``,password:``}}):e===`bearer`?S({method:`bearer`,auth:w.type===`bearer`?w:{type:`bearer`,token:``}}):C===`login`&&w.type===`bearer`?S({method:`login`}):S({method:`login`,auth:{type:`cookie`},authServer:void 0}),k(`idle`),j(null)},F=(e,t)=>{E.current++,S({method:`basic`,auth:{type:`basic`,username:e,password:t},authServer:T??void 0,authGeneration:i.getExplorerAuthEpoch(r)})},oe=e=>{E.current++,S({method:`bearer`,auth:{type:`bearer`,token:e},authServer:T??void 0,authGeneration:i.getExplorerAuthEpoch(r)})},se=()=>{E.current++,k(`idle`),j(null),S({auth:C===`basic`?{type:`basic`,username:``,password:``}:C===`bearer`?{type:`bearer`,token:``}:{type:`cookie`},authServer:void 0})},ce=e=>S({server:e}),[I]=re(T??``),L=b.authServer!=null&&b.authServer===T,R=b.authGeneration===te,z=Ie(w)&&L&&R?w:gt,B=Ie(z),{width:H,isResizing:U,startResizing:le,handleKeyDown:de}=ht(),G={"--api-sidebar-width":`${H}px`},K=(0,W.useMemo)(()=>l.filter(e=>ve(e,d)),[l,d]),fe=(0,W.useMemo)(()=>_e(K),[K]),q=l.find(e=>e.id===_)??l[0];function pe(e){v(e),m(`operation`)}return(0,V.jsxs)(`div`,{className:`flex flex-col gap-5 lg:min-h-0 lg:flex-1`,children:[(0,V.jsxs)(`header`,{className:`flex min-w-0 flex-col lg:shrink-0`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(`h1`,{className:`font-radioGrotesk truncate text-2xl`,children:e?.info?.title??`API Explorer`}),e?.info?.version&&(0,V.jsxs)(ne,{variant:`secondary`,children:[`v`,e.info.version]})]}),e?.info?.description&&(0,V.jsx)(`p`,{className:`text-muted-foreground mt-1 text-sm`,children:e.info.description})]}),l.length===0?(0,V.jsx)(`div`,{className:`border-border text-muted-foreground rounded-md border border-dashed p-8 text-center text-sm`,children:`This spec doesn't define any endpoints yet.`}):(0,V.jsxs)(`div`,{className:`flex flex-col gap-6 lg:min-h-0 lg:flex-1 lg:flex-row lg:items-stretch`,children:[(0,V.jsxs)(`aside`,{style:G,className:`relative w-full shrink-0 overflow-y-clip lg:h-full lg:min-h-0 lg:w-[var(--api-sidebar-width)]`,children:[(0,V.jsx)(ue,{tree:fe,totalCount:l.length,filteredCount:K.length,isFiltering:d.trim()!==``,selectedId:p===`operation`?q?.id:void 0,onSelect:pe,filter:d,onFilterChange:f,method:C,authorized:B,settingsActive:p===`settings`,onOpenSettings:()=>y(`docs`)}),(0,V.jsx)(`div`,{role:`separator`,tabIndex:0,"aria-orientation":`vertical`,"aria-label":`Resize sidebar`,"aria-valuenow":H,"aria-valuemin":240,"aria-valuemax":mt(window.innerWidth),onMouseDown:le,onKeyDown:de,className:`group absolute top-0 right-0 bottom-0 z-40 hidden w-4 translate-x-1/2 cursor-col-resize outline-none lg:block`,children:(0,V.jsx)(`div`,{className:s(`absolute inset-y-0 left-1/2 w-1 -translate-x-1/2 transition-colors`,`group-hover:bg-violet-400/60 dark:group-hover:bg-violet-500/60 group-focus-visible:bg-violet-500/80`,U&&`bg-violet-400/60 dark:bg-violet-500/60`)})})]}),(0,V.jsx)(`main`,{className:`min-w-0 flex-1 lg:min-h-0 lg:overflow-y-auto lg:overscroll-contain lg:pb-6`,children:p===`settings`?(0,V.jsx)(at,{spec:e,method:C,auth:w,authorized:B,tab:h,onTabChange:g,onSelectMethod:P,onApplyBasic:F,onApplyBearer:oe,onClearAuth:se,login:ae,serverOptions:u,activeServer:T??void 0,onServerChange:ce,onCopyServer:I}):q?(0,V.jsx)($e,{op:q,spec:e,baseURL:T??null,auth:z,authorized:B,onOpenAuthorize:()=>y(`try`)},q.id):(0,V.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`Select an endpoint to see its documentation.`})})]})]})}function vt({entityId:e,instanceClient:t}){return l({queryKey:[`OpenAPI`,e],queryFn:async()=>{let{data:e}=await t.get(`/api/openapi/rest`);return e}})}function yt(){let{instanceId:e,clusterId:n}=u({strict:!1}),i=b(),{data:o,isLoading:s}=f(k(i)),{data:l,isLoading:d}=f(se(i)),p=ce(),{data:m,isLoading:h,error:g}=f(vt(i)),_=i.instanceClient.defaults.baseURL,v=(0,W.useCallback)(async()=>(await a({instanceClient:i.instanceClient})).operationToken,[i.instanceClient]),y=(0,W.useMemo)(()=>r(_)?e=>t({operationsUrl:_,...e}):null,[_]),x=o?.http,S=``,w=x?.cors===!1,T=x?.corsAccessList?.length!==void 0&&!x.corsAccessList.includes(`*`)&&!x.corsAccessList.includes(`null`)&&!x.corsAccessList.includes(window.location.origin);w?S=`This ${n&&!e?`cluster`:`instance`} has CORS disabled currently, so you won't be able to execute API requests from the browser.`:T&&(S=`This ${n&&!e?`cluster`:`instance`} has CORS enabled, but ${window.location.origin} is not allowed, so you won't be able to execute API requests from the browser.`);let{onConfigUpdate:E,isPending:D}=M(),O=(0,W.useCallback)(()=>{E({...w?{http_cors:!0}:{},...T?{http_corsAccessList:[...x?.corsAccessList??[],window.location.origin]}:{}})},[w,x?.corsAccessList,T,E]);if(s||d||h)return(0,V.jsx)(C,{centered:!0,text:`Looking up your instance configuration, one moment.`});if(g){let e;return e=l?.version&&!ae(`4.7.0-beta.7`,l?.version)?`API Docs are only available starting in version '4.7.0-beta.7' of Harper, please update your version ${l.version}!`:`We weren't able to look up your docs. Please check the Network tab of your developer tools to see why the docs were not accessible to Studio.`,(0,V.jsx)(N,{title:`API Docs Unavailable`,error:{message:e},showReturnToHome:!1})}return(0,V.jsxs)(`div`,{className:`flex flex-col px-4 pt-6 pb-12 md:px-8 lg:h-[calc(100vh-(--spacing(32)))] lg:pb-0`,children:[S&&(0,V.jsx)(N,{title:`CORS Disabled: HTTP API Not Accessible`,className:`mt-0 mb-6 shrink-0 border-yellow text-yellow`,error:{message:S},showReturnToHome:!1,children:(0,V.jsxs)(c,{type:`button`,disabled:D,variant:`warning`,onClick:O,children:[(0,V.jsx)(oe,{}),D?`Enabling CORS...`:`Enable CORS for ${window.location.origin}`]})}),(0,V.jsx)(_t,{spec:m,baseURL:p,entityId:i.entityId,onSessionMint:v,onCredentialMint:y},i.entityId)]})}var bt=d(`/apis`)({component:yt});export{bt as route};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./button-DhiX-njv.js";import{H as r,I as i}from"./vendor-tanstack-BiFWSB3W.js";import{a}from"./vendor-datadog-BRv-mOv1.js";import{r as o}from"./vendor-react-Dyj4O3HE.js";import{a as s,i as c,n as l,o as u,r as d,t as f}from"./dialog-CBf0Mr1d.js";import{$t as p,Bn as m,Cr as h,Fn as g,Hn as _,Ln as v,Qt as y,Rn as b,Un as x,en as S,jt as C,kt as w,nn as T,qn as E,tn as D,ur as O,vn as k,xn as A,xr as j,zt as M}from"./index-aSt5tY-L.js";import{a as N,c as P,i as F,n as I,o as L,r as R,s as z,t as B}from"./alertDialog-DIHt7Z0r.js";function V(){let e=r();return i({mutationFn:async e=>{let{data:n}=await t.post(`/SystemStatus/`,e);return n},onSuccess:()=>e.invalidateQueries({queryKey:v})})}function H(){let e=r();return i({mutationFn:async({id:e,draft:n})=>{await t.patch(`/SystemStatus/${e}`,n)},onSuccess:()=>e.invalidateQueries({queryKey:v})})}function U(){let e=r();return i({mutationFn:async e=>{await t.delete(`/SystemStatus/${e}`)},onSuccess:()=>e.invalidateQueries({queryKey:v})})}var W=e(a(),1),G=o(),K=[{value:`error`,label:`Error / Outage`},{value:`warning`,label:`Warning`},{value:`maintenance`,label:`Maintenance`},{value:`info`,label:`Info`}];function q(e){let t=x(e);if(t===null)return``;let n=new Date(t),r=e=>String(e).padStart(2,`0`);return`${n.getFullYear()}-${r(n.getMonth()+1)}-${r(n.getDate())}T${r(n.getHours())}:${r(n.getMinutes())}`}function J(e){if(!e)return null;let t=Date.parse(e);return Number.isNaN(t)?null:new Date(t).toISOString()}function Y(e){let t=x(e.startAt),n=x(e.endAt);if(t===null&&n===null)return`Always`;let r=e=>e===null?`—`:new Date(e).toLocaleString();return`${r(t)} → ${r(n)}`}function X(){let{data:e,isLoading:t}=g(),[r,i]=(0,W.useState)(!1),[a,o]=(0,W.useState)(null),[s,c]=(0,W.useState)(null),l=U(),u=(0,W.useCallback)(()=>{o(null),i(!0)},[]),d=(0,W.useCallback)(e=>{o(e),i(!0)},[]),f=(0,W.useMemo)(()=>Z({openEdit:d,onDelete:c}),[d]);return(0,G.jsxs)(`div`,{className:`max-w-5xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{className:`text-2xl font-light`,children:`Notifications`}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`System-wide notices shown to all users in the notification center. Times are stored in UTC.`})]}),(0,G.jsxs)(n,{variant:`submit`,onClick:u,className:`shrink-0`,children:[(0,G.jsx)(j,{}),`New notification`]})]}),(0,G.jsx)(`div`,{className:`mt-6`,children:t?(0,G.jsx)(M,{className:`h-40 w-full`}):(0,G.jsx)(C,{columns:f,data:e??[]})}),(0,G.jsx)(Q,{open:r,onOpenChange:i,editing:a}),(0,G.jsx)(B,{open:!!s,onOpenChange:e=>!e&&c(null),children:(0,G.jsxs)(F,{children:[(0,G.jsxs)(z,{children:[(0,G.jsx)(P,{children:`Delete notification?`}),(0,G.jsx)(N,{children:`This removes it for everyone immediately. This can't be undone.`})]}),(0,G.jsxs)(L,{children:[(0,G.jsx)(R,{children:`Cancel`}),(0,G.jsx)(I,{disabled:l.isPending,onClick:e=>{e.preventDefault(),s&&l.mutate(s.id,{onSuccess:()=>c(null)})},children:l.isPending?`Deleting…`:`Delete`})]})]})})]})}function Z({openEdit:e,onDelete:t}){return[{header:`Type`,accessorKey:`type`,size:12,cell:({row:e})=>{let{label:t,badgeVariant:n}=m(e.original.type);return(0,G.jsx)(E,{variant:n,children:e.original.type||t})}},{header:`Message`,accessorKey:`message`,size:40,cell:({row:e})=>(0,G.jsx)(`span`,{className:`line-clamp-2 break-words`,children:e.original.message})},{header:`Active window (local)`,size:28,cell:({row:e})=>(0,G.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:Y(e.original)})},{header:`Link`,size:8,cell:({row:e})=>e.original.url?(0,G.jsx)(b,{url:e.original.url,className:`text-sm text-primary hover:underline dark:text-white`}):(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},{header:``,id:`actions`,size:12,cell:({row:r})=>(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(n,{variant:`ghost`,size:`icon`,"aria-label":`Edit`,onClick:()=>e(r.original),children:(0,G.jsx)(h,{})}),(0,G.jsx)(n,{variant:`destructiveGhost`,size:`icon`,"aria-label":`Delete`,onClick:()=>t(r.original),children:(0,G.jsx)(O,{})})]})}]}function Q({open:e,onOpenChange:t,editing:r}){let i=V(),a=H(),o=i.isPending||a.isPending,[m,h]=(0,W.useState)(`error`),[g,v]=(0,W.useState)(``),[b,x]=(0,W.useState)(``),[C,E]=(0,W.useState)(``),[O,j]=(0,W.useState)(``),[M,N]=(0,W.useState)(null);return(0,W.useEffect)(()=>{e&&(h(r?.type??`error`),v(r?.message??``),x(r?.url??``),E(q(r?.startAt)),j(q(r?.endAt)),N(null))},[e,r]),(0,G.jsx)(f,{open:e,onOpenChange:t,children:(0,G.jsxs)(l,{children:[(0,G.jsxs)(s,{children:[(0,G.jsx)(u,{children:r?`Edit notification`:`New notification`}),(0,G.jsx)(d,{children:`Shown to all users. Leave start/end empty for an open-ended window.`})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(A,{htmlFor:`notification-type`,children:`Type`}),(0,G.jsxs)(y,{value:m,onValueChange:h,children:[(0,G.jsx)(D,{id:`notification-type`,className:`w-full`,children:(0,G.jsx)(T,{})}),(0,G.jsx)(p,{children:K.map(e=>(0,G.jsx)(S,{value:e.value,children:e.label},e.value))})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(A,{htmlFor:`notification-message`,children:`Message`}),(0,G.jsx)(w,{id:`notification-message`,rows:3,value:g,onChange:e=>v(e.target.value),placeholder:`The Fabric control plane will be undergoing maintenance…`})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(A,{htmlFor:`notification-url`,children:`Link (optional)`}),(0,G.jsx)(k,{id:`notification-url`,value:b,onChange:e=>x(e.target.value),placeholder:`https://status.harper.io or /organizations`}),(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`An absolute URL opens in a new tab; a path like `,(0,G.jsx)(`code`,{children:`/organizations`}),` links inside Studio.`]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(A,{htmlFor:`notification-start`,children:`Start (local time)`}),(0,G.jsx)(k,{id:`notification-start`,type:`datetime-local`,value:C,onChange:e=>E(e.target.value)})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(A,{htmlFor:`notification-end`,children:`End (local time)`}),(0,G.jsx)(k,{id:`notification-end`,type:`datetime-local`,value:O,onChange:e=>j(e.target.value)})]})]}),M&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:M})]}),(0,G.jsxs)(c,{children:[(0,G.jsx)(n,{variant:`ghostOutline`,onClick:()=>t(!1),disabled:o,children:`Cancel`}),(0,G.jsx)(n,{variant:`submit`,onClick:()=>{let e=g.trim();if(!e){N(`Message is required.`);return}let n=J(C),o=J(O);if(n&&o&&Date.parse(o)<=Date.parse(n)){N(`End time must be after start time.`);return}let s=b.trim();if(s&&!_(s)){N(`Link must be an http(s) URL, a mailto: address, or a path starting with “/”.`);return}let c={type:m,message:e,url:s||null,startAt:n,endAt:o},l=()=>t(!1);r?a.mutate({id:r.id,draft:c},{onSuccess:l}):i.mutate(c,{onSuccess:l})},disabled:o,children:o?`Saving…`:r?`Save changes`:`Create`})]})]})})}export{X as NotificationsAdminIndex};
@@ -1 +0,0 @@
1
- import"./chunk-FOHPRMQF-DHwB1DNv.js";import{m as e}from"./mermaid-parser.core-Ck-fC8b7.js";export{e as createRailroadAbnfServices};
@@ -1 +0,0 @@
1
- import"./chunk-FOHPRMQF-DHwB1DNv.js";import{f as e}from"./mermaid-parser.core-Ck-fC8b7.js";export{e as createRailroadEbnfServices};
@@ -1 +0,0 @@
1
- import"./chunk-FOHPRMQF-DHwB1DNv.js";import{u as e}from"./mermaid-parser.core-Ck-fC8b7.js";export{e as createRailroadPegServices};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-CMc7m_Ut.js";import"./chunk-DU6HZSFF-9kAOOmI6.js";import"./chunk-75Z2AOVW-BT8tVmks.js";import"./chunk-PWAF6VOD-2zB6IW9i.js";import"./chunk-GMAD6QVW-BNyXpoQO.js";import"./chunk-P2QGCYS3-DmIFY4d7.js";import"./chunk-TEH6E4GO-P87k5mNi.js";import"./chunk-OBVCFTLP-D4wWOqDQ.js";import"./chunk-R7TYR2AO-Irip67yr.js";import"./chunk-F27PBJKO-BW7ao8AY.js";import"./chunk-XXDRQBXY-BoGZu3HH.js";import"./chunk-POPQ4Y6H-BPrvMyKz.js";import"./chunk-JQ64N6SF-Cyz1IeLf.js";import{i as t,n,r,t as i}from"./chunk-G27WJ6UU-COyLMcgK.js";import"./mermaid.core-CP8aNNYm.js";var a={parser:n,get db(){return new i(2)},renderer:r,styles:t,init:e(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};