@kedem/okdb 1.0.0 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/README.md +1 -1
  2. package/bin/okdb.js +1 -1
  3. package/keys/public.pem +3 -0
  4. package/okdb.js +1 -1
  5. package/package.json +2 -2
  6. package/public/admin-app.js +1 -1
  7. package/public/components/admin-route-host.ok.js +1 -1
  8. package/public/components/env-picker.ok.js +1 -1
  9. package/public/components/field-path-input.ok.js +1 -1
  10. package/public/components/geo-map.ok.js +1 -1
  11. package/public/components/ok-cron-input.ok.js +1 -1
  12. package/public/components/ok-dropzone.ok.js +1 -1
  13. package/public/components/ok-js-input.ok.js +1 -1
  14. package/public/components/ok-json-input.ok.js +1 -1
  15. package/public/components/ok-text-monaco-input.ok.js +1 -1
  16. package/public/components/theme-toggle.ok.js +1 -1
  17. package/public/login-app.js +1 -1
  18. package/public/modules/ok.js +1 -1
  19. package/public/sections/api/parts/api-endpoint.ok.js +1 -1
  20. package/public/sections/auth/modals/create-token-modal.ok.js +1 -1
  21. package/public/sections/auth/modals/edit-token-modal.ok.js +1 -1
  22. package/public/sections/auth/modals/perm-info-popover.ok.js +1 -1
  23. package/public/sections/auth/parts/token-detail.ok.js +1 -1
  24. package/public/sections/auth/parts/token-list.ok.js +1 -1
  25. package/public/sections/db/modals/add-item-modal.ok.js +1 -1
  26. package/public/sections/db/modals/create-env-modal.ok.js +1 -1
  27. package/public/sections/db/modals/create-fts-modal.ok.js +1 -1
  28. package/public/sections/db/modals/create-index-modal.ok.js +1 -1
  29. package/public/sections/db/modals/create-pipeline-modal.ok.js +1 -1
  30. package/public/sections/db/modals/demo-env-modal.ok.js +1 -1
  31. package/public/sections/db/modals/remove-env-modal.ok.js +1 -1
  32. package/public/sections/db/modals/schema-edit-modal.ok.js +1 -1
  33. package/public/sections/db/parts/db-overview.ok.js +1 -1
  34. package/public/sections/db/parts/db-pipelines-panel.ok.js +1 -1
  35. package/public/sections/db/parts/edit-row.ok.js +1 -1
  36. package/public/sections/db/parts/tm-timeline.ok.js +1 -1
  37. package/public/sections/db/parts/type-changelog.ok.js +1 -1
  38. package/public/sections/db/parts/type-list.ok.js +1 -1
  39. package/public/sections/db/parts/type-pipelines-tab.ok.js +1 -1
  40. package/public/sections/db/parts/type-schema-tab.ok.js +1 -1
  41. package/public/sections/db/parts/type-viewer.ok.js +1 -1
  42. package/public/sections/db/parts/type-violations-tab.ok.js +1 -1
  43. package/public/sections/embeddings/modals/register-model-modal.ok.js +1 -1
  44. package/public/sections/embeddings/parts/embed-create-panel.ok.js +1 -1
  45. package/public/sections/embeddings/parts/embed-embedder-panel.ok.js +1 -1
  46. package/public/sections/embeddings/parts/embed-engine-declaration-editor.ok.js +1 -1
  47. package/public/sections/embeddings/parts/embed-engine-list.ok.js +1 -1
  48. package/public/sections/embeddings/parts/embed-indexer-panel.ok.js +1 -1
  49. package/public/sections/embeddings/parts/embed-lifecycle-bar.ok.js +1 -1
  50. package/public/sections/embeddings/parts/embed-model-catalog.ok.js +1 -1
  51. package/public/sections/embeddings/parts/embed-overview.ok.js +1 -1
  52. package/public/sections/embeddings/parts/embed-search-panel.ok.js +1 -1
  53. package/public/sections/embeddings/parts/embed-worker-panel.ok.js +1 -1
  54. package/public/sections/embeddings/parts/embeddings-engine-panel.ok.js +1 -1
  55. package/public/sections/embeddings/parts/engines-overview.ok.js +1 -1
  56. package/public/sections/embeddings/parts/pipeline-create-panel.ok.js +1 -1
  57. package/public/sections/engines/engine-panel-shared-style.js +1 -1
  58. package/public/sections/engines/engine-ui-utils.js +1 -1
  59. package/public/sections/engines/modals/engine-modal.ok.js +1 -1
  60. package/public/sections/engines/parts/engine-declaration-editor.ok.js +1 -1
  61. package/public/sections/engines/parts/engine-lifecycle-actions.ok.js +1 -1
  62. package/public/sections/engines/parts/engine-panel-shell.ok.js +1 -1
  63. package/public/sections/engines/parts/engine-resource-card.ok.js +1 -1
  64. package/public/sections/engines/parts/engine-row-item.ok.js +1 -1
  65. package/public/sections/engines/parts/generic-engine-panel.ok.js +1 -1
  66. package/public/sections/files/parts/files-blob-status.ok.js +1 -1
  67. package/public/sections/files/parts/files-collection-list.ok.js +1 -1
  68. package/public/sections/files/parts/files-collection-panel.ok.js +1 -1
  69. package/public/sections/files/parts/files-file-list.ok.js +1 -1
  70. package/public/sections/files/parts/files-overview.ok.js +1 -1
  71. package/public/sections/files/parts/files-path-browser.ok.js +1 -1
  72. package/public/sections/files/parts/files-upload-panel.ok.js +1 -1
  73. package/public/sections/functions/modals/function-modal.ok.js +1 -1
  74. package/public/sections/functions/parts/function-detail.ok.js +1 -1
  75. package/public/sections/functions/parts/function-logs.ok.js +1 -1
  76. package/public/sections/functions/parts/function-runner.ok.js +1 -1
  77. package/public/sections/functions/parts/functions-list.ok.js +1 -1
  78. package/public/sections/license/parts/license-panel.ok.js +1 -1
  79. package/public/sections/queue/modals/create-bucket-modal.ok.js +1 -1
  80. package/public/sections/queue/modals/edit-bucket-modal.ok.js +1 -1
  81. package/public/sections/queue/modals/edit-job-modal.ok.js +1 -1
  82. package/public/sections/queue/modals/enqueue-job-modal.ok.js +1 -1
  83. package/public/sections/queue/modals/job-type-modal.ok.js +1 -1
  84. package/public/sections/queue/parts/ok-job-form.ok.js +1 -1
  85. package/public/sections/queue/parts/queue-buckets.ok.js +1 -1
  86. package/public/sections/queue/parts/queue-job-types.ok.js +1 -1
  87. package/public/sections/queue/parts/queue-jobs.ok.js +1 -1
  88. package/public/sections/queue/parts/queue-types.ok.js +1 -1
  89. package/public/sections/queue/parts/queue-workers.ok.js +1 -1
  90. package/public/sections/sync/parts/sync-node-detail.ok.js +1 -1
  91. package/public/sections/sync/parts/sync-retention.ok.js +1 -1
  92. package/public/sections/sync/parts/sync-topology.ok.js +1 -1
  93. package/public/sections/system/modals/data-ops-modal.ok.js +1 -1
  94. package/public/sections/system/parts/system-api-panel.ok.js +1 -1
  95. package/public/sections/system/parts/system-auth-panel.ok.js +1 -1
  96. package/public/sections/system/parts/system-log-history.ok.js +1 -1
  97. package/public/sections/system/parts/system-log.ok.js +1 -1
  98. package/public/sections/system/parts/system-status.ok.js +1 -1
  99. package/public/sections/system/parts/system-sync-panel.ok.js +1 -1
  100. package/public/sections/views/modals/create-view-modal.ok.js +1 -1
  101. package/public/sections/views/parts/view-detail.ok.js +1 -1
  102. package/public/sections/views/parts/views-list.ok.js +1 -1
  103. package/public/sections/views/parts/views-overview.ok.js +1 -1
  104. package/public/setup-app.js +1 -1
  105. package/public/stores/auth-store.js +1 -1
  106. package/public/stores/events-store.js +1 -1
  107. package/public/stores/functions-store.js +1 -1
  108. package/public/stores/okdb-store.js +1 -1
  109. package/public/stores/theme-store.js +1 -1
  110. package/public/util/permissions.js +1 -1
  111. package/public/util/sift-schema.js +1 -1
  112. package/public/vendor/okjs/ok.esm.min.js +1 -2
  113. package/public/vendor/okjs/toolkit/behavior/async.ok.js +1 -1
  114. package/public/vendor/okjs/toolkit/components/ok-chart.ok.js +1 -1
  115. package/public/vendor/okjs/toolkit/components/ok-doc-viewer.ok.js +1 -1
  116. package/public/vendor/okjs/toolkit/components/ok-marked.ok.js +1 -1
  117. package/public/vendor/okjs/toolkit/components/ok-monaco.ok.js +1 -1
  118. package/public/vendor/okjs/toolkit/core/ok-layer-service.ok.js +1 -1
  119. package/public/vendor/okjs/toolkit/core/ok-layer.ok.js +1 -1
  120. package/public/vendor/okjs/toolkit/core/ok-overlay.ok.js +1 -1
  121. package/public/vendor/okjs/toolkit/core/ok-sandbox.ok.js +1 -1
  122. package/public/vendor/okjs/toolkit/core/transition.ok.js +1 -1
  123. package/public/vendor/okjs/toolkit/core/virtualized.ok.js +1 -1
  124. package/public/vendor/okjs/toolkit/devtools/ok-console-service.ok.js +1 -1
  125. package/public/vendor/okjs/toolkit/devtools/ok-console.ok.js +1 -1
  126. package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor-service.ok.js +1 -1
  127. package/public/vendor/okjs/toolkit/devtools/ok-fps-monitor.ok.js +1 -1
  128. package/public/vendor/okjs/toolkit/devtools/ok-inspector-service.ok.js +1 -1
  129. package/public/vendor/okjs/toolkit/devtools/ok-inspector.ok.js +1 -1
  130. package/public/vendor/okjs/toolkit/devtools/ok-js-tree.ok.js +1 -1
  131. package/public/vendor/okjs/toolkit/devtools/ok-timeline-service.ok.js +1 -1
  132. package/public/vendor/okjs/toolkit/devtools/ok-timeline.ok.js +1 -1
  133. package/public/vendor/okjs/toolkit/docs/doc-viewer.ok.js +1 -1
  134. package/public/vendor/okjs/toolkit/editor/ok-live-component.ok.js +1 -1
  135. package/public/vendor/okjs/toolkit/editor/ok-live-example.ok.js +1 -1
  136. package/public/vendor/okjs/toolkit/editor/ok-live-shell.ok.js +1 -1
  137. package/public/vendor/okjs/toolkit/elements/ok-dropdown.ok.js +1 -1
  138. package/public/vendor/okjs/toolkit/elements/ok-icon.ok.js +1 -1
  139. package/public/vendor/okjs/toolkit/elements/ok-select.ok.js +1 -1
  140. package/public/vendor/okjs/toolkit/elements/ok-table.ok.js +1 -1
  141. package/public/vendor/okjs/toolkit/errors/ok-crash-boundary.ok.js +1 -1
  142. package/public/vendor/okjs/toolkit/errors/ok-crash-info.ok.js +1 -1
  143. package/public/vendor/okjs/toolkit/i18n/i18n-editor-examples.ok.js +1 -1
  144. package/public/vendor/okjs/toolkit/i18n/i18n-editor.ok.js +1 -1
  145. package/public/vendor/okjs/toolkit/i18n/i18n-key-editor-tips.ok.js +1 -1
  146. package/public/vendor/okjs/toolkit/i18n/i18n-key-editor.ok.js +1 -1
  147. package/public/vendor/okjs/toolkit/i18n/i18n-service.ok.js +1 -1
  148. package/public/vendor/okjs/toolkit/i18n/ok-i18n.js +1 -1
  149. package/public/vendor/okjs/toolkit/interaction/ok-contextmenu.ok.js +1 -1
  150. package/public/vendor/okjs/toolkit/interaction/ok-dismiss-service.ok.js +1 -1
  151. package/public/vendor/okjs/toolkit/interaction/ok-draggable.ok.js +1 -1
  152. package/public/vendor/okjs/toolkit/interaction/ok-flyover-panel.ok.js +1 -1
  153. package/public/vendor/okjs/toolkit/interaction/ok-flyover.ok.js +1 -1
  154. package/public/vendor/okjs/toolkit/interaction/ok-highlight-service.ok.js +1 -1
  155. package/public/vendor/okjs/toolkit/interaction/ok-highlight.ok.js +1 -1
  156. package/public/vendor/okjs/toolkit/interaction/ok-hotkeys-service.ok.js +1 -1
  157. package/public/vendor/okjs/toolkit/interaction/ok-picker-service.ok.js +1 -1
  158. package/public/vendor/okjs/toolkit/interaction/ok-popout-service.ok.js +1 -1
  159. package/public/vendor/okjs/toolkit/interaction/ok-popout.ok.js +1 -1
  160. package/public/vendor/okjs/toolkit/interaction/ok-portal-service.ok.js +1 -1
  161. package/public/vendor/okjs/toolkit/interaction/ok-submenu.ok.js +1 -1
  162. package/public/vendor/okjs/toolkit/layout/ok-resizer.ok.js +1 -1
  163. package/public/vendor/okjs/toolkit/manifest.js +1 -1
  164. package/public/vendor/okjs/toolkit/modals/ok-modal-service.ok.js +1 -1
  165. package/public/vendor/okjs/toolkit/modals/ok-modal.ok.js +1 -1
  166. package/public/vendor/okjs/toolkit/modals/ok-toast-service.ok.js +1 -1
  167. package/public/vendor/okjs/toolkit/modals/ok-window.ok.js +1 -1
  168. package/public/vendor/okjs/toolkit/navigation/hash-router.ok.js +1 -1
  169. package/public/vendor/okjs/toolkit/navigation/history-router.ok.js +1 -1
  170. package/public/vendor/okjs/toolkit/navigation/router.ok.js +1 -1
  171. package/public/vendor/okjs/toolkit/sync/reactive-sync-service.ok.js +1 -1
  172. package/public/vendor/okjs/toolkit/sync/reactive-sync.js +1 -1
  173. package/public/vendor/okjs/toolkit/theming/blocks/ok-design-button.css.js +1 -1
  174. package/public/vendor/okjs/toolkit/theming/blocks/ok-design-input.css.js +1 -1
  175. package/public/vendor/okjs/toolkit/theming/ok-design-style.js +1 -1
  176. package/public/vendor/okjs/toolkit/theming/ok-design-vars.js +1 -1
  177. package/public/vendor/okjs/toolkit/theming/ok-design.ok.js +1 -1
  178. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-input.ok.js +1 -1
  179. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-service.ok.js +1 -1
  180. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-style.js +1 -1
  181. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-utils.js +1 -1
  182. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-variable.ok.js +1 -1
  183. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor-vm.js +1 -1
  184. package/public/vendor/okjs/toolkit/theming/ok-theme-editor/ok-theme-editor.ok.js +1 -1
  185. package/public/vendor/okjs/toolkit/theming/ok-theme.ok.js +1 -1
  186. package/public/view-models/type-query-vm.js +1 -1
  187. package/public/images/logo.png +0 -0
  188. package/public/images/logo.svg +0 -333
@@ -1 +1 @@
1
- function _0xdb45(_0x12b0a1,_0x2b26dc){_0x12b0a1=_0x12b0a1-0x10f;const _0x5a9b10=_0x5a9b();let _0xdb45d2=_0x5a9b10[_0x12b0a1];return _0xdb45d2;}const _0x271ee2=_0xdb45;function _0x5a9b(){const _0x32440d=['Could\x20not\x20resolve\x20the\x20linked\x20pipeline\x20yet','Open\x20linked\x20queue\x20worker','pipelineName','$watch','key','logsForRun','\x0a\x20\x20<if\x20:=\x22!fn\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22padding:18px;\x20border:1px\x20dashed\x20var(--okdb-app-border);\x20border-radius:10px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.6;\x22>\x0a\x20\x20\x20\x20\x20\x20Select\x20a\x20function\x20from\x20the\x20sidebar\x20to\x20inspect\x20or\x20edit\x20it.\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22fn\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:12px;\x20min-height:0;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:14px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20letter-spacing:.08em;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:10px;\x22>Function\x20overview</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20gap:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:18px;\x20font-weight:700;\x20color:var(--okdb-app-fg);\x22>{{\x20fn.name\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-top:4px;\x20font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20fn.scope\x20===\x20\x27global\x27\x20?\x20\x27Global\x20function\x27\x20:\x20\x27Environment\x20function\x27\x20}}\x20·\x20version\x20{{\x20fn.version\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:style=\x22fn.enabled\x20===\x20false\x20?\x20\x27font-size:11px;\x20color:var(--okdb-danger);\x27\x20:\x20\x27font-size:11px;\x20color:var(--okdb-success);\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20fn.enabled\x20===\x20false\x20?\x20\x27Disabled\x27\x20:\x20\x27Enabled\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20justify-content:flex-end;\x20gap:8px;\x20margin-top:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20style=\x22padding:6px\x2010px;\x20font-size:12px;\x22\x20@click=\x22triggerEdit()\x22>Edit</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20style=\x22padding:6px\x2010px;\x20font-size:12px;\x20border-color:#5c2a34;\x20color:#fda4af;\x22\x20@click=\x22removeSelected()\x22>Delete</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22fn.metadata?.description\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-top:10px;\x20color:#9bb2c3;\x20font-size:13px;\x20line-height:1.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20fn.metadata.description\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:grid;\x20grid-template-columns:repeat(2,\x20minmax(0,1fr));\x20gap:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Runtime</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x20font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>timeoutMs:\x20<strong>{{\x20fn.runtime?.timeoutMs\x20??\x20\x27—\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>memoryMb:\x20<strong>{{\x20fn.runtime?.memoryMb\x20??\x20\x27—\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>allowFetch:\x20<strong>{{\x20fn.runtime?.allowFetch\x20===\x20false\x20?\x20\x27false\x27\x20:\x20\x27true\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Metadata</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x20font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>createdAt:\x20<strong>{{\x20fn.metadata?.createdAt\x20??\x20\x27—\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>updatedAt:\x20<strong>{{\x20fn.metadata?.updatedAt\x20??\x20\x27—\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>hash:\x20<strong\x20style=\x22font-family:monospace;\x20font-size:11px;\x22>{{\x20fn.hash\x20??\x20\x27—\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22hasLinkedQueue\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22openLinkedPipeline()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:title=\x22linkedQueueTitle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22margin-top:4px;\x20padding:4px\x208px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2020%,\x20transparent);\x20border-radius:6px;\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x205%,\x20transparent);\x20color:var(--okdb-accent);\x20font-size:11px;\x20text-align:left;\x20cursor:pointer;\x20display:inline-flex;\x20align-items:center;\x20gap:4px;\x20width:fit-content;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>⇶\x20Queue:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>{{\x20linkedQueueRef.jobType\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22linkedQueueRef?.ownerEngine\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>·\x20Worker:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>{{\x20linkedQueueRef.ownerEngine\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>↗</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22hasLinkedPipeline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22openLinkedPipeline()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:title=\x22linkedPipelineTitle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22margin-top:4px;\x20padding:4px\x208px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2020%,\x20transparent);\x20border-radius:6px;\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x205%,\x20transparent);\x20color:var(--okdb-accent);\x20font-size:11px;\x20text-align:left;\x20cursor:pointer;\x20display:inline-flex;\x20align-items:center;\x20gap:4px;\x20width:fit-content;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>⚡\x20Pipeline:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>{{\x20linkedPipelineRef.pipelineName\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22linkedPipelineRef?.ownerEngine\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>·\x20Engine:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>{{\x20linkedPipelineRef.ownerEngine\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>↗</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!hasLinkedQueue\x20&&\x20!hasLinkedPipeline\x20&&\x20hasLinkedEngine\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22openLinkedPipeline()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:title=\x22linkedEngineTitle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22margin-top:4px;\x20padding:4px\x208px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2020%,\x20transparent);\x20border-radius:6px;\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x205%,\x20transparent);\x20color:var(--okdb-accent);\x20font-size:11px;\x20text-align:left;\x20cursor:pointer;\x20display:inline-flex;\x20align-items:center;\x20gap:4px;\x20width:fit-content;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>⚙\x20Engine:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>{{\x20linkedEngineRef.ownerEngine\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>↗</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:grid;\x20grid-template-columns:minmax(0,1.2fr)\x20minmax(280px,.8fr);\x20gap:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Implementation</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:0;\x20white-space:pre-wrap;\x20word-break:break-word;\x20color:var(--okdb-app-fg-muted);\x20font-size:12px;\x20line-height:1.55;\x22>{{\x20fn.script?.source\x20||\x20\x27—\x27\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x20min-height:0;\x20overflow:auto;\x20display:flex;\x20flex-direction:column;\x20gap:10px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x22>Runs</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>Total\x20persisted\x20runs:\x20<strong>{{\x20runs.length\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!activeRun\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.5;\x22>No\x20runs\x20recorded\x20for\x20this\x20function\x20yet.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22activeRun\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.55;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Selected\x20run\x20id:\x20<strong\x20style=\x22font-family:monospace;\x20font-size:11px;\x22>{{\x20activeRun.id\x20||\x20activeRun.runId\x20||\x20\x27—\x27\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.55;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Status:\x20<strong>{{\x20activeRun.status\x20||\x20(activeRun.error\x20?\x20\x27error\x27\x20:\x20\x27ok\x27)\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:0;\x20white-space:pre-wrap;\x20word-break:break-word;\x20color:var(--okdb-app-fg-muted);\x20font-size:11px;\x20line-height:1.5;\x20max-height:180px;\x20overflow:auto;\x22>{{\x20formatJson(activeRun.result\x20??\x20activeRun.error\x20??\x20activeRun)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22activeRunLogs.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x22>Selected\x20run\x20log</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22activeRunLogs\x22\x20let:item=\x22entry\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:6px\x208px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:8px;\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20font-size:11px;\x20line-height:1.45;\x22>{{\x20entry.msg\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x20\x20','config','store','Open\x20linked\x20pipeline','targetSection','metadata','251686KNFRUK','8edYnXp','length','info','Open\x20linked\x20engine','filter','\x0a\x20\x20•\x20','5001705KuzoQT','shared','confirm','371xYPBcn','\x0a\x0aDeleting\x20it\x20will\x20break\x20','json','Function\x20deleted','linkedPipelineLookup','selected','map','Open\x20pipeline\x20','those\x20pipelines','envName','linkedPipelineRef','$attr','linkedEngineRef','runs','push','jobType','10MzCvVa','Open\x20queue\x20workers\x20for\x20','\x20(worker\x20','owner_engine','activeRun','1370039cEXDRS','toast','3oDZlFj','8673350lTdWZi','functions','name','ownerEngine','Delete\x20function\x20\x22','latestRun','that\x20pipeline','Open\x20engine\x20','onEdit','stores','pipeline','/functions','_linkedPipelineRequestId','runId','$ok','1091516qHoKBi','linkedQueueRef','\x20(engine\x20','API','Failed\x20to\x20delete\x20function','$router','13932248bdrvkt','sourceType','selectedName','refreshLinkedPipeline','message','62034agCdWQ','stringify','/engines','queue','slice'];_0x5a9b=function(){return _0x32440d;};return _0x5a9b();}(function(_0x3038c2,_0x13ed12){const _0x1a1e0b=_0xdb45,_0x38cc13=_0x3038c2();while(!![]){try{const _0x2f184f=-parseInt(_0x1a1e0b(0x132))/0x1*(-parseInt(_0x1a1e0b(0x131))/0x2)+parseInt(_0x1a1e0b(0x152))/0x3*(-parseInt(_0x1a1e0b(0x115))/0x4)+-parseInt(_0x1a1e0b(0x153))/0x5+-parseInt(_0x1a1e0b(0x120))/0x6*(parseInt(_0x1a1e0b(0x13b))/0x7)+parseInt(_0x1a1e0b(0x11b))/0x8+-parseInt(_0x1a1e0b(0x138))/0x9*(-parseInt(_0x1a1e0b(0x14b))/0xa)+parseInt(_0x1a1e0b(0x150))/0xb;if(_0x2f184f===_0x13ed12)break;else _0x38cc13['push'](_0x38cc13['shift']());}catch(_0x16213a){_0x38cc13['push'](_0x38cc13['shift']());}}}(_0x5a9b,0xd525d));import{openLinkedPipelineRoute as _0x5f1fa4,resolveLinkedPipeline as _0x407c24}from'../../engines/engine-ui-utils.js';export default{'tag':'function-detail','attr':{'onEdit':{}},'context':_0x20ede1=>({'linkedPipelineLookup':null,'_linkedPipelineRequestId':0x0,get 'store'(){const _0x4c1124=_0xdb45;return _0x20ede1[_0x4c1124(0x114)]['stores']['functions'];},get 'fn'(){return this['store']['selected'];},get 'runs'(){const _0x3019e7=_0xdb45;return this[_0x3019e7(0x12d)][_0x3019e7(0x148)]||[];},get 'latestRun'(){const _0x3eeef8=_0xdb45;return this['store'][_0x3eeef8(0x158)];},get 'activeRun'(){const _0x4a9d27=_0xdb45;return this[_0x4a9d27(0x12d)]['activeRun'];},get 'activeRunLogs'(){const _0x557ede=_0xdb45;return this[_0x557ede(0x12d)][_0x557ede(0x12a)](this[_0x557ede(0x14f)]?.['id']||this[_0x557ede(0x14f)]?.[_0x557ede(0x113)])[_0x557ede(0x124)](-0x5);},get 'selectedName'(){const _0x1d9c12=_0xdb45;return this['store'][_0x1d9c12(0x11d)];},get 'linkedPipelineRef'(){const _0x4bca86=_0xdb45;if(_0x4bca86(0x123)===this['linkedPipelineLookup']?.[_0x4bca86(0x12f)])return null;const _0x39e26c=this['fn']?.[_0x4bca86(0x130)]??{},_0x23e239=_0x39e26c['pipeline']??this[_0x4bca86(0x13f)]?.[_0x4bca86(0x127)]??null;return _0x23e239?{'envName':this['linkedPipelineLookup']?.['envName']??this['store']['envName']??null,'pipelineName':_0x23e239,'ownerEngine':_0x39e26c[_0x4bca86(0x14e)]??this['linkedPipelineLookup']?.[_0x4bca86(0x156)]??null,'targetSection':this['linkedPipelineLookup']?.[_0x4bca86(0x12f)]??'db'}:null;},get 'hasLinkedPipeline'(){const _0x14b72a=_0xdb45;return!!this[_0x14b72a(0x145)]?.[_0x14b72a(0x127)];},get 'linkedEngineRef'(){const _0x4e9355=_0xdb45;if(_0x4e9355(0x123)===this[_0x4e9355(0x13f)]?.[_0x4e9355(0x12f)])return null;const _0x964360=this[_0x4e9355(0x145)];if(_0x964360?.['pipelineName'])return _0x964360;const _0x32dfdf=this['fn']?.['metadata']?.[_0x4e9355(0x14e)]??this[_0x4e9355(0x13f)]?.[_0x4e9355(0x156)]??null;return _0x32dfdf?{'envName':this[_0x4e9355(0x13f)]?.[_0x4e9355(0x144)]??this[_0x4e9355(0x12d)][_0x4e9355(0x144)]??null,'pipelineName':null,'ownerEngine':_0x32dfdf,'sourceType':this[_0x4e9355(0x13f)]?.[_0x4e9355(0x11c)]??null,'targetSection':this['linkedPipelineLookup']?.[_0x4e9355(0x12f)]??'db'}:null;},get 'linkedQueueRef'(){const _0x1d34c9=_0xdb45,_0x4d13ba=this[_0x1d34c9(0x13f)];return _0x1d34c9(0x123)===_0x4d13ba?.[_0x1d34c9(0x12f)]&&_0x4d13ba?.['jobType']?{'envName':_0x4d13ba['envName']??this[_0x1d34c9(0x12d)][_0x1d34c9(0x144)]??null,'pipelineName':_0x4d13ba[_0x1d34c9(0x127)]??this['fn']?.[_0x1d34c9(0x130)]?.[_0x1d34c9(0x110)]??null,'ownerEngine':_0x4d13ba[_0x1d34c9(0x156)]??this['fn']?.[_0x1d34c9(0x130)]?.[_0x1d34c9(0x14e)]??null,'jobType':_0x4d13ba['jobType'],'targetSection':_0x1d34c9(0x123)}:null;},get 'hasLinkedQueue'(){const _0x4b22ad=_0xdb45;return!!this[_0x4b22ad(0x116)]?.['jobType'];},get 'hasLinkedEngine'(){return!!this['linkedEngineRef']?.['ownerEngine'];},'formatJson'(_0x1d4cce){const _0x3008e3=_0xdb45;try{return JSON[_0x3008e3(0x121)](_0x1d4cce,null,0x2);}catch{return String(_0x1d4cce??'');}},async 'removeSelected'(){const _0x3a4873=_0xdb45;if(!this[_0x3a4873(0x12d)]['selectedName'])return;const _0xf48c31=this[_0x3a4873(0x12d)][_0x3a4873(0x11d)],_0x48b1e8=this['store'][_0x3a4873(0x144)],_0x559e5c=this['fn']?.[_0x3a4873(0x130)],_0x3559e9=_0x559e5c?.[_0x3a4873(0x14e)]||_0x559e5c?.[_0x3a4873(0x110)];let _0x3e1fbb=[];if(_0x48b1e8)try{const _0x138dea=await fetch(__ENV__[_0x3a4873(0x118)]+'/env/'+encodeURIComponent(_0x48b1e8)+_0x3a4873(0x122));if(_0x138dea['ok']){const _0x200321=await _0x138dea[_0x3a4873(0x13d)]();_0x3e1fbb=(_0x200321?.['result']??_0x200321??[])[_0x3a4873(0x136)](_0x58f5df=>_0x58f5df[_0x3a4873(0x12c)]?.['handler']?.[_0x3a4873(0x155)]===_0xf48c31)[_0x3a4873(0x141)](_0x41dc9e=>_0x41dc9e[_0x3a4873(0x155)]||_0x41dc9e[_0x3a4873(0x129)]);}}catch{}let _0x35dabb=_0x3a4873(0x157)+_0xf48c31+'\x22?';if(_0x3559e9||_0x3e1fbb['length']>0x0){const _0x102534=[...new Set([..._0x3559e9?[_0x3559e9]:[],..._0x3e1fbb])];_0x35dabb+='\x0a\x0a⚠\x20This\x20function\x20is\x20used\x20by\x20'+_0x102534['length']+'\x20engine(s):\x0a\x20\x20•\x20'+_0x102534['join'](_0x3a4873(0x137))+_0x3a4873(0x13c)+(0x1===_0x102534[_0x3a4873(0x133)]?_0x3a4873(0x159):_0x3a4873(0x143))+'.';}const _0xf16de4=globalThis[_0x3a4873(0x13a)]?.(_0x35dabb);if(_0xf16de4)try{await this[_0x3a4873(0x12d)]['remove'](_0xf48c31),_0x20ede1['$vars'][_0x3a4873(0x11a)]?.[_0x3a4873(0x149)]?.(_0x3a4873(0x111)),_0x20ede1['$ok']['shared']?.[_0x3a4873(0x151)]?.['success']?.(_0x3a4873(0x13e));}catch(_0x24277f){_0x20ede1['$ok'][_0x3a4873(0x139)]?.[_0x3a4873(0x151)]?.['error']?.(_0x24277f?.[_0x3a4873(0x11f)]||_0x3a4873(0x119));}},'triggerEdit'(){const _0x16d5a7=_0xdb45;_0x20ede1[_0x16d5a7(0x146)][_0x16d5a7(0x15b)]?.();},get 'linkedPipelineTitle'(){const _0x22204e=_0xdb45,_0x539488=this[_0x22204e(0x145)];return _0x539488?.[_0x22204e(0x127)]?_0x539488['ownerEngine']?_0x22204e(0x142)+_0x539488[_0x22204e(0x127)]+_0x22204e(0x117)+_0x539488['ownerEngine']+')':'Open\x20pipeline\x20'+_0x539488[_0x22204e(0x127)]:_0x22204e(0x12e);},get 'linkedEngineTitle'(){const _0x49937f=_0xdb45,_0xeaeb4=this[_0x49937f(0x147)];return _0xeaeb4?.[_0x49937f(0x156)]?_0xeaeb4[_0x49937f(0x11c)]?_0x49937f(0x15a)+_0xeaeb4[_0x49937f(0x156)]+'\x20for\x20type\x20'+_0xeaeb4['sourceType']:'Open\x20engine\x20'+_0xeaeb4['ownerEngine']:_0x49937f(0x135);},get 'linkedQueueTitle'(){const _0x2077f7=_0xdb45,_0x537c16=this[_0x2077f7(0x116)];return _0x537c16?.['jobType']?_0x537c16[_0x2077f7(0x156)]?_0x2077f7(0x14c)+_0x537c16[_0x2077f7(0x14a)]+_0x2077f7(0x14d)+_0x537c16[_0x2077f7(0x156)]+')':_0x2077f7(0x14c)+_0x537c16[_0x2077f7(0x14a)]:_0x2077f7(0x126);},async 'refreshLinkedPipeline'(){const _0x929136=_0xdb45,_0x319dd8=this['fn']?.['name']??this[_0x929136(0x11d)]??null,_0x440bc5=this['fn']?.[_0x929136(0x130)]??{};if(!this['store'][_0x929136(0x144)]||!_0x319dd8)return void(this[_0x929136(0x13f)]=null);const _0x13501=++this[_0x929136(0x112)],_0x41daeb=await _0x407c24(_0x20ede1,{'envName':this[_0x929136(0x12d)][_0x929136(0x144)],'pipelineName':_0x440bc5[_0x929136(0x110)]??null,'ownerEngine':_0x440bc5[_0x929136(0x14e)]??null,'functionName':_0x319dd8});_0x13501===this['_linkedPipelineRequestId']&&(this[_0x929136(0x13f)]=_0x41daeb);},async 'openLinkedPipeline'(){const _0x416e1d=_0xdb45,_0x4daff0=this['linkedQueueRef']??this['linkedPipelineRef']??this[_0x416e1d(0x147)];(_0x4daff0?.['ownerEngine']||_0x4daff0?.[_0x416e1d(0x127)]||_0x4daff0?.['jobType'])&&(await _0x5f1fa4(_0x20ede1,{'envName':_0x4daff0[_0x416e1d(0x144)]??this['store'][_0x416e1d(0x144)],'pipelineName':_0x4daff0[_0x416e1d(0x127)]??null,'ownerEngine':_0x4daff0[_0x416e1d(0x156)]??null,'functionName':this['fn']?.[_0x416e1d(0x155)]??this[_0x416e1d(0x11d)]??null})||_0x20ede1[_0x416e1d(0x114)]['shared']?.[_0x416e1d(0x151)]?.[_0x416e1d(0x134)]?.(_0x416e1d(0x125)));}}),async 'init'(_0x47cc9a){const _0x3dda6a=_0xdb45;await this['refreshLinkedPipeline'](),_0x47cc9a[_0x3dda6a(0x128)](()=>[_0x47cc9a[_0x3dda6a(0x114)]['stores']['functions'][_0x3dda6a(0x144)],_0x47cc9a[_0x3dda6a(0x114)][_0x3dda6a(0x10f)][_0x3dda6a(0x154)][_0x3dda6a(0x11d)],_0x47cc9a['$ok'][_0x3dda6a(0x10f)]['functions'][_0x3dda6a(0x140)]?.[_0x3dda6a(0x130)]?.['pipeline'],_0x47cc9a[_0x3dda6a(0x114)]['stores']['functions'][_0x3dda6a(0x140)]?.[_0x3dda6a(0x130)]?.[_0x3dda6a(0x14e)]]['join']('||'),()=>this[_0x3dda6a(0x11e)]());},'template':_0x271ee2(0x12b)};
1
+ function _0x243d(_0x414f56,_0x37e6f9){_0x414f56=_0x414f56-0x82;const _0x2e2752=_0x2e27();let _0x243d6c=_0x2e2752[_0x414f56];return _0x243d6c;}const _0x45b6a0=_0x243d;function _0x2e27(){const _0x52a50b=['\x0a\x0a⚠\x20This\x20function\x20is\x20used\x20by\x20','$vars','join','linkedPipelineRef','1555936ypufiA','functions','filter','\x0a\x0aDeleting\x20it\x20will\x20break\x20','2648376vsMCLi','pipeline','queue','targetSection','name','latestRun','18340806ukOPtj','5BfEhhT','Open\x20queue\x20workers\x20for\x20','7izdmaa','Function\x20deleted','handler','store','message','config','owner_engine','stores','\x20engine(s):\x0a\x20\x20•\x20','$attr','6cRuIhW','logsForRun','json','selected','Open\x20linked\x20pipeline','activeRun','Open\x20linked\x20queue\x20worker','stringify','metadata','\x0a\x20\x20<if\x20:=\x22!fn\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22padding:18px;\x20border:1px\x20dashed\x20var(--okdb-app-border);\x20border-radius:10px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.6;\x22>\x0a\x20\x20\x20\x20\x20\x20Select\x20a\x20function\x20from\x20the\x20sidebar\x20to\x20inspect\x20or\x20edit\x20it.\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<if\x20:=\x22fn\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:12px;\x20min-height:0;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:14px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20letter-spacing:.08em;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:10px;\x22>Function\x20overview</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20gap:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:18px;\x20font-weight:700;\x20color:var(--okdb-app-fg);\x22>{{\x20fn.name\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-top:4px;\x20font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20fn.scope\x20===\x20\x27global\x27\x20?\x20\x27Global\x20function\x27\x20:\x20\x27Environment\x20function\x27\x20}}\x20·\x20version\x20{{\x20fn.version\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20:style=\x22fn.enabled\x20===\x20false\x20?\x20\x27font-size:11px;\x20color:var(--okdb-danger);\x27\x20:\x20\x27font-size:11px;\x20color:var(--okdb-success);\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20fn.enabled\x20===\x20false\x20?\x20\x27Disabled\x27\x20:\x20\x27Enabled\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20justify-content:flex-end;\x20gap:8px;\x20margin-top:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20style=\x22padding:6px\x2010px;\x20font-size:12px;\x22\x20@click=\x22triggerEdit()\x22>Edit</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20style=\x22padding:6px\x2010px;\x20font-size:12px;\x20border-color:#5c2a34;\x20color:#fda4af;\x22\x20@click=\x22removeSelected()\x22>Delete</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22fn.metadata?.description\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22margin-top:10px;\x20color:#9bb2c3;\x20font-size:13px;\x20line-height:1.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20fn.metadata.description\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:grid;\x20grid-template-columns:repeat(2,\x20minmax(0,1fr));\x20gap:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Runtime</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x20font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>timeoutMs:\x20<strong>{{\x20fn.runtime?.timeoutMs\x20??\x20\x27—\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>memoryMb:\x20<strong>{{\x20fn.runtime?.memoryMb\x20??\x20\x27—\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>allowFetch:\x20<strong>{{\x20fn.runtime?.allowFetch\x20===\x20false\x20?\x20\x27false\x27\x20:\x20\x27true\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Metadata</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x20font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>createdAt:\x20<strong>{{\x20fn.metadata?.createdAt\x20??\x20\x27—\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>updatedAt:\x20<strong>{{\x20fn.metadata?.updatedAt\x20??\x20\x27—\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>hash:\x20<strong\x20style=\x22font-family:monospace;\x20font-size:11px;\x22>{{\x20fn.hash\x20??\x20\x27—\x27\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22hasLinkedQueue\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22openLinkedPipeline()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:title=\x22linkedQueueTitle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22margin-top:4px;\x20padding:4px\x208px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2020%,\x20transparent);\x20border-radius:6px;\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x205%,\x20transparent);\x20color:var(--okdb-accent);\x20font-size:11px;\x20text-align:left;\x20cursor:pointer;\x20display:inline-flex;\x20align-items:center;\x20gap:4px;\x20width:fit-content;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>⇶\x20Queue:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>{{\x20linkedQueueRef.jobType\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22linkedQueueRef?.ownerEngine\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>·\x20Worker:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>{{\x20linkedQueueRef.ownerEngine\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>↗</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22hasLinkedPipeline\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22openLinkedPipeline()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:title=\x22linkedPipelineTitle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22margin-top:4px;\x20padding:4px\x208px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2020%,\x20transparent);\x20border-radius:6px;\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x205%,\x20transparent);\x20color:var(--okdb-accent);\x20font-size:11px;\x20text-align:left;\x20cursor:pointer;\x20display:inline-flex;\x20align-items:center;\x20gap:4px;\x20width:fit-content;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>⚡\x20Pipeline:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>{{\x20linkedPipelineRef.pipelineName\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22linkedPipelineRef?.ownerEngine\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>·\x20Engine:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>{{\x20linkedPipelineRef.ownerEngine\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>↗</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!hasLinkedQueue\x20&&\x20!hasLinkedPipeline\x20&&\x20hasLinkedEngine\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22openLinkedPipeline()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:title=\x22linkedEngineTitle\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20style=\x22margin-top:4px;\x20padding:4px\x208px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2020%,\x20transparent);\x20border-radius:6px;\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x205%,\x20transparent);\x20color:var(--okdb-accent);\x20font-size:11px;\x20text-align:left;\x20cursor:pointer;\x20display:inline-flex;\x20align-items:center;\x20gap:4px;\x20width:fit-content;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>⚙\x20Engine:</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong>{{\x20linkedEngineRef.ownerEngine\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>↗</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:grid;\x20grid-template-columns:minmax(0,1.2fr)\x20minmax(280px,.8fr);\x20gap:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Implementation</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:0;\x20white-space:pre-wrap;\x20word-break:break-word;\x20color:var(--okdb-app-fg-muted);\x20font-size:12px;\x20line-height:1.55;\x22>{{\x20fn.script?.source\x20||\x20\x27—\x27\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x20min-height:0;\x20overflow:auto;\x20display:flex;\x20flex-direction:column;\x20gap:10px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x22>Runs</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>Total\x20persisted\x20runs:\x20<strong>{{\x20runs.length\x20}}</strong></div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22!activeRun\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.5;\x22>No\x20runs\x20recorded\x20for\x20this\x20function\x20yet.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22activeRun\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.55;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Selected\x20run\x20id:\x20<strong\x20style=\x22font-family:monospace;\x20font-size:11px;\x22>{{\x20activeRun.id\x20||\x20activeRun.runId\x20||\x20\x27—\x27\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.55;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Status:\x20<strong>{{\x20activeRun.status\x20||\x20(activeRun.error\x20?\x20\x27error\x27\x20:\x20\x27ok\x27)\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:0;\x20white-space:pre-wrap;\x20word-break:break-word;\x20color:var(--okdb-app-fg-muted);\x20font-size:11px;\x20line-height:1.5;\x20max-height:180px;\x20overflow:auto;\x22>{{\x20formatJson(activeRun.result\x20??\x20activeRun.error\x20??\x20activeRun)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22activeRunLogs.length\x20>\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x22>Selected\x20run\x20log</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22activeRunLogs\x22\x20let:item=\x22entry\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:6px\x208px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:8px;\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20font-size:11px;\x20line-height:1.45;\x22>{{\x20entry.msg\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x20\x20','refreshLinkedPipeline','jobType','\x0a\x20\x20•\x20','selectedName','toast','\x20for\x20type\x20','\x20(worker\x20','linkedQueueRef','150Psuorq','runId','linkedEngineRef','envName','map','ownerEngine','function-detail','/functions','runs','\x20(engine\x20','323722Kcscam','length','Open\x20engine\x20','sourceType','key','$router','that\x20pipeline','554004iXNYcA','info','result','474462oyLZJS','remove','1892296zgEKWA','$watch','onEdit','/engines','Delete\x20function\x20\x22','pipelineName','Open\x20pipeline\x20','linkedPipelineLookup','push','$ok'];_0x2e27=function(){return _0x52a50b;};return _0x2e27();}(function(_0x1e7794,_0x54b78c){const _0x2eddda=_0x243d,_0x2f3956=_0x1e7794();while(!![]){try{const _0x30283a=parseInt(_0x2eddda(0xa2))/0x1+-parseInt(_0x2eddda(0x9b))/0x2*(parseInt(_0x2eddda(0xcc))/0x3)+parseInt(_0x2eddda(0xa7))/0x4+parseInt(_0x2eddda(0xc0))/0x5*(parseInt(_0x2eddda(0xb9))/0x6)+-parseInt(_0x2eddda(0xc2))/0x7*(-parseInt(_0x2eddda(0xb5))/0x8)+-parseInt(_0x2eddda(0xa5))/0x9*(-parseInt(_0x2eddda(0x91))/0xa)+-parseInt(_0x2eddda(0xbf))/0xb;if(_0x30283a===_0x54b78c)break;else _0x2f3956['push'](_0x2f3956['shift']());}catch(_0x26f9a3){_0x2f3956['push'](_0x2f3956['shift']());}}}(_0x2e27,0x70f4c));import{openLinkedPipelineRoute as _0x36ed9a,resolveLinkedPipeline as _0x50ff0f}from'../../engines/engine-ui-utils.js';export default{'tag':_0x45b6a0(0x97),'attr':{'onEdit':{}},'context':_0x34a60a=>({'linkedPipelineLookup':null,'_linkedPipelineRequestId':0x0,get 'store'(){const _0x3b91c2=_0x45b6a0;return _0x34a60a['$ok'][_0x3b91c2(0xc9)][_0x3b91c2(0xb6)];},get 'fn'(){const _0x512a21=_0x45b6a0;return this[_0x512a21(0xc5)][_0x512a21(0x82)];},get 'runs'(){const _0x1d8781=_0x45b6a0;return this[_0x1d8781(0xc5)][_0x1d8781(0x99)]||[];},get 'latestRun'(){const _0x56aae7=_0x45b6a0;return this[_0x56aae7(0xc5)][_0x56aae7(0xbe)];},get 'activeRun'(){const _0x45bcb2=_0x45b6a0;return this[_0x45bcb2(0xc5)][_0x45bcb2(0x84)];},get 'activeRunLogs'(){const _0x19f19e=_0x45b6a0;return this['store'][_0x19f19e(0xcd)](this[_0x19f19e(0x84)]?.['id']||this[_0x19f19e(0x84)]?.[_0x19f19e(0x92)])['slice'](-0x5);},get 'selectedName'(){const _0x59f0d0=_0x45b6a0;return this['store'][_0x59f0d0(0x8c)];},get 'linkedPipelineRef'(){const _0x4a1697=_0x45b6a0;if(_0x4a1697(0xbb)===this['linkedPipelineLookup']?.[_0x4a1697(0xbc)])return null;const _0x3d156b=this['fn']?.['metadata']??{},_0x3f4031=_0x3d156b[_0x4a1697(0xba)]??this[_0x4a1697(0xae)]?.[_0x4a1697(0xac)]??null;return _0x3f4031?{'envName':this[_0x4a1697(0xae)]?.[_0x4a1697(0x94)]??this[_0x4a1697(0xc5)][_0x4a1697(0x94)]??null,'pipelineName':_0x3f4031,'ownerEngine':_0x3d156b['owner_engine']??this['linkedPipelineLookup']?.[_0x4a1697(0x96)]??null,'targetSection':this['linkedPipelineLookup']?.['targetSection']??'db'}:null;},get 'hasLinkedPipeline'(){const _0x304c59=_0x45b6a0;return!!this[_0x304c59(0xb4)]?.[_0x304c59(0xac)];},get 'linkedEngineRef'(){const _0x28a5f8=_0x45b6a0;if('queue'===this[_0x28a5f8(0xae)]?.['targetSection'])return null;const _0x3d3269=this[_0x28a5f8(0xb4)];if(_0x3d3269?.['pipelineName'])return _0x3d3269;const _0x5e6643=this['fn']?.['metadata']?.['owner_engine']??this[_0x28a5f8(0xae)]?.['ownerEngine']??null;return _0x5e6643?{'envName':this[_0x28a5f8(0xae)]?.[_0x28a5f8(0x94)]??this[_0x28a5f8(0xc5)]['envName']??null,'pipelineName':null,'ownerEngine':_0x5e6643,'sourceType':this[_0x28a5f8(0xae)]?.[_0x28a5f8(0x9e)]??null,'targetSection':this[_0x28a5f8(0xae)]?.['targetSection']??'db'}:null;},get 'linkedQueueRef'(){const _0x59f8a2=_0x45b6a0,_0x1c859f=this['linkedPipelineLookup'];return'queue'===_0x1c859f?.[_0x59f8a2(0xbc)]&&_0x1c859f?.[_0x59f8a2(0x8a)]?{'envName':_0x1c859f[_0x59f8a2(0x94)]??this[_0x59f8a2(0xc5)]['envName']??null,'pipelineName':_0x1c859f[_0x59f8a2(0xac)]??this['fn']?.[_0x59f8a2(0x87)]?.[_0x59f8a2(0xba)]??null,'ownerEngine':_0x1c859f['ownerEngine']??this['fn']?.[_0x59f8a2(0x87)]?.[_0x59f8a2(0xc8)]??null,'jobType':_0x1c859f['jobType'],'targetSection':_0x59f8a2(0xbb)}:null;},get 'hasLinkedQueue'(){const _0xa90e1=_0x45b6a0;return!!this[_0xa90e1(0x90)]?.[_0xa90e1(0x8a)];},get 'hasLinkedEngine'(){const _0xcef04=_0x45b6a0;return!!this[_0xcef04(0x93)]?.['ownerEngine'];},'formatJson'(_0x4a2908){const _0x2fff5c=_0x45b6a0;try{return JSON[_0x2fff5c(0x86)](_0x4a2908,null,0x2);}catch{return String(_0x4a2908??'');}},async 'removeSelected'(){const _0x20068d=_0x45b6a0;if(!this[_0x20068d(0xc5)]['selectedName'])return;const _0x4466da=this['store'][_0x20068d(0x8c)],_0x27eb9c=this[_0x20068d(0xc5)][_0x20068d(0x94)],_0x4296c4=this['fn']?.[_0x20068d(0x87)],_0x33b5e7=_0x4296c4?.['owner_engine']||_0x4296c4?.[_0x20068d(0xba)];let _0x2baf22=[];if(_0x27eb9c)try{const _0x2f5242=await fetch(__ENV__['API']+'/env/'+encodeURIComponent(_0x27eb9c)+_0x20068d(0xaa));if(_0x2f5242['ok']){const _0x248638=await _0x2f5242[_0x20068d(0xce)]();_0x2baf22=(_0x248638?.[_0x20068d(0xa4)]??_0x248638??[])[_0x20068d(0xb7)](_0x4046ca=>_0x4046ca[_0x20068d(0xc7)]?.[_0x20068d(0xc4)]?.[_0x20068d(0xbd)]===_0x4466da)[_0x20068d(0x95)](_0x17a8f7=>_0x17a8f7[_0x20068d(0xbd)]||_0x17a8f7[_0x20068d(0x9f)]);}}catch{}let _0x3ceaab=_0x20068d(0xab)+_0x4466da+'\x22?';if(_0x33b5e7||_0x2baf22['length']>0x0){const _0x3c0657=[...new Set([..._0x33b5e7?[_0x33b5e7]:[],..._0x2baf22])];_0x3ceaab+=_0x20068d(0xb1)+_0x3c0657[_0x20068d(0x9c)]+_0x20068d(0xca)+_0x3c0657[_0x20068d(0xb3)](_0x20068d(0x8b))+_0x20068d(0xb8)+(0x1===_0x3c0657[_0x20068d(0x9c)]?_0x20068d(0xa1):'those\x20pipelines')+'.';}const _0x1d1562=globalThis['confirm']?.(_0x3ceaab);if(_0x1d1562)try{await this[_0x20068d(0xc5)][_0x20068d(0xa6)](_0x4466da),_0x34a60a[_0x20068d(0xb2)][_0x20068d(0xa0)]?.[_0x20068d(0xaf)]?.(_0x20068d(0x98)),_0x34a60a[_0x20068d(0xb0)]['shared']?.['toast']?.['success']?.(_0x20068d(0xc3));}catch(_0x456478){_0x34a60a['$ok']['shared']?.[_0x20068d(0x8d)]?.['error']?.(_0x456478?.[_0x20068d(0xc6)]||'Failed\x20to\x20delete\x20function');}},'triggerEdit'(){const _0x56972b=_0x45b6a0;_0x34a60a[_0x56972b(0xcb)][_0x56972b(0xa9)]?.();},get 'linkedPipelineTitle'(){const _0x3da526=_0x45b6a0,_0x4758fc=this['linkedPipelineRef'];return _0x4758fc?.['pipelineName']?_0x4758fc[_0x3da526(0x96)]?'Open\x20pipeline\x20'+_0x4758fc[_0x3da526(0xac)]+_0x3da526(0x9a)+_0x4758fc[_0x3da526(0x96)]+')':_0x3da526(0xad)+_0x4758fc['pipelineName']:_0x3da526(0x83);},get 'linkedEngineTitle'(){const _0x11cca2=_0x45b6a0,_0x142a6e=this['linkedEngineRef'];return _0x142a6e?.[_0x11cca2(0x96)]?_0x142a6e['sourceType']?_0x11cca2(0x9d)+_0x142a6e[_0x11cca2(0x96)]+_0x11cca2(0x8e)+_0x142a6e[_0x11cca2(0x9e)]:_0x11cca2(0x9d)+_0x142a6e[_0x11cca2(0x96)]:'Open\x20linked\x20engine';},get 'linkedQueueTitle'(){const _0x437abe=_0x45b6a0,_0x1ad700=this[_0x437abe(0x90)];return _0x1ad700?.[_0x437abe(0x8a)]?_0x1ad700[_0x437abe(0x96)]?_0x437abe(0xc1)+_0x1ad700[_0x437abe(0x8a)]+_0x437abe(0x8f)+_0x1ad700['ownerEngine']+')':_0x437abe(0xc1)+_0x1ad700['jobType']:_0x437abe(0x85);},async 'refreshLinkedPipeline'(){const _0x35f7cd=_0x45b6a0,_0x944313=this['fn']?.[_0x35f7cd(0xbd)]??this[_0x35f7cd(0x8c)]??null,_0x3c953e=this['fn']?.[_0x35f7cd(0x87)]??{};if(!this[_0x35f7cd(0xc5)]['envName']||!_0x944313)return void(this[_0x35f7cd(0xae)]=null);const _0x3f3717=++this['_linkedPipelineRequestId'],_0x55c3bf=await _0x50ff0f(_0x34a60a,{'envName':this[_0x35f7cd(0xc5)][_0x35f7cd(0x94)],'pipelineName':_0x3c953e[_0x35f7cd(0xba)]??null,'ownerEngine':_0x3c953e['owner_engine']??null,'functionName':_0x944313});_0x3f3717===this['_linkedPipelineRequestId']&&(this['linkedPipelineLookup']=_0x55c3bf);},async 'openLinkedPipeline'(){const _0x3bdce9=_0x45b6a0,_0x26520f=this[_0x3bdce9(0x90)]??this['linkedPipelineRef']??this[_0x3bdce9(0x93)];(_0x26520f?.['ownerEngine']||_0x26520f?.[_0x3bdce9(0xac)]||_0x26520f?.['jobType'])&&(await _0x36ed9a(_0x34a60a,{'envName':_0x26520f[_0x3bdce9(0x94)]??this[_0x3bdce9(0xc5)][_0x3bdce9(0x94)],'pipelineName':_0x26520f[_0x3bdce9(0xac)]??null,'ownerEngine':_0x26520f[_0x3bdce9(0x96)]??null,'functionName':this['fn']?.[_0x3bdce9(0xbd)]??this[_0x3bdce9(0x8c)]??null})||_0x34a60a[_0x3bdce9(0xb0)]['shared']?.[_0x3bdce9(0x8d)]?.[_0x3bdce9(0xa3)]?.('Could\x20not\x20resolve\x20the\x20linked\x20pipeline\x20yet'));}}),async 'init'(_0x4f397c){const _0x40f343=_0x45b6a0;await this[_0x40f343(0x89)](),_0x4f397c[_0x40f343(0xa8)](()=>[_0x4f397c[_0x40f343(0xb0)][_0x40f343(0xc9)][_0x40f343(0xb6)][_0x40f343(0x94)],_0x4f397c[_0x40f343(0xb0)][_0x40f343(0xc9)][_0x40f343(0xb6)]['selectedName'],_0x4f397c[_0x40f343(0xb0)][_0x40f343(0xc9)][_0x40f343(0xb6)]['selected']?.[_0x40f343(0x87)]?.[_0x40f343(0xba)],_0x4f397c[_0x40f343(0xb0)]['stores'][_0x40f343(0xb6)]['selected']?.[_0x40f343(0x87)]?.[_0x40f343(0xc8)]][_0x40f343(0xb3)]('||'),()=>this[_0x40f343(0x89)]());},'template':_0x45b6a0(0x88)};
@@ -1 +1 @@
1
- const _0x439fd1=_0x4818;function _0x4765(){const _0x153005=['slice','toTimeString','stringify','object','toLowerCase','fromEntries','title','getMilliseconds','empty','3675528Bgoagx','No\x20logs\x20for\x20this\x20execution\x20yet.','280875yWtESs','message','365688tatoRY','9uAXgYf','entries','$attr','string','keys','filter','324NnQebt','isArray','398236TnFPIo','msg','6370QAMCbo','Live\x20log','301291GOYcIt','content','302320JuQgwe','\x0a\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20min-height:0;\x20height:100%;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x20overflow:hidden;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22padding:10px\x2012px;\x20border-bottom:1px\x20solid\x20var(--okdb-app-border);\x20font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20letter-spacing:.08em;\x22>{{\x20titleText\x20}}</div>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:8px;\x20padding:12px;\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22entries.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.5;\x22>{{\x20emptyText\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<each\x20:of=\x22entries\x22\x20let:item=\x22entry\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:8px\x2010px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:8px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20fmtTime(entry.ts\x20||\x20entry._ts)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22entry.level\x20===\x20\x27error\x27\x20?\x20\x27color:var(--okdb-danger);\x27\x20:\x20entry.level\x20===\x20\x27warn\x27\x20?\x20\x27color:#f5b481;\x27\x20:\x20\x27color:var(--okdb-success);\x27\x22>{{\x20entry.level\x20||\x20\x27info\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22fmtMsg(entry)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:#d4e8f4;\x20line-height:1.5;\x22>{{\x20fmtMsg(entry)\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry.context\x20!=\x20null\x20&&\x20fmtMeta(entry.context)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:8px\x200\x200;\x20white-space:pre-wrap;\x20word-break:break-word;\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x20font-family:monospace;\x22>{{\x20fmtMeta(entry.context)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x20\x20','undefined','trim','padStart','runId'];_0x4765=function(){return _0x153005;};return _0x4765();}function _0x4818(_0x1fc6a7,_0x336fa5){_0x1fc6a7=_0x1fc6a7-0x166;const _0x4765a1=_0x4765();let _0x481870=_0x4765a1[_0x1fc6a7];return _0x481870;}(function(_0x5e13a4,_0x3aaa22){const _0x5d3640=_0x4818,_0x485a05=_0x5e13a4();while(!![]){try{const _0xe8846d=-parseInt(_0x5d3640(0x171))/0x1+-parseInt(_0x5d3640(0x173))/0x2+parseInt(_0x5d3640(0x187))/0x3*(parseInt(_0x5d3640(0x16d))/0x4)+parseInt(_0x5d3640(0x16f))/0x5*(parseInt(_0x5d3640(0x16b))/0x6)+-parseInt(_0x5d3640(0x184))/0x7+-parseInt(_0x5d3640(0x186))/0x8+parseInt(_0x5d3640(0x182))/0x9;if(_0xe8846d===_0x3aaa22)break;else _0x485a05['push'](_0x485a05['shift']());}catch(_0x2736b4){_0x485a05['push'](_0x485a05['shift']());}}}(_0x4765,0x3a00a));import _0x3affe3 from'../../../stores/events-store.js';export default{'tag':'function-logs','attr':{'runId':{},'entries':{},'title':{'default':_0x439fd1(0x170)},'empty':{'default':_0x439fd1(0x183)}},'context':_0x88cea=>({get 'titleText'(){const _0x493cbb=_0x439fd1,_0x1f519f=_0x88cea[_0x493cbb(0x167)][_0x493cbb(0x17f)];return _0x493cbb(0x168)==typeof _0x1f519f&&_0x1f519f['trim']()&&'undefined'!==_0x1f519f['trim']()['toLowerCase']()?_0x1f519f:_0x493cbb(0x170);},get 'emptyText'(){const _0x1b9f70=_0x439fd1,_0x3d59f7=_0x88cea[_0x1b9f70(0x167)][_0x1b9f70(0x181)];return _0x1b9f70(0x168)==typeof _0x3d59f7&&_0x3d59f7[_0x1b9f70(0x176)]()&&_0x1b9f70(0x175)!==_0x3d59f7[_0x1b9f70(0x176)]()['toLowerCase']()?_0x3d59f7:_0x1b9f70(0x183);},get 'entries'(){const _0x357494=_0x439fd1;if(Array[_0x357494(0x16c)](_0x88cea[_0x357494(0x167)][_0x357494(0x166)]))return _0x88cea[_0x357494(0x167)][_0x357494(0x166)];const _0x4e496e=_0x88cea[_0x357494(0x167)][_0x357494(0x178)];return _0x4e496e?(_0x3affe3['logs']||[])[_0x357494(0x16a)](_0x2e8501=>(_0x2e8501?.['runId']||_0x2e8501?.['meta']?.[_0x357494(0x178)])===_0x4e496e):[];},'fmtTime'(_0x269ea7){const _0x1dda99=_0x439fd1;if(!_0x269ea7)return'';const _0x457cb5=new Date(_0x269ea7);return _0x457cb5[_0x1dda99(0x17a)]()[_0x1dda99(0x179)](0x0,0x8)+'.'+String(_0x457cb5[_0x1dda99(0x180)]())[_0x1dda99(0x177)](0x3,'0');},'fmtMeta'(_0x4d5c2d){const _0x592980=_0x439fd1;if(null==_0x4d5c2d)return'';if(_0x592980(0x17c)==typeof _0x4d5c2d&&!Array[_0x592980(0x16c)](_0x4d5c2d)){const _0x18c2aa=Object[_0x592980(0x17e)](Object['entries'](_0x4d5c2d)['filter'](([_0x497094,_0x5e10ca])=>void 0x0!==_0x5e10ca&&'undefined'!==_0x5e10ca&&null!=_0x5e10ca&&(_0x592980(0x17f)!==_0x497094&&'content'!==_0x497094||_0x592980(0x175)!==String(_0x5e10ca)[_0x592980(0x17d)]())));if(0x0===Object[_0x592980(0x169)](_0x18c2aa)['length'])return'';try{return JSON[_0x592980(0x17b)](_0x18c2aa,null,0x2);}catch{}}try{return'string'==typeof _0x4d5c2d?_0x4d5c2d:JSON[_0x592980(0x17b)](_0x4d5c2d);}catch{return String(_0x4d5c2d);}},'fmtMsg'(_0x1f1ab3){const _0x3a5e93=_0x439fd1,_0x2a815c=_0x1f1ab3?.[_0x3a5e93(0x16e)]??_0x1f1ab3?.[_0x3a5e93(0x185)]??_0x1f1ab3?.[_0x3a5e93(0x172)]??_0x1f1ab3?.[_0x3a5e93(0x17f)]??'';if(null==_0x2a815c)return'';if(_0x3a5e93(0x168)==typeof _0x2a815c){const _0x4db451=_0x2a815c['trim']();return _0x4db451&&_0x3a5e93(0x175)!==_0x4db451[_0x3a5e93(0x17d)]()?_0x4db451:'';}try{return JSON[_0x3a5e93(0x17b)](_0x2a815c,null,0x2);}catch{return String(_0x2a815c);}}}),'template':_0x439fd1(0x174)};
1
+ const _0x2362d8=_0xdcef;function _0xdcef(_0x5f29be,_0x392321){_0x5f29be=_0x5f29be-0x1c3;const _0x3221e2=_0x3221();let _0xdcef8e=_0x3221e2[_0x5f29be];return _0xdcef8e;}(function(_0x341075,_0x422f94){const _0x42b6e0=_0xdcef,_0x543211=_0x341075();while(!![]){try{const _0x54f05f=parseInt(_0x42b6e0(0x1e1))/0x1*(-parseInt(_0x42b6e0(0x1d4))/0x2)+-parseInt(_0x42b6e0(0x1d0))/0x3+parseInt(_0x42b6e0(0x1db))/0x4*(-parseInt(_0x42b6e0(0x1c5))/0x5)+-parseInt(_0x42b6e0(0x1cf))/0x6*(-parseInt(_0x42b6e0(0x1dc))/0x7)+-parseInt(_0x42b6e0(0x1e4))/0x8*(parseInt(_0x42b6e0(0x1cc))/0x9)+-parseInt(_0x42b6e0(0x1dd))/0xa+parseInt(_0x42b6e0(0x1d5))/0xb;if(_0x54f05f===_0x422f94)break;else _0x543211['push'](_0x543211['shift']());}catch(_0x4502b4){_0x543211['push'](_0x543211['shift']());}}}(_0x3221,0x4611a));import _0x111294 from'../../../stores/events-store.js';export default{'tag':_0x2362d8(0x1d8),'attr':{'runId':{},'entries':{},'title':{'default':'Live\x20log'},'empty':{'default':_0x2362d8(0x1e3)}},'context':_0x517f4c=>({get 'titleText'(){const _0x53f178=_0x2362d8,_0x5eed5e=_0x517f4c[_0x53f178(0x1df)][_0x53f178(0x1c6)];return _0x53f178(0x1e0)==typeof _0x5eed5e&&_0x5eed5e[_0x53f178(0x1d6)]()&&_0x53f178(0x1d1)!==_0x5eed5e[_0x53f178(0x1d6)]()[_0x53f178(0x1cb)]()?_0x5eed5e:_0x53f178(0x1c3);},get 'emptyText'(){const _0x1e3c2f=_0x2362d8,_0x2556b6=_0x517f4c['$attr'][_0x1e3c2f(0x1c8)];return _0x1e3c2f(0x1e0)==typeof _0x2556b6&&_0x2556b6[_0x1e3c2f(0x1d6)]()&&_0x1e3c2f(0x1d1)!==_0x2556b6['trim']()['toLowerCase']()?_0x2556b6:_0x1e3c2f(0x1e3);},get 'entries'(){const _0xa8557f=_0x2362d8;if(Array['isArray'](_0x517f4c['$attr'][_0xa8557f(0x1c9)]))return _0x517f4c[_0xa8557f(0x1df)][_0xa8557f(0x1c9)];const _0x1a6c94=_0x517f4c[_0xa8557f(0x1df)][_0xa8557f(0x1d9)];return _0x1a6c94?(_0x111294['logs']||[])[_0xa8557f(0x1d2)](_0x414d4e=>(_0x414d4e?.['runId']||_0x414d4e?.['meta']?.[_0xa8557f(0x1d9)])===_0x1a6c94):[];},'fmtTime'(_0x316e0f){const _0xcb1bac=_0x2362d8;if(!_0x316e0f)return'';const _0x170048=new Date(_0x316e0f);return _0x170048[_0xcb1bac(0x1da)]()[_0xcb1bac(0x1de)](0x0,0x8)+'.'+String(_0x170048[_0xcb1bac(0x1c4)]())[_0xcb1bac(0x1ce)](0x3,'0');},'fmtMeta'(_0x2eeca1){const _0x5aaab8=_0x2362d8;if(null==_0x2eeca1)return'';if(_0x5aaab8(0x1e2)==typeof _0x2eeca1&&!Array[_0x5aaab8(0x1e5)](_0x2eeca1)){const _0x149064=Object[_0x5aaab8(0x1c7)](Object['entries'](_0x2eeca1)['filter'](([_0x49c4c9,_0x663adb])=>void 0x0!==_0x663adb&&_0x5aaab8(0x1d1)!==_0x663adb&&null!=_0x663adb&&('title'!==_0x49c4c9&&'content'!==_0x49c4c9||'undefined'!==String(_0x663adb)[_0x5aaab8(0x1cb)]())));if(0x0===Object[_0x5aaab8(0x1e6)](_0x149064)['length'])return'';try{return JSON[_0x5aaab8(0x1d7)](_0x149064,null,0x2);}catch{}}try{return _0x5aaab8(0x1e0)==typeof _0x2eeca1?_0x2eeca1:JSON[_0x5aaab8(0x1d7)](_0x2eeca1);}catch{return String(_0x2eeca1);}},'fmtMsg'(_0x18aee7){const _0x46ca7d=_0x2362d8,_0x33d1ff=_0x18aee7?.[_0x46ca7d(0x1d3)]??_0x18aee7?.[_0x46ca7d(0x1cd)]??_0x18aee7?.['content']??_0x18aee7?.['title']??'';if(null==_0x33d1ff)return'';if('string'==typeof _0x33d1ff){const _0x297520=_0x33d1ff[_0x46ca7d(0x1d6)]();return _0x297520&&'undefined'!==_0x297520[_0x46ca7d(0x1cb)]()?_0x297520:'';}try{return JSON[_0x46ca7d(0x1d7)](_0x33d1ff,null,0x2);}catch{return String(_0x33d1ff);}}}),'template':_0x2362d8(0x1ca)};function _0x3221(){const _0x386af4=['stringify','function-logs','runId','toTimeString','4HqjDLh','3944276greNPa','5068800ChgExg','slice','$attr','string','57395LwyCIV','object','No\x20logs\x20for\x20this\x20execution\x20yet.','16952abEMGe','isArray','keys','Live\x20log','getMilliseconds','1192115gWkKVV','title','fromEntries','empty','entries','\x0a\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20min-height:0;\x20height:100%;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x20overflow:hidden;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22padding:10px\x2012px;\x20border-bottom:1px\x20solid\x20var(--okdb-app-border);\x20font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20letter-spacing:.08em;\x22>{{\x20titleText\x20}}</div>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:8px;\x20padding:12px;\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22entries.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.5;\x22>{{\x20emptyText\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<each\x20:of=\x22entries\x22\x20let:item=\x22entry\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:8px\x2010px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:8px;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20fmtTime(entry.ts\x20||\x20entry._ts)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20:style=\x22entry.level\x20===\x20\x27error\x27\x20?\x20\x27color:var(--okdb-danger);\x27\x20:\x20entry.level\x20===\x20\x27warn\x27\x20?\x20\x27color:#f5b481;\x27\x20:\x20\x27color:var(--okdb-success);\x27\x22>{{\x20entry.level\x20||\x20\x27info\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22fmtMsg(entry)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:#d4e8f4;\x20line-height:1.5;\x22>{{\x20fmtMsg(entry)\x20}}</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22entry.context\x20!=\x20null\x20&&\x20fmtMeta(entry.context)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:8px\x200\x200;\x20white-space:pre-wrap;\x20word-break:break-word;\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x20font-family:monospace;\x22>{{\x20fmtMeta(entry.context)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x20\x20','toLowerCase','1755ztxYdd','message','padStart','6UgVWsF','1526541hmliOu','undefined','filter','msg','2fTybEX','15931124UCqHnq','trim'];_0x3221=function(){return _0x386af4;};return _0x3221();}
@@ -1 +1 @@
1
- const _0x2994cb=_0x1c64;function _0x1c64(_0x2f8fce,_0x4bb92c){_0x2f8fce=_0x2f8fce-0x83;const _0x2f5dc3=_0x2f5d();let _0x1c64f1=_0x2f5dc3[_0x2f8fce];return _0x1c64f1;}(function(_0x27237f,_0x4ac39f){const _0x522ed6=_0x1c64,_0x507b9b=_0x27237f();while(!![]){try{const _0x2ca9b6=-parseInt(_0x522ed6(0x88))/0x1*(parseInt(_0x522ed6(0xac))/0x2)+-parseInt(_0x522ed6(0x83))/0x3*(parseInt(_0x522ed6(0x95))/0x4)+parseInt(_0x522ed6(0x9b))/0x5*(-parseInt(_0x522ed6(0x90))/0x6)+parseInt(_0x522ed6(0x91))/0x7+-parseInt(_0x522ed6(0x9c))/0x8+-parseInt(_0x522ed6(0x8a))/0x9+parseInt(_0x522ed6(0xa4))/0xa*(parseInt(_0x522ed6(0x94))/0xb);if(_0x2ca9b6===_0x4ac39f)break;else _0x507b9b['push'](_0x507b9b['shift']());}catch(_0x264277){_0x507b9b['push'](_0x507b9b['shift']());}}}(_0x2f5d,0xdbe45));import _0x22d9ed from'../../../components/ok-text-monaco-input.ok.js';export default{'tag':_0x2994cb(0xa0),'dependencies':[_0x22d9ed],'context':_0x5ba71a=>({get 'store'(){const _0x31dbfc=_0x2994cb;return _0x5ba71a['$ok']['stores'][_0x31dbfc(0x97)];},get 'payloadDraft'(){const _0x52f99d=_0x2994cb;return this['store'][_0x52f99d(0x9a)];},get 'selectedRun'(){const _0xf19514=_0x2994cb;return this['store'][_0xf19514(0xa8)];},get 'runs'(){const _0x590146=_0x2994cb;return(this[_0x590146(0x8b)][_0x590146(0x9e)]||[])[_0x590146(0x96)](_0x4f40af=>_0x4f40af?.[_0x590146(0x8d)]||_0x4f40af);},get 'running'(){return this['store']['running'];},get 'payloadError'(){const _0x489f68=_0x2994cb;return this[_0x489f68(0x8b)]['payloadError'];},get 'dryRunMode'(){return this['store']['dryRunMode'];},get 'dryRunActions'(){const _0x2df5d8=_0x2994cb;return this['selectedRun']?.['result']?.[_0x2df5d8(0x8e)]??null;},'toggleDryRun'(){const _0x89a381=_0x2994cb;this[_0x89a381(0x8b)][_0x89a381(0x85)]=!this[_0x89a381(0x8b)][_0x89a381(0x85)];},'runTime'(_0x40d76e){const _0x19a5a4=_0x2994cb,_0x51efc8=_0x40d76e?.[_0x19a5a4(0x8f)]?.[_0x19a5a4(0x8c)]??_0x40d76e?.[_0x19a5a4(0xa7)]?.[_0x19a5a4(0xab)]??null;return _0x51efc8?new Date(_0x51efc8)[_0x19a5a4(0x92)]([],{'hour':_0x19a5a4(0xa1),'minute':_0x19a5a4(0xa1),'second':'2-digit'}):'—';},'isSelected'(_0x17e558){const _0x175487=_0x2994cb,_0x5da1cd=this['selectedRun'];return!(!_0x5da1cd||!_0x17e558)&&(_0x5da1cd['id']||_0x5da1cd[_0x175487(0x87)])===(_0x17e558['id']||_0x17e558[_0x175487(0x87)]);},'setPayload'(_0x372220){const _0x55198e=_0x2994cb;this['store'][_0x55198e(0x93)](_0x372220??'{\x0a\x20\x20\x0a}');},async 'pickRun'(_0x5e2615){const _0x5f1283=_0x2994cb;if(_0x5e2615)try{await this[_0x5f1283(0x8b)][_0x5f1283(0x9f)](_0x5e2615['id']||_0x5e2615['runId']);}catch(_0x27d881){_0x5ba71a[_0x5f1283(0x84)][_0x5f1283(0xae)]?.[_0x5f1283(0xa3)]?.['error']?.(_0x27d881?.[_0x5f1283(0xa6)]||'Failed\x20to\x20load\x20run');}},'formatJson'(_0x366430){try{return JSON['stringify'](_0x366430,null,0x2);}catch{return String(_0x366430??'');}},'actionArgs'(_0x39a4c8){const _0x344caa=_0x2994cb,_0x450fa5=_0x39a4c8[_0x344caa(0xad)]??[];return 0x0===_0x450fa5[_0x344caa(0x99)]?'':_0x450fa5['map'](_0xccf718=>JSON[_0x344caa(0xa5)](_0xccf718))['join'](',\x20');},async 'runNow'(){const _0x166a44=_0x2994cb;try{await this['store'][_0x166a44(0x9d)](),_0x5ba71a[_0x166a44(0x84)][_0x166a44(0xae)]?.[_0x166a44(0xa3)]?.['success']?.(this[_0x166a44(0x85)]?_0x166a44(0x86):_0x166a44(0xa9));}catch(_0x2a5b69){_0x5ba71a['$ok']['shared']?.['toast']?.[_0x166a44(0x98)]?.(_0x2a5b69?.[_0x166a44(0xa6)]||_0x166a44(0xaf));}},async 'refresh'(){const _0x57cbc3=_0x2994cb;try{await this[_0x57cbc3(0x8b)]['refreshSelected'](),_0x5ba71a[_0x57cbc3(0x84)][_0x57cbc3(0xae)]?.['toast']?.[_0x57cbc3(0xa2)]?.(_0x57cbc3(0x89));}catch(_0x286952){_0x5ba71a[_0x57cbc3(0x84)][_0x57cbc3(0xae)]?.[_0x57cbc3(0xa3)]?.[_0x57cbc3(0x98)]?.(_0x286952?.[_0x57cbc3(0xa6)]||_0x57cbc3(0xb0));}}}),'template':_0x2994cb(0xaa)};function _0x2f5d(){const _0x259b8b=['9154600bwAfLE','toLocaleTimeString','setPayloadDraft','1622687dQIXFL','2064092QrqfoS','map','functions','error','length','payloadDraft','5PyFGqE','10690976HBmKlL','runSelected','runs','selectRun','function-runner','2-digit','success','toast','370gEOusB','stringify','message','request','activeRun','Function\x20executed','\x0a\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:12px;\x20min-height:0;\x20height:100%;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20gap:8px;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x22>Run\x20selected\x20function</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>Only\x20affects\x20the\x20currently\x20selected\x20function.</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22refresh()\x22\x20:disabled=\x22!store.selectedName\x20||\x20running\x22\x20style=\x22padding:6px\x2010px;\x20font-size:12px;\x22>Refresh</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22toggleDryRun()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:disabled=\x22running\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22dryRunMode\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27padding:6px\x2010px;\x20font-size:12px;\x20border-color:var(--okdb-accent);\x20color:var(--okdb-accent);\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:\x20\x27padding:6px\x2010px;\x20font-size:12px;\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Dry\x20Run{{\x20dryRunMode\x20?\x20\x27\x20✓\x27\x20:\x20\x27\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22runNow()\x22\x20:disabled=\x22!store.selectedName\x20||\x20running\x22\x20style=\x22padding:6px\x2010px;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20running\x20?\x20\x27Running…\x27\x20:\x20(dryRunMode\x20?\x20\x27Run\x20(dry)\x27\x20:\x20\x27Run\x27)\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22height:220px;\x20min-height:220px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20overflow:hidden;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20<ok-text-monaco-input\x0a\x20\x20\x20\x20\x20\x20\x20\x20style=\x22height:100%;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20language=\x22json\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22payloadDraft\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20@edit:debounce.150=\x22setPayload($event.detail)\x22\x0a\x20\x20\x20\x20\x20\x20></ok-text-monaco-input>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22payloadError\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-danger);\x20line-height:1.5;\x22>{{\x20payloadError\x20}}</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Recent\x20runs\x20for\x20this\x20function</div>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22runs.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>No\x20runs\x20yet.</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22runs.slice(0,\x208)\x22\x20let:item=\x22run\x22\x20let:index=\x22idx\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22pickRun(run)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22isSelected(run)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27text-align:left;\x20padding:8px\x2010px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2053%,\x20transparent);\x20box-shadow:0\x200\x200\x201px\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2013%,\x20transparent)\x20inset,\x200\x200\x2018px\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x209%,\x20transparent);\x20background:var(--okdb-app-bg);\x20color:var(--okdb-app-fg-strong);\x20border-radius:8px;\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:\x20\x27text-align:left;\x20padding:8px\x2010px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20border-radius:8px;\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20gap:8px;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong\x20style=\x22font-family:monospace;\x20font-size:11px;\x22>{{\x20run.id\x20||\x20run.runId\x20||\x20\x27run\x27\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22idx\x20===\x200\x22><span\x20style=\x22font-size:10px;\x20padding:2px\x206px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x20color:var(--okdb-accent);\x22>Latest</span></if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20run.status\x20||\x20(run.error\x20?\x20\x27error\x27\x20:\x20\x27ok\x27)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20gap:8px;\x20margin-top:6px;\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20runTime(run)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20run.execution?.durationMs\x20!=\x20null\x20?\x20run.execution.durationMs\x20+\x20\x27ms\x27\x20:\x20\x27—\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22!selectedRun\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Selected\x20run\x20result</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>No\x20run\x20selected\x20yet.</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22selectedRun\x20&&\x20dryRunActions\x20!==\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-accent);\x20margin-bottom:8px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Dry\x20run\x20—\x20intercepted\x20writes\x20({{\x20dryRunActions.length\x20}})\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22dryRunActions.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>No\x20writes\x20intercepted.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20margin-bottom:10px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22dryRunActions\x22\x20let:item=\x22action\x22\x20let:index=\x22i\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:6px\x208px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2020%,\x20transparent);\x20border-radius:6px;\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x204%,\x20transparent);\x20font-family:monospace;\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.45;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22color:var(--okdb-accent);\x22>{{\x20action.scope\x20}}.{{\x20action.method\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22action.envName\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22opacity:.6;\x22>\x20[{{\x20action.envName\x20}}]</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22actionArgs(action)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>\x20({{\x20actionArgs(action)\x20}})</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selectedRun.result?.value\x20!==\x20undefined\x20&&\x20selectedRun.result?.value\x20!==\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:6px;\x22>Return\x20value</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:0;\x20white-space:pre-wrap;\x20word-break:break-word;\x20color:var(--okdb-app-fg-muted);\x20font-size:12px;\x20line-height:1.55;\x22>{{\x20formatJson(selectedRun.result.value)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22selectedRun\x20&&\x20dryRunActions\x20===\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Selected\x20run\x20result</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:0;\x20white-space:pre-wrap;\x20word-break:break-word;\x20color:var(--okdb-app-fg-muted);\x20font-size:12px;\x20line-height:1.55;\x22>{{\x20formatJson(selectedRun)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x20\x20','requestedAt','3099822cUmgej','args','shared','Function\x20execution\x20failed','Failed\x20to\x20refresh\x20function','3HHQGjJ','$ok','dryRunMode','Dry\x20run\x20complete','runId','1wZmZuS','Function\x20refreshed','12451995UwNdnH','store','finishedAt','value','dryRunActions','execution','6476346BsLJMO'];_0x2f5d=function(){return _0x259b8b;};return _0x2f5d();}
1
+ const _0x3a205f=_0x216f;function _0x216f(_0x1702d7,_0x552df9){_0x1702d7=_0x1702d7-0x166;const _0x5d74b2=_0x5d74();let _0x216f5c=_0x5d74b2[_0x1702d7];return _0x216f5c;}(function(_0xa4cd33,_0x5c5a85){const _0x35f5fa=_0x216f,_0x5daf52=_0xa4cd33();while(!![]){try{const _0x35453c=-parseInt(_0x35f5fa(0x183))/0x1*(parseInt(_0x35f5fa(0x17e))/0x2)+parseInt(_0x35f5fa(0x18c))/0x3+parseInt(_0x35f5fa(0x193))/0x4*(parseInt(_0x35f5fa(0x191))/0x5)+parseInt(_0x35f5fa(0x18b))/0x6*(-parseInt(_0x35f5fa(0x170))/0x7)+-parseInt(_0x35f5fa(0x18e))/0x8+-parseInt(_0x35f5fa(0x188))/0x9+parseInt(_0x35f5fa(0x18d))/0xa*(parseInt(_0x35f5fa(0x185))/0xb);if(_0x35453c===_0x5c5a85)break;else _0x5daf52['push'](_0x5daf52['shift']());}catch(_0x14a726){_0x5daf52['push'](_0x5daf52['shift']());}}}(_0x5d74,0xed846));function _0x5d74(){const _0x2980cc=['args','Failed\x20to\x20load\x20run','Function\x20refreshed','functions','Function\x20execution\x20failed','refreshSelected','2eteDqL','toast','store','payloadDraft','Dry\x20run\x20complete','1502929VIquAm','finishedAt','22XMXFKd','result','runSelected','16224075IQYSYo','dryRunActions','selectRun','3549666nTXTAM','5319255EBfVLn','10621180QCMqJj','4839944mzudyC','runId','length','795lpwXcm','activeRun','39692hKDeCT','error','stores','requestedAt','join','2-digit','dryRunMode','$ok','selectedRun','running','runs','Function\x20executed','7WtlgBg','Failed\x20to\x20refresh\x20function','\x0a\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:12px;\x20min-height:0;\x20height:100%;\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20gap:8px;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x22>Run\x20selected\x20function</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>Only\x20affects\x20the\x20currently\x20selected\x20function.</div>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20gap:8px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22refresh()\x22\x20:disabled=\x22!store.selectedName\x20||\x20running\x22\x20style=\x22padding:6px\x2010px;\x20font-size:12px;\x22>Refresh</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22toggleDryRun()\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:disabled=\x22running\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22dryRunMode\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27padding:6px\x2010px;\x20font-size:12px;\x20border-color:var(--okdb-accent);\x20color:var(--okdb-accent);\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:\x20\x27padding:6px\x2010px;\x20font-size:12px;\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Dry\x20Run{{\x20dryRunMode\x20?\x20\x27\x20✓\x27\x20:\x20\x27\x27\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20@click=\x22runNow()\x22\x20:disabled=\x22!store.selectedName\x20||\x20running\x22\x20style=\x22padding:6px\x2010px;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{{\x20running\x20?\x20\x27Running…\x27\x20:\x20(dryRunMode\x20?\x20\x27Run\x20(dry)\x27\x20:\x20\x27Run\x27)\x20}}\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22height:220px;\x20min-height:220px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20overflow:hidden;\x20background:var(--okdb-app-bg-deep);\x22>\x0a\x20\x20\x20\x20\x20\x20<ok-text-monaco-input\x0a\x20\x20\x20\x20\x20\x20\x20\x20style=\x22height:100%;\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20language=\x22json\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20:value=\x22payloadDraft\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20@edit:debounce.150=\x22setPayload($event.detail)\x22\x0a\x20\x20\x20\x20\x20\x20></ok-text-monaco-input>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<if\x20:=\x22payloadError\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-danger);\x20line-height:1.5;\x22>{{\x20payloadError\x20}}</div>\x0a\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Recent\x20runs\x20for\x20this\x20function</div>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22runs.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>No\x20runs\x20yet.</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22runs.slice(0,\x208)\x22\x20let:item=\x22run\x22\x20let:index=\x22idx\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22pickRun(run)\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:style=\x22isSelected(run)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20?\x20\x27text-align:left;\x20padding:8px\x2010px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2053%,\x20transparent);\x20box-shadow:0\x200\x200\x201px\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2013%,\x20transparent)\x20inset,\x200\x200\x2018px\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x209%,\x20transparent);\x20background:var(--okdb-app-bg);\x20color:var(--okdb-app-fg-strong);\x20border-radius:8px;\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:\x20\x27text-align:left;\x20padding:8px\x2010px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20background:var(--okdb-app-bg-deep);\x20color:var(--okdb-app-fg-muted);\x20border-radius:8px;\x27\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20gap:8px;\x20font-size:12px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<strong\x20style=\x22font-family:monospace;\x20font-size:11px;\x22>{{\x20run.id\x20||\x20run.runId\x20||\x20\x27run\x27\x20}}</strong>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20gap:8px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22idx\x20===\x200\x22><span\x20style=\x22font-size:10px;\x20padding:2px\x206px;\x20border-radius:999px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent);\x20color:var(--okdb-accent);\x22>Latest</span></if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20run.status\x20||\x20(run.error\x20?\x20\x27error\x27\x20:\x20\x27ok\x27)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20align-items:center;\x20justify-content:space-between;\x20gap:8px;\x20margin-top:6px;\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20runTime(run)\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{\x20run.execution?.durationMs\x20!=\x20null\x20?\x20run.execution.durationMs\x20+\x20\x27ms\x27\x20:\x20\x27—\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22padding:12px;\x20border:1px\x20solid\x20var(--okdb-app-border);\x20border-radius:10px;\x20background:var(--okdb-app-bg-deep);\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22!selectedRun\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Selected\x20run\x20result</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x22>No\x20run\x20selected\x20yet.</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22selectedRun\x20&&\x20dryRunActions\x20!==\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-accent);\x20margin-bottom:8px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Dry\x20run\x20—\x20intercepted\x20writes\x20({{\x20dryRunActions.length\x20}})\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22dryRunActions.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:12px;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>No\x20writes\x20intercepted.</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:4px;\x20margin-bottom:10px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<each\x20:of=\x22dryRunActions\x22\x20let:item=\x22action\x22\x20let:index=\x22i\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:6px\x208px;\x20border:1px\x20solid\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2020%,\x20transparent);\x20border-radius:6px;\x20background:color-mix(in\x20srgb,\x20var(--okdb-accent)\x204%,\x20transparent);\x20font-family:monospace;\x20font-size:11px;\x20color:var(--okdb-app-fg-muted);\x20line-height:1.45;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22color:var(--okdb-accent);\x22>{{\x20action.scope\x20}}.{{\x20action.method\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22action.envName\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20style=\x22opacity:.6;\x22>\x20[{{\x20action.envName\x20}}]</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22actionArgs(action)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>\x20({{\x20actionArgs(action)\x20}})</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22selectedRun.result?.value\x20!==\x20undefined\x20&&\x20selectedRun.result?.value\x20!==\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:6px;\x22>Return\x20value</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:0;\x20white-space:pre-wrap;\x20word-break:break-word;\x20color:var(--okdb-app-fg-muted);\x20font-size:12px;\x20line-height:1.55;\x22>{{\x20formatJson(selectedRun.result.value)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22selectedRun\x20&&\x20dryRunActions\x20===\x20null\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:11px;\x20text-transform:uppercase;\x20color:var(--okdb-app-fg-muted);\x20margin-bottom:8px;\x22>Selected\x20run\x20result</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<pre\x20style=\x22margin:0;\x20white-space:pre-wrap;\x20word-break:break-word;\x20color:var(--okdb-app-fg-muted);\x20font-size:12px;\x20line-height:1.55;\x22>{{\x20formatJson(selectedRun)\x20}}</pre>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x20\x20','success','{\x0a\x20\x20\x0a}','shared','map','stringify'];_0x5d74=function(){return _0x2980cc;};return _0x5d74();}import _0x533621 from'../../../components/ok-text-monaco-input.ok.js';export default{'tag':'function-runner','dependencies':[_0x533621],'context':_0x3f8883=>({get 'store'(){const _0xb59842=_0x216f;return _0x3f8883[_0xb59842(0x16b)][_0xb59842(0x166)][_0xb59842(0x17b)];},get 'payloadDraft'(){const _0x2f7eae=_0x216f;return this['store'][_0x2f7eae(0x181)];},get 'selectedRun'(){const _0x1043b5=_0x216f;return this[_0x1043b5(0x180)][_0x1043b5(0x192)];},get 'runs'(){const _0x124cf5=_0x216f;return(this[_0x124cf5(0x180)][_0x124cf5(0x16e)]||[])[_0x124cf5(0x176)](_0x134b51=>_0x134b51?.['value']||_0x134b51);},get 'running'(){const _0x1f3342=_0x216f;return this[_0x1f3342(0x180)][_0x1f3342(0x16d)];},get 'payloadError'(){const _0x4fc1f5=_0x216f;return this[_0x4fc1f5(0x180)]['payloadError'];},get 'dryRunMode'(){const _0x528736=_0x216f;return this[_0x528736(0x180)]['dryRunMode'];},get 'dryRunActions'(){const _0x3cc6d6=_0x216f;return this['selectedRun']?.[_0x3cc6d6(0x186)]?.[_0x3cc6d6(0x189)]??null;},'toggleDryRun'(){const _0x5b0b11=_0x216f;this[_0x5b0b11(0x180)][_0x5b0b11(0x16a)]=!this[_0x5b0b11(0x180)][_0x5b0b11(0x16a)];},'runTime'(_0x14cdec){const _0x5e507d=_0x216f,_0xe3cc52=_0x14cdec?.['execution']?.[_0x5e507d(0x184)]??_0x14cdec?.['request']?.[_0x5e507d(0x167)]??null;return _0xe3cc52?new Date(_0xe3cc52)['toLocaleTimeString']([],{'hour':_0x5e507d(0x169),'minute':_0x5e507d(0x169),'second':_0x5e507d(0x169)}):'—';},'isSelected'(_0x4af71f){const _0x337933=_0x216f,_0x26fe8f=this[_0x337933(0x16c)];return!(!_0x26fe8f||!_0x4af71f)&&(_0x26fe8f['id']||_0x26fe8f[_0x337933(0x18f)])===(_0x4af71f['id']||_0x4af71f[_0x337933(0x18f)]);},'setPayload'(_0x19f07a){const _0x12823a=_0x216f;this[_0x12823a(0x180)]['setPayloadDraft'](_0x19f07a??_0x12823a(0x174));},async 'pickRun'(_0x298c05){const _0x4817ff=_0x216f;if(_0x298c05)try{await this['store'][_0x4817ff(0x18a)](_0x298c05['id']||_0x298c05[_0x4817ff(0x18f)]);}catch(_0x237f41){_0x3f8883['$ok'][_0x4817ff(0x175)]?.['toast']?.[_0x4817ff(0x194)]?.(_0x237f41?.['message']||_0x4817ff(0x179));}},'formatJson'(_0x53f7ff){const _0x30f260=_0x216f;try{return JSON[_0x30f260(0x177)](_0x53f7ff,null,0x2);}catch{return String(_0x53f7ff??'');}},'actionArgs'(_0x8d0961){const _0x48c919=_0x216f,_0x22877a=_0x8d0961[_0x48c919(0x178)]??[];return 0x0===_0x22877a[_0x48c919(0x190)]?'':_0x22877a[_0x48c919(0x176)](_0x27a103=>JSON[_0x48c919(0x177)](_0x27a103))[_0x48c919(0x168)](',\x20');},async 'runNow'(){const _0x38ebba=_0x216f;try{await this[_0x38ebba(0x180)][_0x38ebba(0x187)](),_0x3f8883['$ok'][_0x38ebba(0x175)]?.['toast']?.['success']?.(this[_0x38ebba(0x16a)]?_0x38ebba(0x182):_0x38ebba(0x16f));}catch(_0x446b09){_0x3f8883[_0x38ebba(0x16b)][_0x38ebba(0x175)]?.[_0x38ebba(0x17f)]?.[_0x38ebba(0x194)]?.(_0x446b09?.['message']||_0x38ebba(0x17c));}},async 'refresh'(){const _0x555adb=_0x216f;try{await this[_0x555adb(0x180)][_0x555adb(0x17d)](),_0x3f8883[_0x555adb(0x16b)]['shared']?.[_0x555adb(0x17f)]?.[_0x555adb(0x173)]?.(_0x555adb(0x17a));}catch(_0x39cbc0){_0x3f8883[_0x555adb(0x16b)]['shared']?.[_0x555adb(0x17f)]?.[_0x555adb(0x194)]?.(_0x39cbc0?.['message']||_0x555adb(0x171));}}}),'template':_0x3a205f(0x172)};
@@ -1 +1 @@
1
- function _0x463f(){var _0x25f6fe=['$dispatch','functions-list','\x0a\x20\x20\x20\x20functions-list\x20{\x0a\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20gap:\x202px;\x0a\x20\x20\x20\x20\x20\x20min-height:\x200;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20functions-list\x20button\x20{\x0a\x20\x20\x20\x20\x20\x20text-align:\x20left;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__add\x20{\x0a\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20padding:\x207px\x2010px;\x0a\x20\x20\x20\x20\x20\x20margin-bottom:\x204px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__item\x20{\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20padding:\x206px\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20border-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg-muted);\x0a\x20\x20\x20\x20\x20\x20border-radius:\x207px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__item:hover\x20{\x0a\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface-2);\x0a\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__item--selected\x20{\x0a\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep)\x20!important;\x0a\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent)\x20!important;\x0a\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent)\x20!important;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__name\x20{\x0a\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20monospace;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20text-overflow:\x20ellipsis;\x0a\x20\x20\x20\x20\x20\x20white-space:\x20nowrap;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__meta\x20{\x0a\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20}\x0a\x20\x20','functions','3448008zNaVLd','4519344FMurnj','1351494mCmZWJ','store','2034530PFOvvn','stores','\x0a\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20min-height:0;\x20height:100%;\x22>\x0a\x20\x20\x20\x20<button\x20class=\x22functions-list__add\x22\x20@click=\x22createNew()\x22>+\x20New</button>\x0a\x0a\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20class=\x22functions-list__item\x22\x0a\x20\x20\x20\x20\x20\x20:class=\x22isOverview\x20?\x20\x27functions-list__item--selected\x27\x20:\x20\x27\x27\x22\x0a\x20\x20\x20\x20\x20\x20@click=\x22openOverview()\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20class=\x22functions-list__name\x22>Overview</span>\x0a\x20\x20\x20\x20</button>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22height:1px;\x20background:var(--okdb-app-surface-2);\x20margin:2px\x200\x206px;\x22></div>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:2px;\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22loading\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:10px;\x20border:1px\x20dashed\x20var(--okdb-app-border);\x20border-radius:8px;\x20color:var(--okdb-app-fg-muted);\x20font-size:12px;\x20line-height:1.5;\x20margin-bottom:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Loading\x20functions…\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22items.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:10px;\x20border:1px\x20dashed\x20var(--okdb-app-border);\x20border-radius:8px;\x20color:var(--okdb-app-fg-muted);\x20font-size:12px;\x20line-height:1.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20No\x20functions\x20in\x20this\x20scope\x20yet.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<each\x20:of=\x22items\x22\x20let:item=\x22fn\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20class=\x22functions-list__item\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22fn.key\x20===\x20selectedName\x20?\x20\x27functions-list__item--selected\x27\x20:\x20\x27\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22pick(fn.key)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22functions-list__name\x22>{{\x20fn.key\x20}}</span>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22fn.value?.unsafe\x22><span\x20style=\x22font-size:10px;\x20color:var(--okdb-orange);\x20flex-shrink:0;\x22\x20title=\x22Unsafe\x20function\x22>&#9888;</span></if>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22functions-list__meta\x22>v{{\x20fn.value?.version\x20??\x20\x27—\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x20\x20','overview','detail','8cytyKa','loading','4dtdulk','8407973XBxecS','769437ZCiQuG','$ok','664106wjxwIE','selectedName','40giUCTg'];_0x463f=function(){return _0x25f6fe;};return _0x463f();}function _0x6d86(_0x1ce9ea,_0x10e9e5){_0x1ce9ea=_0x1ce9ea-0xe3;var _0x463f89=_0x463f();var _0x6d86b6=_0x463f89[_0x1ce9ea];return _0x6d86b6;}var _0x1e03ee=_0x6d86;(function(_0x4eb7f7,_0x56e40f){var _0x420791=_0x6d86,_0x5affcc=_0x4eb7f7();while(!![]){try{var _0x2fb1e5=parseInt(_0x420791(0xe5))/0x1+parseInt(_0x420791(0xec))/0x2+parseInt(_0x420791(0xee))/0x3+-parseInt(_0x420791(0xf7))/0x4*(-parseInt(_0x420791(0xf0))/0x5)+-parseInt(_0x420791(0xed))/0x6+-parseInt(_0x420791(0xf8))/0x7*(parseInt(_0x420791(0xf5))/0x8)+parseInt(_0x420791(0xe3))/0x9*(-parseInt(_0x420791(0xe7))/0xa);if(_0x2fb1e5===_0x56e40f)break;else _0x5affcc['push'](_0x5affcc['shift']());}catch(_0x32d1af){_0x5affcc['push'](_0x5affcc['shift']());}}}(_0x463f,0xe7bbb));export default{'tag':_0x1e03ee(0xe9),'context':_0x41c788=>({get 'store'(){var _0x2b5552=_0x1e03ee;return _0x41c788[_0x2b5552(0xe4)][_0x2b5552(0xf1)][_0x2b5552(0xeb)];},get 'items'(){var _0x2adb6e=_0x1e03ee;return this[_0x2adb6e(0xef)]['items']||[];},get 'selectedName'(){var _0x363548=_0x1e03ee;return this[_0x363548(0xef)]['selectedName'];},get 'loading'(){var _0x1e30eb=_0x1e03ee;return this[_0x1e30eb(0xef)][_0x1e30eb(0xf6)];},get 'isOverview'(){var _0x2b79ed=_0x1e03ee;return _0x2b79ed(0xf4)!==this[_0x2b79ed(0xef)]['currentView']||!this[_0x2b79ed(0xe6)];},'pick'(_0x9a1002){var _0x5af804=_0x1e03ee;_0x41c788[_0x5af804(0xe8)]('open',_0x9a1002);},'openOverview'(){var _0x36f964=_0x1e03ee;_0x41c788['$dispatch'](_0x36f964(0xf3));},'createNew'(){var _0x4ed0bb=_0x1e03ee;_0x41c788[_0x4ed0bb(0xe8)]('create');}}),'style':_0x1e03ee(0xea),'template':_0x1e03ee(0xf2)};
1
+ var _0x2f787d=_0x35f0;(function(_0x4abdea,_0x38edd4){var _0x358857=_0x35f0,_0x134215=_0x4abdea();while(!![]){try{var _0x44d165=-parseInt(_0x358857(0x15b))/0x1*(-parseInt(_0x358857(0x16a))/0x2)+parseInt(_0x358857(0x161))/0x3+-parseInt(_0x358857(0x155))/0x4+-parseInt(_0x358857(0x165))/0x5*(parseInt(_0x358857(0x159))/0x6)+parseInt(_0x358857(0x15d))/0x7+parseInt(_0x358857(0x160))/0x8*(-parseInt(_0x358857(0x156))/0x9)+parseInt(_0x358857(0x166))/0xa;if(_0x44d165===_0x38edd4)break;else _0x134215['push'](_0x134215['shift']());}catch(_0x32a5ab){_0x134215['push'](_0x134215['shift']());}}}(_0x4900,0xd7fda));function _0x35f0(_0x139224,_0x29251a){_0x139224=_0x139224-0x154;var _0x490058=_0x4900();var _0x35f0ff=_0x490058[_0x139224];return _0x35f0ff;}export default{'tag':'functions-list','context':_0x5d8719=>({get 'store'(){var _0x4b8ba9=_0x35f0;return _0x5d8719[_0x4b8ba9(0x16b)][_0x4b8ba9(0x15e)][_0x4b8ba9(0x154)];},get 'items'(){var _0x5af7c2=_0x35f0;return this[_0x5af7c2(0x168)][_0x5af7c2(0x158)]||[];},get 'selectedName'(){var _0x17b073=_0x35f0;return this['store'][_0x17b073(0x162)];},get 'loading'(){var _0xf6668a=_0x35f0;return this['store'][_0xf6668a(0x157)];},get 'isOverview'(){var _0x448fd1=_0x35f0;return _0x448fd1(0x15a)!==this[_0x448fd1(0x168)][_0x448fd1(0x164)]||!this[_0x448fd1(0x162)];},'pick'(_0x51fc1e){var _0x3f86aa=_0x35f0;_0x5d8719[_0x3f86aa(0x167)](_0x3f86aa(0x163),_0x51fc1e);},'openOverview'(){var _0x4d31ff=_0x35f0;_0x5d8719[_0x4d31ff(0x167)](_0x4d31ff(0x15c));},'createNew'(){var _0x276129=_0x35f0;_0x5d8719[_0x276129(0x167)](_0x276129(0x169));}}),'style':'\x0a\x20\x20\x20\x20functions-list\x20{\x0a\x20\x20\x20\x20\x20\x20position:\x20relative;\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20flex-direction:\x20column;\x0a\x20\x20\x20\x20\x20\x20gap:\x202px;\x0a\x20\x20\x20\x20\x20\x20min-height:\x200;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20functions-list\x20button\x20{\x0a\x20\x20\x20\x20\x20\x20text-align:\x20left;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__add\x20{\x0a\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20padding:\x207px\x2010px;\x0a\x20\x20\x20\x20\x20\x20margin-bottom:\x204px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__item\x20{\x0a\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20gap:\x206px;\x0a\x20\x20\x20\x20\x20\x20padding:\x206px\x2010px;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20border-color:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg-muted);\x0a\x20\x20\x20\x20\x20\x20border-radius:\x207px;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__item:hover\x20{\x0a\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-surface-2);\x0a\x20\x20\x20\x20\x20\x20border-color:\x20var(--okdb-app-border);\x0a\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-app-fg);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__item--selected\x20{\x0a\x20\x20\x20\x20\x20\x20background:\x20var(--okdb-app-bg-deep)\x20!important;\x0a\x20\x20\x20\x20\x20\x20border-color:\x20color-mix(in\x20srgb,\x20var(--okdb-accent)\x2027%,\x20transparent)\x20!important;\x0a\x20\x20\x20\x20\x20\x20color:\x20var(--okdb-accent)\x20!important;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__name\x20{\x0a\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20font-family:\x20monospace;\x0a\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20overflow:\x20hidden;\x0a\x20\x20\x20\x20\x20\x20text-overflow:\x20ellipsis;\x0a\x20\x20\x20\x20\x20\x20white-space:\x20nowrap;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20.functions-list__meta\x20{\x0a\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20opacity:\x20.55;\x0a\x20\x20\x20\x20\x20\x20flex-shrink:\x200;\x0a\x20\x20\x20\x20}\x0a\x20\x20','template':_0x2f787d(0x15f)};function _0x4900(){var _0x5bb8e7=['22711990vfhXUn','$dispatch','store','create','2cDrNzY','$ok','functions','7017936pNuFKw','15425370nGNNIk','loading','items','18uMAzuS','detail','1418358xdxifr','overview','1032255dgihRo','stores','\x0a\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20min-height:0;\x20height:100%;\x22>\x0a\x20\x20\x20\x20<button\x20class=\x22functions-list__add\x22\x20@click=\x22createNew()\x22>+\x20New</button>\x0a\x0a\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20class=\x22functions-list__item\x22\x0a\x20\x20\x20\x20\x20\x20:class=\x22isOverview\x20?\x20\x27functions-list__item--selected\x27\x20:\x20\x27\x27\x22\x0a\x20\x20\x20\x20\x20\x20@click=\x22openOverview()\x22>\x0a\x20\x20\x20\x20\x20\x20<span\x20class=\x22functions-list__name\x22>Overview</span>\x0a\x20\x20\x20\x20</button>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22height:1px;\x20background:var(--okdb-app-surface-2);\x20margin:2px\x200\x206px;\x22></div>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:2px;\x20min-height:0;\x20overflow:auto;\x22>\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22loading\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:10px;\x20border:1px\x20dashed\x20var(--okdb-app-border);\x20border-radius:8px;\x20color:var(--okdb-app-fg-muted);\x20font-size:12px;\x20line-height:1.5;\x20margin-bottom:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Loading\x20functions…\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<if\x20:=\x22items.length\x20===\x200\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22padding:10px;\x20border:1px\x20dashed\x20var(--okdb-app-border);\x20border-radius:8px;\x20color:var(--okdb-app-fg-muted);\x20font-size:12px;\x20line-height:1.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20No\x20functions\x20in\x20this\x20scope\x20yet.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20</if>\x0a\x0a\x20\x20\x20\x20\x20\x20<each\x20:of=\x22items\x22\x20let:item=\x22fn\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20class=\x22functions-list__item\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20:class=\x22fn.key\x20===\x20selectedName\x20?\x20\x27functions-list__item--selected\x27\x20:\x20\x27\x27\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@click=\x22pick(fn.key)\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22functions-list__name\x22>{{\x20fn.key\x20}}</span>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<if\x20:=\x22fn.value?.unsafe\x22><span\x20style=\x22font-size:10px;\x20color:var(--okdb-orange);\x20flex-shrink:0;\x22\x20title=\x22Unsafe\x20function\x22>&#9888;</span></if>\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22functions-list__meta\x22>v{{\x20fn.value?.version\x20??\x20\x27—\x27\x20}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</button>\x0a\x20\x20\x20\x20\x20\x20</each>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a\x20\x20','8wODARB','4354209OxIxVi','selectedName','open','currentView','1558855uRceop'];_0x4900=function(){return _0x5bb8e7;};return _0x4900();}
@@ -1 +1 @@
1
- const _0xcbae25=_0x3fec;(function(_0x4e646c,_0x3a9ade){const _0xb145dc=_0x3fec,_0x25bdf5=_0x4e646c();while(!![]){try{const _0x2087e7=-parseInt(_0xb145dc(0x184))/0x1*(-parseInt(_0xb145dc(0x1bc))/0x2)+-parseInt(_0xb145dc(0x1bb))/0x3+-parseInt(_0xb145dc(0x1b3))/0x4*(parseInt(_0xb145dc(0x19d))/0x5)+parseInt(_0xb145dc(0x19e))/0x6+-parseInt(_0xb145dc(0x1b0))/0x7+parseInt(_0xb145dc(0x1ae))/0x8*(parseInt(_0xb145dc(0x187))/0x9)+-parseInt(_0xb145dc(0x19b))/0xa;if(_0x2087e7===_0x3a9ade)break;else _0x25bdf5['push'](_0x25bdf5['shift']());}catch(_0x1506ad){_0x25bdf5['push'](_0x25bdf5['shift']());}}}(_0x4efc,0x6c317));const t=()=>__ENV__[_0xcbae25(0x1be)][_0xcbae25(0x180)](/\/api$/,'')+'/license';function _0x4efc(){const _0x5c21f7=['licenseId','activatingId','36OjYlUS','application/json','Activation\x20failed','writeText','filter','<div><if\x20:=\x22loading\x22><div\x20style=\x22font-size:13px;\x20opacity:.5;\x20padding:20px\x200;\x22>Loading…</div></if><if\x20:=\x22!loading\x20&&\x20unavailable\x22><div\x20style=\x22font-size:13px;\x20opacity:.6;\x20padding:20px\x200;\x22>License\x20system\x20not\x20available\x20in\x20this\x20build.</div></if><if\x20:=\x22!loading\x20&&\x20!unavailable\x22><div\x20class=\x22lp-header\x22><div\x20class=\x22lp-title\x22>License</div><button\x20class=\x22lp-btn\x20lp-btn--primary\x22\x20@click=\x22openAddForm()\x22>+\x20Add\x20License</button></div><if\x20:=\x22hasActive()\x22><div\x20class=\x22lp-status-banner\x20lp-status-banner--ok\x22><span>&#10003;\x20Licensed</span>\x20<span>—</span>\x20<span\x20style=\x22font-weight:600;\x22>{{\x20activeLicensee()\x20}}</span><if\x20:=\x22activeExpiry()\x22><span\x20style=\x22opacity:.7;\x22>·\x20Expires\x20{{\x20formatDate(activeExpiry())\x20}}</span></if></div></if><if\x20:=\x22!hasActive()\x22><div\x20class=\x22lp-status-banner\x20lp-status-banner--warn\x22><span>&#9888;\x20Free\x20tier</span><if\x20:=\x22status\x20&&\x20status.effective\x22><span\x20style=\x22opacity:.7;\x20font-size:12px;\x22>—\x20envs={{\x20status.effective.limits.envs\x20}},\x20types/env={{\x20status.effective.limits.typesPerEnv\x20}},\x20writes={{\x20(status.effective.limits.maxWrites||0).toLocaleString()\x20}}</span></if></div><if\x20:=\x22status\x20&&\x20status.isLicensedBuild\x20&&\x20pinDisplay()\x20!==\x20\x27—\x27\x22><div\x20class=\x22lp-pin-box\x22><div\x20class=\x22lp-pin-label\x22>Node\x20PIN\x20—\x20share\x20this\x20with\x20your\x20license\x20provider</div><div\x20style=\x22display:flex;\x20align-items:center;\x20gap:10px;\x22><div\x20class=\x22lp-pin-value\x22>{{\x20pinDisplay()\x20}}</div><button\x20class=\x22lp-btn\x22\x20style=\x22font-size:11px;\x20padding:3px\x208px;\x22\x20@click=\x22copyPin()\x22>Copy</button></div><div\x20style=\x22font-size:11px;\x20opacity:.55;\x20margin-top:6px;\x22>How\x20activation\x20works:\x20paste\x20your\x20<strong>license\x20blob</strong>\x20below\x20→\x20vendor\x20signs\x20an\x20activation\x20token\x20bound\x20to\x20this\x20PIN\x20→\x20paste\x20the\x20activation\x20token\x20to\x20enable\x20the\x20license.</div></div></if><if\x20:=\x22status\x20&&\x20status.isLicensedBuild\x20&&\x20status.buildFingerprint\x22><div\x20class=\x22lp-pin-box\x22\x20style=\x22margin-top:-12px;\x22><div\x20class=\x22lp-pin-label\x22>Build\x20signing-key\x20fingerprint</div><div\x20style=\x22font-family:monospace;\x20font-size:12px;\x22>{{\x20status.buildFingerprint\x20}}</div><div\x20style=\x22font-size:11px;\x20opacity:.55;\x20margin-top:6px;\x22>Your\x20license\x20must\x20be\x20signed\x20by\x20the\x20private\x20key\x20paired\x20with\x20this\x20fingerprint.\x20If\x20you\x20see\x20<em>\x22License\x20signature\x20invalid\x22</em>,\x20the\x20license\x20was\x20signed\x20by\x20a\x20different\x20keypair\x20than\x20the\x20one\x20this\x20build\x20uses.</div></div></if><if\x20:=\x22status\x20&&\x20!status.isLicensedBuild\x22><div\x20class=\x22lp-pin-box\x22\x20style=\x22opacity:.6\x22><div\x20class=\x22lp-pin-label\x22>Development\x20build\x20—\x20license\x20enforcement\x20disabled</div><div\x20style=\x22font-size:12px;\x20margin-top:4px;\x22>Set\x20<code>OKDB_LICENSED_BUILD=true</code>\x20in\x20<code>.env</code>\x20to\x20enable\x20enforcement\x20in\x20dev,\x20or\x20run\x20<code>npm\x20run\x20build:prod</code>\x20for\x20a\x20production\x20build.</div></div></if></if><if\x20:=\x22status\x20&&\x20status.usage\x20&&\x20status.effective\x22><div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:10px;\x20margin-bottom:20px;\x22><if\x20:=\x22status.effective.limits.maxWrites\x22><div><div\x20style=\x22display:flex;\x20justify-content:space-between;\x20font-size:11px;\x20opacity:.7;\x20margin-bottom:4px;\x22><span>Writes</span>\x20<span\x20style=\x22font-family:monospace;\x22>{{\x20formatNum(status.usage.writes)\x20}}\x20/\x20{{\x20formatNum(status.effective.limits.maxWrites)\x20}}</span></div><div\x20style=\x22height:6px;\x20background:var(--okdb-app-surface-2,rgba(255,255,255,.06));\x20border-radius:3px;\x20overflow:hidden;\x22><div\x20:style=\x22\x27height:100%;width:\x27\x20+\x20usagePct(status.usage.writes,\x20status.effective.limits.maxWrites)\x20+\x20\x27%;background:\x27\x20+\x20usageBarColor(usagePct(status.usage.writes,\x20status.effective.limits.maxWrites))\x20+\x20\x27;transition:width\x20.2s;\x27\x22/></div></div></if><if\x20:=\x22status.effective.limits.envs\x22><div><div\x20style=\x22display:flex;\x20justify-content:space-between;\x20font-size:11px;\x20opacity:.7;\x20margin-bottom:4px;\x22><span>Environments</span>\x20<span\x20style=\x22font-family:monospace;\x22>{{\x20status.usage.envs\x20}}\x20/\x20{{\x20status.effective.limits.envs\x20}}</span></div><div\x20style=\x22height:6px;\x20background:var(--okdb-app-surface-2,rgba(255,255,255,.06));\x20border-radius:3px;\x20overflow:hidden;\x22><div\x20:style=\x22\x27height:100%;width:\x27\x20+\x20usagePct(status.usage.envs,\x20status.effective.limits.envs)\x20+\x20\x27%;background:\x27\x20+\x20usageBarColor(usagePct(status.usage.envs,\x20status.effective.limits.envs))\x20+\x20\x27;transition:width\x20.2s;\x27\x22/></div></div></if></div></if><if\x20:=\x22showAddForm\x22><div\x20class=\x22lp-add-form\x22><div\x20style=\x22font-size:13px;\x20font-weight:600;\x22>Add\x20License\x20or\x20Activation\x20Token</div><div\x20style=\x22font-size:11px;\x20opacity:.6;\x22>Paste\x20either\x20a\x20<strong>license\x20blob</strong>\x20(issued\x20by\x20your\x20vendor)\x20or\x20an\x20<strong>activation\x20token</strong>\x20(vendor\x27s\x20response\x20to\x20your\x20PIN).\x20The\x20server\x20detects\x20which\x20it\x20is.</div><div><textarea\x20:value=\x22addInput\x22\x20@input=\x22addInput\x20=\x20$event.target.value\x22\x20rows=\x226\x22\x20placeholder=\x22Paste\x20license\x20blob\x20or\x20activation\x20token\x20here…\x22\x20style=\x22width:100%;\x20font-family:monospace;\x20font-size:11px;\x20resize:vertical;\x22/></div><if\x20:=\x22addError\x22><div\x20style=\x22font-size:12px;\x20color:var(--okdb-danger);\x20background:var(--okdb-danger-soft-bg,rgba(245,101,101,.08));\x20border:1px\x20solid\x20var(--okdb-danger-soft-border,rgba(245,101,101,.2));\x20border-radius:6px;\x20padding:8px\x2012px;\x22>{{\x20addError\x20}}</div></if><div\x20style=\x22display:flex;\x20gap:8px;\x20justify-content:flex-end;\x22><button\x20class=\x22lp-btn\x22\x20@click=\x22cancelAddForm()\x22>Cancel</button>\x20<button\x20class=\x22lp-btn\x20lp-btn--primary\x22\x20@click=\x22submitAdd()\x22\x20:disabled=\x22!addInput.trim()\x20||\x20addLoading\x22>{{\x20addLoading\x20?\x20\x27Submitting…\x27\x20:\x20\x27Submit\x27\x20}}</button></div></div></if><if\x20:=\x22status\x20&&\x20status.effective\x22><div\x20style=\x22margin-top:20px;\x20font-size:10px;\x20text-transform:uppercase;\x20letter-spacing:.06em;\x20opacity:.45;\x20margin-bottom:8px;\x22>Current\x20capabilities</div><table\x20class=\x22lp-table\x22\x20style=\x22margin-bottom:16px;\x22><thead><tr><th>Feature</th><th>Status</th><th>Limit</th></tr></thead><tbody><tr><td>Sync</td><td><span\x20:style=\x22status.effective.features.sync\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.sync\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td\x20style=\x22font-family:monospace;\x22>{{\x20status.effective.limits.syncPeers\x20?\x20\x27max\x20\x27\x20+\x20status.effective.limits.syncPeers\x20+\x20\x27\x20peers\x27\x20:\x20(status.effective.features.sync\x20?\x20\x27unlimited\x27\x20:\x20\x27—\x27)\x20}}</td></tr><tr><td>Embeddings</td><td><span\x20:style=\x22status.effective.features.embeddings\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.embeddings\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Engines</td><td><span\x20:style=\x22status.effective.features.engines\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.engines\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Full-text\x20search</td><td><span\x20:style=\x22status.effective.features.fts\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.fts\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Time\x20machine</td><td><span\x20:style=\x22status.effective.features.timeMachine\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.timeMachine\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Views</td><td><span\x20:style=\x22status.effective.features.views\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.views\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>MCP</td><td><span\x20:style=\x22status.effective.features.mcp\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.mcp\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Files</td><td><span\x20:style=\x22status.effective.features.files\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.files\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Environments</td><td><span\x20style=\x22color:var(--okdb-success,#38a169)\x22>✓\x20enabled</span></td><td\x20style=\x22font-family:monospace;\x22>{{\x20status.effective.limits.envs\x20?\x20\x27max\x20\x27\x20+\x20status.effective.limits.envs\x20:\x20\x27unlimited\x27\x20}}</td></tr><tr><td>Types\x20per\x20env</td><td><span\x20style=\x22color:var(--okdb-success,#38a169)\x22>✓\x20enabled</span></td><td\x20style=\x22font-family:monospace;\x22>{{\x20status.effective.limits.typesPerEnv\x20?\x20\x27max\x20\x27\x20+\x20status.effective.limits.typesPerEnv\x20:\x20\x27unlimited\x27\x20}}</td></tr><tr><td>Total\x20writes</td><td><span\x20style=\x22color:var(--okdb-success,#38a169)\x22>✓\x20enabled</span></td><td\x20style=\x22font-family:monospace;\x22>{{\x20status.effective.limits.maxWrites\x20?\x20(status.effective.limits.maxWrites).toLocaleString()\x20+\x20\x27\x20max\x27\x20:\x20\x27unlimited\x27\x20}}</td></tr></tbody></table></if><if\x20:=\x22status\x20&&\x20status.licenses\x20&&\x20status.licenses.length\x20>\x200\x22><div\x20class=\x22lp-lic-header\x22><span>ID</span><span>Licensee</span><span>Expires</span><span>Status</span><span>Features</span><span>Actions</span></div><each\x20:of=\x22status.licenses\x22\x20let:lic><div\x20class=\x22lp-lic-row\x22><div\x20class=\x22lp-lic-cells\x22><span\x20style=\x22font-family:monospace;\x20opacity:.7;\x20font-size:11px;\x22>{{\x20shortId(lic.id)\x20}}</span>\x20<span\x20style=\x22font-size:12px;\x22>{{\x20lic.licensee\x20||\x20\x27—\x27\x20}}</span>\x20<span\x20style=\x22font-family:monospace;\x20font-size:12px;\x22>{{\x20formatDate(lic.expiresAt)\x20}}</span>\x20<span><span\x20:style=\x22badgeStyle(lic.status)\x22>{{\x20lic.status\x20}}</span></span>\x20<span\x20style=\x22opacity:.7;\x20font-size:12px;\x22>{{\x20featureSummary(lic.features)\x20}}</span><div\x20style=\x22display:flex;\x20gap:6px;\x20flex-wrap:wrap;\x20align-items:center;\x22><if\x20:=\x22lic.status\x20===\x20\x27pending\x27\x20||\x20lic.status\x20===\x20\x27wrong_node\x27\x22><button\x20class=\x22lp-btn\x22\x20style=\x22font-size:11px;\x22\x20@click=\x22openActivate(lic.id)\x22>Activate</button></if><button\x20class=\x22lp-btn\x20lp-btn--danger\x22\x20style=\x22font-size:11px;\x22\x20@click=\x22removeLicense(lic.id)\x22>Remove</button></div></div><if\x20:=\x22activatingId\x20===\x20lic.id\x22><div\x20class=\x22lp-activate-row\x22><div\x20style=\x22font-size:11px;\x20opacity:.7;\x22>PIN\x20for\x20this\x20license:\x20<span\x20style=\x22font-family:monospace;\x20font-weight:600;\x22>{{\x20licensePin(lic)\x20}}</span></div><textarea\x20:value=\x22activateToken\x22\x20@input=\x22activateToken\x20=\x20$event.target.value\x22\x20rows=\x223\x22\x20placeholder=\x22Paste\x20activation\x20token…\x22\x20style=\x22width:100%;\x20font-family:monospace;\x20font-size:11px;\x20resize:vertical;\x22/><if\x20:=\x22activateError\x22><div\x20style=\x22font-size:11px;\x20color:var(--okdb-danger);\x22>{{\x20activateError\x20}}</div></if><div\x20style=\x22display:flex;\x20gap:6px;\x20justify-content:flex-end;\x22><button\x20class=\x22lp-btn\x22\x20style=\x22font-size:11px;\x22\x20@click=\x22cancelActivate()\x22>Cancel</button>\x20<button\x20class=\x22lp-btn\x20lp-btn--primary\x22\x20style=\x22font-size:11px;\x22\x20@click=\x22submitActivate(lic.id)\x22\x20:disabled=\x22!activateToken.trim()\x20||\x20activateLoading\x22>{{\x20activateLoading\x20?\x20\x27Activating…\x27\x20:\x20\x27Activate\x27\x20}}</button></div></div></if></div></each></if><if\x20:=\x22error\x22><div\x20style=\x22font-size:13px;\x20color:var(--okdb-danger);\x20padding:12px\x200;\x22>{{\x20error\x20}}</div></if></if></div>','licensee','clipboard','find','addLoading','catch','var(--okdb-warn,#edc94b)','join','addInput','loading','unavailable','load','Remove\x20this\x20license?','length','entries','1383150kxJknP','slice','12615OzcpRf','1882980dTGOQN','json','isArray','/activate','none','font-size:10px;padding:2px\x207px;border-radius:4px;border:1px\x20solid;font-weight:500;text-transform:uppercase;letter-spacing:.04em;','toISOString','active','$ok','showAddForm','expiresAt','DELETE','success','map','string','stringify','1477416WSTCRC','activateToken','558768Sfimfp','pin','result','828PYgTKh','addError','shared','/status','min','status','pinDisplay','var(--okdb-danger,#f56565)','550734oocFIo','629198MHkCRy','activateError','ADMIN_API','POST','toast','Failed\x20to\x20load\x20license\x20status','License\x20removed','error','licenses','Copy\x20failed','var(--okdb-success,#48bb78)','trim','data','replace','Remove\x20failed','message','background:rgba(237,137,54,.1);border-color:rgba(237,137,54,.3);color:#ed8936;','1DDwbFY'];_0x4efc=function(){return _0x5c21f7;};return _0x4efc();}function _0x3fec(_0x29d8f6,_0x51c48e){_0x29d8f6=_0x29d8f6-0x179;const _0x4efc23=_0x4efc();let _0x3fec7a=_0x4efc23[_0x29d8f6];return _0x3fec7a;}export default{'tag':'license-panel','context':_0x39eb06=>({'status':null,'loading':!0x0,'error':null,'unavailable':!0x1,'showAddForm':!0x1,'addInput':'','addLoading':!0x1,'addError':null,'activatingId':null,'activateToken':'','activateLoading':!0x1,'activateError':null,async 'load'(){const _0x43a95a=_0xcbae25;this[_0x43a95a(0x195)]=!0x0,this[_0x43a95a(0x17a)]=null,this[_0x43a95a(0x196)]=!0x1;try{const _0x56bcbe=await fetch(t()+_0x43a95a(0x1b6));if(!_0x56bcbe['ok']){const _0x200040=await _0x56bcbe['json']()[_0x43a95a(0x191)](()=>({}));throw new Error(_0x200040?.['error']?.['message']||_0x200040?.['error']||_0x43a95a(0x1c1));}const _0x15c50a=await _0x56bcbe[_0x43a95a(0x19f)]();this[_0x43a95a(0x1b8)]=_0x15c50a[_0x43a95a(0x17f)]??_0x15c50a[_0x43a95a(0x1b2)]??_0x15c50a;}catch(_0x5cb205){this[_0x43a95a(0x17a)]=_0x5cb205?.[_0x43a95a(0x182)]||String(_0x5cb205);}finally{this[_0x43a95a(0x195)]=!0x1;}},'openAddForm'(){const _0x533b9b=_0xcbae25;this[_0x533b9b(0x1a7)]=!0x0,this['addInput']='',this['addError']=null;},'cancelAddForm'(){const _0x1c6bd6=_0xcbae25;this[_0x1c6bd6(0x1a7)]=!0x1,this[_0x1c6bd6(0x1b4)]=null;},async 'submitAdd'(){const _0x40e16a=_0xcbae25;if(this[_0x40e16a(0x194)]['trim']()&&!this['addLoading']){this[_0x40e16a(0x190)]=!0x0,this[_0x40e16a(0x1b4)]=null;try{const _0x266072=await fetch(''+t(),{'method':_0x40e16a(0x1bf),'headers':{'Content-Type':_0x40e16a(0x188)},'body':JSON[_0x40e16a(0x1ad)]({'input':this[_0x40e16a(0x194)][_0x40e16a(0x17e)]()})}),_0x5ce6a8=await _0x266072[_0x40e16a(0x19f)]();if(!_0x266072['ok']){const _0x3da8c2=_0x5ce6a8?.['error']?.[_0x40e16a(0x182)]||_0x5ce6a8?.[_0x40e16a(0x17a)]||_0x5ce6a8?.[_0x40e16a(0x17f)]?.[_0x40e16a(0x17a)]||_0x5ce6a8?.[_0x40e16a(0x1b2)]?.[_0x40e16a(0x17a)]||'Failed\x20to\x20add\x20license';throw new Error('string'==typeof _0x3da8c2?_0x3da8c2:JSON[_0x40e16a(0x1ad)](_0x3da8c2));}this[_0x40e16a(0x1a7)]=!0x1,await this['load']();}catch(_0x2b6cb1){this[_0x40e16a(0x1b4)]=_0x2b6cb1?.['message']||String(_0x2b6cb1);}finally{this[_0x40e16a(0x190)]=!0x1;}}},'copyPin'(){const _0xebc857=_0xcbae25,_0x443bab=this[_0xebc857(0x1b9)]();_0x443bab&&'—'!==_0x443bab&&navigator[_0xebc857(0x18e)]?.[_0xebc857(0x18a)]&&navigator[_0xebc857(0x18e)][_0xebc857(0x18a)](_0x443bab)['then'](()=>_0x39eb06[_0xebc857(0x1a6)][_0xebc857(0x1b5)]?.['toast']?.['success']?.('PIN\x20copied'),()=>_0x39eb06[_0xebc857(0x1a6)][_0xebc857(0x1b5)]?.[_0xebc857(0x1c0)]?.[_0xebc857(0x17a)]?.(_0xebc857(0x17c)));},'usagePct':(_0x1a5cda,_0x5b0ff1)=>_0x5b0ff1&&0x0!==_0x5b0ff1?Math[_0xcbae25(0x1b7)](0x64,Math['round'](_0x1a5cda/_0x5b0ff1*0x64)):0x0,'usageBarColor':_0x422ab3=>_0x422ab3>=0x5a?_0xcbae25(0x1ba):_0x422ab3>=0x4b?_0xcbae25(0x192):_0xcbae25(0x17d),'formatNum':_0x3d20b2=>null==_0x3d20b2?'—':Number(_0x3d20b2)['toLocaleString'](),'openActivate'(_0x41e95c){const _0x49b76d=_0xcbae25;this[_0x49b76d(0x186)]=_0x41e95c,this[_0x49b76d(0x1af)]='',this[_0x49b76d(0x1bd)]=null;},'cancelActivate'(){const _0x55572c=_0xcbae25;this[_0x55572c(0x186)]=null,this[_0x55572c(0x1bd)]=null;},async 'submitActivate'(_0x316407){const _0x2c6dfb=_0xcbae25;if(this[_0x2c6dfb(0x1af)][_0x2c6dfb(0x17e)]()&&!this['activateLoading']){this['activateLoading']=!0x0,this[_0x2c6dfb(0x1bd)]=null;try{const _0x1e6eae=await fetch(t()+'/'+encodeURIComponent(_0x316407)+_0x2c6dfb(0x1a1),{'method':_0x2c6dfb(0x1bf),'headers':{'Content-Type':_0x2c6dfb(0x188)},'body':JSON[_0x2c6dfb(0x1ad)]({'activation':this['activateToken'][_0x2c6dfb(0x17e)]()})}),_0x3abc72=await _0x1e6eae[_0x2c6dfb(0x19f)]();if(!_0x1e6eae['ok']){const _0x16a09=_0x3abc72?.[_0x2c6dfb(0x17a)]?.[_0x2c6dfb(0x182)]||_0x3abc72?.[_0x2c6dfb(0x17a)]||_0x3abc72?.[_0x2c6dfb(0x17f)]?.[_0x2c6dfb(0x17a)]||_0x3abc72?.[_0x2c6dfb(0x1b2)]?.[_0x2c6dfb(0x17a)]||_0x2c6dfb(0x189);throw new Error('string'==typeof _0x16a09?_0x16a09:JSON[_0x2c6dfb(0x1ad)](_0x16a09));}this[_0x2c6dfb(0x186)]=null,await this[_0x2c6dfb(0x197)]();}catch(_0x568404){this[_0x2c6dfb(0x1bd)]=_0x568404?.['message']||String(_0x568404);}finally{this['activateLoading']=!0x1;}}},async 'removeLicense'(_0x37d843){const _0x3e16f8=_0xcbae25;if(confirm(_0x3e16f8(0x198)))try{const _0x13b621=await fetch(t()+'/'+encodeURIComponent(_0x37d843),{'method':_0x3e16f8(0x1a9)}),_0x1f9b5f=await _0x13b621[_0x3e16f8(0x19f)]();if(!_0x13b621['ok']){const _0x4724e8=_0x1f9b5f?.['error']?.['message']||_0x1f9b5f?.[_0x3e16f8(0x17a)]||_0x1f9b5f?.[_0x3e16f8(0x17f)]?.[_0x3e16f8(0x17a)]||_0x1f9b5f?.[_0x3e16f8(0x1b2)]?.[_0x3e16f8(0x17a)]||_0x3e16f8(0x181);throw new Error(_0x3e16f8(0x1ac)==typeof _0x4724e8?_0x4724e8:JSON['stringify'](_0x4724e8));}_0x39eb06[_0x3e16f8(0x1a6)][_0x3e16f8(0x1b5)]?.[_0x3e16f8(0x1c0)]?.[_0x3e16f8(0x1aa)]?.(_0x3e16f8(0x179)),await this[_0x3e16f8(0x197)]();}catch(_0x183d8e){_0x39eb06[_0x3e16f8(0x1a6)][_0x3e16f8(0x1b5)]?.['toast']?.[_0x3e16f8(0x17a)]?.(_0x183d8e?.[_0x3e16f8(0x182)]||_0x3e16f8(0x181));}},'formatDate':_0x4ca957=>_0x4ca957?new Date(_0x4ca957)[_0xcbae25(0x1a4)]()[_0xcbae25(0x19c)](0x0,0xa):'—','shortId':_0x331580=>_0x331580?_0x331580[_0xcbae25(0x19c)](0x0,0x8)+'…':'—','featureSummary'(_0x4280c8){const _0x1e8132=_0xcbae25;if(!_0x4280c8)return'—';const _0x3acc1a=Object[_0x1e8132(0x19a)](_0x4280c8)[_0x1e8132(0x18b)](([,_0x3d1644])=>_0x3d1644)['map'](([_0x17ff4a])=>_0x17ff4a);return _0x3acc1a[_0x1e8132(0x199)]?_0x3acc1a[0x0]+(_0x3acc1a[_0x1e8132(0x199)]>0x1?'\x20+'+(_0x3acc1a[_0x1e8132(0x199)]-0x1):''):_0x1e8132(0x1a2);},'pinDisplay'(){const _0x48846d=_0xcbae25,_0x337db2=this['status']?.[_0x48846d(0x1b1)];return _0x337db2?Array['isArray'](_0x337db2)?0x0===_0x337db2[_0x48846d(0x199)]?'—':_0x337db2[_0x48846d(0x1ab)](_0x5ed190=>'string'==typeof _0x5ed190?_0x5ed190:_0x5ed190?.[_0x48846d(0x1b1)])['filter'](Boolean)[_0x48846d(0x193)](',\x20')||'—':_0x337db2:'—';},'hasActive'(){return(this['status']?.['activeCount']??0x0)>0x0;},'activeLicensee'(){const _0x5450c9=_0xcbae25;return this[_0x5450c9(0x1b8)]?.[_0x5450c9(0x17b)]?.[_0x5450c9(0x18f)](_0x47287c=>'active'===_0x47287c[_0x5450c9(0x1b8)])?.[_0x5450c9(0x18d)]??null;},'activeExpiry'(){const _0x6467fc=_0xcbae25;return this[_0x6467fc(0x1b8)]?.[_0x6467fc(0x17b)]?.['find'](_0xca990=>_0x6467fc(0x1a5)===_0xca990['status'])?.[_0x6467fc(0x1a8)]??null;},'badgeStyle':_0x32506d=>({'active':'background:var(--okdb-success-soft-bg,rgba(72,187,120,.12));border-color:var(--okdb-success-soft-border,rgba(72,187,120,.25));color:var(--okdb-success,#48bb78);','expired':'background:var(--okdb-danger-soft-bg,rgba(245,101,101,.1));border-color:var(--okdb-danger-soft-border,rgba(245,101,101,.25));color:var(--okdb-danger,#f56565);','invalid':'background:var(--okdb-danger-soft-bg,rgba(245,101,101,.1));border-color:var(--okdb-danger-soft-border,rgba(245,101,101,.25));color:var(--okdb-danger,#f56565);','pending':'background:rgba(237,201,75,.1);border-color:rgba(237,201,75,.3);color:#edc94b;','wrong_node':_0xcbae25(0x183)}[_0x32506d]||'')+_0xcbae25(0x1a3),'licensePin'(_0x341cee){const _0x1effa0=_0xcbae25,_0x57edf8=this['status']?.[_0x1effa0(0x1b1)];if(Array[_0x1effa0(0x1a0)](_0x57edf8)){const _0xd58ac=_0x57edf8['find'](_0x1275b5=>_0x1275b5?.[_0x1effa0(0x185)]===_0x341cee?.['id']);if(_0xd58ac?.[_0x1effa0(0x1b1)])return _0xd58ac[_0x1effa0(0x1b1)];}return'string'==typeof _0x341cee?.[_0x1effa0(0x1b1)]?_0x341cee[_0x1effa0(0x1b1)]:'—';}}),'mount'(){this['load']();},'style':'license-panel{display:block;padding:24px;max-width:860px}.lp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.lp-title{font-size:18px;font-weight:600}.lp-status-banner{padding:12px\x2016px;border-radius:10px;border:1px\x20solid;font-size:13px;margin-bottom:20px;display:flex;align-items:center;gap:10px}.lp-status-banner--ok{background:var(--okdb-success-soft-bg,\x20rgba(72,187,120,.08));border-color:var(--okdb-success-soft-border,\x20rgba(72,187,120,.2));color:var(--okdb-success,\x20#48bb78)}.lp-status-banner--warn{background:var(--okdb-danger-soft-bg,\x20rgba(245,101,101,.08));border-color:var(--okdb-danger-soft-border,\x20rgba(245,101,101,.2));color:var(--okdb-danger,\x20#f56565)}.lp-pin-box{background:var(--okdb-app-surface-2,\x20rgba(255,255,255,.04));border:1px\x20solid\x20var(--okdb-app-border);border-radius:8px;padding:12px\x2016px;margin-bottom:20px;font-size:12px}.lp-pin-label{opacity:.5;text-transform:uppercase;letter-spacing:.06em;font-size:10px;margin-bottom:4px}.lp-pin-value{font-family:monospace;font-size:15px;font-weight:600;letter-spacing:.08em}.lp-lic-cells,.lp-lic-header{display:grid;grid-template-columns:90px\x201fr\x2090px\x2080px\x2080px\x20auto;gap:0\x2010px;align-items:center;padding:6px\x2010px}.lp-lic-header{font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.45}.lp-lic-header,.lp-lic-row{border-bottom:1px\x20solid\x20var(--okdb-app-border)}.lp-lic-row:last-child{border-bottom:none}.lp-add-form{background:var(--okdb-app-surface-2,\x20rgba(255,255,255,.03));border:1px\x20solid\x20var(--okdb-app-border);border-radius:10px;padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.lp-form-label{font-size:10px;opacity:.5;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.lp-activate-row,.lp-btn{border:1px\x20solid\x20var(--okdb-app-border)}.lp-activate-row{background:var(--okdb-app-surface-2,\x20rgba(255,255,255,.03));border-radius:8px;padding:10px\x2012px;display:flex;flex-direction:column;gap:8px;margin-top:4px}.lp-btn{padding:5px\x2012px;border-radius:6px;background:0\x200;color:var(--okdb-app-fg-muted);font-size:12px;font-weight:500;cursor:pointer;transition:background\x20.1s,color\x20.1s}.lp-btn:hover{background:var(--okdb-app-surface-2);color:var(--okdb-app-fg-strong)}.lp-btn--primary{background:var(--okdb-sky-soft-bg,\x20rgba(99,179,237,.1));border-color:var(--okdb-sky-soft-border,\x20rgba(99,179,237,.25));color:var(--okdb-sky,\x20#63b3ed)}.lp-btn--danger{background:var(--okdb-danger-soft-bg,\x20rgba(245,101,101,.08));border-color:var(--okdb-danger-soft-border,\x20rgba(245,101,101,.2));color:var(--okdb-danger,\x20#f56565)}','template':_0xcbae25(0x18c)};
1
+ function _0x1102(_0x47d0a9,_0x1e09a4){_0x47d0a9=_0x47d0a9-0x19b;const _0x89e895=_0x89e8();let _0x11024d=_0x89e895[_0x47d0a9];return _0x11024d;}function _0x89e8(){const _0x36f4d1=['loading','data','toast','Remove\x20this\x20license?','/status','Activation\x20failed','activatingId','application/json','Copy\x20failed','addError','licenses','49733JaxRPx','min','writeText','success','POST','3aDVfgb','License\x20removed','isArray','addInput','171092INwyFE','catch','license-panel{display:block;padding:24px;max-width:860px}.lp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.lp-title{font-size:18px;font-weight:600}.lp-status-banner{padding:12px\x2016px;border-radius:10px;border:1px\x20solid;font-size:13px;margin-bottom:20px;display:flex;align-items:center;gap:10px}.lp-status-banner--ok{background:var(--okdb-success-soft-bg,\x20rgba(72,187,120,.08));border-color:var(--okdb-success-soft-border,\x20rgba(72,187,120,.2));color:var(--okdb-success,\x20#48bb78)}.lp-status-banner--warn{background:var(--okdb-danger-soft-bg,\x20rgba(245,101,101,.08));border-color:var(--okdb-danger-soft-border,\x20rgba(245,101,101,.2));color:var(--okdb-danger,\x20#f56565)}.lp-pin-box{background:var(--okdb-app-surface-2,\x20rgba(255,255,255,.04));border:1px\x20solid\x20var(--okdb-app-border);border-radius:8px;padding:12px\x2016px;margin-bottom:20px;font-size:12px}.lp-pin-label{opacity:.5;text-transform:uppercase;letter-spacing:.06em;font-size:10px;margin-bottom:4px}.lp-pin-value{font-family:monospace;font-size:15px;font-weight:600;letter-spacing:.08em}.lp-lic-cells,.lp-lic-header{display:grid;grid-template-columns:90px\x201fr\x2090px\x2080px\x2080px\x20auto;gap:0\x2010px;align-items:center;padding:6px\x2010px}.lp-lic-header{font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.45}.lp-lic-header,.lp-lic-row{border-bottom:1px\x20solid\x20var(--okdb-app-border)}.lp-lic-row:last-child{border-bottom:none}.lp-add-form{background:var(--okdb-app-surface-2,\x20rgba(255,255,255,.03));border:1px\x20solid\x20var(--okdb-app-border);border-radius:10px;padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.lp-form-label{font-size:10px;opacity:.5;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.lp-activate-row,.lp-btn{border:1px\x20solid\x20var(--okdb-app-border)}.lp-activate-row{background:var(--okdb-app-surface-2,\x20rgba(255,255,255,.03));border-radius:8px;padding:10px\x2012px;display:flex;flex-direction:column;gap:8px;margin-top:4px}.lp-btn{padding:5px\x2012px;border-radius:6px;background:0\x200;color:var(--okdb-app-fg-muted);font-size:12px;font-weight:500;cursor:pointer;transition:background\x20.1s,color\x20.1s}.lp-btn:hover{background:var(--okdb-app-surface-2);color:var(--okdb-app-fg-strong)}.lp-btn--primary{background:var(--okdb-sky-soft-bg,\x20rgba(99,179,237,.1));border-color:var(--okdb-sky-soft-border,\x20rgba(99,179,237,.25));color:var(--okdb-sky,\x20#63b3ed)}.lp-btn--danger{background:var(--okdb-danger-soft-bg,\x20rgba(245,101,101,.08));border-color:var(--okdb-danger-soft-border,\x20rgba(245,101,101,.2));color:var(--okdb-danger,\x20#f56565)}','shared','activateLoading','905728jqulyd','status','string','slice','pin','background:rgba(237,137,54,.1);border-color:rgba(237,137,54,.3);color:#ed8936;','addLoading','pinDisplay','740640ZoUWtM','replace','915089MEgORL','result','666160tokYGT','license-panel','activeCount','expiresAt','find','var(--okdb-success,#48bb78)','font-size:10px;padding:2px\x207px;border-radius:4px;border:1px\x20solid;font-weight:500;text-transform:uppercase;letter-spacing:.04em;','error','then','activateError','$ok','Remove\x20failed','background:var(--okdb-danger-soft-bg,rgba(245,101,101,.1));border-color:var(--okdb-danger-soft-border,rgba(245,101,101,.25));color:var(--okdb-danger,#f56565);','length','stringify','trim','json','clipboard','join','Failed\x20to\x20load\x20license\x20status','toISOString','activateToken','background:var(--okdb-success-soft-bg,rgba(72,187,120,.12));border-color:var(--okdb-success-soft-border,rgba(72,187,120,.25));color:var(--okdb-success,#48bb78);','var(--okdb-danger,#f56565)','map','var(--okdb-warn,#edc94b)','filter','licenseId','none','active','background:rgba(237,201,75,.1);border-color:rgba(237,201,75,.3);color:#edc94b;','message','DELETE','load','1379478vxyKAz','showAddForm','toLocaleString','Failed\x20to\x20add\x20license','entries'];_0x89e8=function(){return _0x36f4d1;};return _0x89e8();}const _0x1b2d43=_0x1102;(function(_0x5c1974,_0x242828){const _0x3eb2d6=_0x1102,_0x356567=_0x5c1974();while(!![]){try{const _0x3e992d=-parseInt(_0x3eb2d6(0x1c6))/0x1+-parseInt(_0x3eb2d6(0x1cf))/0x2*(-parseInt(_0x3eb2d6(0x1cb))/0x3)+-parseInt(_0x3eb2d6(0x1d4))/0x4+parseInt(_0x3eb2d6(0x1dc))/0x5+parseInt(_0x3eb2d6(0x1b6))/0x6+-parseInt(_0x3eb2d6(0x1de))/0x7+parseInt(_0x3eb2d6(0x1e0))/0x8;if(_0x3e992d===_0x242828)break;else _0x356567['push'](_0x356567['shift']());}catch(_0x53f695){_0x356567['push'](_0x356567['shift']());}}}(_0x89e8,0x222bd));const t=()=>__ENV__['ADMIN_API'][_0x1b2d43(0x1dd)](/\/api$/,'')+'/license';export default{'tag':_0x1b2d43(0x1e1),'context':_0x25f441=>({'status':null,'loading':!0x0,'error':null,'unavailable':!0x1,'showAddForm':!0x1,'addInput':'','addLoading':!0x1,'addError':null,'activatingId':null,'activateToken':'','activateLoading':!0x1,'activateError':null,async 'load'(){const _0x1c74f6=_0x1b2d43;this[_0x1c74f6(0x1bb)]=!0x0,this[_0x1c74f6(0x19b)]=null,this['unavailable']=!0x1;try{const _0x575f75=await fetch(t()+_0x1c74f6(0x1bf));if(!_0x575f75['ok']){const _0x230ab9=await _0x575f75[_0x1c74f6(0x1a4)]()[_0x1c74f6(0x1d0)](()=>({}));throw new Error(_0x230ab9?.['error']?.[_0x1c74f6(0x1b3)]||_0x230ab9?.['error']||_0x1c74f6(0x1a7));}const _0x77cac3=await _0x575f75['json']();this[_0x1c74f6(0x1d5)]=_0x77cac3['data']??_0x77cac3[_0x1c74f6(0x1df)]??_0x77cac3;}catch(_0x3f0759){this[_0x1c74f6(0x19b)]=_0x3f0759?.['message']||String(_0x3f0759);}finally{this[_0x1c74f6(0x1bb)]=!0x1;}},'openAddForm'(){const _0xfad11c=_0x1b2d43;this[_0xfad11c(0x1b7)]=!0x0,this['addInput']='',this[_0xfad11c(0x1c4)]=null;},'cancelAddForm'(){const _0x118cf5=_0x1b2d43;this[_0x118cf5(0x1b7)]=!0x1,this[_0x118cf5(0x1c4)]=null;},async 'submitAdd'(){const _0x55debf=_0x1b2d43;if(this[_0x55debf(0x1ce)][_0x55debf(0x1a3)]()&&!this[_0x55debf(0x1da)]){this[_0x55debf(0x1da)]=!0x0,this[_0x55debf(0x1c4)]=null;try{const _0x565eab=await fetch(''+t(),{'method':_0x55debf(0x1ca),'headers':{'Content-Type':_0x55debf(0x1c2)},'body':JSON['stringify']({'input':this[_0x55debf(0x1ce)][_0x55debf(0x1a3)]()})}),_0x23b69e=await _0x565eab[_0x55debf(0x1a4)]();if(!_0x565eab['ok']){const _0x3748d4=_0x23b69e?.[_0x55debf(0x19b)]?.['message']||_0x23b69e?.['error']||_0x23b69e?.[_0x55debf(0x1bc)]?.[_0x55debf(0x19b)]||_0x23b69e?.[_0x55debf(0x1df)]?.[_0x55debf(0x19b)]||_0x55debf(0x1b9);throw new Error('string'==typeof _0x3748d4?_0x3748d4:JSON['stringify'](_0x3748d4));}this[_0x55debf(0x1b7)]=!0x1,await this[_0x55debf(0x1b5)]();}catch(_0x20f2df){this[_0x55debf(0x1c4)]=_0x20f2df?.[_0x55debf(0x1b3)]||String(_0x20f2df);}finally{this['addLoading']=!0x1;}}},'copyPin'(){const _0x42cd05=_0x1b2d43,_0x320794=this[_0x42cd05(0x1db)]();_0x320794&&'—'!==_0x320794&&navigator[_0x42cd05(0x1a5)]?.[_0x42cd05(0x1c8)]&&navigator[_0x42cd05(0x1a5)][_0x42cd05(0x1c8)](_0x320794)[_0x42cd05(0x19c)](()=>_0x25f441[_0x42cd05(0x19e)][_0x42cd05(0x1d2)]?.[_0x42cd05(0x1bd)]?.['success']?.('PIN\x20copied'),()=>_0x25f441[_0x42cd05(0x19e)][_0x42cd05(0x1d2)]?.[_0x42cd05(0x1bd)]?.['error']?.(_0x42cd05(0x1c3)));},'usagePct':(_0x48d3a7,_0x3a0c21)=>_0x3a0c21&&0x0!==_0x3a0c21?Math[_0x1b2d43(0x1c7)](0x64,Math['round'](_0x48d3a7/_0x3a0c21*0x64)):0x0,'usageBarColor':_0x453c0b=>_0x453c0b>=0x5a?_0x1b2d43(0x1ab):_0x453c0b>=0x4b?_0x1b2d43(0x1ad):_0x1b2d43(0x1e5),'formatNum':_0x595078=>null==_0x595078?'—':Number(_0x595078)[_0x1b2d43(0x1b8)](),'openActivate'(_0x5bed1d){const _0x237d79=_0x1b2d43;this['activatingId']=_0x5bed1d,this[_0x237d79(0x1a9)]='',this['activateError']=null;},'cancelActivate'(){const _0x5f3bc5=_0x1b2d43;this[_0x5f3bc5(0x1c1)]=null,this[_0x5f3bc5(0x19d)]=null;},async 'submitActivate'(_0x2f368f){const _0x365fc2=_0x1b2d43;if(this[_0x365fc2(0x1a9)][_0x365fc2(0x1a3)]()&&!this[_0x365fc2(0x1d3)]){this[_0x365fc2(0x1d3)]=!0x0,this[_0x365fc2(0x19d)]=null;try{const _0x100a84=await fetch(t()+'/'+encodeURIComponent(_0x2f368f)+'/activate',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON[_0x365fc2(0x1a2)]({'activation':this['activateToken'][_0x365fc2(0x1a3)]()})}),_0x181062=await _0x100a84[_0x365fc2(0x1a4)]();if(!_0x100a84['ok']){const _0x415fb5=_0x181062?.['error']?.[_0x365fc2(0x1b3)]||_0x181062?.[_0x365fc2(0x19b)]||_0x181062?.[_0x365fc2(0x1bc)]?.[_0x365fc2(0x19b)]||_0x181062?.[_0x365fc2(0x1df)]?.[_0x365fc2(0x19b)]||_0x365fc2(0x1c0);throw new Error(_0x365fc2(0x1d6)==typeof _0x415fb5?_0x415fb5:JSON[_0x365fc2(0x1a2)](_0x415fb5));}this[_0x365fc2(0x1c1)]=null,await this[_0x365fc2(0x1b5)]();}catch(_0x4f0ef7){this[_0x365fc2(0x19d)]=_0x4f0ef7?.[_0x365fc2(0x1b3)]||String(_0x4f0ef7);}finally{this[_0x365fc2(0x1d3)]=!0x1;}}},async 'removeLicense'(_0x1483ad){const _0x593146=_0x1b2d43;if(confirm(_0x593146(0x1be)))try{const _0x40aad9=await fetch(t()+'/'+encodeURIComponent(_0x1483ad),{'method':_0x593146(0x1b4)}),_0x5e8665=await _0x40aad9[_0x593146(0x1a4)]();if(!_0x40aad9['ok']){const _0x1d9f88=_0x5e8665?.[_0x593146(0x19b)]?.[_0x593146(0x1b3)]||_0x5e8665?.[_0x593146(0x19b)]||_0x5e8665?.[_0x593146(0x1bc)]?.[_0x593146(0x19b)]||_0x5e8665?.[_0x593146(0x1df)]?.[_0x593146(0x19b)]||_0x593146(0x19f);throw new Error(_0x593146(0x1d6)==typeof _0x1d9f88?_0x1d9f88:JSON[_0x593146(0x1a2)](_0x1d9f88));}_0x25f441[_0x593146(0x19e)][_0x593146(0x1d2)]?.[_0x593146(0x1bd)]?.[_0x593146(0x1c9)]?.(_0x593146(0x1cc)),await this[_0x593146(0x1b5)]();}catch(_0x179879){_0x25f441['$ok']['shared']?.[_0x593146(0x1bd)]?.['error']?.(_0x179879?.[_0x593146(0x1b3)]||_0x593146(0x19f));}},'formatDate':_0xf785a7=>_0xf785a7?new Date(_0xf785a7)[_0x1b2d43(0x1a8)]()[_0x1b2d43(0x1d7)](0x0,0xa):'—','shortId':_0x2a9d40=>_0x2a9d40?_0x2a9d40['slice'](0x0,0x8)+'…':'—','featureSummary'(_0x4d93a8){const _0x5b55c6=_0x1b2d43;if(!_0x4d93a8)return'—';const _0x58cc20=Object[_0x5b55c6(0x1ba)](_0x4d93a8)[_0x5b55c6(0x1ae)](([,_0x5c9bf0])=>_0x5c9bf0)[_0x5b55c6(0x1ac)](([_0x1fb884])=>_0x1fb884);return _0x58cc20['length']?_0x58cc20[0x0]+(_0x58cc20[_0x5b55c6(0x1a1)]>0x1?'\x20+'+(_0x58cc20[_0x5b55c6(0x1a1)]-0x1):''):_0x5b55c6(0x1b0);},'pinDisplay'(){const _0x3c69fe=_0x1b2d43,_0x349bb5=this[_0x3c69fe(0x1d5)]?.['pin'];return _0x349bb5?Array[_0x3c69fe(0x1cd)](_0x349bb5)?0x0===_0x349bb5[_0x3c69fe(0x1a1)]?'—':_0x349bb5[_0x3c69fe(0x1ac)](_0xb9fc47=>'string'==typeof _0xb9fc47?_0xb9fc47:_0xb9fc47?.['pin'])[_0x3c69fe(0x1ae)](Boolean)[_0x3c69fe(0x1a6)](',\x20')||'—':_0x349bb5:'—';},'hasActive'(){const _0x44f131=_0x1b2d43;return(this[_0x44f131(0x1d5)]?.[_0x44f131(0x1e2)]??0x0)>0x0;},'activeLicensee'(){const _0x5ace7c=_0x1b2d43;return this['status']?.['licenses']?.[_0x5ace7c(0x1e4)](_0x2fa789=>_0x5ace7c(0x1b1)===_0x2fa789[_0x5ace7c(0x1d5)])?.['licensee']??null;},'activeExpiry'(){const _0x5070e9=_0x1b2d43;return this[_0x5070e9(0x1d5)]?.[_0x5070e9(0x1c5)]?.['find'](_0x565f25=>_0x5070e9(0x1b1)===_0x565f25[_0x5070e9(0x1d5)])?.[_0x5070e9(0x1e3)]??null;},'badgeStyle':_0x207b76=>({'active':_0x1b2d43(0x1aa),'expired':_0x1b2d43(0x1a0),'invalid':_0x1b2d43(0x1a0),'pending':_0x1b2d43(0x1b2),'wrong_node':_0x1b2d43(0x1d9)}[_0x207b76]||'')+_0x1b2d43(0x1e6),'licensePin'(_0x573a9f){const _0x459df0=_0x1b2d43,_0x2d98e3=this[_0x459df0(0x1d5)]?.['pin'];if(Array['isArray'](_0x2d98e3)){const _0x11ea95=_0x2d98e3[_0x459df0(0x1e4)](_0x54eeea=>_0x54eeea?.[_0x459df0(0x1af)]===_0x573a9f?.['id']);if(_0x11ea95?.[_0x459df0(0x1d8)])return _0x11ea95[_0x459df0(0x1d8)];}return _0x459df0(0x1d6)==typeof _0x573a9f?.[_0x459df0(0x1d8)]?_0x573a9f['pin']:'—';}}),'mount'(){const _0x2b73bd=_0x1b2d43;this[_0x2b73bd(0x1b5)]();},'style':_0x1b2d43(0x1d1),'template':'<div><if\x20:=\x22loading\x22><div\x20style=\x22font-size:13px;\x20opacity:.5;\x20padding:20px\x200;\x22>Loading…</div></if><if\x20:=\x22!loading\x20&&\x20unavailable\x22><div\x20style=\x22font-size:13px;\x20opacity:.6;\x20padding:20px\x200;\x22>License\x20system\x20not\x20available\x20in\x20this\x20build.</div></if><if\x20:=\x22!loading\x20&&\x20!unavailable\x22><div\x20class=\x22lp-header\x22><div\x20class=\x22lp-title\x22>License</div><button\x20class=\x22lp-btn\x20lp-btn--primary\x22\x20@click=\x22openAddForm()\x22>+\x20Add\x20License</button></div><if\x20:=\x22hasActive()\x22><div\x20class=\x22lp-status-banner\x20lp-status-banner--ok\x22><span>&#10003;\x20Licensed</span>\x20<span>—</span>\x20<span\x20style=\x22font-weight:600;\x22>{{\x20activeLicensee()\x20}}</span><if\x20:=\x22activeExpiry()\x22><span\x20style=\x22opacity:.7;\x22>·\x20Expires\x20{{\x20formatDate(activeExpiry())\x20}}</span></if></div></if><if\x20:=\x22!hasActive()\x22><div\x20class=\x22lp-status-banner\x20lp-status-banner--warn\x22><span>&#9888;\x20Free\x20tier</span><if\x20:=\x22status\x20&&\x20status.effective\x22><span\x20style=\x22opacity:.7;\x20font-size:12px;\x22>—\x20envs={{\x20status.effective.limits.envs\x20}},\x20types/env={{\x20status.effective.limits.typesPerEnv\x20}},\x20writes={{\x20(status.effective.limits.maxWrites||0).toLocaleString()\x20}}</span></if></div><if\x20:=\x22status\x20&&\x20status.isLicensedBuild\x20&&\x20pinDisplay()\x20!==\x20\x27—\x27\x22><div\x20class=\x22lp-pin-box\x22><div\x20class=\x22lp-pin-label\x22>Node\x20PIN\x20—\x20share\x20this\x20with\x20your\x20license\x20provider</div><div\x20style=\x22display:flex;\x20align-items:center;\x20gap:10px;\x22><div\x20class=\x22lp-pin-value\x22>{{\x20pinDisplay()\x20}}</div><button\x20class=\x22lp-btn\x22\x20style=\x22font-size:11px;\x20padding:3px\x208px;\x22\x20@click=\x22copyPin()\x22>Copy</button></div><div\x20style=\x22font-size:11px;\x20opacity:.55;\x20margin-top:6px;\x22>How\x20activation\x20works:\x20paste\x20your\x20<strong>license\x20blob</strong>\x20below\x20→\x20vendor\x20signs\x20an\x20activation\x20token\x20bound\x20to\x20this\x20PIN\x20→\x20paste\x20the\x20activation\x20token\x20to\x20enable\x20the\x20license.</div></div></if><if\x20:=\x22status\x20&&\x20status.isLicensedBuild\x20&&\x20status.buildFingerprint\x22><div\x20class=\x22lp-pin-box\x22\x20style=\x22margin-top:-12px;\x22><div\x20class=\x22lp-pin-label\x22>Build\x20signing-key\x20fingerprint</div><div\x20style=\x22font-family:monospace;\x20font-size:12px;\x22>{{\x20status.buildFingerprint\x20}}</div><div\x20style=\x22font-size:11px;\x20opacity:.55;\x20margin-top:6px;\x22>Your\x20license\x20must\x20be\x20signed\x20by\x20the\x20private\x20key\x20paired\x20with\x20this\x20fingerprint.\x20If\x20you\x20see\x20<em>\x22License\x20signature\x20invalid\x22</em>,\x20the\x20license\x20was\x20signed\x20by\x20a\x20different\x20keypair\x20than\x20the\x20one\x20this\x20build\x20uses.</div></div></if><if\x20:=\x22status\x20&&\x20!status.isLicensedBuild\x22><div\x20class=\x22lp-pin-box\x22\x20style=\x22opacity:.6\x22><div\x20class=\x22lp-pin-label\x22>Development\x20build\x20—\x20license\x20enforcement\x20disabled</div><div\x20style=\x22font-size:12px;\x20margin-top:4px;\x22>Set\x20<code>OKDB_LICENSED_BUILD=true</code>\x20in\x20<code>.env</code>\x20to\x20enable\x20enforcement\x20in\x20dev,\x20or\x20run\x20<code>npm\x20run\x20build:prod</code>\x20for\x20a\x20production\x20build.</div></div></if></if><if\x20:=\x22status\x20&&\x20status.usage\x20&&\x20status.effective\x22><div\x20style=\x22display:flex;\x20flex-direction:column;\x20gap:10px;\x20margin-bottom:20px;\x22><if\x20:=\x22status.effective.limits.maxWrites\x22><div><div\x20style=\x22display:flex;\x20justify-content:space-between;\x20font-size:11px;\x20opacity:.7;\x20margin-bottom:4px;\x22><span>Writes</span>\x20<span\x20style=\x22font-family:monospace;\x22>{{\x20formatNum(status.usage.writes)\x20}}\x20/\x20{{\x20formatNum(status.effective.limits.maxWrites)\x20}}</span></div><div\x20style=\x22height:6px;\x20background:var(--okdb-app-surface-2,rgba(255,255,255,.06));\x20border-radius:3px;\x20overflow:hidden;\x22><div\x20:style=\x22\x27height:100%;width:\x27\x20+\x20usagePct(status.usage.writes,\x20status.effective.limits.maxWrites)\x20+\x20\x27%;background:\x27\x20+\x20usageBarColor(usagePct(status.usage.writes,\x20status.effective.limits.maxWrites))\x20+\x20\x27;transition:width\x20.2s;\x27\x22/></div></div></if><if\x20:=\x22status.effective.limits.envs\x22><div><div\x20style=\x22display:flex;\x20justify-content:space-between;\x20font-size:11px;\x20opacity:.7;\x20margin-bottom:4px;\x22><span>Environments</span>\x20<span\x20style=\x22font-family:monospace;\x22>{{\x20status.usage.envs\x20}}\x20/\x20{{\x20status.effective.limits.envs\x20}}</span></div><div\x20style=\x22height:6px;\x20background:var(--okdb-app-surface-2,rgba(255,255,255,.06));\x20border-radius:3px;\x20overflow:hidden;\x22><div\x20:style=\x22\x27height:100%;width:\x27\x20+\x20usagePct(status.usage.envs,\x20status.effective.limits.envs)\x20+\x20\x27%;background:\x27\x20+\x20usageBarColor(usagePct(status.usage.envs,\x20status.effective.limits.envs))\x20+\x20\x27;transition:width\x20.2s;\x27\x22/></div></div></if></div></if><if\x20:=\x22showAddForm\x22><div\x20class=\x22lp-add-form\x22><div\x20style=\x22font-size:13px;\x20font-weight:600;\x22>Add\x20License\x20or\x20Activation\x20Token</div><div\x20style=\x22font-size:11px;\x20opacity:.6;\x22>Paste\x20either\x20a\x20<strong>license\x20blob</strong>\x20(issued\x20by\x20your\x20vendor)\x20or\x20an\x20<strong>activation\x20token</strong>\x20(vendor\x27s\x20response\x20to\x20your\x20PIN).\x20The\x20server\x20detects\x20which\x20it\x20is.</div><div><textarea\x20:value=\x22addInput\x22\x20@input=\x22addInput\x20=\x20$event.target.value\x22\x20rows=\x226\x22\x20placeholder=\x22Paste\x20license\x20blob\x20or\x20activation\x20token\x20here…\x22\x20style=\x22width:100%;\x20font-family:monospace;\x20font-size:11px;\x20resize:vertical;\x22/></div><if\x20:=\x22addError\x22><div\x20style=\x22font-size:12px;\x20color:var(--okdb-danger);\x20background:var(--okdb-danger-soft-bg,rgba(245,101,101,.08));\x20border:1px\x20solid\x20var(--okdb-danger-soft-border,rgba(245,101,101,.2));\x20border-radius:6px;\x20padding:8px\x2012px;\x22>{{\x20addError\x20}}</div></if><div\x20style=\x22display:flex;\x20gap:8px;\x20justify-content:flex-end;\x22><button\x20class=\x22lp-btn\x22\x20@click=\x22cancelAddForm()\x22>Cancel</button>\x20<button\x20class=\x22lp-btn\x20lp-btn--primary\x22\x20@click=\x22submitAdd()\x22\x20:disabled=\x22!addInput.trim()\x20||\x20addLoading\x22>{{\x20addLoading\x20?\x20\x27Submitting…\x27\x20:\x20\x27Submit\x27\x20}}</button></div></div></if><if\x20:=\x22status\x20&&\x20status.effective\x22><div\x20style=\x22margin-top:20px;\x20font-size:10px;\x20text-transform:uppercase;\x20letter-spacing:.06em;\x20opacity:.45;\x20margin-bottom:8px;\x22>Current\x20capabilities</div><table\x20class=\x22lp-table\x22\x20style=\x22margin-bottom:16px;\x22><thead><tr><th>Feature</th><th>Status</th><th>Limit</th></tr></thead><tbody><tr><td>Sync</td><td><span\x20:style=\x22status.effective.features.sync\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.sync\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td\x20style=\x22font-family:monospace;\x22>{{\x20status.effective.limits.syncPeers\x20?\x20\x27max\x20\x27\x20+\x20status.effective.limits.syncPeers\x20+\x20\x27\x20peers\x27\x20:\x20(status.effective.features.sync\x20?\x20\x27unlimited\x27\x20:\x20\x27—\x27)\x20}}</td></tr><tr><td>Embeddings</td><td><span\x20:style=\x22status.effective.features.embeddings\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.embeddings\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Engines</td><td><span\x20:style=\x22status.effective.features.engines\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.engines\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Full-text\x20search</td><td><span\x20:style=\x22status.effective.features.fts\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.fts\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Time\x20machine</td><td><span\x20:style=\x22status.effective.features.timeMachine\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.timeMachine\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Views</td><td><span\x20:style=\x22status.effective.features.views\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.views\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>MCP</td><td><span\x20:style=\x22status.effective.features.mcp\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.mcp\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Files</td><td><span\x20:style=\x22status.effective.features.files\x20?\x20\x27color:var(--okdb-success,#38a169)\x27\x20:\x20\x27opacity:.45\x27\x22>{{\x20status.effective.features.files\x20?\x20\x27✓\x20enabled\x27\x20:\x20\x27✗\x20disabled\x27\x20}}</span></td><td>—</td></tr><tr><td>Environments</td><td><span\x20style=\x22color:var(--okdb-success,#38a169)\x22>✓\x20enabled</span></td><td\x20style=\x22font-family:monospace;\x22>{{\x20status.effective.limits.envs\x20?\x20\x27max\x20\x27\x20+\x20status.effective.limits.envs\x20:\x20\x27unlimited\x27\x20}}</td></tr><tr><td>Types\x20per\x20env</td><td><span\x20style=\x22color:var(--okdb-success,#38a169)\x22>✓\x20enabled</span></td><td\x20style=\x22font-family:monospace;\x22>{{\x20status.effective.limits.typesPerEnv\x20?\x20\x27max\x20\x27\x20+\x20status.effective.limits.typesPerEnv\x20:\x20\x27unlimited\x27\x20}}</td></tr><tr><td>Total\x20writes</td><td><span\x20style=\x22color:var(--okdb-success,#38a169)\x22>✓\x20enabled</span></td><td\x20style=\x22font-family:monospace;\x22>{{\x20status.effective.limits.maxWrites\x20?\x20(status.effective.limits.maxWrites).toLocaleString()\x20+\x20\x27\x20max\x27\x20:\x20\x27unlimited\x27\x20}}</td></tr></tbody></table></if><if\x20:=\x22status\x20&&\x20status.licenses\x20&&\x20status.licenses.length\x20>\x200\x22><div\x20class=\x22lp-lic-header\x22><span>ID</span><span>Licensee</span><span>Expires</span><span>Status</span><span>Features</span><span>Actions</span></div><each\x20:of=\x22status.licenses\x22\x20let:lic><div\x20class=\x22lp-lic-row\x22><div\x20class=\x22lp-lic-cells\x22><span\x20style=\x22font-family:monospace;\x20opacity:.7;\x20font-size:11px;\x22>{{\x20shortId(lic.id)\x20}}</span>\x20<span\x20style=\x22font-size:12px;\x22>{{\x20lic.licensee\x20||\x20\x27—\x27\x20}}</span>\x20<span\x20style=\x22font-family:monospace;\x20font-size:12px;\x22>{{\x20formatDate(lic.expiresAt)\x20}}</span>\x20<span><span\x20:style=\x22badgeStyle(lic.status)\x22>{{\x20lic.status\x20}}</span></span>\x20<span\x20style=\x22opacity:.7;\x20font-size:12px;\x22>{{\x20featureSummary(lic.features)\x20}}</span><div\x20style=\x22display:flex;\x20gap:6px;\x20flex-wrap:wrap;\x20align-items:center;\x22><if\x20:=\x22lic.status\x20===\x20\x27pending\x27\x20||\x20lic.status\x20===\x20\x27wrong_node\x27\x22><button\x20class=\x22lp-btn\x22\x20style=\x22font-size:11px;\x22\x20@click=\x22openActivate(lic.id)\x22>Activate</button></if><button\x20class=\x22lp-btn\x20lp-btn--danger\x22\x20style=\x22font-size:11px;\x22\x20@click=\x22removeLicense(lic.id)\x22>Remove</button></div></div><if\x20:=\x22activatingId\x20===\x20lic.id\x22><div\x20class=\x22lp-activate-row\x22><div\x20style=\x22font-size:11px;\x20opacity:.7;\x22>PIN\x20for\x20this\x20license:\x20<span\x20style=\x22font-family:monospace;\x20font-weight:600;\x22>{{\x20licensePin(lic)\x20}}</span></div><textarea\x20:value=\x22activateToken\x22\x20@input=\x22activateToken\x20=\x20$event.target.value\x22\x20rows=\x223\x22\x20placeholder=\x22Paste\x20activation\x20token…\x22\x20style=\x22width:100%;\x20font-family:monospace;\x20font-size:11px;\x20resize:vertical;\x22/><if\x20:=\x22activateError\x22><div\x20style=\x22font-size:11px;\x20color:var(--okdb-danger);\x22>{{\x20activateError\x20}}</div></if><div\x20style=\x22display:flex;\x20gap:6px;\x20justify-content:flex-end;\x22><button\x20class=\x22lp-btn\x22\x20style=\x22font-size:11px;\x22\x20@click=\x22cancelActivate()\x22>Cancel</button>\x20<button\x20class=\x22lp-btn\x20lp-btn--primary\x22\x20style=\x22font-size:11px;\x22\x20@click=\x22submitActivate(lic.id)\x22\x20:disabled=\x22!activateToken.trim()\x20||\x20activateLoading\x22>{{\x20activateLoading\x20?\x20\x27Activating…\x27\x20:\x20\x27Activate\x27\x20}}</button></div></div></if></div></each></if><if\x20:=\x22error\x22><div\x20style=\x22font-size:13px;\x20color:var(--okdb-danger);\x20padding:12px\x200;\x22>{{\x20error\x20}}</div></if></if></div>'};
@@ -1 +1 @@
1
- function _0x31a4(_0xcfa5eb,_0x19c935){_0xcfa5eb=_0xcfa5eb-0x1df;const _0x15fc47=_0x15fc();let _0x31a427=_0x15fc47[_0xcfa5eb];return _0x31a427;}const _0x15f3fa=_0x31a4;function _0x15fc(){const _0x257245=['Bucket\x20\x22','application/json','130SGNosZ','\x22\x20created','toast','create-bucket-modal','onDone','capacity','success','json','310044lxGojy','8ENVWPZ','form','145902WrtSeA','busy','1155260mzzAEv','trim','4631049TdbqXs','close','POST','44BAjdRu','error','Bucket\x20ID\x20is\x20required','message','Create\x20failed','shared','refill_amount','$ok','1261778brnpYT','refill_every','$attr','/queue/bucket/add/','apiBase','5996zwiDmC','6898850GEcGJG'];_0x15fc=function(){return _0x257245;};return _0x15fc();}(function(_0x187581,_0x3b3e5e){const _0x33c432=_0x31a4,_0x1cf282=_0x187581();while(!![]){try{const _0x1bf244=-parseInt(_0x33c432(0x1e8))/0x1*(-parseInt(_0x33c432(0x1fe))/0x2)+parseInt(_0x33c432(0x1f4))/0x3+-parseInt(_0x33c432(0x1f9))/0x4+-parseInt(_0x33c432(0x1ec))/0x5*(parseInt(_0x33c432(0x1f7))/0x6)+-parseInt(_0x33c432(0x1e3))/0x7+parseInt(_0x33c432(0x1f5))/0x8*(parseInt(_0x33c432(0x1fb))/0x9)+parseInt(_0x33c432(0x1e9))/0xa;if(_0x1bf244===_0x3b3e5e)break;else _0x1cf282['push'](_0x1cf282['shift']());}catch(_0x1d7cb3){_0x1cf282['push'](_0x1cf282['shift']());}}}(_0x15fc,0x529db));import _0x2d0134 from'../../../stores/okdb-store.js';export default{'tag':_0x15f3fa(0x1ef),'attr':{'modal':{},'onDone':{}},'context':_0x42350f=>({'busy':!0x1,'error':null,'form':{'id':'','capacity':0x64,'tokens':0x64,'refill_amount':0x0,'refill_every':0x0},async 'save'(){const _0x29b74e=_0x15f3fa,_0x3a6652=String(this[_0x29b74e(0x1f6)]['id']||'')[_0x29b74e(0x1fa)]();if(_0x3a6652){this[_0x29b74e(0x1f8)]=!0x0,this[_0x29b74e(0x1ff)]=null;try{const _0x505227=await fetch(_0x2d0134[_0x29b74e(0x1e7)]+_0x29b74e(0x1e6)+encodeURIComponent(_0x3a6652),{'method':_0x29b74e(0x1fd),'headers':{'Content-Type':_0x29b74e(0x1eb)},'body':JSON['stringify']({'capacity':Number(this[_0x29b74e(0x1f6)][_0x29b74e(0x1f1)])||0x0,'tokens':Number(this['form']['tokens'])||0x0,'refill_amount':Number(this['form'][_0x29b74e(0x1e1)])||0x0,'refill_every':Number(this['form'][_0x29b74e(0x1e4)])||0x0})}),_0x30762b=await _0x505227[_0x29b74e(0x1f3)]();if(!_0x505227['ok'])throw new Error(_0x30762b?.[_0x29b74e(0x1ff)]?.[_0x29b74e(0x201)]||_0x29b74e(0x1df));_0x42350f[_0x29b74e(0x1e2)][_0x29b74e(0x1e0)]?.[_0x29b74e(0x1ee)]?.[_0x29b74e(0x1f2)]?.(_0x29b74e(0x1ea)+_0x3a6652+_0x29b74e(0x1ed)),await _0x42350f[_0x29b74e(0x1e5)]['modal'][_0x29b74e(0x1fc)](),await _0x42350f[_0x29b74e(0x1e5)][_0x29b74e(0x1f0)]?.(_0x3a6652);}catch(_0x32cec8){this[_0x29b74e(0x1ff)]=_0x32cec8?.[_0x29b74e(0x201)]||'Create\x20failed';}finally{this[_0x29b74e(0x1f8)]=!0x1;}}else this[_0x29b74e(0x1ff)]=_0x29b74e(0x200);},'cancel'(){_0x42350f['$attr']['modal']['close']();}}),'template':'\x0a<div\x20style=\x22min-width:320px;\x20display:flex;\x20flex-direction:column;\x20gap:12px;\x22>\x0a\x0a\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22color:var(--okdb-danger);\x20font-size:12px;\x20padding:8px;\x20border:1px\x20solid\x20var(--okdb-danger);\x20border-radius:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20{{\x20error\x20}}\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<div\x20style=\x22display:grid;\x20grid-template-columns:130px\x201fr;\x20gap:8px\x2012px;\x20align-items:center;\x20font-size:13px;\x22>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Bucket\x20ID</label>\x0a\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.id\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.id\x20=\x20$el.value\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x22e.g.\x20openai-api\x22\x0a\x20\x20\x20\x20\x20\x20style=\x22font-family:monospace;\x22\x0a\x20\x20\x20\x20\x20\x20@keydown.enter=\x22save()\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Capacity</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x221\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.capacity\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.capacity\x20=\x20Number($el.value)\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Initial\x20Tokens</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.tokens\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.tokens\x20=\x20Number($el.value)\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22grid-column:1/-1;\x20height:1px;\x20background:var(--okdb-app-border);\x20margin:2px\x200;\x22></div>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22grid-column:1/-1;\x20font-size:11px;\x20opacity:.5;\x20text-transform:uppercase;\x20letter-spacing:.05em;\x22>\x0a\x20\x20\x20\x20\x20\x20Auto-Refill\x20(optional)\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Refill\x20Amount</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.refill_amount\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.refill_amount\x20=\x20Number($el.value)\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x220\x20=\x20disabled\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Refill\x20Every\x20(ms)</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.refill_every\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.refill_every\x20=\x20Number($el.value)\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x22e.g.\x2060000\x20for\x201\x20min\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20style=\x22display:flex;\x20gap:10px;\x20justify-content:flex-end;\x20margin-top:4px;\x22>\x0a\x20\x20\x20\x20<button\x20@click=\x22cancel()\x22>Cancel</button>\x0a\x20\x20\x20\x20<button\x20@click=\x22save()\x22\x20:disabled=\x22busy\x20||\x20!form.id\x22>\x0a\x20\x20\x20\x20\x20\x20{{\x20busy\x20?\x20\x27Creating…\x27\x20:\x20\x27Create\x27\x20}}\x0a\x20\x20\x20\x20</button>\x0a\x20\x20</div>\x0a\x0a</div>\x0a'};
1
+ function _0x1cc5(_0x21baaa,_0x26300e){_0x21baaa=_0x21baaa-0xfd;const _0x2b4b3c=_0x2b4b();let _0x1cc5eb=_0x2b4b3c[_0x21baaa];return _0x1cc5eb;}function _0x2b4b(){const _0x557a68=['/queue/bucket/add/','$attr','1250904hMFpVi','7160PAIhBn','onDone','300566TGIhXQ','POST','4842306mNoTLU','8314794LLibBO','stringify','error','\x0a<div\x20style=\x22min-width:320px;\x20display:flex;\x20flex-direction:column;\x20gap:12px;\x22>\x0a\x0a\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22color:var(--okdb-danger);\x20font-size:12px;\x20padding:8px;\x20border:1px\x20solid\x20var(--okdb-danger);\x20border-radius:6px;\x22>\x0a\x20\x20\x20\x20\x20\x20{{\x20error\x20}}\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<div\x20style=\x22display:grid;\x20grid-template-columns:130px\x201fr;\x20gap:8px\x2012px;\x20align-items:center;\x20font-size:13px;\x22>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Bucket\x20ID</label>\x0a\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.id\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.id\x20=\x20$el.value\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x22e.g.\x20openai-api\x22\x0a\x20\x20\x20\x20\x20\x20style=\x22font-family:monospace;\x22\x0a\x20\x20\x20\x20\x20\x20@keydown.enter=\x22save()\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Capacity</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x221\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.capacity\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.capacity\x20=\x20Number($el.value)\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Initial\x20Tokens</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.tokens\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.tokens\x20=\x20Number($el.value)\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22grid-column:1/-1;\x20height:1px;\x20background:var(--okdb-app-border);\x20margin:2px\x200;\x22></div>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22grid-column:1/-1;\x20font-size:11px;\x20opacity:.5;\x20text-transform:uppercase;\x20letter-spacing:.05em;\x22>\x0a\x20\x20\x20\x20\x20\x20Auto-Refill\x20(optional)\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Refill\x20Amount</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.refill_amount\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.refill_amount\x20=\x20Number($el.value)\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x220\x20=\x20disabled\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Refill\x20Every\x20(ms)</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.refill_every\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.refill_every\x20=\x20Number($el.value)\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x22e.g.\x2060000\x20for\x201\x20min\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20style=\x22display:flex;\x20gap:10px;\x20justify-content:flex-end;\x20margin-top:4px;\x22>\x0a\x20\x20\x20\x20<button\x20@click=\x22cancel()\x22>Cancel</button>\x0a\x20\x20\x20\x20<button\x20@click=\x22save()\x22\x20:disabled=\x22busy\x20||\x20!form.id\x22>\x0a\x20\x20\x20\x20\x20\x20{{\x20busy\x20?\x20\x27Creating…\x27\x20:\x20\x27Create\x27\x20}}\x0a\x20\x20\x20\x20</button>\x0a\x20\x20</div>\x0a\x0a</div>\x0a','modal','995384nuMqtT','message','862418YaYBNk','capacity','apiBase','busy','Create\x20failed','shared','create-bucket-modal','form','refill_amount','10Lsuxno','toast','3535FZbrhS','application/json','tokens','refill_every'];_0x2b4b=function(){return _0x557a68;};return _0x2b4b();}const _0x5154d5=_0x1cc5;(function(_0x228ed7,_0x243bea){const _0x31ff0e=_0x1cc5,_0x1d1948=_0x228ed7();while(!![]){try{const _0x9b475a=-parseInt(_0x31ff0e(0x117))/0x1+-parseInt(_0x31ff0e(0x103))/0x2+parseInt(_0x31ff0e(0x114))/0x3+-parseInt(_0x31ff0e(0x101))/0x4*(parseInt(_0x31ff0e(0x10c))/0x5)+parseInt(_0x31ff0e(0x119))/0x6+parseInt(_0x31ff0e(0x10e))/0x7*(-parseInt(_0x31ff0e(0x115))/0x8)+parseInt(_0x31ff0e(0x11a))/0x9;if(_0x9b475a===_0x243bea)break;else _0x1d1948['push'](_0x1d1948['shift']());}catch(_0x10a7d8){_0x1d1948['push'](_0x1d1948['shift']());}}}(_0x2b4b,0x71e0b));import _0x5f53fc from'../../../stores/okdb-store.js';export default{'tag':_0x5154d5(0x109),'attr':{'modal':{},'onDone':{}},'context':_0x4cae75=>({'busy':!0x1,'error':null,'form':{'id':'','capacity':0x64,'tokens':0x64,'refill_amount':0x0,'refill_every':0x0},async 'save'(){const _0x406f0b=_0x5154d5,_0xb2ae21=String(this[_0x406f0b(0x10a)]['id']||'')['trim']();if(_0xb2ae21){this[_0x406f0b(0x106)]=!0x0,this['error']=null;try{const _0x2bb3c7=await fetch(_0x5f53fc[_0x406f0b(0x105)]+_0x406f0b(0x112)+encodeURIComponent(_0xb2ae21),{'method':_0x406f0b(0x118),'headers':{'Content-Type':_0x406f0b(0x10f)},'body':JSON[_0x406f0b(0xfd)]({'capacity':Number(this[_0x406f0b(0x10a)][_0x406f0b(0x104)])||0x0,'tokens':Number(this['form'][_0x406f0b(0x110)])||0x0,'refill_amount':Number(this[_0x406f0b(0x10a)][_0x406f0b(0x10b)])||0x0,'refill_every':Number(this[_0x406f0b(0x10a)][_0x406f0b(0x111)])||0x0})}),_0x145f78=await _0x2bb3c7['json']();if(!_0x2bb3c7['ok'])throw new Error(_0x145f78?.['error']?.[_0x406f0b(0x102)]||_0x406f0b(0x107));_0x4cae75['$ok'][_0x406f0b(0x108)]?.[_0x406f0b(0x10d)]?.['success']?.('Bucket\x20\x22'+_0xb2ae21+'\x22\x20created'),await _0x4cae75['$attr'][_0x406f0b(0x100)]['close'](),await _0x4cae75[_0x406f0b(0x113)][_0x406f0b(0x116)]?.(_0xb2ae21);}catch(_0x49b7ed){this[_0x406f0b(0xfe)]=_0x49b7ed?.[_0x406f0b(0x102)]||_0x406f0b(0x107);}finally{this[_0x406f0b(0x106)]=!0x1;}}else this[_0x406f0b(0xfe)]='Bucket\x20ID\x20is\x20required';},'cancel'(){const _0x4df545=_0x5154d5;_0x4cae75[_0x4df545(0x113)][_0x4df545(0x100)]['close']();}}),'template':_0x5154d5(0xff)};
@@ -1 +1 @@
1
- function _0x2102(){const _0x577392=['apiBase','Bucket\x20ID\x20is\x20required','stringify','32YMlxmH','refill_every','busy','edit-bucket-modal','onDone','6niWuLl','close','/queue/bucket/update/','756520zuSxUB','286BCmdtn','success','json','shared','modal','refill_amount','1048540SXVhTw','$attr','27zOMfKS','741015OFIbxU','\x0a<div\x20style=\x22min-width:320px;\x20display:flex;\x20flex-direction:column;\x20gap:12px;\x22>\x0a\x0a\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22color:var(--okdb-danger);\x20font-size:12px;\x20padding:8px;\x20border:1px\x20solid\x20var(--okdb-danger);\x20border-radius:6px;\x22>{{\x20error\x20}}</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<div\x20style=\x22display:grid;\x20grid-template-columns:120px\x201fr;\x20gap:8px\x2012px;\x20align-items:center;\x20font-size:13px;\x22>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Bucket\x20ID</label>\x0a\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.id\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.id\x20=\x20$el.value\x22\x0a\x20\x20\x20\x20\x20\x20:disabled=\x22editMode\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x22e.g.\x20openai-api\x22\x0a\x20\x20\x20\x20\x20\x20style=\x22font-family:monospace;\x22\x0a\x20\x20\x20\x20\x20\x20@keydown.enter=\x22save()\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Capacity</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x221\x22\x20:value=\x22form.capacity\x22\x20@input=\x22form.capacity\x20=\x20Number($el.value)\x22\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Initial\x20Tokens</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x20:value=\x22form.tokens\x22\x20@input=\x22form.tokens\x20=\x20Number($el.value)\x22\x20/>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22grid-column:1/-1;\x20height:1px;\x20background:var(--okdb-app-border);\x20margin:4px\x200;\x22></div>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22grid-column:1/-1;\x20font-size:11px;\x20opacity:.5;\x20text-transform:uppercase;\x20letter-spacing:.05em;\x22>\x0a\x20\x20\x20\x20\x20\x20Auto-Refill\x20(optional)\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Refill\x20Amount</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x20:value=\x22form.refill_amount\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22form.refill_amount\x20=\x20Number($el.value)\x22\x20placeholder=\x220\x20=\x20disabled\x22\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Refill\x20Every\x20(ms)</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x20:value=\x22form.refill_every\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22form.refill_every\x20=\x20Number($el.value)\x22\x20placeholder=\x22e.g.\x2060000\x20for\x201\x20min\x22\x20/>\x0a\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20style=\x22display:flex;\x20gap:10px;\x20justify-content:flex-end;\x20margin-top:4px;\x22>\x0a\x20\x20\x20\x20<button\x20@click=\x22cancel()\x22>Cancel</button>\x0a\x20\x20\x20\x20<button\x20@click=\x22save()\x22\x20:disabled=\x22busy\x20||\x20!form.id\x22>\x0a\x20\x20\x20\x20\x20\x20{{\x20busy\x20?\x20\x27Saving…\x27\x20:\x20(editMode\x20?\x20\x27Save\x27\x20:\x20\x27Create\x27)\x20}}\x0a\x20\x20\x20\x20</button>\x0a\x20\x20</div>\x0a\x0a</div>\x0a','Save\x20failed','initialForm','104IlmIai','5296ufcbUv','4889753BQglBp','application/json','1814582vYJiwz','form','capacity','Bucket\x20created','$ok','Bucket\x20updated','trim','message','error','editMode'];_0x2102=function(){return _0x577392;};return _0x2102();}function _0x4f76(_0x7b5b51,_0x945c14){_0x7b5b51=_0x7b5b51-0x83;const _0x21026a=_0x2102();let _0x4f76f8=_0x21026a[_0x7b5b51];return _0x4f76f8;}const _0x3f8d85=_0x4f76;(function(_0x934de4,_0x13f32f){const _0x34f73e=_0x4f76,_0x2a1e4e=_0x934de4();while(!![]){try{const _0x1cefdb=parseInt(_0x34f73e(0xa7))/0x1*(parseInt(_0x34f73e(0x9a))/0x2)+-parseInt(_0x34f73e(0xa2))/0x3*(-parseInt(_0x34f73e(0xa8))/0x4)+parseInt(_0x34f73e(0xa0))/0x5+parseInt(_0x34f73e(0x96))/0x6*(-parseInt(_0x34f73e(0x84))/0x7)+-parseInt(_0x34f73e(0x91))/0x8*(parseInt(_0x34f73e(0xa3))/0x9)+parseInt(_0x34f73e(0x99))/0xa+parseInt(_0x34f73e(0xa9))/0xb;if(_0x1cefdb===_0x13f32f)break;else _0x2a1e4e['push'](_0x2a1e4e['shift']());}catch(_0x7c8f76){_0x2a1e4e['push'](_0x2a1e4e['shift']());}}}(_0x2102,0x290a9));import _0x47f3ba from'../../../stores/okdb-store.js';export default{'tag':_0x3f8d85(0x94),'attr':{'modal':{},'editMode':{},'initialForm':{},'onDone':{}},'context'(_0x48ba12){const _0x18cd9d=_0x3f8d85,_0x120d99=_0x48ba12[_0x18cd9d(0xa1)][_0x18cd9d(0xa6)]??{};return{'busy':!0x1,'error':null,'form':{'id':_0x120d99['id']??'','capacity':_0x120d99[_0x18cd9d(0x86)]??0x64,'tokens':_0x120d99['tokens']??0x64,'refill_amount':_0x120d99[_0x18cd9d(0x9f)]??0x0,'refill_every':_0x120d99[_0x18cd9d(0x92)]??0x0},get 'editMode'(){const _0x5759d1=_0x18cd9d;return!!_0x48ba12['$attr'][_0x5759d1(0x8d)];},async 'save'(){const _0x3990e=_0x18cd9d,_0x5d50c8=String(this['form']['id']||'')[_0x3990e(0x8a)]();if(_0x5d50c8){this[_0x3990e(0x93)]=!0x0,this['error']=null;try{const _0x3c5b99=this['editMode']?_0x47f3ba[_0x3990e(0x8e)]+_0x3990e(0x98)+encodeURIComponent(_0x5d50c8):_0x47f3ba[_0x3990e(0x8e)]+'/queue/bucket/add/'+encodeURIComponent(_0x5d50c8),_0x3e462c=await fetch(_0x3c5b99,{'method':'POST','headers':{'Content-Type':_0x3990e(0x83)},'body':JSON[_0x3990e(0x90)]({'capacity':Number(this['form'][_0x3990e(0x86)])||0x0,'tokens':Number(this[_0x3990e(0x85)]['tokens'])??0x0,'refill_amount':Number(this[_0x3990e(0x85)]['refill_amount'])||0x0,'refill_every':Number(this[_0x3990e(0x85)][_0x3990e(0x92)])||0x0})}),_0x4d11cd=await _0x3e462c[_0x3990e(0x9c)]();if(!_0x3e462c['ok'])throw new Error(_0x4d11cd?.[_0x3990e(0x8c)]?.[_0x3990e(0x8b)]||'Save\x20failed');_0x48ba12[_0x3990e(0x88)][_0x3990e(0x9d)]?.['toast']?.[_0x3990e(0x9b)]?.(this[_0x3990e(0x8d)]?_0x3990e(0x89):_0x3990e(0x87)),await _0x48ba12[_0x3990e(0xa1)][_0x3990e(0x9e)][_0x3990e(0x97)](),await _0x48ba12[_0x3990e(0xa1)][_0x3990e(0x95)]?.();}catch(_0x5ed25f){this['error']=_0x5ed25f?.['message']||_0x3990e(0xa5);}finally{this['busy']=!0x1;}}else this[_0x3990e(0x8c)]=_0x3990e(0x8f);},'cancel'(){const _0x4faa65=_0x18cd9d;_0x48ba12['$attr'][_0x4faa65(0x9e)][_0x4faa65(0x97)]();}};},'template':_0x3f8d85(0xa4)};
1
+ function _0x4d68(){const _0x18baec=['3724DiNgRa','/queue/bucket/add/','toast','trim','busy','json','message','shared','tokens','apiBase','$ok','273HmWFor','capacity','POST','application/json','close','edit-bucket-modal','155466ZoUFPy','success','refill_every','initialForm','Bucket\x20created','1991936iwPwDG','/queue/bucket/update/','20GqjuLA','Save\x20failed','7ucHFEw','stringify','error','form','editMode','2515HcUVSJ','Bucket\x20updated','273294qRMYXT','221966nUZmxl','9047621lLCjSo','$attr','2634xCkltB','modal'];_0x4d68=function(){return _0x18baec;};return _0x4d68();}const _0x9ba0f6=_0x7866;(function(_0x95a3d2,_0x368286){const _0x5c8b99=_0x7866,_0x126737=_0x95a3d2();while(!![]){try{const _0x229d5f=-parseInt(_0x5c8b99(0x18a))/0x1+parseInt(_0x5c8b99(0x18b))/0x2+parseInt(_0x5c8b99(0x174))/0x3*(-parseInt(_0x5c8b99(0x169))/0x4)+parseInt(_0x5c8b99(0x188))/0x5*(-parseInt(_0x5c8b99(0x18e))/0x6)+parseInt(_0x5c8b99(0x183))/0x7*(-parseInt(_0x5c8b99(0x17f))/0x8)+-parseInt(_0x5c8b99(0x17a))/0x9*(-parseInt(_0x5c8b99(0x181))/0xa)+parseInt(_0x5c8b99(0x18c))/0xb;if(_0x229d5f===_0x368286)break;else _0x126737['push'](_0x126737['shift']());}catch(_0xc33c6){_0x126737['push'](_0x126737['shift']());}}}(_0x4d68,0x223ba));import _0x136eb9 from'../../../stores/okdb-store.js';function _0x7866(_0x5973f2,_0x14a368){_0x5973f2=_0x5973f2-0x169;const _0x4d68df=_0x4d68();let _0x786615=_0x4d68df[_0x5973f2];return _0x786615;}export default{'tag':_0x9ba0f6(0x179),'attr':{'modal':{},'editMode':{},'initialForm':{},'onDone':{}},'context'(_0x5d2a6e){const _0x56d8a7=_0x9ba0f6,_0x953c07=_0x5d2a6e['$attr'][_0x56d8a7(0x17d)]??{};return{'busy':!0x1,'error':null,'form':{'id':_0x953c07['id']??'','capacity':_0x953c07[_0x56d8a7(0x175)]??0x64,'tokens':_0x953c07[_0x56d8a7(0x171)]??0x64,'refill_amount':_0x953c07['refill_amount']??0x0,'refill_every':_0x953c07[_0x56d8a7(0x17c)]??0x0},get 'editMode'(){const _0x3ddce6=_0x56d8a7;return!!_0x5d2a6e[_0x3ddce6(0x18d)]['editMode'];},async 'save'(){const _0x3fd65d=_0x56d8a7,_0x54b78e=String(this[_0x3fd65d(0x186)]['id']||'')[_0x3fd65d(0x16c)]();if(_0x54b78e){this[_0x3fd65d(0x16d)]=!0x0,this['error']=null;try{const _0x46646f=this[_0x3fd65d(0x187)]?_0x136eb9['apiBase']+_0x3fd65d(0x180)+encodeURIComponent(_0x54b78e):_0x136eb9[_0x3fd65d(0x172)]+_0x3fd65d(0x16a)+encodeURIComponent(_0x54b78e),_0x2699fa=await fetch(_0x46646f,{'method':_0x3fd65d(0x176),'headers':{'Content-Type':_0x3fd65d(0x177)},'body':JSON[_0x3fd65d(0x184)]({'capacity':Number(this[_0x3fd65d(0x186)][_0x3fd65d(0x175)])||0x0,'tokens':Number(this[_0x3fd65d(0x186)][_0x3fd65d(0x171)])??0x0,'refill_amount':Number(this[_0x3fd65d(0x186)]['refill_amount'])||0x0,'refill_every':Number(this['form']['refill_every'])||0x0})}),_0x2e6255=await _0x2699fa[_0x3fd65d(0x16e)]();if(!_0x2699fa['ok'])throw new Error(_0x2e6255?.[_0x3fd65d(0x185)]?.[_0x3fd65d(0x16f)]||_0x3fd65d(0x182));_0x5d2a6e[_0x3fd65d(0x173)][_0x3fd65d(0x170)]?.[_0x3fd65d(0x16b)]?.[_0x3fd65d(0x17b)]?.(this[_0x3fd65d(0x187)]?_0x3fd65d(0x189):_0x3fd65d(0x17e)),await _0x5d2a6e['$attr'][_0x3fd65d(0x18f)][_0x3fd65d(0x178)](),await _0x5d2a6e[_0x3fd65d(0x18d)]['onDone']?.();}catch(_0x3f0e65){this[_0x3fd65d(0x185)]=_0x3f0e65?.[_0x3fd65d(0x16f)]||_0x3fd65d(0x182);}finally{this[_0x3fd65d(0x16d)]=!0x1;}}else this[_0x3fd65d(0x185)]='Bucket\x20ID\x20is\x20required';},'cancel'(){const _0x2f3587=_0x56d8a7;_0x5d2a6e[_0x2f3587(0x18d)][_0x2f3587(0x18f)][_0x2f3587(0x178)]();}};},'template':'\x0a<div\x20style=\x22min-width:320px;\x20display:flex;\x20flex-direction:column;\x20gap:12px;\x22>\x0a\x0a\x20\x20<if\x20:=\x22error\x22>\x0a\x20\x20\x20\x20<div\x20style=\x22color:var(--okdb-danger);\x20font-size:12px;\x20padding:8px;\x20border:1px\x20solid\x20var(--okdb-danger);\x20border-radius:6px;\x22>{{\x20error\x20}}</div>\x0a\x20\x20</if>\x0a\x0a\x20\x20<div\x20style=\x22display:grid;\x20grid-template-columns:120px\x201fr;\x20gap:8px\x2012px;\x20align-items:center;\x20font-size:13px;\x22>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Bucket\x20ID</label>\x0a\x20\x20\x20\x20<input\x0a\x20\x20\x20\x20\x20\x20:value=\x22form.id\x22\x0a\x20\x20\x20\x20\x20\x20@input=\x22form.id\x20=\x20$el.value\x22\x0a\x20\x20\x20\x20\x20\x20:disabled=\x22editMode\x22\x0a\x20\x20\x20\x20\x20\x20placeholder=\x22e.g.\x20openai-api\x22\x0a\x20\x20\x20\x20\x20\x20style=\x22font-family:monospace;\x22\x0a\x20\x20\x20\x20\x20\x20@keydown.enter=\x22save()\x22\x0a\x20\x20\x20\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Capacity</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x221\x22\x20:value=\x22form.capacity\x22\x20@input=\x22form.capacity\x20=\x20Number($el.value)\x22\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Initial\x20Tokens</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x20:value=\x22form.tokens\x22\x20@input=\x22form.tokens\x20=\x20Number($el.value)\x22\x20/>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22grid-column:1/-1;\x20height:1px;\x20background:var(--okdb-app-border);\x20margin:4px\x200;\x22></div>\x0a\x0a\x20\x20\x20\x20<div\x20style=\x22grid-column:1/-1;\x20font-size:11px;\x20opacity:.5;\x20text-transform:uppercase;\x20letter-spacing:.05em;\x22>\x0a\x20\x20\x20\x20\x20\x20Auto-Refill\x20(optional)\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Refill\x20Amount</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x20:value=\x22form.refill_amount\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22form.refill_amount\x20=\x20Number($el.value)\x22\x20placeholder=\x220\x20=\x20disabled\x22\x20/>\x0a\x0a\x20\x20\x20\x20<label\x20style=\x22opacity:.7;\x22>Refill\x20Every\x20(ms)</label>\x0a\x20\x20\x20\x20<input\x20type=\x22number\x22\x20min=\x220\x22\x20:value=\x22form.refill_every\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@input=\x22form.refill_every\x20=\x20Number($el.value)\x22\x20placeholder=\x22e.g.\x2060000\x20for\x201\x20min\x22\x20/>\x0a\x0a\x20\x20</div>\x0a\x0a\x20\x20<div\x20style=\x22display:flex;\x20gap:10px;\x20justify-content:flex-end;\x20margin-top:4px;\x22>\x0a\x20\x20\x20\x20<button\x20@click=\x22cancel()\x22>Cancel</button>\x0a\x20\x20\x20\x20<button\x20@click=\x22save()\x22\x20:disabled=\x22busy\x20||\x20!form.id\x22>\x0a\x20\x20\x20\x20\x20\x20{{\x20busy\x20?\x20\x27Saving…\x27\x20:\x20(editMode\x20?\x20\x27Save\x27\x20:\x20\x27Create\x27)\x20}}\x0a\x20\x20\x20\x20</button>\x0a\x20\x20</div>\x0a\x0a</div>\x0a'};