@harperfast/harper 5.2.13 → 5.3.0-beta.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 (655) hide show
  1. package/agent/mcpTools.ts +1 -1
  2. package/agent/session.ts +25 -14
  3. package/bin/cliOperations.ts +58 -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 +120 -4
  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 +3436 -242
  14. package/components/ApplicationScope.ts +8 -0
  15. package/components/EntryHandler.ts +59 -39
  16. package/components/OptionsWatcher.ts +440 -98
  17. package/components/RuntimeModuleTracker.ts +38 -7
  18. package/components/Scope.ts +56 -15
  19. package/components/awaitRestart.ts +84 -0
  20. package/components/componentLoader.ts +381 -32
  21. package/components/componentPreparationLock.ts +16 -5
  22. package/components/deploymentOperations.ts +4 -1
  23. package/components/deploymentRecorder.ts +9 -2
  24. package/components/mcp/adapters/harperHttp.ts +4 -0
  25. package/components/mcp/listChanged.ts +4 -0
  26. package/components/mcp/toolRegistry.ts +2 -0
  27. package/components/mcp/tools/operations.ts +9 -0
  28. package/components/mcp/tools/schemas/operationDescriptions.ts +2 -2
  29. package/components/operations.js +537 -113
  30. package/components/operationsValidation.js +98 -3
  31. package/components/packageComponent.ts +25 -1
  32. package/components/requestRestart.ts +11 -0
  33. package/components/status/ComponentStatusRegistry.ts +59 -0
  34. package/config/RootConfigWatcher.ts +240 -40
  35. package/config/configReadRetry.ts +62 -0
  36. package/config/configUtils.ts +357 -48
  37. package/config/harperConfigEnvVars.ts +170 -27
  38. package/config/parseConfigFile.ts +34 -0
  39. package/config/readConfigFileSync.ts +44 -0
  40. package/config/watcherArming.ts +59 -0
  41. package/config-root.schema.json +33 -0
  42. package/dataLayer/blobBackup.ts +160 -50
  43. package/dataLayer/delete.ts +6 -1
  44. package/dataLayer/harperBridge/ResourceBridge.ts +80 -10
  45. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
  46. package/dataLayer/hdbInfoController.ts +34 -1
  47. package/dataLayer/insert.ts +44 -1
  48. package/dataLayer/rocksdbBackup.ts +53 -10
  49. package/dataLayer/schema.ts +11 -1
  50. package/dataLayer/schemaDescribe.ts +8 -1
  51. package/dist/agent/mcpTools.js +1 -1
  52. package/dist/agent/mcpTools.js.map +1 -1
  53. package/dist/agent/session.d.ts +22 -0
  54. package/dist/agent/session.js +26 -15
  55. package/dist/agent/session.js.map +1 -1
  56. package/dist/bin/cliOperations.js +61 -9
  57. package/dist/bin/cliOperations.js.map +1 -1
  58. package/dist/bin/copyDb.d.ts +12 -1
  59. package/dist/bin/copyDb.js +248 -60
  60. package/dist/bin/copyDb.js.map +1 -1
  61. package/dist/bin/deploySetup.d.ts +2 -0
  62. package/dist/bin/deploySetup.js +11 -3
  63. package/dist/bin/deploySetup.js.map +1 -1
  64. package/dist/bin/harper.js +1 -1
  65. package/dist/bin/harper.js.map +1 -1
  66. package/dist/bin/help.js +4 -1
  67. package/dist/bin/help.js.map +1 -1
  68. package/dist/bin/lite.js +4 -1
  69. package/dist/bin/lite.js.map +1 -1
  70. package/dist/bin/restart.js +91 -6
  71. package/dist/bin/restart.js.map +1 -1
  72. package/dist/bin/run.js +4 -10
  73. package/dist/bin/run.js.map +1 -1
  74. package/dist/bin/upgrade.js +4 -3
  75. package/dist/bin/upgrade.js.map +1 -1
  76. package/dist/bin/workloadIdentity.d.ts +18 -0
  77. package/dist/bin/workloadIdentity.js +100 -0
  78. package/dist/bin/workloadIdentity.js.map +1 -0
  79. package/dist/components/Application.d.ts +235 -17
  80. package/dist/components/Application.js +3038 -238
  81. package/dist/components/Application.js.map +1 -1
  82. package/dist/components/ApplicationScope.d.ts +8 -0
  83. package/dist/components/ApplicationScope.js +7 -0
  84. package/dist/components/ApplicationScope.js.map +1 -1
  85. package/dist/components/EntryHandler.js +26 -10
  86. package/dist/components/EntryHandler.js.map +1 -1
  87. package/dist/components/OptionsWatcher.d.ts +4 -0
  88. package/dist/components/OptionsWatcher.js +440 -99
  89. package/dist/components/OptionsWatcher.js.map +1 -1
  90. package/dist/components/RuntimeModuleTracker.js +40 -6
  91. package/dist/components/RuntimeModuleTracker.js.map +1 -1
  92. package/dist/components/Scope.js +52 -13
  93. package/dist/components/Scope.js.map +1 -1
  94. package/dist/components/awaitRestart.d.ts +33 -0
  95. package/dist/components/awaitRestart.js +61 -0
  96. package/dist/components/awaitRestart.js.map +1 -0
  97. package/dist/components/componentLoader.d.ts +38 -1
  98. package/dist/components/componentLoader.js +313 -24
  99. package/dist/components/componentLoader.js.map +1 -1
  100. package/dist/components/componentPreparationLock.d.ts +5 -0
  101. package/dist/components/componentPreparationLock.js +14 -6
  102. package/dist/components/componentPreparationLock.js.map +1 -1
  103. package/dist/components/deploymentOperations.js +4 -1
  104. package/dist/components/deploymentOperations.js.map +1 -1
  105. package/dist/components/deploymentRecorder.d.ts +4 -2
  106. package/dist/components/deploymentRecorder.js +1 -0
  107. package/dist/components/deploymentRecorder.js.map +1 -1
  108. package/dist/components/mcp/adapters/harperHttp.js +4 -0
  109. package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
  110. package/dist/components/mcp/listChanged.js +5 -0
  111. package/dist/components/mcp/listChanged.js.map +1 -1
  112. package/dist/components/mcp/toolRegistry.d.ts +1 -0
  113. package/dist/components/mcp/toolRegistry.js.map +1 -1
  114. package/dist/components/mcp/tools/operations.d.ts +5 -0
  115. package/dist/components/mcp/tools/operations.js +9 -0
  116. package/dist/components/mcp/tools/operations.js.map +1 -1
  117. package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -2
  118. package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
  119. package/dist/components/operations.d.ts +28 -0
  120. package/dist/components/operations.js +476 -113
  121. package/dist/components/operations.js.map +1 -1
  122. package/dist/components/operationsValidation.js +97 -3
  123. package/dist/components/operationsValidation.js.map +1 -1
  124. package/dist/components/packageComponent.js +24 -0
  125. package/dist/components/packageComponent.js.map +1 -1
  126. package/dist/components/requestRestart.d.ts +1 -0
  127. package/dist/components/requestRestart.js +7 -0
  128. package/dist/components/requestRestart.js.map +1 -1
  129. package/dist/components/status/ComponentStatusRegistry.d.ts +0 -4
  130. package/dist/components/status/ComponentStatusRegistry.js +63 -0
  131. package/dist/components/status/ComponentStatusRegistry.js.map +1 -1
  132. package/dist/config/RootConfigWatcher.d.ts +9 -1
  133. package/dist/config/RootConfigWatcher.js +228 -37
  134. package/dist/config/RootConfigWatcher.js.map +1 -1
  135. package/dist/config/configReadRetry.d.ts +8 -0
  136. package/dist/config/configReadRetry.js +62 -0
  137. package/dist/config/configReadRetry.js.map +1 -0
  138. package/dist/config/configUtils.d.ts +11 -2
  139. package/dist/config/configUtils.js +304 -47
  140. package/dist/config/configUtils.js.map +1 -1
  141. package/dist/config/harperConfigEnvVars.d.ts +16 -0
  142. package/dist/config/harperConfigEnvVars.js +162 -25
  143. package/dist/config/harperConfigEnvVars.js.map +1 -1
  144. package/dist/config/parseConfigFile.d.ts +4 -0
  145. package/dist/config/parseConfigFile.js +35 -0
  146. package/dist/config/parseConfigFile.js.map +1 -0
  147. package/dist/config/readConfigFileSync.d.ts +1 -0
  148. package/dist/config/readConfigFileSync.js +47 -0
  149. package/dist/config/readConfigFileSync.js.map +1 -0
  150. package/dist/config/watcherArming.d.ts +15 -0
  151. package/dist/config/watcherArming.js +59 -0
  152. package/dist/config/watcherArming.js.map +1 -0
  153. package/dist/dataLayer/blobBackup.d.ts +49 -20
  154. package/dist/dataLayer/blobBackup.js +139 -50
  155. package/dist/dataLayer/blobBackup.js.map +1 -1
  156. package/dist/dataLayer/delete.js +1 -1
  157. package/dist/dataLayer/delete.js.map +1 -1
  158. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +14 -1
  159. package/dist/dataLayer/harperBridge/ResourceBridge.js +72 -12
  160. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  161. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.d.ts +3 -1
  162. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
  163. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js.map +1 -1
  164. package/dist/dataLayer/hdbInfoController.d.ts +10 -0
  165. package/dist/dataLayer/hdbInfoController.js +30 -1
  166. package/dist/dataLayer/hdbInfoController.js.map +1 -1
  167. package/dist/dataLayer/insert.d.ts +9 -1
  168. package/dist/dataLayer/insert.js +30 -0
  169. package/dist/dataLayer/insert.js.map +1 -1
  170. package/dist/dataLayer/rocksdbBackup.d.ts +2 -2
  171. package/dist/dataLayer/rocksdbBackup.js +45 -8
  172. package/dist/dataLayer/rocksdbBackup.js.map +1 -1
  173. package/dist/dataLayer/schema.js +8 -0
  174. package/dist/dataLayer/schema.js.map +1 -1
  175. package/dist/dataLayer/schemaDescribe.js +8 -1
  176. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  177. package/dist/index.d.ts +2 -1
  178. package/dist/index.js +4 -1
  179. package/dist/index.js.map +1 -1
  180. package/dist/json/systemSchema.json +55 -0
  181. package/dist/resources/DatabaseTransaction.d.ts +77 -0
  182. package/dist/resources/DatabaseTransaction.js +586 -54
  183. package/dist/resources/DatabaseTransaction.js.map +1 -1
  184. package/dist/resources/LMDBTransaction.d.ts +2 -1
  185. package/dist/resources/LMDBTransaction.js +43 -6
  186. package/dist/resources/LMDBTransaction.js.map +1 -1
  187. package/dist/resources/PrimaryRocksDatabase.d.ts +1 -0
  188. package/dist/resources/PrimaryRocksDatabase.js +49 -5
  189. package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
  190. package/dist/resources/RecordEncoder.d.ts +20 -0
  191. package/dist/resources/RecordEncoder.js +110 -9
  192. package/dist/resources/RecordEncoder.js.map +1 -1
  193. package/dist/resources/RequestTarget.d.ts +2 -0
  194. package/dist/resources/RequestTarget.js.map +1 -1
  195. package/dist/resources/Resource.js +117 -24
  196. package/dist/resources/Resource.js.map +1 -1
  197. package/dist/resources/ResourceInterface.d.ts +28 -1
  198. package/dist/resources/ResourceInterface.js.map +1 -1
  199. package/dist/resources/RocksIndexStore.d.ts +6 -1
  200. package/dist/resources/RocksIndexStore.js +24 -9
  201. package/dist/resources/RocksIndexStore.js.map +1 -1
  202. package/dist/resources/RocksTransactionLogStore.d.ts +24 -1
  203. package/dist/resources/RocksTransactionLogStore.js +160 -49
  204. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  205. package/dist/resources/Table.d.ts +165 -10
  206. package/dist/resources/Table.js +1805 -303
  207. package/dist/resources/Table.js.map +1 -1
  208. package/dist/resources/analytics/write.js +10 -3
  209. package/dist/resources/analytics/write.js.map +1 -1
  210. package/dist/resources/auditStore.d.ts +181 -2
  211. package/dist/resources/auditStore.js +640 -29
  212. package/dist/resources/auditStore.js.map +1 -1
  213. package/dist/resources/blob.d.ts +129 -9
  214. package/dist/resources/blob.js +992 -114
  215. package/dist/resources/blob.js.map +1 -1
  216. package/dist/resources/branchDatabase.d.ts +48 -0
  217. package/dist/resources/branchDatabase.js +892 -0
  218. package/dist/resources/branchDatabase.js.map +1 -0
  219. package/dist/resources/crdt.js +50 -12
  220. package/dist/resources/crdt.js.map +1 -1
  221. package/dist/resources/dataLoader.js +3 -4
  222. package/dist/resources/dataLoader.js.map +1 -1
  223. package/dist/resources/databases.d.ts +157 -14
  224. package/dist/resources/databases.js +1462 -325
  225. package/dist/resources/databases.js.map +1 -1
  226. package/dist/resources/defineTable.d.ts +10 -2
  227. package/dist/resources/defineTable.js +9 -1
  228. package/dist/resources/defineTable.js.map +1 -1
  229. package/dist/resources/derivedIndexRegistry.d.ts +5 -0
  230. package/dist/resources/derivedIndexRegistry.js +68 -0
  231. package/dist/resources/derivedIndexRegistry.js.map +1 -0
  232. package/dist/resources/derivedIndexRuntime.d.ts +215 -0
  233. package/dist/resources/derivedIndexRuntime.js +2027 -0
  234. package/dist/resources/derivedIndexRuntime.js.map +1 -0
  235. package/dist/resources/graphql.d.ts +1 -1
  236. package/dist/resources/graphql.js +52 -16
  237. package/dist/resources/graphql.js.map +1 -1
  238. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +103 -9
  239. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +854 -41
  240. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  241. package/dist/resources/indexes/hnswDerivedIndex.d.ts +67 -0
  242. package/dist/resources/indexes/hnswDerivedIndex.js +464 -0
  243. package/dist/resources/indexes/hnswDerivedIndex.js.map +1 -0
  244. package/dist/resources/indexes/hnswPlaneBinding.d.ts +65 -0
  245. package/dist/resources/indexes/hnswPlaneBinding.js +91 -0
  246. package/dist/resources/indexes/hnswPlaneBinding.js.map +1 -0
  247. package/dist/resources/longLivedTransactions.d.ts +71 -0
  248. package/dist/resources/longLivedTransactions.js +358 -0
  249. package/dist/resources/longLivedTransactions.js.map +1 -0
  250. package/dist/resources/models/backendRegistry.d.ts +26 -0
  251. package/dist/resources/models/backendRegistry.js +60 -2
  252. package/dist/resources/models/backendRegistry.js.map +1 -1
  253. package/dist/resources/models/bootstrap.d.ts +33 -1
  254. package/dist/resources/models/bootstrap.js +416 -31
  255. package/dist/resources/models/bootstrap.js.map +1 -1
  256. package/dist/resources/nodeIdMapping.d.ts +5 -0
  257. package/dist/resources/nodeIdMapping.js +49 -0
  258. package/dist/resources/nodeIdMapping.js.map +1 -1
  259. package/dist/resources/recordLock.d.ts +123 -0
  260. package/dist/resources/recordLock.js +315 -0
  261. package/dist/resources/recordLock.js.map +1 -0
  262. package/dist/resources/recordLockCoordinator.d.ts +557 -0
  263. package/dist/resources/recordLockCoordinator.js +2565 -0
  264. package/dist/resources/recordLockCoordinator.js.map +1 -0
  265. package/dist/resources/replayLogs.d.ts +14 -1
  266. package/dist/resources/replayLogs.js +157 -24
  267. package/dist/resources/replayLogs.js.map +1 -1
  268. package/dist/resources/replayLogsGuards.d.ts +94 -7
  269. package/dist/resources/replayLogsGuards.js +111 -7
  270. package/dist/resources/replayLogsGuards.js.map +1 -1
  271. package/dist/resources/replicatedApplyFailure.d.ts +16 -0
  272. package/dist/resources/replicatedApplyFailure.js +63 -0
  273. package/dist/resources/replicatedApplyFailure.js.map +1 -0
  274. package/dist/resources/scheduler/scheduler.js +3 -3
  275. package/dist/resources/scheduler/scheduler.js.map +1 -1
  276. package/dist/resources/search.d.ts +10 -4
  277. package/dist/resources/search.js +283 -37
  278. package/dist/resources/search.js.map +1 -1
  279. package/dist/resources/tracked.d.ts +5 -1
  280. package/dist/resources/tracked.js +74 -23
  281. package/dist/resources/tracked.js.map +1 -1
  282. package/dist/resources/transactionBroadcast.d.ts +1 -1
  283. package/dist/resources/transactionBroadcast.js +2 -2
  284. package/dist/resources/transactionBroadcast.js.map +1 -1
  285. package/dist/security/auth.js +61 -30
  286. package/dist/security/auth.js.map +1 -1
  287. package/dist/security/authn/oidc/claims.d.ts +22 -0
  288. package/dist/security/authn/oidc/claims.js +71 -0
  289. package/dist/security/authn/oidc/claims.js.map +1 -0
  290. package/dist/security/authn/oidc/identityToken.d.ts +27 -0
  291. package/dist/security/authn/oidc/identityToken.js +111 -0
  292. package/dist/security/authn/oidc/identityToken.js.map +1 -0
  293. package/dist/security/authn/oidc/jwks.d.ts +25 -0
  294. package/dist/security/authn/oidc/jwks.js +261 -0
  295. package/dist/security/authn/oidc/jwks.js.map +1 -0
  296. package/dist/security/authn/oidc/providers/generic.d.ts +13 -0
  297. package/dist/security/authn/oidc/providers/generic.js +34 -0
  298. package/dist/security/authn/oidc/providers/generic.js.map +1 -0
  299. package/dist/security/authn/oidc/providers/githubActions.d.ts +11 -0
  300. package/dist/security/authn/oidc/providers/githubActions.js +129 -0
  301. package/dist/security/authn/oidc/providers/githubActions.js.map +1 -0
  302. package/dist/security/authn/oidc/providers/index.d.ts +37 -0
  303. package/dist/security/authn/oidc/providers/index.js +24 -0
  304. package/dist/security/authn/oidc/providers/index.js.map +1 -0
  305. package/dist/security/authn/oidc/tokenExchange.d.ts +12 -0
  306. package/dist/security/authn/oidc/tokenExchange.js +306 -0
  307. package/dist/security/authn/oidc/tokenExchange.js.map +1 -0
  308. package/dist/security/authn/oidc/trustPolicyOperations.d.ts +49 -0
  309. package/dist/security/authn/oidc/trustPolicyOperations.js +358 -0
  310. package/dist/security/authn/oidc/trustPolicyOperations.js.map +1 -0
  311. package/dist/security/authn/oidc/types.d.ts +38 -0
  312. package/dist/security/authn/oidc/types.js +6 -0
  313. package/dist/security/authn/oidc/types.js.map +1 -0
  314. package/dist/security/certificateVerification/index.js +40 -11
  315. package/dist/security/certificateVerification/index.js.map +1 -1
  316. package/dist/security/certificateVerification/trustedIssuers.d.ts +24 -0
  317. package/dist/security/certificateVerification/trustedIssuers.js +79 -0
  318. package/dist/security/certificateVerification/trustedIssuers.js.map +1 -0
  319. package/dist/security/certificateVerification/types.d.ts +1 -0
  320. package/dist/security/credentialProvenance.d.ts +35 -0
  321. package/dist/security/credentialProvenance.js +51 -0
  322. package/dist/security/credentialProvenance.js.map +1 -0
  323. package/dist/security/credentialRejection.d.ts +4 -0
  324. package/dist/security/credentialRejection.js +24 -0
  325. package/dist/security/credentialRejection.js.map +1 -0
  326. package/dist/security/deferredAuthentication.d.ts +36 -0
  327. package/dist/security/deferredAuthentication.js +70 -0
  328. package/dist/security/deferredAuthentication.js.map +1 -0
  329. package/dist/security/impersonation.d.ts +21 -0
  330. package/dist/security/impersonation.js +108 -9
  331. package/dist/security/impersonation.js.map +1 -1
  332. package/dist/security/jsLoader.d.ts +6 -0
  333. package/dist/security/jsLoader.js +77 -15
  334. package/dist/security/jsLoader.js.map +1 -1
  335. package/dist/security/keys.js +301 -71
  336. package/dist/security/keys.js.map +1 -1
  337. package/dist/security/operationScope.d.ts +21 -0
  338. package/dist/security/operationScope.js +36 -0
  339. package/dist/security/operationScope.js.map +1 -0
  340. package/dist/security/permissionsTranslator.js +21 -0
  341. package/dist/security/permissionsTranslator.js.map +1 -1
  342. package/dist/security/tokenAuthentication.d.ts +19 -1
  343. package/dist/security/tokenAuthentication.js +191 -10
  344. package/dist/security/tokenAuthentication.js.map +1 -1
  345. package/dist/security/user.js +4 -3
  346. package/dist/security/user.js.map +1 -1
  347. package/dist/server/DurableSubscriptionsSession.d.ts +2 -2
  348. package/dist/server/DurableSubscriptionsSession.js +67 -10
  349. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  350. package/dist/server/REST.js +106 -2
  351. package/dist/server/REST.js.map +1 -1
  352. package/dist/server/graphqlQuerying.js +4 -0
  353. package/dist/server/graphqlQuerying.js.map +1 -1
  354. package/dist/server/http.d.ts +16 -1
  355. package/dist/server/http.js +122 -17
  356. package/dist/server/http.js.map +1 -1
  357. package/dist/server/itc/serverHandlers.js +8 -1
  358. package/dist/server/itc/serverHandlers.js.map +1 -1
  359. package/dist/server/jobs/jobProcess.js +6 -2
  360. package/dist/server/jobs/jobProcess.js.map +1 -1
  361. package/dist/server/jobs/jobs.js +4 -1
  362. package/dist/server/jobs/jobs.js.map +1 -1
  363. package/dist/server/liveSubscriptionAuth.d.ts +26 -4
  364. package/dist/server/liveSubscriptionAuth.js +105 -39
  365. package/dist/server/liveSubscriptionAuth.js.map +1 -1
  366. package/dist/server/loadRootComponents.js +49 -10
  367. package/dist/server/loadRootComponents.js.map +1 -1
  368. package/dist/server/mqtt.d.ts +2 -0
  369. package/dist/server/mqtt.js +165 -30
  370. package/dist/server/mqtt.js.map +1 -1
  371. package/dist/server/nodeName.d.ts +2 -0
  372. package/dist/server/nodeName.js +107 -23
  373. package/dist/server/nodeName.js.map +1 -1
  374. package/dist/server/serverHelpers/Headers.d.ts +27 -0
  375. package/dist/server/serverHelpers/Headers.js +145 -1
  376. package/dist/server/serverHelpers/Headers.js.map +1 -1
  377. package/dist/server/serverHelpers/NodeAdapterResponse.d.ts +48 -0
  378. package/dist/server/serverHelpers/NodeAdapterResponse.js +220 -0
  379. package/dist/server/serverHelpers/NodeAdapterResponse.js.map +1 -0
  380. package/dist/server/serverHelpers/Request.d.ts +5 -10
  381. package/dist/server/serverHelpers/Request.js +38 -136
  382. package/dist/server/serverHelpers/Request.js.map +1 -1
  383. package/dist/server/serverHelpers/contentTypes.d.ts +11 -0
  384. package/dist/server/serverHelpers/contentTypes.js +221 -40
  385. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  386. package/dist/server/serverHelpers/deployValidationState.d.ts +3 -0
  387. package/dist/server/serverHelpers/deployValidationState.js +9 -19
  388. package/dist/server/serverHelpers/deployValidationState.js.map +1 -1
  389. package/dist/server/serverHelpers/operationAuthorizationState.d.ts +12 -0
  390. package/dist/server/serverHelpers/operationAuthorizationState.js +24 -2
  391. package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -1
  392. package/dist/server/serverHelpers/registeredOperations.d.ts +5 -4
  393. package/dist/server/serverHelpers/registeredOperations.js +74 -21
  394. package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
  395. package/dist/server/serverHelpers/requestSanitization.d.ts +11 -0
  396. package/dist/server/serverHelpers/requestSanitization.js +20 -0
  397. package/dist/server/serverHelpers/requestSanitization.js.map +1 -0
  398. package/dist/server/serverHelpers/serverHandlers.js +6 -3
  399. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  400. package/dist/server/serverHelpers/serverUtilities.d.ts +18 -0
  401. package/dist/server/serverHelpers/serverUtilities.js +178 -29
  402. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  403. package/dist/server/serverHelpers/sharedMessageEncoding.d.ts +67 -0
  404. package/dist/server/serverHelpers/sharedMessageEncoding.js +280 -0
  405. package/dist/server/serverHelpers/sharedMessageEncoding.js.map +1 -0
  406. package/dist/server/serverHelpers/uwsServer.js +19 -1
  407. package/dist/server/serverHelpers/uwsServer.js.map +1 -1
  408. package/dist/server/static.js +24 -28
  409. package/dist/server/static.js.map +1 -1
  410. package/dist/server/storageReclamation.d.ts +5 -0
  411. package/dist/server/storageReclamation.js +17 -1
  412. package/dist/server/storageReclamation.js.map +1 -1
  413. package/dist/server/threads/isolatedApplications.d.ts +47 -0
  414. package/dist/server/threads/isolatedApplications.js +171 -0
  415. package/dist/server/threads/isolatedApplications.js.map +1 -0
  416. package/dist/server/threads/itc.d.ts +7 -2
  417. package/dist/server/threads/itc.js +5 -1
  418. package/dist/server/threads/itc.js.map +1 -1
  419. package/dist/server/threads/logRotationTransport.d.ts +1 -0
  420. package/dist/server/threads/logRotationTransport.js +33 -0
  421. package/dist/server/threads/logRotationTransport.js.map +1 -0
  422. package/dist/server/threads/manageThreads.d.ts +83 -3
  423. package/dist/server/threads/manageThreads.js +769 -75
  424. package/dist/server/threads/manageThreads.js.map +1 -1
  425. package/dist/server/threads/socketRouter.d.ts +1 -0
  426. package/dist/server/threads/socketRouter.js +277 -31
  427. package/dist/server/threads/socketRouter.js.map +1 -1
  428. package/dist/server/threads/threadHeapMemory.d.ts +2 -0
  429. package/dist/server/threads/threadHeapMemory.js +31 -0
  430. package/dist/server/threads/threadHeapMemory.js.map +1 -0
  431. package/dist/server/threads/threadServer.js +76 -22
  432. package/dist/server/threads/threadServer.js.map +1 -1
  433. package/dist/sqlEngine/config.d.ts +1 -3
  434. package/dist/sqlEngine/config.js +19 -16
  435. package/dist/sqlEngine/config.js.map +1 -1
  436. package/dist/sqlTranslator/index.d.ts +1 -1
  437. package/dist/sqlTranslator/index.js +30 -7
  438. package/dist/sqlTranslator/index.js.map +1 -1
  439. package/dist/upgrade/directives/5-3-0.d.ts +7 -0
  440. package/dist/upgrade/directives/5-3-0.js +148 -0
  441. package/dist/upgrade/directives/5-3-0.js.map +1 -0
  442. package/dist/upgrade/directives/directivesController.js +2 -1
  443. package/dist/upgrade/directives/directivesController.js.map +1 -1
  444. package/dist/utility/OperationFunctionCaller.js +2 -1
  445. package/dist/utility/OperationFunctionCaller.js.map +1 -1
  446. package/dist/utility/common_utils.d.ts +16 -0
  447. package/dist/utility/common_utils.js +32 -6
  448. package/dist/utility/common_utils.js.map +1 -1
  449. package/dist/utility/componentNames.d.ts +8 -0
  450. package/dist/utility/componentNames.js +12 -1
  451. package/dist/utility/componentNames.js.map +1 -1
  452. package/dist/utility/environment/environmentManager.js +3 -6
  453. package/dist/utility/environment/environmentManager.js.map +1 -1
  454. package/dist/utility/environment/systemInformation.d.ts +1 -0
  455. package/dist/utility/environment/systemInformation.js +1 -0
  456. package/dist/utility/environment/systemInformation.js.map +1 -1
  457. package/dist/utility/errors/commonErrors.d.ts +2 -0
  458. package/dist/utility/errors/commonErrors.js +2 -0
  459. package/dist/utility/errors/commonErrors.js.map +1 -1
  460. package/dist/utility/errors/hdbError.d.ts +33 -0
  461. package/dist/utility/errors/hdbError.js +58 -1
  462. package/dist/utility/errors/hdbError.js.map +1 -1
  463. package/dist/utility/globalSchema.d.ts +18 -0
  464. package/dist/utility/hdbTerms.d.ts +18 -0
  465. package/dist/utility/hdbTerms.js +20 -2
  466. package/dist/utility/hdbTerms.js.map +1 -1
  467. package/dist/utility/logging/harper_logger.d.ts +2 -0
  468. package/dist/utility/logging/harper_logger.js +286 -30
  469. package/dist/utility/logging/harper_logger.js.map +1 -1
  470. package/dist/utility/logging/logGenerationCoordinator.d.ts +35 -0
  471. package/dist/utility/logging/logGenerationCoordinator.js +184 -0
  472. package/dist/utility/logging/logGenerationCoordinator.js.map +1 -0
  473. package/dist/utility/logging/logRotation.d.ts +46 -0
  474. package/dist/utility/logging/logRotation.js +365 -0
  475. package/dist/utility/logging/logRotation.js.map +1 -0
  476. package/dist/utility/logging/logRotator.d.ts +1 -1
  477. package/dist/utility/logging/logRotator.js +192 -85
  478. package/dist/utility/logging/logRotator.js.map +1 -1
  479. package/dist/utility/nodeIdentity.d.ts +9 -0
  480. package/dist/utility/nodeIdentity.js +58 -0
  481. package/dist/utility/nodeIdentity.js.map +1 -0
  482. package/dist/utility/npmUtilities.js +11 -7
  483. package/dist/utility/npmUtilities.js.map +1 -1
  484. package/dist/utility/operationPermissions.d.ts +3 -1
  485. package/dist/utility/operationPermissions.js +16 -1
  486. package/dist/utility/operationPermissions.js.map +1 -1
  487. package/dist/utility/operation_authorization.d.ts +10 -7
  488. package/dist/utility/operation_authorization.js +212 -41
  489. package/dist/utility/operation_authorization.js.map +1 -1
  490. package/dist/utility/watchPath.d.ts +29 -0
  491. package/dist/utility/watchPath.js +68 -0
  492. package/dist/utility/watchPath.js.map +1 -0
  493. package/dist/utility/watcherFallback.d.ts +41 -0
  494. package/dist/utility/watcherFallback.js +153 -0
  495. package/dist/utility/watcherFallback.js.map +1 -1
  496. package/dist/validation/configValidator.d.ts +12 -0
  497. package/dist/validation/configValidator.js +205 -75
  498. package/dist/validation/configValidator.js.map +1 -1
  499. package/dist/validation/installValidator.js +12 -0
  500. package/dist/validation/installValidator.js.map +1 -1
  501. package/dist/validation/validationWrapper.d.ts +11 -0
  502. package/dist/validation/validationWrapper.js +16 -3
  503. package/dist/validation/validationWrapper.js.map +1 -1
  504. package/index.ts +8 -0
  505. package/json/systemSchema.json +55 -0
  506. package/npm-shrinkwrap.json +286 -194
  507. package/package.json +15 -7
  508. package/resources/DESIGN.md +219 -52
  509. package/resources/DatabaseTransaction.ts +657 -52
  510. package/resources/LMDBTransaction.ts +46 -6
  511. package/resources/PrimaryRocksDatabase.ts +46 -7
  512. package/resources/RecordEncoder.ts +124 -9
  513. package/resources/RequestTarget.ts +2 -0
  514. package/resources/Resource.ts +114 -22
  515. package/resources/ResourceInterface.ts +31 -0
  516. package/resources/RocksIndexStore.ts +30 -9
  517. package/resources/RocksTransactionLogStore.ts +188 -51
  518. package/resources/Table.ts +1960 -301
  519. package/resources/analytics/write.ts +10 -3
  520. package/resources/auditStore.ts +647 -32
  521. package/resources/blob.ts +1029 -110
  522. package/resources/branchDatabase.ts +941 -0
  523. package/resources/crdt.ts +76 -12
  524. package/resources/dataLoader.ts +3 -4
  525. package/resources/databases.ts +1584 -320
  526. package/resources/defineTable.ts +18 -2
  527. package/resources/derivedIndexRegistry.ts +56 -0
  528. package/resources/derivedIndexRuntime.ts +2292 -0
  529. package/resources/graphql.ts +72 -17
  530. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +911 -48
  531. package/resources/indexes/hnswDerivedIndex.ts +531 -0
  532. package/resources/indexes/hnswPlaneBinding.ts +174 -0
  533. package/resources/longLivedTransactions.ts +360 -0
  534. package/resources/models/backendRegistry.ts +84 -2
  535. package/resources/models/bootstrap.ts +473 -28
  536. package/resources/nodeIdMapping.ts +50 -0
  537. package/resources/recordLock.ts +419 -0
  538. package/resources/recordLockCoordinator.ts +3043 -0
  539. package/resources/replayLogs.ts +152 -26
  540. package/resources/replayLogsGuards.ts +171 -8
  541. package/resources/replicatedApplyFailure.ts +77 -0
  542. package/resources/scheduler/scheduler.ts +4 -4
  543. package/resources/search.ts +288 -46
  544. package/resources/tracked.ts +73 -22
  545. package/resources/transactionBroadcast.ts +3 -3
  546. package/security/auth.ts +68 -29
  547. package/security/authn/oidc/claims.ts +72 -0
  548. package/security/authn/oidc/identityToken.ts +129 -0
  549. package/security/authn/oidc/jwks.ts +260 -0
  550. package/security/authn/oidc/providers/generic.ts +40 -0
  551. package/security/authn/oidc/providers/githubActions.ts +137 -0
  552. package/security/authn/oidc/providers/index.ts +52 -0
  553. package/security/authn/oidc/tokenExchange.ts +300 -0
  554. package/security/authn/oidc/trustPolicyOperations.ts +343 -0
  555. package/security/authn/oidc/types.ts +41 -0
  556. package/security/certificateVerification/index.ts +54 -13
  557. package/security/certificateVerification/trustedIssuers.ts +76 -0
  558. package/security/certificateVerification/types.ts +1 -0
  559. package/security/credentialProvenance.ts +47 -0
  560. package/security/credentialRejection.ts +22 -0
  561. package/security/deferredAuthentication.ts +71 -0
  562. package/security/impersonation.ts +117 -12
  563. package/security/jsLoader.ts +83 -18
  564. package/security/keys.ts +298 -72
  565. package/security/operationScope.ts +33 -0
  566. package/security/permissionsTranslator.js +23 -0
  567. package/security/tokenAuthentication.ts +233 -12
  568. package/security/user.ts +4 -3
  569. package/server/DESIGN.md +194 -16
  570. package/server/DurableSubscriptionsSession.ts +71 -11
  571. package/server/REST.ts +115 -4
  572. package/server/graphqlQuerying.ts +4 -0
  573. package/server/http.ts +133 -20
  574. package/server/itc/serverHandlers.js +8 -1
  575. package/server/jobs/jobProcess.ts +8 -2
  576. package/server/jobs/jobs.ts +4 -1
  577. package/server/liveSubscriptionAuth.ts +129 -46
  578. package/server/loadRootComponents.js +50 -8
  579. package/server/mqtt.ts +179 -38
  580. package/server/nodeName.ts +103 -21
  581. package/server/serverHelpers/Headers.ts +135 -0
  582. package/server/serverHelpers/NodeAdapterResponse.ts +221 -0
  583. package/server/serverHelpers/Request.ts +33 -131
  584. package/server/serverHelpers/contentTypes.ts +217 -36
  585. package/server/serverHelpers/deployValidationState.ts +24 -13
  586. package/server/serverHelpers/operationAuthorizationState.ts +34 -3
  587. package/server/serverHelpers/registeredOperations.ts +79 -22
  588. package/server/serverHelpers/requestSanitization.ts +15 -0
  589. package/server/serverHelpers/serverHandlers.js +6 -3
  590. package/server/serverHelpers/serverUtilities.ts +232 -40
  591. package/server/serverHelpers/sharedMessageEncoding.ts +307 -0
  592. package/server/serverHelpers/uwsServer.ts +17 -2
  593. package/server/static.ts +23 -29
  594. package/server/storageReclamation.ts +15 -2
  595. package/server/threads/isolatedApplications.ts +157 -0
  596. package/server/threads/itc.js +11 -1
  597. package/server/threads/logRotationTransport.ts +40 -0
  598. package/server/threads/manageThreads.js +771 -66
  599. package/server/threads/socketRouter.ts +291 -30
  600. package/server/threads/threadHeapMemory.ts +26 -0
  601. package/server/threads/threadServer.js +73 -22
  602. package/sqlTranslator/index.ts +31 -8
  603. package/studio/web/assets/{Chat-4RrB5134.js → Chat-D3j-1yY1.js} +1 -1
  604. package/studio/web/assets/{FloatingChat-omlNMDcJ.js → FloatingChat-BxJGYcfB.js} +3 -3
  605. package/studio/web/assets/{apiToken-Bke3wvfZ.js → apiToken-CT55oWOe.js} +1 -1
  606. package/studio/web/assets/{applications-DvFDYJgK.js → applications-D9Ct9_vm.js} +1 -1
  607. package/studio/web/assets/{cssMode-C1vRa7zh.js → cssMode-DV8H7VwA.js} +1 -1
  608. package/studio/web/assets/{editor-3XRWEDWX.js → editor-uatc0unt.js} +1 -1
  609. package/studio/web/assets/{html-CTY5tdMr.js → html-Bm6D6paN.js} +1 -1
  610. package/studio/web/assets/{htmlMode-CG1vSD9t.js → htmlMode-CEn7tpLG.js} +1 -1
  611. package/studio/web/assets/{index-Dfpeofdu.js → index-BIXW6Pu4.js} +5 -5
  612. package/studio/web/assets/{index.lazy-B1VOIv-t.js → index.lazy-UI7L-Vrk.js} +1 -1
  613. package/studio/web/assets/{javascript-CJeJzGnI.js → javascript-CJ0G3AFZ.js} +1 -1
  614. package/studio/web/assets/{jsonMode-CYPBwM82.js → jsonMode-DQADAYEa.js} +1 -1
  615. package/studio/web/assets/{languageServices-IKH4GUHl.js → languageServices-CAQJXWcI.js} +1 -1
  616. package/studio/web/assets/{lspLanguageFeatures-BC8_gxKG.js → lspLanguageFeatures-CCQ8P5sY.js} +1 -1
  617. package/studio/web/assets/{notifications-BfKBpYcq.js → notifications-BbxTU6Aw.js} +1 -1
  618. package/studio/web/assets/{notifications-DFbArTfC.js → notifications-Cvb3P1lB.js} +1 -1
  619. package/studio/web/assets/{profile-Q4-T6c-S.js → profile-Yyb7gsvL.js} +1 -1
  620. package/studio/web/assets/{regions-CtkV0xje.js → regions-OgjGHlU5.js} +1 -1
  621. package/studio/web/assets/{register-1ZZuMsiA.js → register-6qwNEOY3.js} +2 -2
  622. package/studio/web/assets/{setComponentFile-ZWLcWv5X.js → setComponentFile-BilDMtgB.js} +1 -1
  623. package/studio/web/assets/{setup-DWprJyJy.js → setup-J6qJ7OIU.js} +2 -2
  624. package/studio/web/assets/{status--aNm8isn.js → status-0RWGcfyD.js} +1 -1
  625. package/studio/web/assets/{toggleHighContrast-Cq_lt3XD.js → toggleHighContrast-BIn-vErT.js} +1 -1
  626. package/studio/web/assets/{tsMode-pjgytARx.js → tsMode-DgUXku4d.js} +1 -1
  627. package/studio/web/assets/{typescript-Cdg0mqUh.js → typescript-C9orXcsM.js} +1 -1
  628. package/studio/web/assets/{useEntityRestURL-RZhaY8Rn.js → useEntityRestURL-BEoXXbUB.js} +1 -1
  629. package/studio/web/assets/{workers-BgoXIqQe.js → workers-JVzSDmgx.js} +1 -1
  630. package/studio/web/assets/{xml-BwSeDMiP.js → xml-Cq-S8S4X.js} +1 -1
  631. package/studio/web/assets/{yaml-DotCUG5l.js → yaml-sfoRdh1M.js} +1 -1
  632. package/studio/web/index.html +1 -1
  633. package/upgrade/directives/5-3-0.ts +132 -0
  634. package/upgrade/directives/directivesController.ts +2 -1
  635. package/utility/OperationFunctionCaller.ts +2 -1
  636. package/utility/common_utils.ts +30 -5
  637. package/utility/componentNames.ts +12 -0
  638. package/utility/environment/environmentManager.ts +3 -7
  639. package/utility/environment/systemInformation.ts +7 -0
  640. package/utility/errors/commonErrors.ts +4 -0
  641. package/utility/errors/hdbError.ts +57 -0
  642. package/utility/hdbTerms.ts +19 -0
  643. package/utility/logging/harper_logger.ts +278 -26
  644. package/utility/logging/logGenerationCoordinator.ts +196 -0
  645. package/utility/logging/logRotation.ts +367 -0
  646. package/utility/logging/logRotator.ts +213 -81
  647. package/utility/nodeIdentity.ts +45 -0
  648. package/utility/npmUtilities.ts +12 -8
  649. package/utility/operationPermissions.ts +18 -1
  650. package/utility/operation_authorization.ts +231 -42
  651. package/utility/watchPath.ts +63 -0
  652. package/utility/watcherFallback.ts +148 -0
  653. package/validation/configValidator.ts +215 -75
  654. package/validation/installValidator.ts +15 -0
  655. package/validation/validationWrapper.ts +18 -4
@@ -1,2 +1,2 @@
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-C3Nfubqr.js";import{n as s,t as c}from"./button-BIsUKRZq.js";import{a as l}from"./vendor-datadog-CLUcJXOo.js";import{r as u}from"./vendor-react-CJV_K1u4.js";import{L as d,k as f,x as p,z as m}from"./vendor-tanstack-DxzraizX.js";import{t as h}from"./createLucideIcon-CzW9508A.js";import{n as g}from"./chevron-up-DtKGqDn3.js";import{n as _}from"./setLocalStorage-D_kflv4U.js";import{t as v}from"./useLocalStorage-BqMR3D8_.js";import{$t as y,An as b,Ht as x,Jn as S,Mr as C,Qt as w,Vt as T,br as E,dt as D,en as O,hr as k,kr as A,mt as j,nn as ee,on as te,qn as M,sn as ne,sr as N,tn as re,un as ie,vn as P,wr as F,xn as I,xr as ae,xt as oe}from"./index-Dfpeofdu.js";import{t as se}from"./useEntityRestURL-RZhaY8Rn.js";import{i as L,n as R,r as z,t as B}from"./tabs-BrHu7gJi.js";var V=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`}]]),H=u(),ce={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,H.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`,ce[e],t),children:e})}var W=e(l(),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,H.jsxs)(`div`,{className:`flex max-h-[28rem] flex-col gap-3 lg:h-full lg:max-h-none lg:min-h-0`,children:[(0,H.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,H.jsx)(F,{className:`text-green size-4 shrink-0`}):(0,H.jsx)(V,{className:`text-muted-foreground size-4 shrink-0`}),(0,H.jsx)(`span`,{className:`flex-1 font-medium`,children:`Authorize`}),(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:le[l]})]}),(0,H.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,H.jsx)(k,{className:`text-muted-foreground pointer-events-none absolute top-1/2 left-2.5 size-4 -translate-y-1/2`}),(0,H.jsx)(P,{value:o,onChange:e=>c(e.target.value),placeholder:`Filter endpoints…`,className:`pl-8`,"aria-label":`Filter endpoints`})]}),(0,H.jsx)(`div`,{className:`flex-1 overflow-y-auto overscroll-contain min-h-0 pr-1`,children:n===0?(0,H.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,H.jsx)(`div`,{className:`flex flex-col gap-1`,children:e.map(e=>(0,H.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,H.jsxs)(`div`,{children:[(0,H.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,H.jsx)(g,{className:`size-4 shrink-0`}):(0,H.jsx)(C,{className:`size-4 shrink-0`}),(0,H.jsx)(`span`,{className:`flex-1 truncate text-sm font-semibold`,children:e.resource}),(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e.operationCount})]}),t&&(0,H.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,H.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,H.jsx)(`span`,{className:s(`truncate px-1 font-mono text-xs`,a?`text-foreground`:`text-muted-foreground`),title:e.path,children:e.path}),(0,H.jsx)(`ul`,{className:`border-border/40 ml-2 flex flex-col gap-0.5 border-l pl-2`,children:e.operations.map(e=>(0,H.jsx)(`li`,{children:(0,H.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,H.jsx)(U,{method:e.method,className:`min-w-14`}),e.operation.summary&&(0,H.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,H.jsxs)(`div`,{className:s(`group bg-muted/60 relative rounded-md border`,t),children:[(0,H.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,H.jsx)(A,{className:`size-3.5`})}),(0,H.jsx)(`pre`,{className:s(`overflow-auto p-3 text-xs leading-relaxed`,r),children:(0,H.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 Se(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 Ce=1e3;function Y(e,t,n=new Set,r=0,i={remaining:Ce}){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=Y(e,n,o,r+1,i);return a&&typeof a==`object`&&!Array.isArray(a)?{...t,...a}:t},{}):Y(e,s[0],o,r+1,i);switch(Array.isArray(a.type)?a.type.find(e=>e!==`null`):a.type){case`object`:return we(e,a,o,r+1,i);case`array`:return[Y(e,a.items,o,r+1,i)];case`string`:return Te(a);case`integer`:case`number`:return 0;case`boolean`:return!1;case`null`:return null;default:return a.properties?we(e,a,o,r+1,i):null}}function we(e,t,n,r,i){let a={};for(let[o,s]of Object.entries(t.properties??{})){if(i.remaining<=0)break;a[o]=Y(e,s,n,r,i)}return a}function Te(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 X(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=>X(e)).join(n)||`object`}let t=Array.isArray(e.type)?e.type.join(` | `):e.type;return t===`array`?`${X(e.items)}[]`:e.format&&t?`${t} <${e.format}>`:t??(e.properties?`object`:`any`)}function Ee(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 De(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 Oe=6;function ke({spec:e,schema:t,className:n}){return t?(0,H.jsx)(`div`,{className:s(`text-sm`,n),children:(0,H.jsx)(Ae,{spec:e,schema:t,depth:0,seen:new Set})}):(0,H.jsx)(`p`,{className:s(`text-muted-foreground text-sm`,n),children:`No schema provided.`})}function Ae({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,H.jsx)(Ne,{label:xe(t.$ref),note:`(unresolved reference)`});if(r.has(i)||n>=Oe)return(0,H.jsx)(Ne,{label:X(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,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[X(t),a.additionalProperties?` (open — any additional properties allowed)`:``]});let s=new Set(r).add(a);return(0,H.jsx)(`ul`,{className:`border-border/70 flex flex-col gap-2 border-l pl-3`,children:i.map(([t,r])=>(0,H.jsxs)(`li`,{children:[(0,H.jsx)(je,{name:t,schema:r,spec:e,required:o.has(t)}),(0,H.jsx)(Me,{spec:e,schema:r,depth:n+1,seen:s})]},t))})}if(o===`array`){let t=new Set(r).add(a);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[`array of `,X(a.items)]}),a.items&&n<Oe&&(0,H.jsx)(Ae,{spec:e,schema:a.items,depth:n+1,seen:t})]})}return(0,H.jsx)(Ne,{label:X(t),required:i,description:a.description,enumValues:a.enum})}function je({name:e,schema:t,spec:n,required:r}){let i=t.$ref?J(n,t.$ref)??t:t;return(0,H.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-0.5`,children:[(0,H.jsx)(`code`,{className:`text-foreground font-medium`,children:e}),(0,H.jsx)(`span`,{className:`text-muted-foreground font-mono text-xs`,children:X(t)}),r&&(0,H.jsx)(`span`,{className:`text-red text-xs font-medium`,children:`required`}),i.description&&(0,H.jsx)(`span`,{className:`text-muted-foreground w-full text-xs`,children:i.description}),Array.isArray(i.enum)&&i.enum.length>0&&(0,H.jsxs)(`span`,{className:`text-muted-foreground w-full text-xs`,children:[`allowed: `,i.enum.map(e=>JSON.stringify(e)).join(`, `)]})]})}function Me({spec:e,schema:t,depth:n,seen:r}){if(n>=Oe)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,H.jsx)(`div`,{className:`mt-1`,children:(0,H.jsx)(Ae,{spec:e,schema:l,depth:n,seen:r})})}function Ne({label:e,required:t,description:n,note:r,enumValues:i}){return(0,H.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-0.5`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground font-mono text-xs`,children:e}),r&&(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:r}),t&&(0,H.jsx)(`span`,{className:`text-red text-xs font-medium`,children:`required`}),n&&(0,H.jsx)(`span`,{className:`text-muted-foreground w-full text-xs`,children:n}),Array.isArray(i)&&i.length>0&&(0,H.jsxs)(`span`,{className:`text-muted-foreground w-full text-xs`,children:[`allowed: `,i.map(e=>JSON.stringify(e)).join(`, `)]})]})}var Pe=`text-muted-foreground border-border bg-muted`;function Fe(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 Ie({colorClass:e,children:t}){return(0,H.jsx)(`span`,{className:s(`rounded-md border px-2 py-0.5 font-mono text-xs font-bold`,e),children:t})}function Le(e){return e.type===`basic`&&typeof e.username==`string`&&e.username!==``||e.type===`bearer`&&typeof e.token==`string`&&e.token!==``}function Re(e){return e===`post`||e===`put`||e===`patch`}function ze(e,t){return e?`${e.replace(/\/+$/,``)}/${t.replace(/^\/+/,``)}`:t}function Be(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n)}function Ve(e){switch(e.type){case`basic`:return{Authorization:`Basic ${Be(`${e.username}:${e.password}`)}`};case`bearer`:return{Authorization:`Bearer ${e.token}`};default:return{}}}function He(e,t,n,r){let{path:i,missing:a}=Ee(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=ze(t,i)+(s?`?${s}`:``),l={Accept:`application/json`};for(let[e,t]of Object.entries(n.headerParams))t!==``&&(l[e]=t);Object.assign(l,Ve(r));let u=Re(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 Ue(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 Ge(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:Ke(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 We=512e3;async function Ge(e,t=We){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 Ke(e,t,n=!1){return n||e.length>512e3?`${e.length>512e3?e.slice(0,We):e}\n\n… response truncated for display (first ${We} characters shown) …`:qe(e,t)}function qe(e,t){if(!e)return``;if(t&&!t.includes(`json`))return e;try{return JSON.stringify(JSON.parse(e),null,` `)}catch{return e}}function Je(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(`
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-C3Nfubqr.js";import{n as s,t as c}from"./button-BIsUKRZq.js";import{a as l}from"./vendor-datadog-CLUcJXOo.js";import{r as u}from"./vendor-react-CJV_K1u4.js";import{L as d,k as f,x as p,z as m}from"./vendor-tanstack-DxzraizX.js";import{t as h}from"./createLucideIcon-CzW9508A.js";import{n as g}from"./chevron-up-DtKGqDn3.js";import{n as _}from"./setLocalStorage-D_kflv4U.js";import{t as v}from"./useLocalStorage-BqMR3D8_.js";import{$t as y,An as b,Ht as x,Jn as S,Mr as C,Qt as w,Vt as T,br as E,dt as D,en as O,hr as k,kr as A,mt as j,nn as ee,on as te,qn as M,sn as ne,sr as N,tn as re,un as ie,vn as P,wr as F,xn as I,xr as ae,xt as oe}from"./index-BIXW6Pu4.js";import{t as se}from"./useEntityRestURL-BEoXXbUB.js";import{i as L,n as R,r as z,t as B}from"./tabs-BrHu7gJi.js";var V=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`}]]),H=u(),ce={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,H.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`,ce[e],t),children:e})}var W=e(l(),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,H.jsxs)(`div`,{className:`flex max-h-[28rem] flex-col gap-3 lg:h-full lg:max-h-none lg:min-h-0`,children:[(0,H.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,H.jsx)(F,{className:`text-green size-4 shrink-0`}):(0,H.jsx)(V,{className:`text-muted-foreground size-4 shrink-0`}),(0,H.jsx)(`span`,{className:`flex-1 font-medium`,children:`Authorize`}),(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:le[l]})]}),(0,H.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,H.jsx)(k,{className:`text-muted-foreground pointer-events-none absolute top-1/2 left-2.5 size-4 -translate-y-1/2`}),(0,H.jsx)(P,{value:o,onChange:e=>c(e.target.value),placeholder:`Filter endpoints…`,className:`pl-8`,"aria-label":`Filter endpoints`})]}),(0,H.jsx)(`div`,{className:`flex-1 overflow-y-auto overscroll-contain min-h-0 pr-1`,children:n===0?(0,H.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,H.jsx)(`div`,{className:`flex flex-col gap-1`,children:e.map(e=>(0,H.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,H.jsxs)(`div`,{children:[(0,H.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,H.jsx)(g,{className:`size-4 shrink-0`}):(0,H.jsx)(C,{className:`size-4 shrink-0`}),(0,H.jsx)(`span`,{className:`flex-1 truncate text-sm font-semibold`,children:e.resource}),(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e.operationCount})]}),t&&(0,H.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,H.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,H.jsx)(`span`,{className:s(`truncate px-1 font-mono text-xs`,a?`text-foreground`:`text-muted-foreground`),title:e.path,children:e.path}),(0,H.jsx)(`ul`,{className:`border-border/40 ml-2 flex flex-col gap-0.5 border-l pl-2`,children:e.operations.map(e=>(0,H.jsx)(`li`,{children:(0,H.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,H.jsx)(U,{method:e.method,className:`min-w-14`}),e.operation.summary&&(0,H.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,H.jsxs)(`div`,{className:s(`group bg-muted/60 relative rounded-md border`,t),children:[(0,H.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,H.jsx)(A,{className:`size-3.5`})}),(0,H.jsx)(`pre`,{className:s(`overflow-auto p-3 text-xs leading-relaxed`,r),children:(0,H.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 Se(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 Ce=1e3;function Y(e,t,n=new Set,r=0,i={remaining:Ce}){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=Y(e,n,o,r+1,i);return a&&typeof a==`object`&&!Array.isArray(a)?{...t,...a}:t},{}):Y(e,s[0],o,r+1,i);switch(Array.isArray(a.type)?a.type.find(e=>e!==`null`):a.type){case`object`:return we(e,a,o,r+1,i);case`array`:return[Y(e,a.items,o,r+1,i)];case`string`:return Te(a);case`integer`:case`number`:return 0;case`boolean`:return!1;case`null`:return null;default:return a.properties?we(e,a,o,r+1,i):null}}function we(e,t,n,r,i){let a={};for(let[o,s]of Object.entries(t.properties??{})){if(i.remaining<=0)break;a[o]=Y(e,s,n,r,i)}return a}function Te(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 X(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=>X(e)).join(n)||`object`}let t=Array.isArray(e.type)?e.type.join(` | `):e.type;return t===`array`?`${X(e.items)}[]`:e.format&&t?`${t} <${e.format}>`:t??(e.properties?`object`:`any`)}function Ee(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 De(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 Oe=6;function ke({spec:e,schema:t,className:n}){return t?(0,H.jsx)(`div`,{className:s(`text-sm`,n),children:(0,H.jsx)(Ae,{spec:e,schema:t,depth:0,seen:new Set})}):(0,H.jsx)(`p`,{className:s(`text-muted-foreground text-sm`,n),children:`No schema provided.`})}function Ae({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,H.jsx)(Ne,{label:xe(t.$ref),note:`(unresolved reference)`});if(r.has(i)||n>=Oe)return(0,H.jsx)(Ne,{label:X(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,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[X(t),a.additionalProperties?` (open — any additional properties allowed)`:``]});let s=new Set(r).add(a);return(0,H.jsx)(`ul`,{className:`border-border/70 flex flex-col gap-2 border-l pl-3`,children:i.map(([t,r])=>(0,H.jsxs)(`li`,{children:[(0,H.jsx)(je,{name:t,schema:r,spec:e,required:o.has(t)}),(0,H.jsx)(Me,{spec:e,schema:r,depth:n+1,seen:s})]},t))})}if(o===`array`){let t=new Set(r).add(a);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`p`,{className:`text-muted-foreground`,children:[`array of `,X(a.items)]}),a.items&&n<Oe&&(0,H.jsx)(Ae,{spec:e,schema:a.items,depth:n+1,seen:t})]})}return(0,H.jsx)(Ne,{label:X(t),required:i,description:a.description,enumValues:a.enum})}function je({name:e,schema:t,spec:n,required:r}){let i=t.$ref?J(n,t.$ref)??t:t;return(0,H.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-0.5`,children:[(0,H.jsx)(`code`,{className:`text-foreground font-medium`,children:e}),(0,H.jsx)(`span`,{className:`text-muted-foreground font-mono text-xs`,children:X(t)}),r&&(0,H.jsx)(`span`,{className:`text-red text-xs font-medium`,children:`required`}),i.description&&(0,H.jsx)(`span`,{className:`text-muted-foreground w-full text-xs`,children:i.description}),Array.isArray(i.enum)&&i.enum.length>0&&(0,H.jsxs)(`span`,{className:`text-muted-foreground w-full text-xs`,children:[`allowed: `,i.enum.map(e=>JSON.stringify(e)).join(`, `)]})]})}function Me({spec:e,schema:t,depth:n,seen:r}){if(n>=Oe)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,H.jsx)(`div`,{className:`mt-1`,children:(0,H.jsx)(Ae,{spec:e,schema:l,depth:n,seen:r})})}function Ne({label:e,required:t,description:n,note:r,enumValues:i}){return(0,H.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-0.5`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground font-mono text-xs`,children:e}),r&&(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:r}),t&&(0,H.jsx)(`span`,{className:`text-red text-xs font-medium`,children:`required`}),n&&(0,H.jsx)(`span`,{className:`text-muted-foreground w-full text-xs`,children:n}),Array.isArray(i)&&i.length>0&&(0,H.jsxs)(`span`,{className:`text-muted-foreground w-full text-xs`,children:[`allowed: `,i.map(e=>JSON.stringify(e)).join(`, `)]})]})}var Pe=`text-muted-foreground border-border bg-muted`;function Fe(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 Ie({colorClass:e,children:t}){return(0,H.jsx)(`span`,{className:s(`rounded-md border px-2 py-0.5 font-mono text-xs font-bold`,e),children:t})}function Le(e){return e.type===`basic`&&typeof e.username==`string`&&e.username!==``||e.type===`bearer`&&typeof e.token==`string`&&e.token!==``}function Re(e){return e===`post`||e===`put`||e===`patch`}function ze(e,t){return e?`${e.replace(/\/+$/,``)}/${t.replace(/^\/+/,``)}`:t}function Be(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n)}function Ve(e){switch(e.type){case`basic`:return{Authorization:`Basic ${Be(`${e.username}:${e.password}`)}`};case`bearer`:return{Authorization:`Bearer ${e.token}`};default:return{}}}function He(e,t,n,r){let{path:i,missing:a}=Ee(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=ze(t,i)+(s?`?${s}`:``),l={Accept:`application/json`};for(let[e,t]of Object.entries(n.headerParams))t!==``&&(l[e]=t);Object.assign(l,Ve(r));let u=Re(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 Ue(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 Ge(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:Ke(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 We=512e3;async function Ge(e,t=We){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 Ke(e,t,n=!1){return n||e.length>512e3?`${e.length>512e3?e.slice(0,We):e}\n\n… response truncated for display (first ${We} characters shown) …`:qe(e,t)}function qe(e,t){if(!e)return``;if(t&&!t.includes(`json`))return e;try{return JSON.stringify(JSON.parse(e),null,` `)}catch{return e}}function Je(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
2
  `)}function Ye(e,t){if(!Re(t.method)||!t.operation.requestBody)return``;let n=Se(t.operation.requestBody.content);return n?JSON.stringify(Y(e,n),null,` `):``}function Xe({op:e,spec:t,baseURL:n,auth:r,authRequired:i,authorized:a,onOpenAuthorize:o}){let s=x(),l=De(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)(()=>Ye(t,e)),[b,S]=(0,W.useState)(null),[C,w]=(0,W.useState)(!1),E={pathParams:f,queryParams:m,headerParams:g,body:v},D=(0,W.useMemo)(()=>He(e,n??``,E,r),[e,n,r,f,m,g,v]),O=Re(e.method)&&!!e.operation.requestBody,k=[...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),...O&&e.operation.requestBody?.required&&v.trim()===``?[`request body`]:[]],A=!!n&&k.length===0&&!C;async function j(){w(!0),S(null);let e=await Ue(D);S(e),w(!1)}return(0,H.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[i&&!a&&(0,H.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,H.jsx)(`span`,{children:`This endpoint requires authorization.`}),(0,H.jsx)(`button`,{type:`button`,onClick:o,className:`text-foreground font-medium underline underline-offset-2`,children:`Authorize →`})]}),l.length>0&&(0,H.jsx)(Z,{title:`Path parameters`,params:l,values:f,onChange:p}),u.length>0&&(0,H.jsx)(Z,{title:`Query parameters`,params:u,values:m,onChange:h}),d.length>0&&(0,H.jsx)(Z,{title:`Header parameters`,params:d,values:g,onChange:_}),O&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:`Request body`}),(0,H.jsx)(`div`,{className:`h-56 overflow-hidden rounded-md border`,children:(0,H.jsx)(T,{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,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,H.jsxs)(c,{variant:`submit`,onClick:j,disabled:!A,children:[(0,H.jsx)(ae,{}),C?`Sending…`:`Send request`]}),!n&&(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:`The REST API URL couldn't be determined for this instance.`}),n&&k.length>0&&(0,H.jsxs)(`span`,{className:`text-muted-foreground text-xs`,children:[`Fill in: `,k.join(`, `)]})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:`Request`}),(0,H.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,H.jsx)(`span`,{className:`uppercase`,children:D.method}),(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:D.url})]})]}),b&&(0,H.jsx)(Ze,{result:b}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:`Code sample — fetch`}),(0,H.jsx)(G,{code:Je(D),label:`code sample`})]})]})}function Z({title:e,params:t,values:n,onChange:r}){return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:e}),(0,H.jsx)(`div`,{className:`flex flex-col gap-3`,children:t.map(e=>(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsxs)(I,{htmlFor:`param-${e.in}-${e.name}`,className:`flex items-baseline gap-2`,children:[(0,H.jsx)(`code`,{children:e.name}),e.required&&(0,H.jsx)(`span`,{className:`text-red text-xs font-medium`,children:`required`}),e.schema&&(0,H.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,H.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,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:`Response`}),(0,H.jsx)(Ie,{colorClass:Fe(e.status),children:e.networkError?`Failed`:`${e.status} ${e.statusText}`.trim()}),(0,H.jsxs)(`span`,{className:`text-muted-foreground text-xs`,children:[e.durationMs,` ms`]})]}),e.networkError?(0,H.jsxs)(`div`,{className:`border-red/40 bg-red/10 text-foreground rounded-md border p-3 text-sm`,children:[(0,H.jsx)(`p`,{className:`text-red font-medium`,children:`The request could not be completed.`}),(0,H.jsx)(`p`,{className:`text-muted-foreground mt-1 text-xs`,children:e.networkError}),(0,H.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,H.jsx)(G,{code:e.body||`(empty response body)`,label:`response body`})]})}function Qe(e){let t=Number(e);return Number.isFinite(t)?Fe(t):Pe}function $e({op:e,spec:t,baseURL:n,auth:r,authorized:i,onOpenAuthorize:a}){let[o]=ne(e.path),s=pe(e.operation,t),l=e.operation.summary,u=e.operation.description;return(0,H.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(U,{method:e.method}),(0,H.jsx)(`code`,{className:`text-foreground text-base font-medium break-all`,children:e.path}),(0,H.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Copy path`,className:`size-7`,onClick:o,children:(0,H.jsx)(A,{className:`size-3.5`})}),e.operation.deprecated&&(0,H.jsx)(M,{variant:`warning`,children:`Deprecated`}),s&&(0,H.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,H.jsx)(F,{className:`text-green size-3`}):(0,H.jsx)(F,{className:`text-muted-foreground size-3`}),i?`Credential set`:`Auth required — Authorize`]})]}),l&&(0,H.jsx)(`h2`,{className:`text-lg font-medium`,children:l}),u&&u!==l&&(0,H.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:u})]}),(0,H.jsxs)(B,{defaultValue:`docs`,className:`gap-4`,children:[(0,H.jsxs)(z,{children:[(0,H.jsx)(L,{value:`docs`,children:`Documentation`}),(0,H.jsx)(L,{value:`try`,children:`Try it out`})]}),(0,H.jsxs)(R,{value:`docs`,className:`flex flex-col gap-6`,children:[(0,H.jsx)(tt,{parameters:e.parameters}),(0,H.jsx)(nt,{op:e,spec:t}),(0,H.jsx)(rt,{responses:e.operation.responses,spec:t})]}),(0,H.jsx)(R,{value:`try`,children:(0,H.jsx)(Xe,{op:e,spec:t,baseURL:n,auth:r,authRequired:s,authorized:i,onOpenAuthorize:a})})]})]})}function et({children:e}){return(0,H.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,H.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,H.jsx)(et,{children:`Parameters`}),(0,H.jsx)(`ul`,{className:`flex flex-col gap-3`,children:e.map(e=>(0,H.jsxs)(`li`,{className:`flex flex-col gap-0.5`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,H.jsx)(`code`,{className:`text-foreground font-medium`,children:e.name}),(0,H.jsx)(M,{variant:`outline`,className:`text-[0.65rem]`,children:e.in}),(0,H.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,H.jsx)(`span`,{className:`text-red text-xs font-medium`,children:`required`})]}),e.description&&(0,H.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?Se(n.content):void 0,i=(0,W.useMemo)(()=>r?JSON.stringify(Y(t,r),null,` `):``,[t,r]);return n?(0,H.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,H.jsxs)(et,{children:[`Request body`,n.required?` (required)`:``]}),n.description&&(0,H.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:n.description}),(0,H.jsx)(ke,{spec:t,schema:r}),i&&i!==`{}`&&i!==`null`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:`Example`}),(0,H.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,H.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,H.jsx)(et,{children:`Responses`}),(0,H.jsx)(`div`,{className:`flex flex-col gap-4`,children:n.map(([e,n])=>{let r=Se(n.content);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,H.jsx)(Ie,{colorClass:Qe(e),children:e}),n.description&&(0,H.jsx)(`span`,{className:`text-muted-foreground text-sm`,children:n.description})]}),r&&(0,H.jsx)(`div`,{className:`pl-1`,children:(0,H.jsx)(ke,{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,H.jsxs)(`div`,{className:`flex max-w-2xl flex-col gap-8`,children:[(0,H.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h2`,{className:`text-lg font-medium`,children:`Server`}),(0,H.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`The base URL that "Try it out" requests target.`})]}),(0,H.jsx)(ft,{options:f,value:p,onChange:m,onCopy:h})]}),(0,H.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[r?(0,H.jsx)(F,{className:`text-green size-4`}):(0,H.jsx)(V,{className:`text-muted-foreground size-4`}),(0,H.jsx)(`h2`,{className:`text-lg font-medium`,children:`Authorization`})]}),(0,H.jsxs)(B,{value:i,onValueChange:e=>a(e),className:`gap-4`,children:[(0,H.jsxs)(z,{children:[(0,H.jsx)(L,{value:`docs`,children:`Documentation`}),(0,H.jsx)(L,{value:`try`,children:`Try it out`})]}),(0,H.jsx)(R,{value:`docs`,children:(0,H.jsx)(ot,{available:g})}),(0,H.jsxs)(R,{value:`try`,className:`flex flex-col gap-4`,children:[(0,H.jsx)(st,{method:t,available:g,onSelect:o}),r&&(0,H.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,H.jsx)(F,{className:`text-green size-4`}),(0,H.jsx)(`span`,{className:`flex-1`,children:`Credential set — "Try it out" requests will send it.`}),(0,H.jsx)(c,{type:`button`,variant:`outline`,size:`sm`,onClick:u,children:`Clear`})]}),t===`login`&&(0,H.jsx)(ct,{login:d,authorized:r},d.revocation),t===`basic`&&(0,H.jsx)(lt,{auth:n,onApply:s}),t===`bearer`&&(0,H.jsx)(ut,{auth:n,onApply:l}),t===`cookie`&&(0,H.jsx)(dt,{})]})]})]})]})}function ot({available:e}){return(0,H.jsxs)(`div`,{className:`text-muted-foreground flex max-w-prose flex-col gap-4 text-sm`,children:[(0,H.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,H.jsxs)(`dl`,{className:`flex flex-col gap-3`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`dt`,{className:`text-foreground font-medium`,children:`Log in (recommended)`}),(0,H.jsxs)(`dd`,{children:[`Exchanges your current Studio session — or a username and password — for a short-lived Bearer token, sent as an `,(0,H.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,H.jsxs)(`div`,{children:[(0,H.jsx)(`dt`,{className:`text-foreground font-medium`,children:`Basic`}),(0,H.jsxs)(`dd`,{children:[`Sends your username and password as an `,(0,H.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,H.jsxs)(`div`,{children:[(0,H.jsx)(`dt`,{className:`text-foreground font-medium`,children:`Bearer token`}),(0,H.jsxs)(`dd`,{children:[`Paste an existing operation token; it's sent as an `,(0,H.jsx)(`code`,{children:`Authorization: Bearer`}),` header.`]})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`dt`,{className:`text-foreground font-medium`,children:`Cookie`}),(0,H.jsxs)(`dd`,{children:[`Relies on your browser's instance session cookie (`,(0,H.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,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,H.jsx)(Q,{active:e===`login`,onClick:()=>n(`login`),children:`Log in`}),t.basic&&(0,H.jsx)(Q,{active:e===`basic`,onClick:()=>n(`basic`),children:`Basic`}),t.bearer&&(0,H.jsx)(Q,{active:e===`bearer`,onClick:()=>n(`bearer`),children:`Bearer token`}),(0,H.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,H.jsxs)(`div`,{className:`flex max-w-sm flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(c,{type:`button`,variant:`submit`,disabled:o,onClick:()=>l(e.runSession),children:o?`Authorizing…`:`Authorize with your current session`}),(0,H.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,H.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,H.jsx)(`span`,{className:`text-muted-foreground text-xs font-semibold uppercase tracking-wide`,children:`Or use different credentials`}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(I,{htmlFor:`api-login-username`,children:`Username`}),(0,H.jsx)(P,{id:`api-login-username`,value:n,autoComplete:`username`,onChange:e=>{s.current++,r(e.target.value)}})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(I,{htmlFor:`api-login-password`,children:`Password`}),(0,H.jsx)(P,{id:`api-login-password`,type:`password`,value:i,autoComplete:`current-password`,onChange:e=>{s.current++,a(e.target.value)}})]}),(0,H.jsx)(c,{type:`submit`,variant:`outline`,disabled:o||!n||!i,children:o?`Authorizing…`:`Authorize`})]}),e.status===`error`&&e.error&&(0,H.jsx)(`p`,{className:`text-red text-sm`,children:e.error}),!t&&e.status===`idle`&&(0,H.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,H.jsxs)(`form`,{className:`flex max-w-sm flex-col gap-3`,onSubmit:e=>{e.preventDefault(),t(n,i)},children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(I,{htmlFor:`api-auth-username`,children:`Username`}),(0,H.jsx)(P,{id:`api-auth-username`,value:n,autoComplete:`username`,onChange:e=>r(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(I,{htmlFor:`api-auth-password`,children:`Password`}),(0,H.jsx)(P,{id:`api-auth-password`,type:`password`,value:i,autoComplete:`current-password`,onChange:e=>a(e.target.value)})]}),(0,H.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,H.jsxs)(`form`,{className:`flex max-w-sm flex-col gap-1.5`,onSubmit:e=>{e.preventDefault(),t(n)},children:[(0,H.jsx)(I,{htmlFor:`api-auth-token`,children:`Token`}),(0,H.jsx)(P,{id:`api-auth-token`,value:n,placeholder:`eyJhbGciOi…`,onChange:e=>r(e.target.value)}),(0,H.jsx)(c,{type:`submit`,variant:`outline`,className:`mt-2`,disabled:!n,children:`Authorize`})]})}function dt(){return(0,H.jsxs)(`p`,{className:`text-muted-foreground max-w-prose text-sm`,children:[`Requests are sent with your browser's instance session cookie (`,(0,H.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,H.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`No server URL could be determined for this instance.`}):e.length===1?(0,H.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,H.jsx)(`span`,{className:`font-mono break-all`,children:e[0].url}),(0,H.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Copy server URL`,className:`size-6`,onClick:r,children:(0,H.jsx)(A,{className:`size-3`})})]}):(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,H.jsxs)(w,{value:t,onValueChange:n,children:[(0,H.jsx)(re,{className:`max-w-md min-w-0 flex-1`,"aria-label":`Server`,children:(0,H.jsx)(ee,{})}),(0,H.jsx)(y,{children:e.map(e=>(0,H.jsxs)(O,{value:e.url,children:[(0,H.jsx)(`span`,{className:`font-mono text-xs`,children:e.url}),(0,H.jsxs)(`span`,{className:`text-muted-foreground text-xs`,children:[`— `,e.label]})]},e.url))})]}),(0,H.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Copy server URL`,className:`size-6`,onClick:r,children:(0,H.jsx)(A,{className:`size-3`})})]})}function Q({active:e,onClick:t,children:n}){return(0,H.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),[ee,te]=(0,W.useState)(0),[N,re]=(0,W.useState)(()=>i.getExplorerAuthEpoch(r));(0,W.useEffect)(()=>{let e=i.onExplorerAuthInvalidated(r,()=>{E.current++,x(o(r)),k(`idle`),j(null),re(i.getExplorerAuthEpoch(r)),te(e=>e+1)});return re(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`)}},P={status:O,error:A,revocation:ee,runSession:()=>ie(a),runCredentials:c?e=>ie(()=>c(e)):null},F=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)},I=(e,t)=>{E.current++,S({method:`basic`,auth:{type:`basic`,username:e,password:t},authServer:T??void 0,authGeneration:i.getExplorerAuthEpoch(r)})},ae=e=>{E.current++,S({method:`bearer`,auth:{type:`bearer`,token:e},authServer:T??void 0,authGeneration:i.getExplorerAuthEpoch(r)})},oe=()=>{E.current++,k(`idle`),j(null),S({auth:C===`basic`?{type:`basic`,username:``,password:``}:C===`bearer`?{type:`bearer`,token:``}:{type:`cookie`},authServer:void 0})},se=e=>S({server:e}),[L]=ne(T??``),R=b.authServer!=null&&b.authServer===T,z=b.authGeneration===N,B=Le(w)&&R&&z?w:gt,V=Le(B),{width:ce,isResizing:U,startResizing:le,handleKeyDown:de}=ht(),G={"--api-sidebar-width":`${ce}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,H.jsxs)(`div`,{className:`flex flex-col gap-5 lg:min-h-0 lg:flex-1`,children:[(0,H.jsxs)(`header`,{className:`flex min-w-0 flex-col lg:shrink-0`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`h1`,{className:`font-radioGrotesk truncate text-2xl`,children:e?.info?.title??`API Explorer`}),e?.info?.version&&(0,H.jsxs)(M,{variant:`secondary`,children:[`v`,e.info.version]})]}),e?.info?.description&&(0,H.jsx)(`p`,{className:`text-muted-foreground mt-1 text-sm`,children:e.info.description})]}),l.length===0?(0,H.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,H.jsxs)(`div`,{className:`flex flex-col gap-6 lg:min-h-0 lg:flex-1 lg:flex-row lg:items-stretch`,children:[(0,H.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,H.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:V,settingsActive:p===`settings`,onOpenSettings:()=>y(`docs`)}),(0,H.jsx)(`div`,{role:`separator`,tabIndex:0,"aria-orientation":`vertical`,"aria-label":`Resize sidebar`,"aria-valuenow":ce,"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,H.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,H.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,H.jsx)(at,{spec:e,method:C,auth:w,authorized:V,tab:h,onTabChange:g,onSelectMethod:F,onApplyBasic:I,onApplyBearer:ae,onClearAuth:oe,login:P,serverOptions:u,activeServer:T??void 0,onServerChange:se,onCopyServer:L}):q?(0,H.jsx)($e,{op:q,spec:e,baseURL:T??null,auth:B,authorized:V,onOpenAuthorize:()=>y(`try`)},q.id):(0,H.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`Select an endpoint to see its documentation.`})})]})]})}function vt({entityId:e,instanceClient:t}){return d({queryKey:[`OpenAPI`,e],queryFn:async()=>{let{data:e}=await t.get(`/api/openapi/rest`);return e}})}function yt(){let{instanceId:e,clusterId:n}=f({strict:!1}),i=b(),{data:o,isLoading:s}=m(D(i)),{data:l,isLoading:u}=m(oe(i)),d=se(),{data:p,isLoading:h,error:g}=m(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,C=``,w=x?.cors===!1,T=x?.corsAccessList?.length!==void 0&&!x.corsAccessList.includes(`*`)&&!x.corsAccessList.includes(`null`)&&!x.corsAccessList.includes(window.location.origin);w?C=`This ${n&&!e?`cluster`:`instance`} has CORS disabled currently, so you won't be able to execute API requests from the browser.`:T&&(C=`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:O,isPending:k}=j(),A=(0,W.useCallback)(()=>{O({...w?{http_cors:!0}:{},...T?{http_corsAccessList:[...x?.corsAccessList??[],window.location.origin]}:{}})},[w,x?.corsAccessList,T,O]);if(s||u||h)return(0,H.jsx)(S,{centered:!0,text:`Looking up your instance configuration, one moment.`});if(g){let e;return e=l?.version&&!ie(`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,H.jsx)(N,{title:`API Docs Unavailable`,error:{message:e},showReturnToHome:!1})}return(0,H.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:[C&&(0,H.jsx)(N,{title:`CORS Disabled: HTTP API Not Accessible`,className:`mt-0 mb-6 shrink-0 border-yellow text-yellow`,error:{message:C},showReturnToHome:!1,children:(0,H.jsxs)(c,{type:`button`,disabled:k,variant:`warning`,onClick:A,children:[(0,H.jsx)(E,{}),k?`Enabling CORS...`:`Enable CORS for ${window.location.origin}`]})}),(0,H.jsx)(_t,{spec:p,baseURL:d,entityId:i.entityId,onSessionMint:v,onCredentialMint:y},i.entityId)]})}var bt=p(`/apis`)({component:yt});export{bt as route};
@@ -1 +1 @@
1
- import{conf as e,language as t}from"./typescript-Cdg0mqUh.js";var n=e,r={defaultToken:`invalid`,tokenPostfix:`.js`,keywords:`break.case.catch.class.continue.const.constructor.debugger.default.delete.do.else.export.extends.false.finally.for.from.function.get.if.import.in.instanceof.let.new.null.return.set.static.super.switch.symbol.this.throw.true.try.typeof.undefined.var.void.while.with.yield.async.await.of`.split(`.`),typeKeywords:[],operators:t.operators,symbols:t.symbols,escapes:t.escapes,digits:t.digits,octaldigits:t.octaldigits,binarydigits:t.binarydigits,hexdigits:t.hexdigits,regexpctl:t.regexpctl,regexpesc:t.regexpesc,tokenizer:t.tokenizer};export{n as conf,r as language};
1
+ import{conf as e,language as t}from"./typescript-C9orXcsM.js";var n=e,r={defaultToken:`invalid`,tokenPostfix:`.js`,keywords:`break.case.catch.class.continue.const.constructor.debugger.default.delete.do.else.export.extends.false.finally.for.from.function.get.if.import.in.instanceof.let.new.null.return.set.static.super.switch.symbol.this.throw.true.try.typeof.undefined.var.void.while.with.yield.async.await.of`.split(`.`),typeKeywords:[],operators:t.operators,symbols:t.symbols,escapes:t.escapes,digits:t.digits,octaldigits:t.octaldigits,binarydigits:t.binarydigits,hexdigits:t.hexdigits,regexpctl:t.regexpctl,regexpesc:t.regexpesc,tokenizer:t.tokenizer};export{n as conf,r as language};
@@ -1 +1 @@
1
- import{X as e}from"./index-Dfpeofdu.js";import{_ as t,g as n}from"./register-1ZZuMsiA.js";import{t as r}from"./workers-BgoXIqQe.js";import{_ as i,a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,m as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b,v as x}from"./lspLanguageFeatures-BC8_gxKG.js";var S=12e4,C=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>S&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=r({moduleId:`vs/language/json/jsonWorker`,createWorker:()=>new Worker(new URL(`/assets/json.worker-fO_hOLCP.js`,``+import.meta.url),{type:`module`}),label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}},w;function T(){return new Promise((e,t)=>{if(!w)return t(`JSON not registered!`);e(w)})}var E=class extends _{constructor(e,t,r){super(e,t,r.onDidChange),this._disposables.push(n.onWillDisposeModel(e=>{this._resetSchema(e.uri)})),this._disposables.push(n.onDidChangeModelLanguage(e=>{this._resetSchema(e.model.uri)}))}_resetSchema(e){this._worker().then(t=>{t.resetSchema(e.toString())})}};function D(n){let r=[],i=[],c=new C(n);r.push(c),w=(...e)=>c.getLanguageServiceWorker(...e);function l(){let{languageId:r,modeConfiguration:c}=n;k(i),c.documentFormattingEdits&&i.push(t.registerDocumentFormattingEditProvider(r,new a(w))),c.documentRangeFormattingEdits&&i.push(t.registerDocumentRangeFormattingEditProvider(r,new o(w))),c.completionItems&&i.push(t.registerCompletionItemProvider(r,new y(w,[` `,`:`,`"`]))),c.hovers&&i.push(t.registerHoverProvider(r,new s(w))),c.documentSymbols&&i.push(t.registerDocumentSymbolProvider(r,new f(w))),c.tokens&&i.push(t.setTokensProvider(r,e(!0))),c.colors&&i.push(t.registerColorProvider(r,new d(w))),c.foldingRanges&&i.push(t.registerFoldingRangeProvider(r,new b(w))),c.diagnostics&&i.push(new E(r,w,n)),c.selectionRanges&&i.push(t.registerSelectionRangeProvider(r,new p(w)))}l(),r.push(t.setLanguageConfiguration(n.languageId,A));let u=n.modeConfiguration;return n.onDidChange(e=>{e.modeConfiguration!==u&&(u=e.modeConfiguration,l())}),r.push(O(i)),O(r)}function O(e){return{dispose:()=>k(e)}}function k(e){for(;e.length;)e.pop().dispose()}var A={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`]],autoClosingPairs:[{open:`{`,close:`}`,notIn:[`string`]},{open:`[`,close:`]`,notIn:[`string`]},{open:`"`,close:`"`,notIn:[`string`]}]};export{y as CompletionAdapter,m as DefinitionAdapter,_ as DiagnosticsAdapter,d as DocumentColorAdapter,a as DocumentFormattingEditProvider,h as DocumentHighlightAdapter,v as DocumentLinkAdapter,o as DocumentRangeFormattingEditProvider,f as DocumentSymbolAdapter,b as FoldingRangeAdapter,s as HoverAdapter,c as ReferenceAdapter,g as RenameAdapter,p as SelectionRangeAdapter,C as WorkerManager,u as fromPosition,l as fromRange,T as getWorker,D as setupMode,i as toRange,x as toTextEdit};
1
+ import{X as e}from"./index-BIXW6Pu4.js";import{_ as t,g as n}from"./register-6qwNEOY3.js";import{t as r}from"./workers-JVzSDmgx.js";import{_ as i,a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,m as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b,v as x}from"./lspLanguageFeatures-CCQ8P5sY.js";var S=12e4,C=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>S&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=r({moduleId:`vs/language/json/jsonWorker`,createWorker:()=>new Worker(new URL(`/assets/json.worker-fO_hOLCP.js`,``+import.meta.url),{type:`module`}),label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}},w;function T(){return new Promise((e,t)=>{if(!w)return t(`JSON not registered!`);e(w)})}var E=class extends _{constructor(e,t,r){super(e,t,r.onDidChange),this._disposables.push(n.onWillDisposeModel(e=>{this._resetSchema(e.uri)})),this._disposables.push(n.onDidChangeModelLanguage(e=>{this._resetSchema(e.model.uri)}))}_resetSchema(e){this._worker().then(t=>{t.resetSchema(e.toString())})}};function D(n){let r=[],i=[],c=new C(n);r.push(c),w=(...e)=>c.getLanguageServiceWorker(...e);function l(){let{languageId:r,modeConfiguration:c}=n;k(i),c.documentFormattingEdits&&i.push(t.registerDocumentFormattingEditProvider(r,new a(w))),c.documentRangeFormattingEdits&&i.push(t.registerDocumentRangeFormattingEditProvider(r,new o(w))),c.completionItems&&i.push(t.registerCompletionItemProvider(r,new y(w,[` `,`:`,`"`]))),c.hovers&&i.push(t.registerHoverProvider(r,new s(w))),c.documentSymbols&&i.push(t.registerDocumentSymbolProvider(r,new f(w))),c.tokens&&i.push(t.setTokensProvider(r,e(!0))),c.colors&&i.push(t.registerColorProvider(r,new d(w))),c.foldingRanges&&i.push(t.registerFoldingRangeProvider(r,new b(w))),c.diagnostics&&i.push(new E(r,w,n)),c.selectionRanges&&i.push(t.registerSelectionRangeProvider(r,new p(w)))}l(),r.push(t.setLanguageConfiguration(n.languageId,A));let u=n.modeConfiguration;return n.onDidChange(e=>{e.modeConfiguration!==u&&(u=e.modeConfiguration,l())}),r.push(O(i)),O(r)}function O(e){return{dispose:()=>k(e)}}function k(e){for(;e.length;)e.pop().dispose()}var A={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`]],autoClosingPairs:[{open:`{`,close:`}`,notIn:[`string`]},{open:`[`,close:`]`,notIn:[`string`]},{open:`"`,close:`"`,notIn:[`string`]}]};export{y as CompletionAdapter,m as DefinitionAdapter,_ as DiagnosticsAdapter,d as DocumentColorAdapter,a as DocumentFormattingEditProvider,h as DocumentHighlightAdapter,v as DocumentLinkAdapter,o as DocumentRangeFormattingEditProvider,f as DocumentSymbolAdapter,b as FoldingRangeAdapter,s as HoverAdapter,c as ReferenceAdapter,g as RenameAdapter,p as SelectionRangeAdapter,C as WorkerManager,u as fromPosition,l as fromRange,T as getWorker,D as setupMode,i as toRange,x as toTextEdit};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./register-1ZZuMsiA.js";var n=e({json:()=>t});export{n as t};
1
+ import{n as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./register-6qwNEOY3.js";var n=e({json:()=>t});export{n as t};
@@ -1,4 +1,4 @@
1
- import{_ as e,c as t,d as n,g as r,h as i}from"./register-1ZZuMsiA.js";var a;(function(e){function t(e){return typeof e==`string`}e.is=t})(a||={});var o;(function(e){function t(e){return typeof e==`string`}e.is=t})(o||={});var s;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(s||={});var c;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(c||={});var l;(function(e){function t(e,t){return e===Number.MAX_VALUE&&(e=c.MAX_VALUE),t===Number.MAX_VALUE&&(t=c.MAX_VALUE),{line:e,character:t}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.uinteger(t.line)&&U.uinteger(t.character)}e.is=n})(l||={});var u;(function(e){function t(e,t,n,r){if(U.uinteger(e)&&U.uinteger(t)&&U.uinteger(n)&&U.uinteger(r))return{start:l.create(e,t),end:l.create(n,r)};if(l.is(e)&&l.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`)}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&l.is(t.start)&&l.is(t.end)}e.is=n})(u||={});var d;(function(e){function t(e,t){return{uri:e,range:t}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&u.is(t.range)&&(U.string(t.uri)||U.undefined(t.uri))}e.is=n})(d||={});var f;(function(e){function t(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&u.is(t.targetRange)&&U.string(t.targetUri)&&u.is(t.targetSelectionRange)&&(u.is(t.originSelectionRange)||U.undefined(t.originSelectionRange))}e.is=n})(f||={});var p;(function(e){function t(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.numberRange(t.red,0,1)&&U.numberRange(t.green,0,1)&&U.numberRange(t.blue,0,1)&&U.numberRange(t.alpha,0,1)}e.is=n})(p||={});var ee;(function(e){function t(e,t){return{range:e,color:t}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&u.is(t.range)&&p.is(t.color)}e.is=n})(ee||={});var te;(function(e){function t(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.string(t.label)&&(U.undefined(t.textEdit)||y.is(t))&&(U.undefined(t.additionalTextEdits)||U.typedArray(t.additionalTextEdits,y.is))}e.is=n})(te||={});var m;(function(e){e.Comment=`comment`,e.Imports=`imports`,e.Region=`region`})(m||={});var ne;(function(e){function t(e,t,n,r,i,a){let o={startLine:e,endLine:t};return U.defined(n)&&(o.startCharacter=n),U.defined(r)&&(o.endCharacter=r),U.defined(i)&&(o.kind=i),U.defined(a)&&(o.collapsedText=a),o}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.uinteger(t.startLine)&&U.uinteger(t.startLine)&&(U.undefined(t.startCharacter)||U.uinteger(t.startCharacter))&&(U.undefined(t.endCharacter)||U.uinteger(t.endCharacter))&&(U.undefined(t.kind)||U.string(t.kind))}e.is=n})(ne||={});var h;(function(e){function t(e,t){return{location:e,message:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&d.is(t.location)&&U.string(t.message)}e.is=n})(h||={});var g;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(g||={});var re;(function(e){e.Unnecessary=1,e.Deprecated=2})(re||={});var ie;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&U.string(t.href)}e.is=t})(ie||={});var _;(function(e){function t(e,t,n,r,i,a){let o={range:e,message:t};return U.defined(n)&&(o.severity=n),U.defined(r)&&(o.code=r),U.defined(i)&&(o.source=i),U.defined(a)&&(o.relatedInformation=a),o}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&U.string(t.message)&&(U.number(t.severity)||U.undefined(t.severity))&&(U.integer(t.code)||U.string(t.code)||U.undefined(t.code))&&(U.undefined(t.codeDescription)||U.string(t.codeDescription?.href))&&(U.string(t.source)||U.undefined(t.source))&&(U.undefined(t.relatedInformation)||U.typedArray(t.relatedInformation,h.is))}e.is=n})(_||={});var v;(function(e){function t(e,t,...n){let r={title:e,command:t};return U.defined(n)&&n.length>0&&(r.arguments=n),r}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.title)&&U.string(t.command)}e.is=n})(v||={});var y;(function(e){function t(e,t){return{range:e,newText:t}}e.replace=t;function n(e,t){return{range:{start:e,end:e},newText:t}}e.insert=n;function r(e){return{range:e,newText:``}}e.del=r;function i(e){let t=e;return U.objectLiteral(t)&&U.string(t.newText)&&u.is(t.range)}e.is=i})(y||={});var b;(function(e){function t(e,t,n){let r={label:e};return t!==void 0&&(r.needsConfirmation=t),n!==void 0&&(r.description=n),r}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.string(t.label)&&(U.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(U.string(t.description)||t.description===void 0)}e.is=n})(b||={});var x;(function(e){function t(e){let t=e;return U.string(t)}e.is=t})(x||={});var ae;(function(e){function t(e,t,n){return{range:e,newText:t,annotationId:n}}e.replace=t;function n(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}}e.insert=n;function r(e,t){return{range:e,newText:``,annotationId:t}}e.del=r;function i(e){let t=e;return y.is(t)&&(b.is(t.annotationId)||x.is(t.annotationId))}e.is=i})(ae||={});var S;(function(e){function t(e,t){return{textDocument:e,edits:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&k.is(t.textDocument)&&Array.isArray(t.edits)}e.is=n})(S||={});var C;(function(e){function t(e,t,n){let r={kind:`create`,uri:e};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`create`&&U.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||U.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||U.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(C||={});var w;(function(e){function t(e,t,n,r){let i={kind:`rename`,oldUri:e,newUri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(i.options=n),r!==void 0&&(i.annotationId=r),i}e.create=t;function n(e){let t=e;return t&&t.kind===`rename`&&U.string(t.oldUri)&&U.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||U.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||U.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(w||={});var T;(function(e){function t(e,t,n){let r={kind:`delete`,uri:e};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`delete`&&U.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||U.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||U.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(T||={});var E;(function(e){function t(e){let t=e;return t&&(t.changes!==void 0||t.documentChanges!==void 0)&&(t.documentChanges===void 0||t.documentChanges.every(e=>U.string(e.kind)?C.is(e)||w.is(e)||T.is(e):S.is(e)))}e.is=t})(E||={});var D;(function(e){function t(e){return{uri:e}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)}e.is=n})(D||={});var O;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&U.integer(t.version)}e.is=n})(O||={});var k;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&(t.version===null||U.integer(t.version))}e.is=n})(k||={});var oe;(function(e){function t(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&U.string(t.languageId)&&U.integer(t.version)&&U.string(t.text)}e.is=n})(oe||={});var A;(function(e){e.PlainText=`plaintext`,e.Markdown=`markdown`;function t(t){let n=t;return n===e.PlainText||n===e.Markdown}e.is=t})(A||={});var j;(function(e){function t(e){let t=e;return U.objectLiteral(e)&&A.is(t.kind)&&U.string(t.value)}e.is=t})(j||={});var M;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(M||={});var N;(function(e){e.PlainText=1,e.Snippet=2})(N||={});var se;(function(e){e.Deprecated=1})(se||={});var ce;(function(e){function t(e,t,n){return{newText:e,insert:t,replace:n}}e.create=t;function n(e){let t=e;return t&&U.string(t.newText)&&u.is(t.insert)&&u.is(t.replace)}e.is=n})(ce||={});var le;(function(e){e.asIs=1,e.adjustIndentation=2})(le||={});var ue;(function(e){function t(e){let t=e;return t&&(U.string(t.detail)||t.detail===void 0)&&(U.string(t.description)||t.description===void 0)}e.is=t})(ue||={});var de;(function(e){function t(e){return{label:e}}e.create=t})(de||={});var fe;(function(e){function t(e,t){return{items:e||[],isIncomplete:!!t}}e.create=t})(fe||={});var P;(function(e){function t(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}e.fromPlainText=t;function n(e){let t=e;return U.string(t)||U.objectLiteral(t)&&U.string(t.language)&&U.string(t.value)}e.is=n})(P||={});var pe;(function(e){function t(e){let t=e;return!!t&&U.objectLiteral(t)&&(j.is(t.contents)||P.is(t.contents)||U.typedArray(t.contents,P.is))&&(e.range===void 0||u.is(e.range))}e.is=t})(pe||={});var me;(function(e){function t(e,t){return t?{label:e,documentation:t}:{label:e}}e.create=t})(me||={});var F;(function(e){function t(e,t,...n){let r={label:e};return U.defined(t)&&(r.documentation=t),r.parameters=U.defined(n)?n:[],r}e.create=t})(F||={});var I;(function(e){e.Text=1,e.Read=2,e.Write=3})(I||={});var L;(function(e){function t(e,t){let n={range:e};return U.number(t)&&(n.kind=t),n}e.create=t})(L||={});var R;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(R||={});var z;(function(e){e.Deprecated=1})(z||={});var he;(function(e){function t(e,t,n,r,i){let a={name:e,kind:t,location:{uri:r,range:n}};return i&&(a.containerName=i),a}e.create=t})(he||={});var ge;(function(e){function t(e,t,n,r){return r===void 0?{name:e,kind:t,location:{uri:n}}:{name:e,kind:t,location:{uri:n,range:r}}}e.create=t})(ge||={});var _e;(function(e){function t(e,t,n,r,i,a){let o={name:e,detail:t,kind:n,range:r,selectionRange:i};return a!==void 0&&(o.children=a),o}e.create=t;function n(e){let t=e;return t&&U.string(t.name)&&U.number(t.kind)&&u.is(t.range)&&u.is(t.selectionRange)&&(t.detail===void 0||U.string(t.detail))&&(t.deprecated===void 0||U.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=n})(_e||={});var ve;(function(e){e.Empty=``,e.QuickFix=`quickfix`,e.Refactor=`refactor`,e.RefactorExtract=`refactor.extract`,e.RefactorInline=`refactor.inline`,e.RefactorRewrite=`refactor.rewrite`,e.Source=`source`,e.SourceOrganizeImports=`source.organizeImports`,e.SourceFixAll=`source.fixAll`})(ve||={});var B;(function(e){e.Invoked=1,e.Automatic=2})(B||={});var ye;(function(e){function t(e,t,n){let r={diagnostics:e};return t!=null&&(r.only=t),n!=null&&(r.triggerKind=n),r}e.create=t;function n(e){let t=e;return U.defined(t)&&U.typedArray(t.diagnostics,_.is)&&(t.only===void 0||U.typedArray(t.only,U.string))&&(t.triggerKind===void 0||t.triggerKind===B.Invoked||t.triggerKind===B.Automatic)}e.is=n})(ye||={});var be;(function(e){function t(e,t,n){let r={title:e},i=!0;return typeof t==`string`?(i=!1,r.kind=t):v.is(t)?r.command=t:r.edit=t,i&&n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return t&&U.string(t.title)&&(t.diagnostics===void 0||U.typedArray(t.diagnostics,_.is))&&(t.kind===void 0||U.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||v.is(t.command))&&(t.isPreferred===void 0||U.boolean(t.isPreferred))&&(t.edit===void 0||E.is(t.edit))}e.is=n})(be||={});var xe;(function(e){function t(e,t){let n={range:e};return U.defined(t)&&(n.data=t),n}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&(U.undefined(t.command)||v.is(t.command))}e.is=n})(xe||={});var Se;(function(e){function t(e,t){return{tabSize:e,insertSpaces:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.uinteger(t.tabSize)&&U.boolean(t.insertSpaces)}e.is=n})(Se||={});var Ce;(function(e){function t(e,t,n){return{range:e,target:t,data:n}}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&(U.undefined(t.target)||U.string(t.target))}e.is=n})(Ce||={});var we;(function(e){function t(e,t){return{range:e,parent:t}}e.create=t;function n(t){let n=t;return U.objectLiteral(n)&&u.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=n})(we||={});var Te;(function(e){e.namespace=`namespace`,e.type=`type`,e.class=`class`,e.enum=`enum`,e.interface=`interface`,e.struct=`struct`,e.typeParameter=`typeParameter`,e.parameter=`parameter`,e.variable=`variable`,e.property=`property`,e.enumMember=`enumMember`,e.event=`event`,e.function=`function`,e.method=`method`,e.macro=`macro`,e.keyword=`keyword`,e.modifier=`modifier`,e.comment=`comment`,e.string=`string`,e.number=`number`,e.regexp=`regexp`,e.operator=`operator`,e.decorator=`decorator`})(Te||={});var Ee;(function(e){e.declaration=`declaration`,e.definition=`definition`,e.readonly=`readonly`,e.static=`static`,e.deprecated=`deprecated`,e.abstract=`abstract`,e.async=`async`,e.modification=`modification`,e.documentation=`documentation`,e.defaultLibrary=`defaultLibrary`})(Ee||={});var De;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&(t.resultId===void 0||typeof t.resultId==`string`)&&Array.isArray(t.data)&&(t.data.length===0||typeof t.data[0]==`number`)}e.is=t})(De||={});var Oe;(function(e){function t(e,t){return{range:e,text:t}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&U.string(t.text)}e.is=n})(Oe||={});var ke;(function(e){function t(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&U.boolean(t.caseSensitiveLookup)&&(U.string(t.variableName)||t.variableName===void 0)}e.is=n})(ke||={});var Ae;(function(e){function t(e,t){return{range:e,expression:t}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&(U.string(t.expression)||t.expression===void 0)}e.is=n})(Ae||={});var je;(function(e){function t(e,t){return{frameId:e,stoppedLocation:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(e.stoppedLocation)}e.is=n})(je||={});var V;(function(e){e.Type=1,e.Parameter=2;function t(e){return e===1||e===2}e.is=t})(V||={});var H;(function(e){function t(e){return{value:e}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&(t.tooltip===void 0||U.string(t.tooltip)||j.is(t.tooltip))&&(t.location===void 0||d.is(t.location))&&(t.command===void 0||v.is(t.command))}e.is=n})(H||={});var Me;(function(e){function t(e,t,n){let r={position:e,label:t};return n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&l.is(t.position)&&(U.string(t.label)||U.typedArray(t.label,H.is))&&(t.kind===void 0||V.is(t.kind))&&t.textEdits===void 0||U.typedArray(t.textEdits,y.is)&&(t.tooltip===void 0||U.string(t.tooltip)||j.is(t.tooltip))&&(t.paddingLeft===void 0||U.boolean(t.paddingLeft))&&(t.paddingRight===void 0||U.boolean(t.paddingRight))}e.is=n})(Me||={});var Ne;(function(e){function t(e){return{kind:`snippet`,value:e}}e.createSnippet=t})(Ne||={});var Pe;(function(e){function t(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}e.create=t})(Pe||={});var Fe;(function(e){function t(e){return{items:e}}e.create=t})(Fe||={});var Ie;(function(e){e.Invoked=0,e.Automatic=1})(Ie||={});var Le;(function(e){function t(e,t){return{range:e,text:t}}e.create=t})(Le||={});var Re;(function(e){function t(e,t){return{triggerKind:e,selectedCompletionInfo:t}}e.create=t})(Re||={});var ze;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&o.is(t.uri)&&U.string(t.name)}e.is=t})(ze||={});var Be;(function(e){function t(e,t,n,r){return new Ve(e,t,n,r)}e.create=t;function n(e){let t=e;return!!(U.defined(t)&&U.string(t.uri)&&(U.undefined(t.languageId)||U.string(t.languageId))&&U.uinteger(t.lineCount)&&U.func(t.getText)&&U.func(t.positionAt)&&U.func(t.offsetAt))}e.is=n;function r(e,t){let n=e.getText(),r=i(t,(e,t)=>{let n=e.range.start.line-t.range.start.line;return n===0?e.range.start.character-t.range.start.character:n}),a=n.length;for(let t=r.length-1;t>=0;t--){let i=r[t],o=e.offsetAt(i.range.start),s=e.offsetAt(i.range.end);if(s<=a)n=n.substring(0,o)+i.newText+n.substring(s,n.length);else throw Error(`Overlapping edit`);a=o}return n}e.applyEdits=r;function i(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),a=e.slice(n);i(r,t),i(a,t);let o=0,s=0,c=0;for(;o<r.length&&s<a.length;)t(r[o],a[s])<=0?e[c++]=r[o++]:e[c++]=a[s++];for(;o<r.length;)e[c++]=r[o++];for(;s<a.length;)e[c++]=a[s++];return e}})(Be||={});var Ve=class{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,n=!0;for(let r=0;r<t.length;r++){n&&=(e.push(r),!1);let i=t.charAt(r);n=i===`\r`||i===`
1
+ import{_ as e,c as t,d as n,g as r,h as i}from"./register-6qwNEOY3.js";var a;(function(e){function t(e){return typeof e==`string`}e.is=t})(a||={});var o;(function(e){function t(e){return typeof e==`string`}e.is=t})(o||={});var s;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(s||={});var c;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(c||={});var l;(function(e){function t(e,t){return e===Number.MAX_VALUE&&(e=c.MAX_VALUE),t===Number.MAX_VALUE&&(t=c.MAX_VALUE),{line:e,character:t}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.uinteger(t.line)&&U.uinteger(t.character)}e.is=n})(l||={});var u;(function(e){function t(e,t,n,r){if(U.uinteger(e)&&U.uinteger(t)&&U.uinteger(n)&&U.uinteger(r))return{start:l.create(e,t),end:l.create(n,r)};if(l.is(e)&&l.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`)}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&l.is(t.start)&&l.is(t.end)}e.is=n})(u||={});var d;(function(e){function t(e,t){return{uri:e,range:t}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&u.is(t.range)&&(U.string(t.uri)||U.undefined(t.uri))}e.is=n})(d||={});var f;(function(e){function t(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&u.is(t.targetRange)&&U.string(t.targetUri)&&u.is(t.targetSelectionRange)&&(u.is(t.originSelectionRange)||U.undefined(t.originSelectionRange))}e.is=n})(f||={});var p;(function(e){function t(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.numberRange(t.red,0,1)&&U.numberRange(t.green,0,1)&&U.numberRange(t.blue,0,1)&&U.numberRange(t.alpha,0,1)}e.is=n})(p||={});var ee;(function(e){function t(e,t){return{range:e,color:t}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&u.is(t.range)&&p.is(t.color)}e.is=n})(ee||={});var te;(function(e){function t(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.string(t.label)&&(U.undefined(t.textEdit)||y.is(t))&&(U.undefined(t.additionalTextEdits)||U.typedArray(t.additionalTextEdits,y.is))}e.is=n})(te||={});var m;(function(e){e.Comment=`comment`,e.Imports=`imports`,e.Region=`region`})(m||={});var ne;(function(e){function t(e,t,n,r,i,a){let o={startLine:e,endLine:t};return U.defined(n)&&(o.startCharacter=n),U.defined(r)&&(o.endCharacter=r),U.defined(i)&&(o.kind=i),U.defined(a)&&(o.collapsedText=a),o}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.uinteger(t.startLine)&&U.uinteger(t.startLine)&&(U.undefined(t.startCharacter)||U.uinteger(t.startCharacter))&&(U.undefined(t.endCharacter)||U.uinteger(t.endCharacter))&&(U.undefined(t.kind)||U.string(t.kind))}e.is=n})(ne||={});var h;(function(e){function t(e,t){return{location:e,message:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&d.is(t.location)&&U.string(t.message)}e.is=n})(h||={});var g;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(g||={});var re;(function(e){e.Unnecessary=1,e.Deprecated=2})(re||={});var ie;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&U.string(t.href)}e.is=t})(ie||={});var _;(function(e){function t(e,t,n,r,i,a){let o={range:e,message:t};return U.defined(n)&&(o.severity=n),U.defined(r)&&(o.code=r),U.defined(i)&&(o.source=i),U.defined(a)&&(o.relatedInformation=a),o}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&U.string(t.message)&&(U.number(t.severity)||U.undefined(t.severity))&&(U.integer(t.code)||U.string(t.code)||U.undefined(t.code))&&(U.undefined(t.codeDescription)||U.string(t.codeDescription?.href))&&(U.string(t.source)||U.undefined(t.source))&&(U.undefined(t.relatedInformation)||U.typedArray(t.relatedInformation,h.is))}e.is=n})(_||={});var v;(function(e){function t(e,t,...n){let r={title:e,command:t};return U.defined(n)&&n.length>0&&(r.arguments=n),r}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.title)&&U.string(t.command)}e.is=n})(v||={});var y;(function(e){function t(e,t){return{range:e,newText:t}}e.replace=t;function n(e,t){return{range:{start:e,end:e},newText:t}}e.insert=n;function r(e){return{range:e,newText:``}}e.del=r;function i(e){let t=e;return U.objectLiteral(t)&&U.string(t.newText)&&u.is(t.range)}e.is=i})(y||={});var b;(function(e){function t(e,t,n){let r={label:e};return t!==void 0&&(r.needsConfirmation=t),n!==void 0&&(r.description=n),r}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.string(t.label)&&(U.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(U.string(t.description)||t.description===void 0)}e.is=n})(b||={});var x;(function(e){function t(e){let t=e;return U.string(t)}e.is=t})(x||={});var ae;(function(e){function t(e,t,n){return{range:e,newText:t,annotationId:n}}e.replace=t;function n(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}}e.insert=n;function r(e,t){return{range:e,newText:``,annotationId:t}}e.del=r;function i(e){let t=e;return y.is(t)&&(b.is(t.annotationId)||x.is(t.annotationId))}e.is=i})(ae||={});var S;(function(e){function t(e,t){return{textDocument:e,edits:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&k.is(t.textDocument)&&Array.isArray(t.edits)}e.is=n})(S||={});var C;(function(e){function t(e,t,n){let r={kind:`create`,uri:e};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`create`&&U.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||U.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||U.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(C||={});var w;(function(e){function t(e,t,n,r){let i={kind:`rename`,oldUri:e,newUri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(i.options=n),r!==void 0&&(i.annotationId=r),i}e.create=t;function n(e){let t=e;return t&&t.kind===`rename`&&U.string(t.oldUri)&&U.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||U.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||U.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(w||={});var T;(function(e){function t(e,t,n){let r={kind:`delete`,uri:e};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`delete`&&U.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||U.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||U.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(T||={});var E;(function(e){function t(e){let t=e;return t&&(t.changes!==void 0||t.documentChanges!==void 0)&&(t.documentChanges===void 0||t.documentChanges.every(e=>U.string(e.kind)?C.is(e)||w.is(e)||T.is(e):S.is(e)))}e.is=t})(E||={});var D;(function(e){function t(e){return{uri:e}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)}e.is=n})(D||={});var O;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&U.integer(t.version)}e.is=n})(O||={});var k;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&(t.version===null||U.integer(t.version))}e.is=n})(k||={});var oe;(function(e){function t(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&U.string(t.languageId)&&U.integer(t.version)&&U.string(t.text)}e.is=n})(oe||={});var A;(function(e){e.PlainText=`plaintext`,e.Markdown=`markdown`;function t(t){let n=t;return n===e.PlainText||n===e.Markdown}e.is=t})(A||={});var j;(function(e){function t(e){let t=e;return U.objectLiteral(e)&&A.is(t.kind)&&U.string(t.value)}e.is=t})(j||={});var M;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(M||={});var N;(function(e){e.PlainText=1,e.Snippet=2})(N||={});var se;(function(e){e.Deprecated=1})(se||={});var ce;(function(e){function t(e,t,n){return{newText:e,insert:t,replace:n}}e.create=t;function n(e){let t=e;return t&&U.string(t.newText)&&u.is(t.insert)&&u.is(t.replace)}e.is=n})(ce||={});var le;(function(e){e.asIs=1,e.adjustIndentation=2})(le||={});var ue;(function(e){function t(e){let t=e;return t&&(U.string(t.detail)||t.detail===void 0)&&(U.string(t.description)||t.description===void 0)}e.is=t})(ue||={});var de;(function(e){function t(e){return{label:e}}e.create=t})(de||={});var fe;(function(e){function t(e,t){return{items:e||[],isIncomplete:!!t}}e.create=t})(fe||={});var P;(function(e){function t(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}e.fromPlainText=t;function n(e){let t=e;return U.string(t)||U.objectLiteral(t)&&U.string(t.language)&&U.string(t.value)}e.is=n})(P||={});var pe;(function(e){function t(e){let t=e;return!!t&&U.objectLiteral(t)&&(j.is(t.contents)||P.is(t.contents)||U.typedArray(t.contents,P.is))&&(e.range===void 0||u.is(e.range))}e.is=t})(pe||={});var me;(function(e){function t(e,t){return t?{label:e,documentation:t}:{label:e}}e.create=t})(me||={});var F;(function(e){function t(e,t,...n){let r={label:e};return U.defined(t)&&(r.documentation=t),r.parameters=U.defined(n)?n:[],r}e.create=t})(F||={});var I;(function(e){e.Text=1,e.Read=2,e.Write=3})(I||={});var L;(function(e){function t(e,t){let n={range:e};return U.number(t)&&(n.kind=t),n}e.create=t})(L||={});var R;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(R||={});var z;(function(e){e.Deprecated=1})(z||={});var he;(function(e){function t(e,t,n,r,i){let a={name:e,kind:t,location:{uri:r,range:n}};return i&&(a.containerName=i),a}e.create=t})(he||={});var ge;(function(e){function t(e,t,n,r){return r===void 0?{name:e,kind:t,location:{uri:n}}:{name:e,kind:t,location:{uri:n,range:r}}}e.create=t})(ge||={});var _e;(function(e){function t(e,t,n,r,i,a){let o={name:e,detail:t,kind:n,range:r,selectionRange:i};return a!==void 0&&(o.children=a),o}e.create=t;function n(e){let t=e;return t&&U.string(t.name)&&U.number(t.kind)&&u.is(t.range)&&u.is(t.selectionRange)&&(t.detail===void 0||U.string(t.detail))&&(t.deprecated===void 0||U.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=n})(_e||={});var ve;(function(e){e.Empty=``,e.QuickFix=`quickfix`,e.Refactor=`refactor`,e.RefactorExtract=`refactor.extract`,e.RefactorInline=`refactor.inline`,e.RefactorRewrite=`refactor.rewrite`,e.Source=`source`,e.SourceOrganizeImports=`source.organizeImports`,e.SourceFixAll=`source.fixAll`})(ve||={});var B;(function(e){e.Invoked=1,e.Automatic=2})(B||={});var ye;(function(e){function t(e,t,n){let r={diagnostics:e};return t!=null&&(r.only=t),n!=null&&(r.triggerKind=n),r}e.create=t;function n(e){let t=e;return U.defined(t)&&U.typedArray(t.diagnostics,_.is)&&(t.only===void 0||U.typedArray(t.only,U.string))&&(t.triggerKind===void 0||t.triggerKind===B.Invoked||t.triggerKind===B.Automatic)}e.is=n})(ye||={});var be;(function(e){function t(e,t,n){let r={title:e},i=!0;return typeof t==`string`?(i=!1,r.kind=t):v.is(t)?r.command=t:r.edit=t,i&&n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return t&&U.string(t.title)&&(t.diagnostics===void 0||U.typedArray(t.diagnostics,_.is))&&(t.kind===void 0||U.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||v.is(t.command))&&(t.isPreferred===void 0||U.boolean(t.isPreferred))&&(t.edit===void 0||E.is(t.edit))}e.is=n})(be||={});var xe;(function(e){function t(e,t){let n={range:e};return U.defined(t)&&(n.data=t),n}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&(U.undefined(t.command)||v.is(t.command))}e.is=n})(xe||={});var Se;(function(e){function t(e,t){return{tabSize:e,insertSpaces:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.uinteger(t.tabSize)&&U.boolean(t.insertSpaces)}e.is=n})(Se||={});var Ce;(function(e){function t(e,t,n){return{range:e,target:t,data:n}}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&(U.undefined(t.target)||U.string(t.target))}e.is=n})(Ce||={});var we;(function(e){function t(e,t){return{range:e,parent:t}}e.create=t;function n(t){let n=t;return U.objectLiteral(n)&&u.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=n})(we||={});var Te;(function(e){e.namespace=`namespace`,e.type=`type`,e.class=`class`,e.enum=`enum`,e.interface=`interface`,e.struct=`struct`,e.typeParameter=`typeParameter`,e.parameter=`parameter`,e.variable=`variable`,e.property=`property`,e.enumMember=`enumMember`,e.event=`event`,e.function=`function`,e.method=`method`,e.macro=`macro`,e.keyword=`keyword`,e.modifier=`modifier`,e.comment=`comment`,e.string=`string`,e.number=`number`,e.regexp=`regexp`,e.operator=`operator`,e.decorator=`decorator`})(Te||={});var Ee;(function(e){e.declaration=`declaration`,e.definition=`definition`,e.readonly=`readonly`,e.static=`static`,e.deprecated=`deprecated`,e.abstract=`abstract`,e.async=`async`,e.modification=`modification`,e.documentation=`documentation`,e.defaultLibrary=`defaultLibrary`})(Ee||={});var De;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&(t.resultId===void 0||typeof t.resultId==`string`)&&Array.isArray(t.data)&&(t.data.length===0||typeof t.data[0]==`number`)}e.is=t})(De||={});var Oe;(function(e){function t(e,t){return{range:e,text:t}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&U.string(t.text)}e.is=n})(Oe||={});var ke;(function(e){function t(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&U.boolean(t.caseSensitiveLookup)&&(U.string(t.variableName)||t.variableName===void 0)}e.is=n})(ke||={});var Ae;(function(e){function t(e,t){return{range:e,expression:t}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&(U.string(t.expression)||t.expression===void 0)}e.is=n})(Ae||={});var je;(function(e){function t(e,t){return{frameId:e,stoppedLocation:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(e.stoppedLocation)}e.is=n})(je||={});var V;(function(e){e.Type=1,e.Parameter=2;function t(e){return e===1||e===2}e.is=t})(V||={});var H;(function(e){function t(e){return{value:e}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&(t.tooltip===void 0||U.string(t.tooltip)||j.is(t.tooltip))&&(t.location===void 0||d.is(t.location))&&(t.command===void 0||v.is(t.command))}e.is=n})(H||={});var Me;(function(e){function t(e,t,n){let r={position:e,label:t};return n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&l.is(t.position)&&(U.string(t.label)||U.typedArray(t.label,H.is))&&(t.kind===void 0||V.is(t.kind))&&t.textEdits===void 0||U.typedArray(t.textEdits,y.is)&&(t.tooltip===void 0||U.string(t.tooltip)||j.is(t.tooltip))&&(t.paddingLeft===void 0||U.boolean(t.paddingLeft))&&(t.paddingRight===void 0||U.boolean(t.paddingRight))}e.is=n})(Me||={});var Ne;(function(e){function t(e){return{kind:`snippet`,value:e}}e.createSnippet=t})(Ne||={});var Pe;(function(e){function t(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}e.create=t})(Pe||={});var Fe;(function(e){function t(e){return{items:e}}e.create=t})(Fe||={});var Ie;(function(e){e.Invoked=0,e.Automatic=1})(Ie||={});var Le;(function(e){function t(e,t){return{range:e,text:t}}e.create=t})(Le||={});var Re;(function(e){function t(e,t){return{triggerKind:e,selectedCompletionInfo:t}}e.create=t})(Re||={});var ze;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&o.is(t.uri)&&U.string(t.name)}e.is=t})(ze||={});var Be;(function(e){function t(e,t,n,r){return new Ve(e,t,n,r)}e.create=t;function n(e){let t=e;return!!(U.defined(t)&&U.string(t.uri)&&(U.undefined(t.languageId)||U.string(t.languageId))&&U.uinteger(t.lineCount)&&U.func(t.getText)&&U.func(t.positionAt)&&U.func(t.offsetAt))}e.is=n;function r(e,t){let n=e.getText(),r=i(t,(e,t)=>{let n=e.range.start.line-t.range.start.line;return n===0?e.range.start.character-t.range.start.character:n}),a=n.length;for(let t=r.length-1;t>=0;t--){let i=r[t],o=e.offsetAt(i.range.start),s=e.offsetAt(i.range.end);if(s<=a)n=n.substring(0,o)+i.newText+n.substring(s,n.length);else throw Error(`Overlapping edit`);a=o}return n}e.applyEdits=r;function i(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),a=e.slice(n);i(r,t),i(a,t);let o=0,s=0,c=0;for(;o<r.length&&s<a.length;)t(r[o],a[s])<=0?e[c++]=r[o++]:e[c++]=a[s++];for(;o<r.length;)e[c++]=r[o++];for(;s<a.length;)e[c++]=a[s++];return e}})(Be||={});var Ve=class{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,n=!0;for(let r=0;r<t.length;r++){n&&=(e.push(r),!1);let i=t.charAt(r);n=i===`\r`||i===`
2
2
  `,i===`\r`&&r+1<t.length&&t.charAt(r+1)===`
3
3
  `&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,r=t.length;if(r===0)return l.create(0,e);for(;n<r;){let i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}let i=n-1;return l.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)}get lineCount(){return this.getLineOffsets().length}},U;(function(e){let t=Object.prototype.toString;function n(e){return e!==void 0}e.defined=n;function r(e){return e===void 0}e.undefined=r;function i(e){return e===!0||e===!1}e.boolean=i;function a(e){return t.call(e)===`[object String]`}e.string=a;function o(e){return t.call(e)===`[object Number]`}e.number=o;function s(e,n,r){return t.call(e)===`[object Number]`&&n<=e&&e<=r}e.numberRange=s;function c(e){return t.call(e)===`[object Number]`&&-2147483648<=e&&e<=2147483647}e.integer=c;function l(e){return t.call(e)===`[object Number]`&&0<=e&&e<=2147483647}e.uinteger=l;function u(e){return t.call(e)===`[object Function]`}e.func=u;function d(e){return typeof e==`object`&&!!e}e.objectLiteral=d;function f(e,t){return Array.isArray(e)&&e.every(t)}e.typedArray=f})(U||={});var He=class{constructor(e,t,n){this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);let i=e=>{let t=e.getLanguageId();if(t!==this._languageId)return;let n;this._listener[e.uri.toString()]=e.onDidChangeContent(()=>{window.clearTimeout(n),n=window.setTimeout(()=>this._doValidate(e.uri,t),500)}),this._doValidate(e.uri,t)},a=e=>{r.setModelMarkers(e,this._languageId,[]);let t=e.uri.toString(),n=this._listener[t];n&&(n.dispose(),delete this._listener[t])};this._disposables.push(r.onDidCreateModel(i)),this._disposables.push(r.onWillDisposeModel(a)),this._disposables.push(r.onDidChangeModelLanguage(e=>{a(e.model),i(e.model)})),this._disposables.push(n(e=>{r.getModels().forEach(e=>{e.getLanguageId()===this._languageId&&(a(e),i(e))})})),this._disposables.push({dispose:()=>{r.getModels().forEach(a);for(let e in this._listener)this._listener[e].dispose()}}),r.getModels().forEach(i)}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables.length=0}_doValidate(e,t){this._worker(e).then(t=>t.doValidation(e.toString())).then(n=>{let i=n.map(t=>We(e,t)),a=r.getModel(e);a&&a.getLanguageId()===t&&r.setModelMarkers(a,t,i)}).then(void 0,e=>{console.error(e)})}};function Ue(e){switch(e){case g.Error:return t.Error;case g.Warning:return t.Warning;case g.Information:return t.Info;case g.Hint:return t.Hint;default:return t.Info}}function We(e,t){let n=typeof t.code==`number`?String(t.code):t.code;return{severity:Ue(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}var Ge=class{constructor(e,t){this._worker=e,this._triggerCharacters=t}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(t,r,i,a){let o=t.uri;return this._worker(o).then(e=>e.doComplete(o.toString(),W(r))).then(i=>{if(!i)return;let a=t.getWordUntilPosition(r),o=new n(r.lineNumber,a.startColumn,r.lineNumber,a.endColumn),s=i.items.map(t=>{let n={label:t.label,insertText:t.insertText||t.label,sortText:t.sortText,filterText:t.filterText,documentation:t.documentation,detail:t.detail,command:Je(t.command),range:o,kind:qe(t.kind)};return t.textEdit&&(n.range=Ke(t.textEdit)?{insert:K(t.textEdit.insert),replace:K(t.textEdit.replace)}:K(t.textEdit.range),n.insertText=t.textEdit.newText),t.additionalTextEdits&&(n.additionalTextEdits=t.additionalTextEdits.map(q)),t.insertTextFormat===N.Snippet&&(n.insertTextRules=e.CompletionItemInsertTextRule.InsertAsSnippet),n});return{isIncomplete:i.isIncomplete,suggestions:s}})}};function W(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function G(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function K(e){if(e)return new n(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function Ke(e){return e.insert!==void 0&&e.replace!==void 0}function qe(t){let n=e.CompletionItemKind;switch(t){case M.Text:return n.Text;case M.Method:return n.Method;case M.Function:return n.Function;case M.Constructor:return n.Constructor;case M.Field:return n.Field;case M.Variable:return n.Variable;case M.Class:return n.Class;case M.Interface:return n.Interface;case M.Module:return n.Module;case M.Property:return n.Property;case M.Unit:return n.Unit;case M.Value:return n.Value;case M.Enum:return n.Enum;case M.Keyword:return n.Keyword;case M.Snippet:return n.Snippet;case M.Color:return n.Color;case M.File:return n.File;case M.Reference:return n.Reference}return n.Property}function q(e){if(e)return{range:K(e.range),text:e.newText}}function Je(e){return e&&e.command===`editor.action.triggerSuggest`?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var Ye=class{constructor(e){this._worker=e}provideHover(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.doHover(r.toString(),W(t))).then(e=>{if(e)return{range:K(e.range),contents:Ze(e.contents)}})}};function Xe(e){return e&&typeof e==`object`&&typeof e.kind==`string`}function J(e){return typeof e==`string`?{value:e}:Xe(e)?e.kind===`plaintext`?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}:{value:e.value}:{value:"```"+e.language+`
4
4
  `+e.value+"\n```\n"}}function Ze(e){if(e)return Array.isArray(e)?e.map(J):[J(e)]}var Qe=class{constructor(e){this._worker=e}provideDocumentHighlights(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.findDocumentHighlights(r.toString(),W(t))).then(e=>{if(e)return e.map(e=>({range:K(e.range),kind:$e(e.kind)}))})}};function $e(t){switch(t){case I.Read:return e.DocumentHighlightKind.Read;case I.Write:return e.DocumentHighlightKind.Write;case I.Text:return e.DocumentHighlightKind.Text}return e.DocumentHighlightKind.Text}var et=class{constructor(e){this._worker=e}provideDefinition(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.findDefinition(r.toString(),W(t))).then(e=>{if(e)return[Y(e)]})}};function Y(e){return{uri:i.parse(e.uri),range:K(e.range)}}var tt=class{constructor(e){this._worker=e}provideReferences(e,t,n,r){let i=e.uri;return this._worker(i).then(e=>e.findReferences(i.toString(),W(t))).then(e=>{if(e)return e.map(Y)})}},nt=class{constructor(e){this._worker=e}provideRenameEdits(e,t,n,r){let i=e.uri;return this._worker(i).then(e=>e.doRename(i.toString(),W(t),n)).then(e=>rt(e))}};function rt(e){if(!e||!e.changes)return;let t=[];for(let n in e.changes){let r=i.parse(n);for(let i of e.changes[n])t.push({resource:r,versionId:void 0,textEdit:{range:K(i.range),text:i.newText}})}return{edits:t}}var it=class{constructor(e){this._worker=e}provideDocumentSymbols(e,t){let n=e.uri;return this._worker(n).then(e=>e.findDocumentSymbols(n.toString())).then(e=>{if(e)return e.map(e=>X(e)?Z(e):{name:e.name,detail:``,containerName:e.containerName,kind:Q(e.kind),range:K(e.location.range),selectionRange:K(e.location.range),tags:[]})})}};function X(e){return`children`in e}function Z(e){return{name:e.name,detail:e.detail??``,kind:Q(e.kind),range:K(e.range),selectionRange:K(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(e=>Z(e))}}function Q(t){let n=e.SymbolKind;switch(t){case R.File:return n.File;case R.Module:return n.Module;case R.Namespace:return n.Namespace;case R.Package:return n.Package;case R.Class:return n.Class;case R.Method:return n.Method;case R.Property:return n.Property;case R.Field:return n.Field;case R.Constructor:return n.Constructor;case R.Enum:return n.Enum;case R.Interface:return n.Interface;case R.Function:return n.Function;case R.Variable:return n.Variable;case R.Constant:return n.Constant;case R.String:return n.String;case R.Number:return n.Number;case R.Boolean:return n.Boolean;case R.Array:return n.Array}return n.Function}var at=class{constructor(e){this._worker=e}provideLinks(e,t){let n=e.uri;return this._worker(n).then(e=>e.findDocumentLinks(n.toString())).then(e=>{if(e)return{links:e.map(e=>({range:K(e.range),url:e.target}))}})}},ot=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.format(r.toString(),null,$(t)).then(e=>{if(!(!e||e.length===0))return e.map(q)}))}},st=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,t,n,r){let i=e.uri;return this._worker(i).then(e=>e.format(i.toString(),G(t),$(n)).then(e=>{if(!(!e||e.length===0))return e.map(q)}))}};function $(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var ct=class{constructor(e){this._worker=e}provideDocumentColors(e,t){let n=e.uri;return this._worker(n).then(e=>e.findDocumentColors(n.toString())).then(e=>{if(e)return e.map(e=>({color:e.color,range:K(e.range)}))})}provideColorPresentations(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.getColorPresentations(r.toString(),t.color,G(t.range))).then(e=>{if(e)return e.map(e=>{let t={label:e.label};return e.textEdit&&(t.textEdit=q(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(q)),t})})}},lt=class{constructor(e){this._worker=e}provideFoldingRanges(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.getFoldingRanges(r.toString(),t)).then(e=>{if(e)return e.map(e=>{let t={start:e.startLine+1,end:e.endLine+1};return e.kind!==void 0&&(t.kind=ut(e.kind)),t})})}};function ut(t){switch(t){case m.Comment:return e.FoldingRangeKind.Comment;case m.Imports:return e.FoldingRangeKind.Imports;case m.Region:return e.FoldingRangeKind.Region}}var dt=class{constructor(e){this._worker=e}provideSelectionRanges(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.getSelectionRanges(r.toString(),t.map(W))).then(e=>{if(e)return e.map(e=>{let t=[];for(;e;)t.push({range:K(e.range)}),e=e.parent;return t})})}};export{K as _,ot as a,st as c,Ye as d,tt as f,G as g,W as h,ct as i,it as l,dt as m,et as n,Qe as o,nt as p,He as r,at as s,Ge as t,lt as u,q as v};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./button-BIsUKRZq.js";import{a as r}from"./vendor-datadog-CLUcJXOo.js";import{r as i}from"./vendor-react-CJV_K1u4.js";import{Bn as a,Fn as o,Gn as s,In as c,Kn as l,Rn as u,Un as d,Vn as f,Wn as p,qn as m,zn as h,zt as g}from"./index-Dfpeofdu.js";var _=e(r(),1),v=i(),y={active:0,upcoming:1,expired:2};function b(){let{data:e,isLoading:t}=o(),n=l(),r=c(),i=(0,_.useMemo)(()=>[...e??[]].sort((e,t)=>{let n=y[f(e,r).state],i=y[f(t,r).state];if(n!==i)return n-i;let o=h[a(e.type).severity]-h[a(t.type).severity];if(o!==0)return o;let s=d(e.endAt)??2**53-1;return(d(t.endAt)??2**53-1)-s}),[e,r]);return(0,v.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,v.jsxs)(`div`,{className:`max-w-3xl`,children:[(0,v.jsx)(`h1`,{className:`text-2xl font-light`,children:`Notifications`}),(0,v.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`System-wide notices, including maintenance windows and downstream provider incidents.`}),(0,v.jsx)(`div`,{className:`mt-6 flex flex-col gap-3`,children:t?(0,v.jsx)(g,{className:`h-24 w-full`}):i.length===0?(0,v.jsx)(`p`,{className:`rounded-md border border-border bg-card p-8 text-center text-sm text-muted-foreground dark:bg-black-dark`,children:`No notifications right now.`}):i.map(e=>(0,v.jsx)(x,{notification:e,acked:n.has(e.id),nowMs:r},e.id))})]})})}function x({notification:e,acked:r,nowMs:i}){let{Icon:o,iconClass:c,label:l,badgeVariant:d}=a(e.type),h=f(e,i);return(0,v.jsxs)(`div`,{className:t(`flex gap-3 rounded-md border border-border bg-card p-4 dark:bg-black-dark`,r&&`opacity-60`,h.state===`expired`&&`opacity-70`),children:[(0,v.jsx)(o,{className:t(`mt-0.5 size-5 shrink-0`,c)}),(0,v.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,v.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,v.jsx)(m,{variant:d,children:l}),h.state!==`active`&&(0,v.jsx)(m,{variant:`outline`,className:`capitalize`,children:h.state}),(0,v.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:h.label})]}),(0,v.jsx)(`p`,{className:`mt-2 text-sm break-words text-foreground`,children:e.message}),(0,v.jsx)(`div`,{className:`mt-2 flex items-center gap-4 text-sm`,children:(0,v.jsx)(u,{url:e.url,className:`font-medium text-primary hover:underline dark:text-white`})})]}),(0,v.jsx)(n,{variant:`ghost`,size:`sm`,className:`shrink-0 text-muted-foreground`,onClick:()=>r?s(e.id):p(e.id),children:r?`Undo`:`Ignore`})]})}export{b as NotificationsCenter};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./button-BIsUKRZq.js";import{a as r}from"./vendor-datadog-CLUcJXOo.js";import{r as i}from"./vendor-react-CJV_K1u4.js";import{Bn as a,Fn as o,Gn as s,In as c,Kn as l,Rn as u,Un as d,Vn as f,Wn as p,qn as m,zn as h,zt as g}from"./index-BIXW6Pu4.js";var _=e(r(),1),v=i(),y={active:0,upcoming:1,expired:2};function b(){let{data:e,isLoading:t}=o(),n=l(),r=c(),i=(0,_.useMemo)(()=>[...e??[]].sort((e,t)=>{let n=y[f(e,r).state],i=y[f(t,r).state];if(n!==i)return n-i;let o=h[a(e.type).severity]-h[a(t.type).severity];if(o!==0)return o;let s=d(e.endAt)??2**53-1;return(d(t.endAt)??2**53-1)-s}),[e,r]);return(0,v.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,v.jsxs)(`div`,{className:`max-w-3xl`,children:[(0,v.jsx)(`h1`,{className:`text-2xl font-light`,children:`Notifications`}),(0,v.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`System-wide notices, including maintenance windows and downstream provider incidents.`}),(0,v.jsx)(`div`,{className:`mt-6 flex flex-col gap-3`,children:t?(0,v.jsx)(g,{className:`h-24 w-full`}):i.length===0?(0,v.jsx)(`p`,{className:`rounded-md border border-border bg-card p-8 text-center text-sm text-muted-foreground dark:bg-black-dark`,children:`No notifications right now.`}):i.map(e=>(0,v.jsx)(x,{notification:e,acked:n.has(e.id),nowMs:r},e.id))})]})})}function x({notification:e,acked:r,nowMs:i}){let{Icon:o,iconClass:c,label:l,badgeVariant:d}=a(e.type),h=f(e,i);return(0,v.jsxs)(`div`,{className:t(`flex gap-3 rounded-md border border-border bg-card p-4 dark:bg-black-dark`,r&&`opacity-60`,h.state===`expired`&&`opacity-70`),children:[(0,v.jsx)(o,{className:t(`mt-0.5 size-5 shrink-0`,c)}),(0,v.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,v.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,v.jsx)(m,{variant:d,children:l}),h.state!==`active`&&(0,v.jsx)(m,{variant:`outline`,className:`capitalize`,children:h.state}),(0,v.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:h.label})]}),(0,v.jsx)(`p`,{className:`mt-2 text-sm break-words text-foreground`,children:e.message}),(0,v.jsx)(`div`,{className:`mt-2 flex items-center gap-4 text-sm`,children:(0,v.jsx)(u,{url:e.url,className:`font-medium text-primary hover:underline dark:text-white`})})]}),(0,v.jsx)(n,{variant:`ghost`,size:`sm`,className:`shrink-0 text-muted-foreground`,onClick:()=>r?s(e.id):p(e.id),children:r?`Undo`:`Ignore`})]})}export{b as NotificationsCenter};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./button-BIsUKRZq.js";import{a as r}from"./vendor-datadog-CLUcJXOo.js";import{r as i}from"./vendor-react-CJV_K1u4.js";import{I as a,q as o}from"./vendor-tanstack-DxzraizX.js";import{a as s,i as c,n as l,o as u,r as d,t as f}from"./dialog-Cn2uWgD4.js";import{$t as p,Bn as m,Fn as h,Hn as g,Ln as _,Qt as v,Rn as y,Sr as b,Un as x,br as S,en as C,jt as w,kt as T,nn as E,qn as D,tn as O,ur as k,vn as A,xn as j,zt as M}from"./index-Dfpeofdu.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-CQyAJJhl.js";function V(){let e=o();return a({mutationFn:async e=>{let{data:n}=await t.post(`/SystemStatus/`,e);return n},onSuccess:()=>e.invalidateQueries({queryKey:_})})}function H(){let e=o();return a({mutationFn:async({id:e,draft:n})=>{await t.patch(`/SystemStatus/${e}`,n)},onSuccess:()=>e.invalidateQueries({queryKey:_})})}function U(){let e=o();return a({mutationFn:async e=>{await t.delete(`/SystemStatus/${e}`)},onSuccess:()=>e.invalidateQueries({queryKey:_})})}var W=e(r(),1),G=i(),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}=h(),[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)(S,{}),`New notification`]})]}),(0,G.jsx)(`div`,{className:`mt-6`,children:t?(0,G.jsx)(M,{className:`h-40 w-full`}):(0,G.jsx)(w,{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)(D,{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)(y,{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)(b,{})}),(0,G.jsx)(n,{variant:`destructiveGhost`,size:`icon`,"aria-label":`Delete`,onClick:()=>t(r.original),children:(0,G.jsx)(k,{})})]})}]}function Q({open:e,onOpenChange:t,editing:r}){let i=V(),a=H(),o=i.isPending||a.isPending,[m,h]=(0,W.useState)(`error`),[_,y]=(0,W.useState)(``),[b,x]=(0,W.useState)(``),[S,w]=(0,W.useState)(``),[D,k]=(0,W.useState)(``),[M,N]=(0,W.useState)(null);return(0,W.useEffect)(()=>{e&&(h(r?.type??`error`),y(r?.message??``),x(r?.url??``),w(q(r?.startAt)),k(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)(j,{htmlFor:`notification-type`,children:`Type`}),(0,G.jsxs)(v,{value:m,onValueChange:h,children:[(0,G.jsx)(O,{id:`notification-type`,className:`w-full`,children:(0,G.jsx)(E,{})}),(0,G.jsx)(p,{children:K.map(e=>(0,G.jsx)(C,{value:e.value,children:e.label},e.value))})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(j,{htmlFor:`notification-message`,children:`Message`}),(0,G.jsx)(T,{id:`notification-message`,rows:3,value:_,onChange:e=>y(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)(j,{htmlFor:`notification-url`,children:`Link (optional)`}),(0,G.jsx)(A,{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)(j,{htmlFor:`notification-start`,children:`Start (local time)`}),(0,G.jsx)(A,{id:`notification-start`,type:`datetime-local`,value:S,onChange:e=>w(e.target.value)})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(j,{htmlFor:`notification-end`,children:`End (local time)`}),(0,G.jsx)(A,{id:`notification-end`,type:`datetime-local`,value:D,onChange:e=>k(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=_.trim();if(!e){N(`Message is required.`);return}let n=J(S),o=J(D);if(n&&o&&Date.parse(o)<=Date.parse(n)){N(`End time must be after start time.`);return}let s=b.trim();if(s&&!g(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
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./button-BIsUKRZq.js";import{a as r}from"./vendor-datadog-CLUcJXOo.js";import{r as i}from"./vendor-react-CJV_K1u4.js";import{I as a,q as o}from"./vendor-tanstack-DxzraizX.js";import{a as s,i as c,n as l,o as u,r as d,t as f}from"./dialog-Cn2uWgD4.js";import{$t as p,Bn as m,Fn as h,Hn as g,Ln as _,Qt as v,Rn as y,Sr as b,Un as x,br as S,en as C,jt as w,kt as T,nn as E,qn as D,tn as O,ur as k,vn as A,xn as j,zt as M}from"./index-BIXW6Pu4.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-CQyAJJhl.js";function V(){let e=o();return a({mutationFn:async e=>{let{data:n}=await t.post(`/SystemStatus/`,e);return n},onSuccess:()=>e.invalidateQueries({queryKey:_})})}function H(){let e=o();return a({mutationFn:async({id:e,draft:n})=>{await t.patch(`/SystemStatus/${e}`,n)},onSuccess:()=>e.invalidateQueries({queryKey:_})})}function U(){let e=o();return a({mutationFn:async e=>{await t.delete(`/SystemStatus/${e}`)},onSuccess:()=>e.invalidateQueries({queryKey:_})})}var W=e(r(),1),G=i(),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}=h(),[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)(S,{}),`New notification`]})]}),(0,G.jsx)(`div`,{className:`mt-6`,children:t?(0,G.jsx)(M,{className:`h-40 w-full`}):(0,G.jsx)(w,{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)(D,{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)(y,{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)(b,{})}),(0,G.jsx)(n,{variant:`destructiveGhost`,size:`icon`,"aria-label":`Delete`,onClick:()=>t(r.original),children:(0,G.jsx)(k,{})})]})}]}function Q({open:e,onOpenChange:t,editing:r}){let i=V(),a=H(),o=i.isPending||a.isPending,[m,h]=(0,W.useState)(`error`),[_,y]=(0,W.useState)(``),[b,x]=(0,W.useState)(``),[S,w]=(0,W.useState)(``),[D,k]=(0,W.useState)(``),[M,N]=(0,W.useState)(null);return(0,W.useEffect)(()=>{e&&(h(r?.type??`error`),y(r?.message??``),x(r?.url??``),w(q(r?.startAt)),k(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)(j,{htmlFor:`notification-type`,children:`Type`}),(0,G.jsxs)(v,{value:m,onValueChange:h,children:[(0,G.jsx)(O,{id:`notification-type`,className:`w-full`,children:(0,G.jsx)(E,{})}),(0,G.jsx)(p,{children:K.map(e=>(0,G.jsx)(C,{value:e.value,children:e.label},e.value))})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(j,{htmlFor:`notification-message`,children:`Message`}),(0,G.jsx)(T,{id:`notification-message`,rows:3,value:_,onChange:e=>y(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)(j,{htmlFor:`notification-url`,children:`Link (optional)`}),(0,G.jsx)(A,{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)(j,{htmlFor:`notification-start`,children:`Start (local time)`}),(0,G.jsx)(A,{id:`notification-start`,type:`datetime-local`,value:S,onChange:e=>w(e.target.value)})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(j,{htmlFor:`notification-end`,children:`End (local time)`}),(0,G.jsx)(A,{id:`notification-end`,type:`datetime-local`,value:D,onChange:e=>k(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=_.trim();if(!e){N(`Message is required.`);return}let n=J(S),o=J(D);if(n&&o&&Date.parse(o)<=Date.parse(n)){N(`End time must be after start time.`);return}let s=b.trim();if(s&&!g(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 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./authStore-C3Nfubqr.js";import{g as r,v as i}from"./vendor-core-c2JRRJpV.js";import{i as a,t as o}from"./button-BIsUKRZq.js";import{a as s}from"./vendor-datadog-CLUcJXOo.js";import{r as c}from"./vendor-react-CJV_K1u4.js";import{D as l,I as u,M as d}from"./vendor-tanstack-DxzraizX.js";import{$ as f,It as p,it as m}from"./vendor-ui-BUjK0h8a.js";import{Br as h,Cn as g,On as _,Sn as v,Tn as y,bn as b,gr as x,vn as S,wn as C,yn as w}from"./index-Dfpeofdu.js";async function T(e){let{id:t,newPassword:n,confirmNewPassword:r,...i}=e,o={...i};n&&n===r&&(o.password=n);let{data:s}=await a.patch(`/User/${t}`,o);return s}function E(){return u({mutationFn:e=>T(e)})}var D=r({id:i(),firstname:i({error:`Please enter your first name.`}).min(2,{error:`First name is required.`}).max(50,{error:`First name must be less than 50 characters.`}),lastname:i({error:`Please enter your last name.`}).min(2,{error:`Last name is required.`}).max(50,{error:`Last name must be less than 50 characters.`}),newPassword:i({error:`Please enter your new password.`}).min(8,{error:`Password must be 8 characters or more.`}).or(i().max(0)),confirmNewPassword:i().optional()}).refine(e=>e.newPassword===e.confirmNewPassword,{error:`Passwords do not match`,path:[`confirmNewPassword`]}),O=e(s(),1),k=c();function A(){let e=d(),r=l(),{user:i}=h(),a=m({resolver:f(D),defaultValues:{confirmNewPassword:``,firstname:i?.firstname||``,id:i?.id||``,lastname:i?.lastname||``,newPassword:``}}),{control:s,handleSubmit:c,reset:u,formState:{defaultValues:T,isDirty:A,isValid:j}}=a,{mutate:M,isPending:N}=E(),P=(0,O.useCallback)(async i=>{i&&M(i,{onSuccess:a=>{u({...T,...a}),t.updateUserForEntity(n,a),i.newPassword?(p.success(`Profile updated successfully!`,{description:`Please sign in with your new password.`}),_(),r({to:`/sign-in`}),e.invalidate()):p.success(`Profile updated successfully!`)}})},[T,r,u,e,M]);return(0,k.jsxs)(`div`,{className:`mt-20 px-4 pt-4 md:px-12 max-w-2xl`,children:[(0,k.jsx)(`h1`,{className:`text-2xl font-light`,children:`Profile`}),(0,k.jsx)(y,{...a,children:(0,k.jsxs)(`form`,{id:`profile-edit-form`,name:`profile-edit-form`,onSubmit:c(P),className:`grid gap-4 my-4`,children:[(0,k.jsx)(g,{control:s,name:`firstname`,render:({field:e})=>(0,k.jsxs)(v,{children:[(0,k.jsx)(b,{className:`pb-1`,children:`First Name`}),(0,k.jsx)(C,{children:(0,k.jsx)(S,{type:`text`,className:`dark:bg-black dark:border-black`,autoCapitalize:`words`,autoFocus:!0,...e})}),(0,k.jsx)(w,{})]})}),(0,k.jsx)(g,{control:s,name:`lastname`,render:({field:e})=>(0,k.jsxs)(v,{children:[(0,k.jsx)(b,{className:`pb-1`,children:`Last Name`}),(0,k.jsx)(C,{children:(0,k.jsx)(S,{type:`text`,className:`dark:bg-black dark:border-black`,autoCapitalize:`words`,...e})}),(0,k.jsx)(w,{})]})}),(0,k.jsxs)(v,{children:[(0,k.jsx)(b,{htmlFor:`profile-email`,className:`pb-1`,children:`Email`}),(0,k.jsx)(C,{children:(0,k.jsx)(S,{id:`profile-email`,type:`email`,enterKeyHint:`next`,autoComplete:`email`,autoCapitalize:`none`,value:i?.email||``,disabled:!0,readOnly:!0})})]}),(0,k.jsx)(g,{control:s,name:`newPassword`,render:({field:e})=>(0,k.jsxs)(v,{children:[(0,k.jsx)(b,{className:`pb-1`,children:`New Password`}),(0,k.jsx)(C,{children:(0,k.jsx)(S,{type:`password`,placeholder:`Optional`,className:`dark:bg-black dark:border-black`,autoComplete:`new-password`,autoCapitalize:`none`,...e})}),(0,k.jsx)(w,{})]})}),(0,k.jsx)(g,{control:s,name:`confirmNewPassword`,render:({field:e})=>(0,k.jsxs)(v,{children:[(0,k.jsx)(b,{className:`pb-1`,children:`Confirm New Password`}),(0,k.jsx)(C,{children:(0,k.jsx)(S,{type:`password`,className:`dark:bg-black dark:border-black`,autoComplete:`new-password`,autoCapitalize:`none`,...e})}),(0,k.jsx)(w,{})]})}),(0,k.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,k.jsxs)(o,{type:`submit`,variant:`submit`,disabled:N||!A||!j,children:[(0,k.jsx)(x,{}),` Update Profile`]})})]})})]})}export{A as ProfileIndex};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./authStore-C3Nfubqr.js";import{g as r,v as i}from"./vendor-core-c2JRRJpV.js";import{i as a,t as o}from"./button-BIsUKRZq.js";import{a as s}from"./vendor-datadog-CLUcJXOo.js";import{r as c}from"./vendor-react-CJV_K1u4.js";import{D as l,I as u,M as d}from"./vendor-tanstack-DxzraizX.js";import{$ as f,It as p,it as m}from"./vendor-ui-BUjK0h8a.js";import{Br as h,Cn as g,On as _,Sn as v,Tn as y,bn as b,gr as x,vn as S,wn as C,yn as w}from"./index-BIXW6Pu4.js";async function T(e){let{id:t,newPassword:n,confirmNewPassword:r,...i}=e,o={...i};n&&n===r&&(o.password=n);let{data:s}=await a.patch(`/User/${t}`,o);return s}function E(){return u({mutationFn:e=>T(e)})}var D=r({id:i(),firstname:i({error:`Please enter your first name.`}).min(2,{error:`First name is required.`}).max(50,{error:`First name must be less than 50 characters.`}),lastname:i({error:`Please enter your last name.`}).min(2,{error:`Last name is required.`}).max(50,{error:`Last name must be less than 50 characters.`}),newPassword:i({error:`Please enter your new password.`}).min(8,{error:`Password must be 8 characters or more.`}).or(i().max(0)),confirmNewPassword:i().optional()}).refine(e=>e.newPassword===e.confirmNewPassword,{error:`Passwords do not match`,path:[`confirmNewPassword`]}),O=e(s(),1),k=c();function A(){let e=d(),r=l(),{user:i}=h(),a=m({resolver:f(D),defaultValues:{confirmNewPassword:``,firstname:i?.firstname||``,id:i?.id||``,lastname:i?.lastname||``,newPassword:``}}),{control:s,handleSubmit:c,reset:u,formState:{defaultValues:T,isDirty:A,isValid:j}}=a,{mutate:M,isPending:N}=E(),P=(0,O.useCallback)(async i=>{i&&M(i,{onSuccess:a=>{u({...T,...a}),t.updateUserForEntity(n,a),i.newPassword?(p.success(`Profile updated successfully!`,{description:`Please sign in with your new password.`}),_(),r({to:`/sign-in`}),e.invalidate()):p.success(`Profile updated successfully!`)}})},[T,r,u,e,M]);return(0,k.jsxs)(`div`,{className:`mt-20 px-4 pt-4 md:px-12 max-w-2xl`,children:[(0,k.jsx)(`h1`,{className:`text-2xl font-light`,children:`Profile`}),(0,k.jsx)(y,{...a,children:(0,k.jsxs)(`form`,{id:`profile-edit-form`,name:`profile-edit-form`,onSubmit:c(P),className:`grid gap-4 my-4`,children:[(0,k.jsx)(g,{control:s,name:`firstname`,render:({field:e})=>(0,k.jsxs)(v,{children:[(0,k.jsx)(b,{className:`pb-1`,children:`First Name`}),(0,k.jsx)(C,{children:(0,k.jsx)(S,{type:`text`,className:`dark:bg-black dark:border-black`,autoCapitalize:`words`,autoFocus:!0,...e})}),(0,k.jsx)(w,{})]})}),(0,k.jsx)(g,{control:s,name:`lastname`,render:({field:e})=>(0,k.jsxs)(v,{children:[(0,k.jsx)(b,{className:`pb-1`,children:`Last Name`}),(0,k.jsx)(C,{children:(0,k.jsx)(S,{type:`text`,className:`dark:bg-black dark:border-black`,autoCapitalize:`words`,...e})}),(0,k.jsx)(w,{})]})}),(0,k.jsxs)(v,{children:[(0,k.jsx)(b,{htmlFor:`profile-email`,className:`pb-1`,children:`Email`}),(0,k.jsx)(C,{children:(0,k.jsx)(S,{id:`profile-email`,type:`email`,enterKeyHint:`next`,autoComplete:`email`,autoCapitalize:`none`,value:i?.email||``,disabled:!0,readOnly:!0})})]}),(0,k.jsx)(g,{control:s,name:`newPassword`,render:({field:e})=>(0,k.jsxs)(v,{children:[(0,k.jsx)(b,{className:`pb-1`,children:`New Password`}),(0,k.jsx)(C,{children:(0,k.jsx)(S,{type:`password`,placeholder:`Optional`,className:`dark:bg-black dark:border-black`,autoComplete:`new-password`,autoCapitalize:`none`,...e})}),(0,k.jsx)(w,{})]})}),(0,k.jsx)(g,{control:s,name:`confirmNewPassword`,render:({field:e})=>(0,k.jsxs)(v,{children:[(0,k.jsx)(b,{className:`pb-1`,children:`Confirm New Password`}),(0,k.jsx)(C,{children:(0,k.jsx)(S,{type:`password`,className:`dark:bg-black dark:border-black`,autoComplete:`new-password`,autoCapitalize:`none`,...e})}),(0,k.jsx)(w,{})]})}),(0,k.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,k.jsxs)(o,{type:`submit`,variant:`submit`,disabled:N||!A||!j,children:[(0,k.jsx)(x,{}),` Update Profile`]})})]})})]})}export{A as ProfileIndex};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{g as t,h as n,o as r,s as i,v as a}from"./vendor-core-c2JRRJpV.js";import{i as o,t as s}from"./button-BIsUKRZq.js";import{a as c}from"./vendor-datadog-CLUcJXOo.js";import{r as l}from"./vendor-react-CJV_K1u4.js";import{I as u,L as d,q as f,z as p}from"./vendor-tanstack-DxzraizX.js";import{$ as m,It as h,it as g}from"./vendor-ui-BUjK0h8a.js";import{i as _,n as v,o as y,r as b,t as x}from"./dialog-Cn2uWgD4.js";import{n as S}from"./chevron-up-DtKGqDn3.js";import{t as C}from"./x-DIzaLEdK.js";import{$t as w,Cn as T,Dr as E,Gt as D,Hr as O,Jt as k,Kt as A,Mn as ee,Nn as te,Pn as ne,Qt as re,Sn as j,Sr as M,Tn as ie,Wt as N,Xn as P,Yn as F,Yt as I,Zn as ae,bn as L,br as R,en as z,ir as oe,nn as se,qn as B,qt as V,tn as ce,vn as H,wn as U,yn as W}from"./index-Dfpeofdu.js";var G=e(c(),1),K=l();function q({options:e,selected:t,onChange:n,placeholder:r=`Select…`,emptyText:i=`No options`,ariaLabel:a,disabled:o,id:c,allowRepeats:l,maxVisibleOptions:u}){let[d,f]=(0,G.useState)(!1),[p,m]=(0,G.useState)(``),h=(0,G.useRef)(null),g=(0,G.useRef)(null),_=(0,G.useMemo)(()=>new Set(t),[t]),v=(0,G.useMemo)(()=>new Map(e.map(e=>[e.value,e.label])),[e]);(0,G.useEffect)(()=>{if(!d)return;let e=0,t=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>h.current?.focus())});return()=>{cancelAnimationFrame(t),cancelAnimationFrame(e)}},[d]);let y=(0,G.useMemo)(()=>{let t=p.trim().toLowerCase();return t?e.filter(e=>e.label.toLowerCase().includes(t)||e.value.toLowerCase().includes(t)):e},[e,p]),b=u?y.slice(0,u):y,x=y.length-b.length,w=e=>{l?n([...t,e]):_.has(e)?n(t.filter(t=>t!==e)):n([...t,e])},T=e=>n(t.filter((t,n)=>n!==e)),E=e=>{let t=g.current?.querySelectorAll(`[role="menuitemcheckbox"]:not([data-disabled])`);t?.length&&(e===`first`?t[0]:t[t.length-1]).focus()};return(0,K.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,K.jsxs)(F,{open:d,onOpenChange:e=>{f(e),e||m(``)},children:[(0,K.jsx)(oe,{asChild:!0,disabled:o,children:(0,K.jsxs)(s,{id:c,type:`button`,variant:`outline`,"aria-label":a,className:`w-full justify-between font-normal`,children:[(0,K.jsx)(`span`,{className:t.length?`truncate`:`truncate text-muted-foreground`,children:t.length?`${t.length} selected`:r}),(0,K.jsx)(S,{className:`size-4 shrink-0 opacity-60`})]})}),(0,K.jsxs)(ae,{ref:g,className:`w-(--radix-dropdown-menu-trigger-width) max-h-72 overflow-y-auto`,align:`start`,children:[(0,K.jsx)(`input`,{ref:h,value:p,onChange:e=>m(e.target.value),onKeyDown:e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),E(e.key===`ArrowDown`?`first`:`last`);return}e.key.length===1&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.stopPropagation()},placeholder:`Filter…`,"aria-label":`Filter options`,className:`mb-1 w-full rounded-md border bg-transparent px-2 py-1 text-sm outline-none`}),y.length===0?(0,K.jsx)(`div`,{className:`px-2 py-1.5 text-sm text-muted-foreground`,children:i}):b.map(e=>(0,K.jsx)(P,{checked:_.has(e.value),onCheckedChange:()=>w(e.value),onSelect:e=>e.preventDefault(),children:e.label},e.value)),x>0&&(0,K.jsxs)(`div`,{className:`px-2 py-1.5 text-xs text-muted-foreground`,children:[x,` more — keep typing to narrow`]})]})]}),t.length>0&&(0,K.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.map((e,t)=>{let n=v.get(e)??e;return(0,K.jsxs)(B,{variant:`secondary`,className:`gap-1`,children:[n,(0,K.jsx)(`button`,{type:`button`,"aria-label":`Remove ${n}`,onClick:()=>T(t),className:`ml-0.5 rounded-sm hover:text-destructive`,children:(0,K.jsx)(C,{className:`size-3`})})]},`${e}-${t}`)})})]})}async function le(e){let{data:t}=await o.post(`/Admin/Region/`,e);return t}function ue(){return u({mutationFn:le})}async function de({id:e,changes:t}){let{data:n}=await o.patch(`/Admin/Region/${e}`,t);return n}function fe(){return u({mutationFn:de})}async function pe(){let{data:e}=await o.get(`/Location/`);return e}var me=[`fabric-admin`,`locations`];function he(){return d({queryKey:me,queryFn:pe,retry:!1})}function J(e,t){return t?`${e} (${t})`:e}async function ge(){let e=[];for(let t=0;t<40;t++){let n=t*500,r=[`status=ne=DELETED`,`sort(name)`,`limit(${n},${n+500})`].join(`&`),{data:i}=await o.get(`/Admin/Organization/?${r}`),a=i;if(e.push(...a),a.length<500)return{organizations:e,truncated:!1}}return{organizations:e,truncated:!0}}var _e=[`fabric-admin`,`organizations`];function Y(){return d({queryKey:_e,queryFn:ge,retry:!1})}async function ve(){let{data:e}=await o.get(`/Admin/Region/`);return e}var X=[`fabric-admin`,`regions`];function Z(){return d({queryKey:X,queryFn:ve,retry:!1})}var ye=t({id:a().trim().min(1,`ID is required`).regex(/^[a-z0-9-]+$/,`Use lowercase letters, numbers, and hyphens only`),region:a().trim().min(1,`Region is required`),instanceCount:n({error:`Enter a whole number`}).int(`Must be a whole number`).min(1,`Must be at least 1`),purchasedBlockMultiplier:n({error:`Enter a whole number`}).int(`Must be a whole number`).min(1,`Must be at least 1`),latencyDescription:a().trim().min(1,`Latency description is required`),linodePreferredLocations:r(a()),gcpPreferredLocations:r(a()),forceLocations:i(),active:i(),organizationIds:r(a())}).superRefine((e,t)=>{e.forceLocations&&!e.linodePreferredLocations.length&&!e.gcpPreferredLocations.length&&t.addIssue({code:`custom`,path:[`forceLocations`],message:`Add at least one preferred location, or turn off Force locations`})}),be=100;function Q(e){return{id:e?.id??``,region:e?.region??``,instanceCount:e?.instanceCount??1,purchasedBlockMultiplier:e?.purchasedBlockMultiplier??1,latencyDescription:e?.latencyDescription??``,linodePreferredLocations:e?.linodePreferredLocations??[],gcpPreferredLocations:e?.gcpPreferredLocations??[],forceLocations:e?.forceLocations??!1,active:e?.active??!0,organizationIds:e?.organizationIds??[]}}function xe({open:e,onOpenChange:t,region:n}){let r=!!n,i=f(),{data:a=[]}=p({...he(),enabled:e}),{data:o}=p({...Y(),enabled:e}),c=o?.organizations??[],{data:l=[]}=p({...Z(),enabled:e}),{mutate:u,isPending:d}=ue(),{mutate:S,isPending:C}=fe(),D=d||C,O=(0,G.useMemo)(()=>a.filter(e=>e.cloudProvider===`linode`).map(e=>({value:e.location,label:`${e.locationName} (${e.location})`})),[a]),k=(0,G.useMemo)(()=>a.filter(e=>e.cloudProvider===`gcp`).map(e=>({value:e.location,label:`${e.locationName} (${e.location})`})),[a]),A=(0,G.useMemo)(()=>c.map(e=>({value:e.id,label:J(e.id,e.name)})),[c]),M=(0,G.useMemo)(()=>{let e=new Set;for(let t of a)for(let n of t.regions??[])e.add(n);return n?.region&&e.add(n.region),[...e].sort()},[a,n]),N=g({resolver:m(ye),defaultValues:Q(n)});(0,G.useEffect)(()=>{e&&N.reset(Q(n))},[e,n,N]);let P=e=>{let a=e=>e.trim().toLowerCase(),o=!n||a(n.latencyDescription)!==a(e.latencyDescription),s=l.filter(e=>e.id!==n?.id);if(o&&s.some(t=>a(t.latencyDescription)===a(e.latencyDescription))){N.setError(`latencyDescription`,{message:`A region with this latency description already exists`});return}let c=e.organizationIds.length>0?e.organizationIds:null,d=()=>{h.success(r?`Region updated`:`Region created`),i.invalidateQueries({queryKey:X}),t(!1)};if(n){let{id:t,...r}=e;S({id:n.id,changes:{...r,organizationIds:c}},{onSuccess:d})}else u({...e,organizationIds:c},{onSuccess:d})};return(0,K.jsx)(x,{open:e,onOpenChange:t,children:(0,K.jsxs)(v,{className:`max-w-2xl`,children:[(0,K.jsx)(y,{children:r?`Edit region`:`Create region`}),(0,K.jsx)(b,{children:r?`Update this region. Its ID is fixed once created.`:`Define a new deployment region. Leave organizations empty to make it public (all organizations).`}),(0,K.jsx)(ie,{...N,children:(0,K.jsxs)(`form`,{className:`my-4 flex flex-col gap-4`,onSubmit:N.handleSubmit(P),children:[(0,K.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 items-start`,children:[(0,K.jsx)(T,{control:N.control,name:`id`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Region ID`}),(0,K.jsx)(U,{children:(0,K.jsx)(H,{placeholder:`e.g. us-east-1`,...e,disabled:r})}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`region`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Region`}),(0,K.jsx)(U,{children:(0,K.jsxs)(re,{value:e.value,onValueChange:e.onChange,children:[(0,K.jsx)(ce,{className:`w-full`,children:(0,K.jsx)(se,{placeholder:`Select a region`})}),(0,K.jsx)(w,{children:M.map(e=>(0,K.jsx)(z,{value:e,children:e},e))})]})}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`instanceCount`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Instance count`}),(0,K.jsx)(U,{children:(0,K.jsx)(H,{type:`number`,min:1,step:1,name:e.name,ref:e.ref,onBlur:e.onBlur,value:Number.isFinite(e.value)?e.value:``,onChange:t=>e.onChange(t.target.valueAsNumber)})}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`purchasedBlockMultiplier`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 pb-1`,children:[(0,K.jsx)(L,{className:`!pb-0`,children:`Purchased block multiplier`}),(0,K.jsxs)(ee,{children:[(0,K.jsx)(ne,{asChild:!0,children:(0,K.jsx)(`button`,{type:`button`,"aria-label":`What is the purchased block multiplier?`,className:`text-muted-foreground hover:text-foreground`,children:(0,K.jsx)(E,{className:`size-3.5`})})}),(0,K.jsx)(te,{className:`max-w-xs`,children:`How many purchased blocks a cluster in this region is billed for. One block covers a baseline cluster: a 2-node cluster is 1 block and a 4-node cluster is 2 blocks. Each block carries one license against the selected plan's limits; once they're all used up, this many are issued and billed again.`})]})]}),(0,K.jsx)(U,{children:(0,K.jsx)(H,{type:`number`,min:1,step:1,name:e.name,ref:e.ref,onBlur:e.onBlur,value:Number.isFinite(e.value)?e.value:``,onChange:t=>e.onChange(t.target.valueAsNumber)})}),(0,K.jsx)(W,{})]})})]}),(0,K.jsx)(T,{control:N.control,name:`latencyDescription`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Latency description`}),(0,K.jsx)(U,{children:(0,K.jsx)(H,{placeholder:`e.g. 280ms, medium distribution`,...e})}),(0,K.jsx)(W,{})]})}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 items-start`,children:[(0,K.jsx)(T,{control:N.control,name:`linodePreferredLocations`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Linode preferred locations`}),(0,K.jsx)(U,{children:(0,K.jsx)(q,{options:O,selected:e.value,onChange:e.onChange,placeholder:`Any Linode location`,emptyText:`No Linode locations`,ariaLabel:`Linode preferred locations`,allowRepeats:!0})}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`gcpPreferredLocations`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`GCP preferred locations`}),(0,K.jsx)(U,{children:(0,K.jsx)(q,{options:k,selected:e.value,onChange:e.onChange,placeholder:`Any GCP location`,emptyText:`No GCP locations`,ariaLabel:`GCP preferred locations`,allowRepeats:!0})}),(0,K.jsx)(W,{})]})})]}),(0,K.jsx)(T,{control:N.control,name:`forceLocations`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(U,{children:(0,K.jsx)(`input`,{type:`checkbox`,className:`size-4`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,K.jsx)(L,{className:`!pb-0`,children:`Force locations`})]}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Pin deployments to the preferred locations above instead of treating them as hints.`}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`active`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(U,{children:(0,K.jsx)(`input`,{type:`checkbox`,className:`size-4`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,K.jsx)(L,{className:`!pb-0`,children:`Active`})]}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Inactive regions stay available to existing deployments but aren't offered for new ones.`}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`organizationIds`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Organizations (customer scope)`}),(0,K.jsx)(U,{children:(0,K.jsx)(q,{options:A,selected:e.value,onChange:e.onChange,placeholder:`Public — all organizations`,emptyText:`No organizations`,ariaLabel:`Organizations`,maxVisibleOptions:be})}),o?.truncated&&(0,K.jsx)(`p`,{className:`text-xs text-destructive`,children:`Too many organizations to list them all — some may be missing from this picker.`}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(_,{children:(0,K.jsxs)(`div`,{className:`flex w-full justify-between`,children:[(0,K.jsx)(s,{variant:`destructiveOutline`,type:`button`,onClick:()=>t(!1),disabled:D,children:`Cancel`}),(0,K.jsx)(s,{variant:`submit`,disabled:D,children:D?`Saving…`:r?`Save changes`:`Create region`})]})})]})})]})})}function $({organizationIds:e,orgNameById:t}){return e==null||e.length===0?(0,K.jsx)(K.Fragment,{children:`Public`}):(0,K.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:e.map(e=>(0,K.jsx)(`span`,{className:`break-words`,children:J(e,t.get(e))},e))})}function Se(){let{data:e,isLoading:t,isError:n}=p(Z()),{data:r}=p(Y()),[i,a]=(0,G.useState)(!1),[o,c]=(0,G.useState)(null),[l,u]=(0,G.useState)(``),d=O(`region:write`),f=(0,G.useMemo)(()=>new Map((r?.organizations??[]).map(e=>[e.id,e.name])),[r]),m=(0,G.useMemo)(()=>{let t=l.trim().toLowerCase();return!t||!e?e??[]:e.filter(e=>e.region.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)||e.latencyDescription.toLowerCase().includes(t)||(e.organizationIds??[]).some(e=>e.toLowerCase().includes(t)||(f.get(e)??``).toLowerCase().includes(t)))},[e,l,f]),h=()=>{c(null),a(!0)},g=e=>{c(e),a(!0)};return(0,K.jsxs)(`div`,{className:`max-w-4xl`,children:[(0,K.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h1`,{className:`text-2xl font-light`,children:`Regions`}),(0,K.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Deployment regions customers can provision into. A region scoped to organizations is only offered to those customers; otherwise it's available to everyone.`})]}),d&&(0,K.jsxs)(s,{variant:`submit`,onClick:h,className:`shrink-0`,children:[(0,K.jsx)(R,{}),`Create region`]})]}),(0,K.jsx)(`div`,{className:`mt-6`,children:t?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading regions…`}):n?(0,K.jsx)(`p`,{className:`text-sm text-destructive`,children:`Couldn't load regions.`}):!e||e.length===0?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No regions yet. Create one to get started.`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(H,{value:l,onChange:e=>u(e.target.value),placeholder:`Filter by ID, region, description, or organization…`,"aria-label":`Filter regions`,className:`mb-4 max-w-md`}),m.length===0?(0,K.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`No regions match “`,l,`”.`]}):(0,K.jsxs)(N,{children:[(0,K.jsx)(k,{children:(0,K.jsxs)(I,{children:[(0,K.jsx)(V,{children:`ID`}),(0,K.jsx)(V,{children:`Region`}),(0,K.jsx)(V,{className:`text-right pr-6`,children:`Instances`}),(0,K.jsx)(V,{children:`Description`}),(0,K.jsx)(V,{children:`Scope`}),(0,K.jsx)(V,{className:`w-0`})]})}),(0,K.jsx)(D,{children:m.map(e=>(0,K.jsxs)(I,{className:e.active===!1?`opacity-60`:void 0,children:[(0,K.jsx)(A,{className:`font-mono font-medium`,children:(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[e.id,e.active===!1&&(0,K.jsx)(B,{variant:`secondary`,className:`text-[10px]`,children:`Inactive`})]})}),(0,K.jsx)(A,{children:e.region}),(0,K.jsx)(A,{className:`text-right pr-6`,children:e.instanceCount}),(0,K.jsx)(A,{className:`text-muted-foreground`,children:e.latencyDescription}),(0,K.jsx)(A,{children:(0,K.jsx)($,{organizationIds:e.organizationIds,orgNameById:f})}),(0,K.jsx)(A,{className:`text-right`,children:d&&(0,K.jsx)(s,{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.id}`,onClick:()=>g(e),children:(0,K.jsx)(M,{})})})]},e.id))})]})]})}),(0,K.jsx)(xe,{open:i,onOpenChange:a,region:o})]})}export{$ as RegionScope,Se as RegionsIndex};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{g as t,h as n,o as r,s as i,v as a}from"./vendor-core-c2JRRJpV.js";import{i as o,t as s}from"./button-BIsUKRZq.js";import{a as c}from"./vendor-datadog-CLUcJXOo.js";import{r as l}from"./vendor-react-CJV_K1u4.js";import{I as u,L as d,q as f,z as p}from"./vendor-tanstack-DxzraizX.js";import{$ as m,It as h,it as g}from"./vendor-ui-BUjK0h8a.js";import{i as _,n as v,o as y,r as b,t as x}from"./dialog-Cn2uWgD4.js";import{n as S}from"./chevron-up-DtKGqDn3.js";import{t as C}from"./x-DIzaLEdK.js";import{$t as w,Cn as T,Dr as E,Gt as D,Hr as O,Jt as k,Kt as A,Mn as ee,Nn as te,Pn as ne,Qt as re,Sn as j,Sr as M,Tn as ie,Wt as N,Xn as P,Yn as F,Yt as I,Zn as ae,bn as L,br as R,en as z,ir as oe,nn as se,qn as B,qt as V,tn as ce,vn as H,wn as U,yn as W}from"./index-BIXW6Pu4.js";var G=e(c(),1),K=l();function q({options:e,selected:t,onChange:n,placeholder:r=`Select…`,emptyText:i=`No options`,ariaLabel:a,disabled:o,id:c,allowRepeats:l,maxVisibleOptions:u}){let[d,f]=(0,G.useState)(!1),[p,m]=(0,G.useState)(``),h=(0,G.useRef)(null),g=(0,G.useRef)(null),_=(0,G.useMemo)(()=>new Set(t),[t]),v=(0,G.useMemo)(()=>new Map(e.map(e=>[e.value,e.label])),[e]);(0,G.useEffect)(()=>{if(!d)return;let e=0,t=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>h.current?.focus())});return()=>{cancelAnimationFrame(t),cancelAnimationFrame(e)}},[d]);let y=(0,G.useMemo)(()=>{let t=p.trim().toLowerCase();return t?e.filter(e=>e.label.toLowerCase().includes(t)||e.value.toLowerCase().includes(t)):e},[e,p]),b=u?y.slice(0,u):y,x=y.length-b.length,w=e=>{l?n([...t,e]):_.has(e)?n(t.filter(t=>t!==e)):n([...t,e])},T=e=>n(t.filter((t,n)=>n!==e)),E=e=>{let t=g.current?.querySelectorAll(`[role="menuitemcheckbox"]:not([data-disabled])`);t?.length&&(e===`first`?t[0]:t[t.length-1]).focus()};return(0,K.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,K.jsxs)(F,{open:d,onOpenChange:e=>{f(e),e||m(``)},children:[(0,K.jsx)(oe,{asChild:!0,disabled:o,children:(0,K.jsxs)(s,{id:c,type:`button`,variant:`outline`,"aria-label":a,className:`w-full justify-between font-normal`,children:[(0,K.jsx)(`span`,{className:t.length?`truncate`:`truncate text-muted-foreground`,children:t.length?`${t.length} selected`:r}),(0,K.jsx)(S,{className:`size-4 shrink-0 opacity-60`})]})}),(0,K.jsxs)(ae,{ref:g,className:`w-(--radix-dropdown-menu-trigger-width) max-h-72 overflow-y-auto`,align:`start`,children:[(0,K.jsx)(`input`,{ref:h,value:p,onChange:e=>m(e.target.value),onKeyDown:e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),E(e.key===`ArrowDown`?`first`:`last`);return}e.key.length===1&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.stopPropagation()},placeholder:`Filter…`,"aria-label":`Filter options`,className:`mb-1 w-full rounded-md border bg-transparent px-2 py-1 text-sm outline-none`}),y.length===0?(0,K.jsx)(`div`,{className:`px-2 py-1.5 text-sm text-muted-foreground`,children:i}):b.map(e=>(0,K.jsx)(P,{checked:_.has(e.value),onCheckedChange:()=>w(e.value),onSelect:e=>e.preventDefault(),children:e.label},e.value)),x>0&&(0,K.jsxs)(`div`,{className:`px-2 py-1.5 text-xs text-muted-foreground`,children:[x,` more — keep typing to narrow`]})]})]}),t.length>0&&(0,K.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.map((e,t)=>{let n=v.get(e)??e;return(0,K.jsxs)(B,{variant:`secondary`,className:`gap-1`,children:[n,(0,K.jsx)(`button`,{type:`button`,"aria-label":`Remove ${n}`,onClick:()=>T(t),className:`ml-0.5 rounded-sm hover:text-destructive`,children:(0,K.jsx)(C,{className:`size-3`})})]},`${e}-${t}`)})})]})}async function le(e){let{data:t}=await o.post(`/Admin/Region/`,e);return t}function ue(){return u({mutationFn:le})}async function de({id:e,changes:t}){let{data:n}=await o.patch(`/Admin/Region/${e}`,t);return n}function fe(){return u({mutationFn:de})}async function pe(){let{data:e}=await o.get(`/Location/`);return e}var me=[`fabric-admin`,`locations`];function he(){return d({queryKey:me,queryFn:pe,retry:!1})}function J(e,t){return t?`${e} (${t})`:e}async function ge(){let e=[];for(let t=0;t<40;t++){let n=t*500,r=[`status=ne=DELETED`,`sort(name)`,`limit(${n},${n+500})`].join(`&`),{data:i}=await o.get(`/Admin/Organization/?${r}`),a=i;if(e.push(...a),a.length<500)return{organizations:e,truncated:!1}}return{organizations:e,truncated:!0}}var _e=[`fabric-admin`,`organizations`];function Y(){return d({queryKey:_e,queryFn:ge,retry:!1})}async function ve(){let{data:e}=await o.get(`/Admin/Region/`);return e}var X=[`fabric-admin`,`regions`];function Z(){return d({queryKey:X,queryFn:ve,retry:!1})}var ye=t({id:a().trim().min(1,`ID is required`).regex(/^[a-z0-9-]+$/,`Use lowercase letters, numbers, and hyphens only`),region:a().trim().min(1,`Region is required`),instanceCount:n({error:`Enter a whole number`}).int(`Must be a whole number`).min(1,`Must be at least 1`),purchasedBlockMultiplier:n({error:`Enter a whole number`}).int(`Must be a whole number`).min(1,`Must be at least 1`),latencyDescription:a().trim().min(1,`Latency description is required`),linodePreferredLocations:r(a()),gcpPreferredLocations:r(a()),forceLocations:i(),active:i(),organizationIds:r(a())}).superRefine((e,t)=>{e.forceLocations&&!e.linodePreferredLocations.length&&!e.gcpPreferredLocations.length&&t.addIssue({code:`custom`,path:[`forceLocations`],message:`Add at least one preferred location, or turn off Force locations`})}),be=100;function Q(e){return{id:e?.id??``,region:e?.region??``,instanceCount:e?.instanceCount??1,purchasedBlockMultiplier:e?.purchasedBlockMultiplier??1,latencyDescription:e?.latencyDescription??``,linodePreferredLocations:e?.linodePreferredLocations??[],gcpPreferredLocations:e?.gcpPreferredLocations??[],forceLocations:e?.forceLocations??!1,active:e?.active??!0,organizationIds:e?.organizationIds??[]}}function xe({open:e,onOpenChange:t,region:n}){let r=!!n,i=f(),{data:a=[]}=p({...he(),enabled:e}),{data:o}=p({...Y(),enabled:e}),c=o?.organizations??[],{data:l=[]}=p({...Z(),enabled:e}),{mutate:u,isPending:d}=ue(),{mutate:S,isPending:C}=fe(),D=d||C,O=(0,G.useMemo)(()=>a.filter(e=>e.cloudProvider===`linode`).map(e=>({value:e.location,label:`${e.locationName} (${e.location})`})),[a]),k=(0,G.useMemo)(()=>a.filter(e=>e.cloudProvider===`gcp`).map(e=>({value:e.location,label:`${e.locationName} (${e.location})`})),[a]),A=(0,G.useMemo)(()=>c.map(e=>({value:e.id,label:J(e.id,e.name)})),[c]),M=(0,G.useMemo)(()=>{let e=new Set;for(let t of a)for(let n of t.regions??[])e.add(n);return n?.region&&e.add(n.region),[...e].sort()},[a,n]),N=g({resolver:m(ye),defaultValues:Q(n)});(0,G.useEffect)(()=>{e&&N.reset(Q(n))},[e,n,N]);let P=e=>{let a=e=>e.trim().toLowerCase(),o=!n||a(n.latencyDescription)!==a(e.latencyDescription),s=l.filter(e=>e.id!==n?.id);if(o&&s.some(t=>a(t.latencyDescription)===a(e.latencyDescription))){N.setError(`latencyDescription`,{message:`A region with this latency description already exists`});return}let c=e.organizationIds.length>0?e.organizationIds:null,d=()=>{h.success(r?`Region updated`:`Region created`),i.invalidateQueries({queryKey:X}),t(!1)};if(n){let{id:t,...r}=e;S({id:n.id,changes:{...r,organizationIds:c}},{onSuccess:d})}else u({...e,organizationIds:c},{onSuccess:d})};return(0,K.jsx)(x,{open:e,onOpenChange:t,children:(0,K.jsxs)(v,{className:`max-w-2xl`,children:[(0,K.jsx)(y,{children:r?`Edit region`:`Create region`}),(0,K.jsx)(b,{children:r?`Update this region. Its ID is fixed once created.`:`Define a new deployment region. Leave organizations empty to make it public (all organizations).`}),(0,K.jsx)(ie,{...N,children:(0,K.jsxs)(`form`,{className:`my-4 flex flex-col gap-4`,onSubmit:N.handleSubmit(P),children:[(0,K.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 items-start`,children:[(0,K.jsx)(T,{control:N.control,name:`id`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Region ID`}),(0,K.jsx)(U,{children:(0,K.jsx)(H,{placeholder:`e.g. us-east-1`,...e,disabled:r})}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`region`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Region`}),(0,K.jsx)(U,{children:(0,K.jsxs)(re,{value:e.value,onValueChange:e.onChange,children:[(0,K.jsx)(ce,{className:`w-full`,children:(0,K.jsx)(se,{placeholder:`Select a region`})}),(0,K.jsx)(w,{children:M.map(e=>(0,K.jsx)(z,{value:e,children:e},e))})]})}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`instanceCount`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Instance count`}),(0,K.jsx)(U,{children:(0,K.jsx)(H,{type:`number`,min:1,step:1,name:e.name,ref:e.ref,onBlur:e.onBlur,value:Number.isFinite(e.value)?e.value:``,onChange:t=>e.onChange(t.target.valueAsNumber)})}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`purchasedBlockMultiplier`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 pb-1`,children:[(0,K.jsx)(L,{className:`!pb-0`,children:`Purchased block multiplier`}),(0,K.jsxs)(ee,{children:[(0,K.jsx)(ne,{asChild:!0,children:(0,K.jsx)(`button`,{type:`button`,"aria-label":`What is the purchased block multiplier?`,className:`text-muted-foreground hover:text-foreground`,children:(0,K.jsx)(E,{className:`size-3.5`})})}),(0,K.jsx)(te,{className:`max-w-xs`,children:`How many purchased blocks a cluster in this region is billed for. One block covers a baseline cluster: a 2-node cluster is 1 block and a 4-node cluster is 2 blocks. Each block carries one license against the selected plan's limits; once they're all used up, this many are issued and billed again.`})]})]}),(0,K.jsx)(U,{children:(0,K.jsx)(H,{type:`number`,min:1,step:1,name:e.name,ref:e.ref,onBlur:e.onBlur,value:Number.isFinite(e.value)?e.value:``,onChange:t=>e.onChange(t.target.valueAsNumber)})}),(0,K.jsx)(W,{})]})})]}),(0,K.jsx)(T,{control:N.control,name:`latencyDescription`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Latency description`}),(0,K.jsx)(U,{children:(0,K.jsx)(H,{placeholder:`e.g. 280ms, medium distribution`,...e})}),(0,K.jsx)(W,{})]})}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 items-start`,children:[(0,K.jsx)(T,{control:N.control,name:`linodePreferredLocations`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Linode preferred locations`}),(0,K.jsx)(U,{children:(0,K.jsx)(q,{options:O,selected:e.value,onChange:e.onChange,placeholder:`Any Linode location`,emptyText:`No Linode locations`,ariaLabel:`Linode preferred locations`,allowRepeats:!0})}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`gcpPreferredLocations`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`GCP preferred locations`}),(0,K.jsx)(U,{children:(0,K.jsx)(q,{options:k,selected:e.value,onChange:e.onChange,placeholder:`Any GCP location`,emptyText:`No GCP locations`,ariaLabel:`GCP preferred locations`,allowRepeats:!0})}),(0,K.jsx)(W,{})]})})]}),(0,K.jsx)(T,{control:N.control,name:`forceLocations`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(U,{children:(0,K.jsx)(`input`,{type:`checkbox`,className:`size-4`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,K.jsx)(L,{className:`!pb-0`,children:`Force locations`})]}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Pin deployments to the preferred locations above instead of treating them as hints.`}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`active`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(U,{children:(0,K.jsx)(`input`,{type:`checkbox`,className:`size-4`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,K.jsx)(L,{className:`!pb-0`,children:`Active`})]}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Inactive regions stay available to existing deployments but aren't offered for new ones.`}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(T,{control:N.control,name:`organizationIds`,render:({field:e})=>(0,K.jsxs)(j,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Organizations (customer scope)`}),(0,K.jsx)(U,{children:(0,K.jsx)(q,{options:A,selected:e.value,onChange:e.onChange,placeholder:`Public — all organizations`,emptyText:`No organizations`,ariaLabel:`Organizations`,maxVisibleOptions:be})}),o?.truncated&&(0,K.jsx)(`p`,{className:`text-xs text-destructive`,children:`Too many organizations to list them all — some may be missing from this picker.`}),(0,K.jsx)(W,{})]})}),(0,K.jsx)(_,{children:(0,K.jsxs)(`div`,{className:`flex w-full justify-between`,children:[(0,K.jsx)(s,{variant:`destructiveOutline`,type:`button`,onClick:()=>t(!1),disabled:D,children:`Cancel`}),(0,K.jsx)(s,{variant:`submit`,disabled:D,children:D?`Saving…`:r?`Save changes`:`Create region`})]})})]})})]})})}function $({organizationIds:e,orgNameById:t}){return e==null||e.length===0?(0,K.jsx)(K.Fragment,{children:`Public`}):(0,K.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:e.map(e=>(0,K.jsx)(`span`,{className:`break-words`,children:J(e,t.get(e))},e))})}function Se(){let{data:e,isLoading:t,isError:n}=p(Z()),{data:r}=p(Y()),[i,a]=(0,G.useState)(!1),[o,c]=(0,G.useState)(null),[l,u]=(0,G.useState)(``),d=O(`region:write`),f=(0,G.useMemo)(()=>new Map((r?.organizations??[]).map(e=>[e.id,e.name])),[r]),m=(0,G.useMemo)(()=>{let t=l.trim().toLowerCase();return!t||!e?e??[]:e.filter(e=>e.region.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)||e.latencyDescription.toLowerCase().includes(t)||(e.organizationIds??[]).some(e=>e.toLowerCase().includes(t)||(f.get(e)??``).toLowerCase().includes(t)))},[e,l,f]),h=()=>{c(null),a(!0)},g=e=>{c(e),a(!0)};return(0,K.jsxs)(`div`,{className:`max-w-4xl`,children:[(0,K.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h1`,{className:`text-2xl font-light`,children:`Regions`}),(0,K.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Deployment regions customers can provision into. A region scoped to organizations is only offered to those customers; otherwise it's available to everyone.`})]}),d&&(0,K.jsxs)(s,{variant:`submit`,onClick:h,className:`shrink-0`,children:[(0,K.jsx)(R,{}),`Create region`]})]}),(0,K.jsx)(`div`,{className:`mt-6`,children:t?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading regions…`}):n?(0,K.jsx)(`p`,{className:`text-sm text-destructive`,children:`Couldn't load regions.`}):!e||e.length===0?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No regions yet. Create one to get started.`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(H,{value:l,onChange:e=>u(e.target.value),placeholder:`Filter by ID, region, description, or organization…`,"aria-label":`Filter regions`,className:`mb-4 max-w-md`}),m.length===0?(0,K.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`No regions match “`,l,`”.`]}):(0,K.jsxs)(N,{children:[(0,K.jsx)(k,{children:(0,K.jsxs)(I,{children:[(0,K.jsx)(V,{children:`ID`}),(0,K.jsx)(V,{children:`Region`}),(0,K.jsx)(V,{className:`text-right pr-6`,children:`Instances`}),(0,K.jsx)(V,{children:`Description`}),(0,K.jsx)(V,{children:`Scope`}),(0,K.jsx)(V,{className:`w-0`})]})}),(0,K.jsx)(D,{children:m.map(e=>(0,K.jsxs)(I,{className:e.active===!1?`opacity-60`:void 0,children:[(0,K.jsx)(A,{className:`font-mono font-medium`,children:(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[e.id,e.active===!1&&(0,K.jsx)(B,{variant:`secondary`,className:`text-[10px]`,children:`Inactive`})]})}),(0,K.jsx)(A,{children:e.region}),(0,K.jsx)(A,{className:`text-right pr-6`,children:e.instanceCount}),(0,K.jsx)(A,{className:`text-muted-foreground`,children:e.latencyDescription}),(0,K.jsx)(A,{children:(0,K.jsx)($,{organizationIds:e.organizationIds,orgNameById:f})}),(0,K.jsx)(A,{className:`text-right`,children:d&&(0,K.jsx)(s,{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.id}`,onClick:()=>g(e),children:(0,K.jsx)(M,{})})})]},e.id))})]})]})}),(0,K.jsx)(xe,{open:i,onOpenChange:a,region:o})]})}export{$ as RegionScope,Se as RegionsIndex};