@flamingo-stack/openframe-frontend-core 0.0.750 → 0.0.752

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 (82) hide show
  1. package/dist/{chunk-OFO75R2O.cjs → chunk-35RU25PJ.cjs} +130 -130
  2. package/dist/{chunk-ALPRQ3ZX.cjs → chunk-3GG3QAPT.cjs} +15 -15
  3. package/dist/{chunk-7RCTOWBA.cjs → chunk-4OTCQEP3.cjs} +28 -28
  4. package/dist/{chunk-XJ3J4UIS.cjs → chunk-4PEG4JTM.cjs} +19 -19
  5. package/dist/{chunk-3TELPOVH.cjs → chunk-7OEVVMAU.cjs} +2 -2
  6. package/dist/{chunk-CNUZLOVA.cjs → chunk-7WEGXNNS.cjs} +40 -40
  7. package/dist/{chunk-C6LPOYDM.cjs → chunk-AG4HR6Z6.cjs} +8 -8
  8. package/dist/{chunk-V3UJ6NDR.cjs → chunk-EM4OEWCM.cjs} +171 -171
  9. package/dist/{chunk-HOEVD6EN.cjs → chunk-EUQJ7QHW.cjs} +4 -4
  10. package/dist/{chunk-FP6HAJQV.cjs → chunk-G44V3UGE.cjs} +105 -105
  11. package/dist/{chunk-2YXOD2KL.cjs → chunk-H3RYUTND.cjs} +5 -0
  12. package/dist/{chunk-JPUTILTV.cjs → chunk-IPVJAML5.cjs} +94 -94
  13. package/dist/{chunk-KVSEWACW.cjs → chunk-J5G4CF2V.cjs} +28 -28
  14. package/dist/{chunk-2J2OBP4N.cjs → chunk-JI6NRWCC.cjs} +21 -21
  15. package/dist/{chunk-4O2KYY4K.cjs → chunk-KBJSZFBZ.cjs} +3 -3
  16. package/dist/{chunk-G7SBHMRR.cjs → chunk-KHKPLOU4.cjs} +69 -39
  17. package/dist/{chunk-45YRDD7W.cjs → chunk-KUVYVAS2.cjs} +22 -22
  18. package/dist/{chunk-UGCRLRCT.cjs → chunk-NO5UJLLQ.cjs} +2 -5
  19. package/dist/{chunk-WZX26ODJ.cjs → chunk-OXCGQV6B.cjs} +152 -133
  20. package/dist/{chunk-FHT7SMA7.cjs → chunk-OXEAN3EQ.cjs} +47 -47
  21. package/dist/{chunk-E3KFEOFA.cjs → chunk-P4ODFQGA.cjs} +7 -7
  22. package/dist/{chunk-AW6GP3JK.cjs → chunk-RDH63XXW.cjs} +83 -83
  23. package/dist/{chunk-CLAJIQ7E.cjs → chunk-U2AE4UG7.cjs} +19 -19
  24. package/dist/{chunk-6KEJQR6L.cjs → chunk-VD3XBUQR.cjs} +797 -797
  25. package/dist/{chunk-4FWURR3W.cjs → chunk-VUWPLQBY.cjs} +2 -2
  26. package/dist/{chunk-YL62VAHC.cjs → chunk-WQCLN27R.cjs} +6 -6
  27. package/dist/{chunk-GVETSV7H.cjs → chunk-XADJG35G.cjs} +48 -48
  28. package/dist/{chunk-BO6ZOAPB.cjs → chunk-Y6PVZRYL.cjs} +12 -12
  29. package/dist/{chunk-DGEB5GUZ.cjs → chunk-ZVOXBSDP.cjs} +2 -2
  30. package/dist/{chunk-34TWK3JE.cjs → chunk-ZYRRRKSZ.cjs} +3 -3
  31. package/dist/{cloud-tenants-E4JSG3GH.cjs → cloud-tenants-WAOMZZQ2.cjs} +13 -13
  32. package/dist/components/case-studies/index.cjs +26 -26
  33. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts +7 -5
  34. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
  35. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.js +33 -14
  36. package/dist/components/chat/index.cjs +8 -8
  37. package/dist/components/chat/types/api.types.d.ts +27 -8
  38. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  39. package/dist/components/chat/types/network.types.d.ts +2 -1
  40. package/dist/components/chat/types/network.types.d.ts.map +1 -1
  41. package/dist/components/contact/index.cjs +14 -14
  42. package/dist/components/docs/index.cjs +17 -17
  43. package/dist/components/embeds/index.cjs +14 -14
  44. package/dist/components/faq/index.cjs +15 -15
  45. package/dist/components/features/index.cjs +13 -13
  46. package/dist/components/help-center-pages/index.cjs +123 -123
  47. package/dist/components/index.cjs +64 -64
  48. package/dist/components/loading/loading-region.d.ts.map +1 -1
  49. package/dist/components/loading/loading-region.js +2 -5
  50. package/dist/components/loading/unified-skeleton.d.ts +2 -0
  51. package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
  52. package/dist/components/loading/unified-skeleton.js +5 -0
  53. package/dist/components/meeting-scheduler/index.cjs +79 -79
  54. package/dist/components/navigation/index.cjs +16 -16
  55. package/dist/components/onboarding-guides/index.cjs +16 -16
  56. package/dist/components/product-demo/index.cjs +12 -12
  57. package/dist/components/related-content/index.cjs +7 -7
  58. package/dist/components/tickets/index.cjs +19 -19
  59. package/dist/components/ui/file-manager/index.cjs +30 -30
  60. package/dist/components/ui/index.cjs +13 -13
  61. package/dist/{devices-AVRQGB2N.cjs → devices-VFEPXW2N.cjs} +14 -14
  62. package/dist/{embeddable-chat-SNYQSMS7.cjs → embeddable-chat-BYQBABDV.cjs} +74 -74
  63. package/dist/hooks/index.cjs +3 -3
  64. package/dist/index.cjs +17 -17
  65. package/dist/{knowledge-S3CNISQH.cjs → knowledge-4TE7AWZX.cjs} +14 -14
  66. package/dist/{logs-WDLOKDXT.cjs → logs-3B2P3JXN.cjs} +21 -21
  67. package/dist/nats/index.cjs +2 -2
  68. package/dist/nats/nats.d.ts +33 -7
  69. package/dist/nats/nats.d.ts.map +1 -1
  70. package/dist/nats/nats.js +41 -11
  71. package/dist/{policies-STML7NEZ.cjs → policies-DVI6V22X.cjs} +17 -17
  72. package/dist/{remote-session-ZKP2W3IS.cjs → remote-session-57DGC4X3.cjs} +6 -6
  73. package/dist/{scripts-HO53VYGX.cjs → scripts-JJ2BVYQ5.cjs} +20 -20
  74. package/dist/{software-update-4VTK7LWQ.cjs → software-update-BN23RATE.cjs} +17 -17
  75. package/dist/{tickets-board-BNW4AYFL.cjs → tickets-board-EP6L3BSV.cjs} +7 -7
  76. package/package.json +1 -1
  77. package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +59 -23
  78. package/src/components/chat/types/api.types.ts +27 -8
  79. package/src/components/chat/types/network.types.ts +2 -1
  80. package/src/components/loading/loading-region.tsx +4 -9
  81. package/src/components/loading/unified-skeleton.tsx +13 -0
  82. package/src/nats/nats.ts +91 -20
@@ -8,23 +8,23 @@ var _chunkSTEJZPIOcjs = require('./chunk-STEJZPIO.cjs');
8
8
  var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
9
9
 
10
10
 
11
- var _chunk6KEJQR6Lcjs = require('./chunk-6KEJQR6L.cjs');
12
- require('./chunk-C6LPOYDM.cjs');
11
+ var _chunkVD3XBUQRcjs = require('./chunk-VD3XBUQR.cjs');
12
+ require('./chunk-AG4HR6Z6.cjs');
13
13
  require('./chunk-NTGIQP7O.cjs');
14
- require('./chunk-ALPRQ3ZX.cjs');
14
+ require('./chunk-3GG3QAPT.cjs');
15
15
  require('./chunk-HQQE74RO.cjs');
16
16
  require('./chunk-DEY6XXGO.cjs');
17
- require('./chunk-4FWURR3W.cjs');
17
+ require('./chunk-VUWPLQBY.cjs');
18
18
  require('./chunk-LU7TD6QS.cjs');
19
19
  require('./chunk-24I6RFVU.cjs');
20
20
  require('./chunk-A6P6DHEZ.cjs');
21
21
  require('./chunk-MZ4KBSH7.cjs');
22
- require('./chunk-3TELPOVH.cjs');
22
+ require('./chunk-7OEVVMAU.cjs');
23
23
  require('./chunk-YUMFVQIN.cjs');
24
- require('./chunk-WZX26ODJ.cjs');
24
+ require('./chunk-OXCGQV6B.cjs');
25
25
 
26
26
 
27
- var _chunkV3UJ6NDRcjs = require('./chunk-V3UJ6NDR.cjs');
27
+ var _chunkEM4OEWCMcjs = require('./chunk-EM4OEWCM.cjs');
28
28
  require('./chunk-LVO7FALW.cjs');
29
29
  require('./chunk-3RFQPQ7Z.cjs');
30
30
  require('./chunk-YRULLK7N.cjs');
@@ -1825,8 +1825,8 @@ require('./chunk-7DNL734S.cjs');
1825
1825
  require('./chunk-WWUSFOJ7.cjs');
1826
1826
  require('./chunk-SKI6NKOE.cjs');
1827
1827
  require('./chunk-EWPR7662.cjs');
1828
- require('./chunk-XJ3J4UIS.cjs');
1829
- require('./chunk-OFO75R2O.cjs');
1828
+ require('./chunk-4PEG4JTM.cjs');
1829
+ require('./chunk-35RU25PJ.cjs');
1830
1830
  require('./chunk-QYLIHZKZ.cjs');
1831
1831
  require('./chunk-63N4FN5V.cjs');
1832
1832
  require('./chunk-L2IQESTQ.cjs');
@@ -1852,15 +1852,15 @@ require('./chunk-K6VWTUCH.cjs');
1852
1852
  require('./chunk-MGF3FUKD.cjs');
1853
1853
  require('./chunk-Z74QE57T.cjs');
1854
1854
  require('./chunk-XZJCBIYR.cjs');
1855
- require('./chunk-UGCRLRCT.cjs');
1855
+ require('./chunk-NO5UJLLQ.cjs');
1856
1856
  require('./chunk-2QMBXGMQ.cjs');
1857
1857
  require('./chunk-V45KLJQP.cjs');
1858
- require('./chunk-G7SBHMRR.cjs');
1858
+ require('./chunk-KHKPLOU4.cjs');
1859
1859
  require('./chunk-L4UI63K6.cjs');
1860
1860
  require('./chunk-OF336YWG.cjs');
1861
1861
  require('./chunk-3LU4UFPS.cjs');
1862
1862
  require('./chunk-RB6BSE3O.cjs');
1863
- require('./chunk-2YXOD2KL.cjs');
1863
+ require('./chunk-H3RYUTND.cjs');
1864
1864
  require('./chunk-3ATAYP36.cjs');
1865
1865
 
1866
1866
  // src/components/product-demo/screens/knowledge.tsx
@@ -1907,10 +1907,10 @@ function KnowledgeScreen(_props) {
1907
1907
  const cast = _chunkSTEJZPIOcjs.useProductDemoCast.call(void 0, );
1908
1908
  const fixture = _react.useMemo.call(void 0, () => buildKnowledgeFixture(cast), [cast]);
1909
1909
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1910
- _chunk6KEJQR6Lcjs.KnowledgeBaseArticleView,
1910
+ _chunkVD3XBUQRcjs.KnowledgeBaseArticleView,
1911
1911
  {
1912
1912
  ...fixture.article,
1913
- content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV3UJ6NDRcjs.SimpleMarkdownRenderer, { content: fixture.content, textSize: "compact" })
1913
+ content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEM4OEWCMcjs.SimpleMarkdownRenderer, { content: fixture.content, textSize: "compact" })
1914
1914
  }
1915
1915
  ) });
1916
1916
  }
@@ -16,23 +16,23 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunk6KEJQR6Lcjs = require('./chunk-6KEJQR6L.cjs');
20
- require('./chunk-C6LPOYDM.cjs');
19
+ var _chunkVD3XBUQRcjs = require('./chunk-VD3XBUQR.cjs');
20
+ require('./chunk-AG4HR6Z6.cjs');
21
21
  require('./chunk-NTGIQP7O.cjs');
22
- require('./chunk-ALPRQ3ZX.cjs');
22
+ require('./chunk-3GG3QAPT.cjs');
23
23
  require('./chunk-HQQE74RO.cjs');
24
24
  require('./chunk-DEY6XXGO.cjs');
25
- require('./chunk-4FWURR3W.cjs');
25
+ require('./chunk-VUWPLQBY.cjs');
26
26
  require('./chunk-LU7TD6QS.cjs');
27
27
  require('./chunk-24I6RFVU.cjs');
28
28
  require('./chunk-A6P6DHEZ.cjs');
29
29
  require('./chunk-MZ4KBSH7.cjs');
30
- require('./chunk-3TELPOVH.cjs');
30
+ require('./chunk-7OEVVMAU.cjs');
31
31
  require('./chunk-YUMFVQIN.cjs');
32
32
 
33
33
 
34
- var _chunkWZX26ODJcjs = require('./chunk-WZX26ODJ.cjs');
35
- require('./chunk-V3UJ6NDR.cjs');
34
+ var _chunkOXCGQV6Bcjs = require('./chunk-OXCGQV6B.cjs');
35
+ require('./chunk-EM4OEWCM.cjs');
36
36
  require('./chunk-LVO7FALW.cjs');
37
37
  require('./chunk-3RFQPQ7Z.cjs');
38
38
  require('./chunk-YRULLK7N.cjs');
@@ -1833,8 +1833,8 @@ require('./chunk-7DNL734S.cjs');
1833
1833
  require('./chunk-WWUSFOJ7.cjs');
1834
1834
  require('./chunk-SKI6NKOE.cjs');
1835
1835
  require('./chunk-EWPR7662.cjs');
1836
- require('./chunk-XJ3J4UIS.cjs');
1837
- require('./chunk-OFO75R2O.cjs');
1836
+ require('./chunk-4PEG4JTM.cjs');
1837
+ require('./chunk-35RU25PJ.cjs');
1838
1838
  require('./chunk-QYLIHZKZ.cjs');
1839
1839
  require('./chunk-63N4FN5V.cjs');
1840
1840
  require('./chunk-L2IQESTQ.cjs');
@@ -1860,17 +1860,17 @@ require('./chunk-K6VWTUCH.cjs');
1860
1860
  require('./chunk-MGF3FUKD.cjs');
1861
1861
  require('./chunk-Z74QE57T.cjs');
1862
1862
  require('./chunk-XZJCBIYR.cjs');
1863
- require('./chunk-UGCRLRCT.cjs');
1863
+ require('./chunk-NO5UJLLQ.cjs');
1864
1864
 
1865
1865
 
1866
1866
  var _chunk2QMBXGMQcjs = require('./chunk-2QMBXGMQ.cjs');
1867
1867
  require('./chunk-V45KLJQP.cjs');
1868
- require('./chunk-G7SBHMRR.cjs');
1868
+ require('./chunk-KHKPLOU4.cjs');
1869
1869
  require('./chunk-L4UI63K6.cjs');
1870
1870
  require('./chunk-OF336YWG.cjs');
1871
1871
  require('./chunk-3LU4UFPS.cjs');
1872
1872
  require('./chunk-RB6BSE3O.cjs');
1873
- require('./chunk-2YXOD2KL.cjs');
1873
+ require('./chunk-H3RYUTND.cjs');
1874
1874
  require('./chunk-3ATAYP36.cjs');
1875
1875
 
1876
1876
  // src/components/product-demo/screens/logs.tsx
@@ -1888,7 +1888,7 @@ function entry(logId, minutesAgo, severity, toolType, device2, summary) {
1888
1888
  id: logId,
1889
1889
  logId,
1890
1890
  timestamp: displayTime(_chunkDKOLQPE7cjs.demoMinutesAgo.call(void 0, minutesAgo)),
1891
- status: { label: severity, variant: _chunk6KEJQR6Lcjs.logSeverityVariant.call(void 0, severity) },
1891
+ status: { label: severity, variant: _chunkVD3XBUQRcjs.logSeverityVariant.call(void 0, severity) },
1892
1892
  source: { name: toolType, toolType },
1893
1893
  device: device2,
1894
1894
  description: { title: summary }
@@ -1960,13 +1960,13 @@ var NO_FILTERS = {};
1960
1960
  var ACTION_COLUMNS = ["copy", "quickView", "open"];
1961
1961
  var BESIDE_DRAWER_HIDDEN = [...ACTION_COLUMNS, "tool", "source"];
1962
1962
  var logHref = () => "#";
1963
- var copyAction = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6KEJQR6Lcjs.LogCopyIconButton, {});
1963
+ var copyAction = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVD3XBUQRcjs.LogCopyIconButton, {});
1964
1964
  function LogsScreen({ compact = false }) {
1965
1965
  const [dock, setDock] = _react.useState.call(void 0, null);
1966
1966
  const selected = LOGS_FIXTURE_SELECTED;
1967
1967
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full bg-ods-bg", children: [
1968
1968
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1 overflow-clip", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1969
- _chunk6KEJQR6Lcjs.LogsPageView,
1969
+ _chunkVD3XBUQRcjs.LogsPageView,
1970
1970
  {
1971
1971
  showHeader: false,
1972
1972
  className: "p-[var(--spacing-system-l)]",
@@ -1974,7 +1974,7 @@ function LogsScreen({ compact = false }) {
1974
1974
  onSearchChange: noop,
1975
1975
  onOpenFilters: noop,
1976
1976
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1977
- _chunk6KEJQR6Lcjs.LogsTableView,
1977
+ _chunkVD3XBUQRcjs.LogsTableView,
1978
1978
  {
1979
1979
  logs: LOGS_FIXTURE_ENTRIES,
1980
1980
  facets: LOGS_FIXTURE_FACETS,
@@ -1988,8 +1988,8 @@ function LogsScreen({ compact = false }) {
1988
1988
  )
1989
1989
  }
1990
1990
  ) }),
1991
- !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: setDock, className: "relative w-[calc(400px+var(--spacing-system-m))] shrink-0", children: dock && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6KEJQR6Lcjs.AppLayoutDrawerContainerContext.Provider, { value: dock, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1992
- _chunk6KEJQR6Lcjs.LogDrawer,
1991
+ !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: setDock, className: "relative w-[calc(400px+var(--spacing-system-m))] shrink-0", children: dock && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVD3XBUQRcjs.AppLayoutDrawerContainerContext.Provider, { value: dock, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1992
+ _chunkVD3XBUQRcjs.LogDrawer,
1993
1993
  {
1994
1994
  docked: true,
1995
1995
  isOpen: true,
@@ -2001,12 +2001,12 @@ function LogsScreen({ compact = false }) {
2001
2001
  { label: "Log ID", value: selected.logId },
2002
2002
  {
2003
2003
  label: "Source",
2004
- value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6KEJQR6Lcjs.ToolBadge, { toolType: _chunkWZX26ODJcjs.normalizeToolTypeWithFallback.call(void 0, selected.source.toolType) })
2004
+ value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVD3XBUQRcjs.ToolBadge, { toolType: _chunkOXCGQV6Bcjs.normalizeToolTypeWithFallback.call(void 0, selected.source.toolType) })
2005
2005
  },
2006
- { label: "Device", value: _chunk6KEJQR6Lcjs.logSourceLabels.call(void 0, selected.device).deviceName }
2006
+ { label: "Device", value: _chunkVD3XBUQRcjs.logSourceLabels.call(void 0, selected.device).deviceName }
2007
2007
  ],
2008
2008
  deviceCard: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2009
- _chunk6KEJQR6Lcjs.DeviceCard,
2009
+ _chunkVD3XBUQRcjs.DeviceCard,
2010
2010
  {
2011
2011
  ...LOGS_FIXTURE_DEVICE,
2012
2012
  actions: {
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- var _chunkG7SBHMRRcjs = require('../chunk-G7SBHMRR.cjs');
15
+ var _chunkKHKPLOU4cjs = require('../chunk-KHKPLOU4.cjs');
16
16
 
17
17
 
18
18
 
@@ -26,4 +26,4 @@ var _chunkG7SBHMRRcjs = require('../chunk-G7SBHMRR.cjs');
26
26
 
27
27
 
28
28
 
29
- exports.NATS_DEFAULTS = _chunkG7SBHMRRcjs.NATS_DEFAULTS; exports.NatsProvider = _chunkG7SBHMRRcjs.NatsProvider; exports.acquireClient = _chunkG7SBHMRRcjs.acquireClient; exports.createNatsClient = _chunkG7SBHMRRcjs.createNatsClient; exports.getSharedConnection = _chunkG7SBHMRRcjs.getSharedConnection; exports.getSharedConnectionFor = _chunkG7SBHMRRcjs.getSharedConnectionFor; exports.releaseClient = _chunkG7SBHMRRcjs.releaseClient; exports.startConnectionLifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle; exports.useNats = _chunkG7SBHMRRcjs.useNats; exports.useNatsJsonSubscription = _chunkG7SBHMRRcjs.useNatsJsonSubscription; exports.useNatsSubscription = _chunkG7SBHMRRcjs.useNatsSubscription; exports.useOptionalNats = _chunkG7SBHMRRcjs.useOptionalNats;
29
+ exports.NATS_DEFAULTS = _chunkKHKPLOU4cjs.NATS_DEFAULTS; exports.NatsProvider = _chunkKHKPLOU4cjs.NatsProvider; exports.acquireClient = _chunkKHKPLOU4cjs.acquireClient; exports.createNatsClient = _chunkKHKPLOU4cjs.createNatsClient; exports.getSharedConnection = _chunkKHKPLOU4cjs.getSharedConnection; exports.getSharedConnectionFor = _chunkKHKPLOU4cjs.getSharedConnectionFor; exports.releaseClient = _chunkKHKPLOU4cjs.releaseClient; exports.startConnectionLifecycle = _chunkKHKPLOU4cjs.startConnectionLifecycle; exports.useNats = _chunkKHKPLOU4cjs.useNats; exports.useNatsJsonSubscription = _chunkKHKPLOU4cjs.useNatsJsonSubscription; exports.useNatsSubscription = _chunkKHKPLOU4cjs.useNatsSubscription; exports.useOptionalNats = _chunkKHKPLOU4cjs.useOptionalNats;
@@ -4,14 +4,25 @@ export type JetStreamDeliverPolicy = 'new' | 'byStartSequence';
4
4
  export interface JetStreamOrderedSubscribeOptions {
5
5
  streamName: string;
6
6
  filterSubject: string;
7
+ /**
8
+ * `'byStartSequence'` delivers every retained message from `optStartSeq` on.
9
+ * `'new'` delivers only what is published after the server creates the
10
+ * consumer, which happens after the returned promise resolves: a caller that
11
+ * acts once subscribed and must see everything that follows uses a start
12
+ * sequence instead.
13
+ */
7
14
  deliverPolicy: JetStreamDeliverPolicy;
8
- /** Required when deliverPolicy === 'byStartSequence'. */
15
+ /**
16
+ * First stream sequence to deliver, for `'byStartSequence'`; ignored for
17
+ * `'new'`. Missing or 0 starts at the first message the stream retains.
18
+ */
9
19
  optStartSeq?: number;
10
20
  /**
11
21
  * Auto-cleanup the ephemeral consumer after this idle time. Defaults to
12
- * nats.ws's own. Applies to the consumer created first: nats.ws only reads it
13
- * when the start sequence is the one it was built with, so every consumer it
14
- * recreates afterwards reverts to the library default.
22
+ * nats.ws's own. nats.ws reads it only while it builds the consumer at the
23
+ * start it was asked for — `'new'`, or `optStartSeq` 0/unset — and has
24
+ * delivered nothing yet. A consumer created from `optStartSeq` ≥ 1, and any
25
+ * recreation after a delivery, gets the library default.
15
26
  */
16
27
  inactiveThresholdMs?: number;
17
28
  /** AbortSignal to tear down the consumer. */
@@ -24,10 +35,25 @@ export interface JetStreamOrderedSubscribeOptions {
24
35
  * but everything that aged out of the stream while it was gone is
25
36
  * unrecoverable from the tail, and no connection event announces it (the
26
37
  * WebSocket never dropped). Callers that keep persisted history alongside
27
- * the live tail must refetch it here, or they keep showing a snapshot from
28
- * before the gap.
38
+ * the live tail must refetch it, or they keep showing a snapshot from before
39
+ * the gap — once the recreated consumer has caught up (`onCaughtUp`), not
40
+ * here.
29
41
  */
30
42
  onRecovered?: () => void;
43
+ /**
44
+ * The consumer has delivered everything the stream held for the subject when
45
+ * it was created. Fires once for the first consumer and once more for each
46
+ * one nats.ws recreates (`onRecovered`): after `onMessage` has handled the
47
+ * last message of that backlog, straight away when it was empty, or when
48
+ * consuming failed and nothing more will arrive. In that last case a later
49
+ * consumer replays the gap over a refetch made in the meantime, and the
50
+ * refetch on ITS `onCaughtUp` clears the copies.
51
+ *
52
+ * This is the moment to refetch persisted history after a gap. A refetch
53
+ * that lands while the backlog is still arriving merges without the turns it
54
+ * is about to replay, and the replay then renders them a second time.
55
+ */
56
+ onCaughtUp?: () => void;
31
57
  }
32
58
  export interface JetStreamSubscriptionHandle {
33
59
  unsubscribe(): void;
@@ -132,7 +158,7 @@ export interface NatsClient {
132
158
  /**
133
159
  * Subscribe to a JetStream subject via an ephemeral OrderedConsumer (no acks).
134
160
  * Use `optStartSeq` with `deliverPolicy: 'byStartSequence'` to resume from a known offset,
135
- * or `deliverPolicy: 'new'` to live-tail.
161
+ * or `deliverPolicy: 'new'` to live-tail (see that option for where it starts).
136
162
  */
137
163
  subscribeJetStreamOrdered(onMessage: (msg: JsMsg) => void | Promise<void>, options: JetStreamOrderedSubscribeOptions): Promise<JetStreamSubscriptionHandle>;
138
164
  onStatus(listener: (event: NatsStatusEvent) => void): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"nats.d.ts","sourceRoot":"","sources":["../../src/nats/nats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nats.d.ts","sourceRoot":"","sources":["../../src/nats/nats.ts"],"names":[],"mappings":"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"}
package/dist/nats/nats.js CHANGED
@@ -76,23 +76,25 @@ function mapNatsTypeToStatus(type, events, debugEvents) {
76
76
  return null;
77
77
  }
78
78
  }
79
- function watchForRecovery(iter, recreatedEvent, onRecovered) {
80
- if (!onRecovered) return;
79
+ function watchForRecovery(iter, recreatedEvent, onRecreated) {
81
80
  void (async () => {
82
81
  try {
83
82
  const status = await iter.status();
84
83
  for await (const event of status) {
85
84
  if (event.type !== recreatedEvent) continue;
86
- try {
87
- onRecovered();
88
- } catch (e) {
89
- console.warn("[nats] onRecovered threw:", e);
90
- }
85
+ onRecreated(String(event.data));
91
86
  }
92
87
  } catch {
93
88
  }
94
89
  })();
95
90
  }
91
+ function invokeCallback(name, callback) {
92
+ try {
93
+ callback?.();
94
+ } catch (e) {
95
+ console.warn(`[nats] ${name} threw:`, e);
96
+ }
97
+ }
96
98
  function createNatsClient(options) {
97
99
  let nc = null;
98
100
  let statusLoopAbort = null;
@@ -294,8 +296,9 @@ function createNatsClient(options) {
294
296
  const js = conn.jetstream();
295
297
  const consumer = await js.consumers.get(opts.streamName, {
296
298
  filterSubjects: opts.filterSubject,
297
- deliver_policy: nats.DeliverPolicy.StartSequence,
298
- opt_start_seq: opts.optStartSeq ?? 0,
299
+ // nats.ws turns a start sequence of 0 into 1, so a 'new' that fell back to
300
+ // StartSequence replayed everything the stream retains for the subject.
301
+ ...opts.deliverPolicy === "new" ? { deliver_policy: nats.DeliverPolicy.New } : { deliver_policy: nats.DeliverPolicy.StartSequence, opt_start_seq: opts.optStartSeq ?? 0 },
299
302
  // Milliseconds, NOT nanoseconds: nats.ws runs this through its own
300
303
  // `nanos()` before it reaches the server. Pre-converting here multiplied
301
304
  // it by 1e6 twice, putting the threshold ~9.5 years out — so the ephemeral
@@ -330,6 +333,20 @@ function createNatsClient(options) {
330
333
  return { unsubscribe() {
331
334
  } };
332
335
  }
336
+ let backlogOwed = true;
337
+ const reportCaughtUp = () => {
338
+ if (!backlogOwed || closed) return;
339
+ backlogOwed = false;
340
+ invokeCallback("onCaughtUp", opts.onCaughtUp);
341
+ };
342
+ const reportIfNothingPending = async (consumerName) => {
343
+ try {
344
+ const info = await consumer.info(true);
345
+ if (consumerName !== void 0 && info.name !== consumerName) return;
346
+ if (info.num_pending === 0) reportCaughtUp();
347
+ } catch {
348
+ }
349
+ };
333
350
  (async () => {
334
351
  try {
335
352
  const iter = await consumer.consume();
@@ -341,7 +358,16 @@ function createNatsClient(options) {
341
358
  return;
342
359
  }
343
360
  iterRef.current = iter;
344
- watchForRecovery(iter, nats.ConsumerEvents.OrderedConsumerRecreated, opts.onRecovered);
361
+ if (opts.onRecovered || opts.onCaughtUp) {
362
+ watchForRecovery(iter, nats.ConsumerEvents.OrderedConsumerRecreated, (consumerName) => {
363
+ backlogOwed = true;
364
+ invokeCallback("onRecovered", opts.onRecovered);
365
+ setTimeout(() => {
366
+ void reportIfNothingPending(consumerName);
367
+ }, 0);
368
+ });
369
+ }
370
+ if (opts.onCaughtUp) await reportIfNothingPending();
345
371
  for await (const msg of iter) {
346
372
  if (closed) break;
347
373
  try {
@@ -349,9 +375,13 @@ function createNatsClient(options) {
349
375
  } catch (e) {
350
376
  emitStatus({ status: "error", data: e });
351
377
  }
378
+ if (msg.info.pending === 0) reportCaughtUp();
352
379
  }
353
380
  } catch (e) {
354
- if (!closed) emitStatus({ status: "error", data: e });
381
+ if (!closed) {
382
+ emitStatus({ status: "error", data: e });
383
+ reportCaughtUp();
384
+ }
355
385
  }
356
386
  })().catch((e) => emitStatus({ status: "error", data: e }));
357
387
  return {
@@ -10,21 +10,21 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunk6KEJQR6Lcjs = require('./chunk-6KEJQR6L.cjs');
14
- require('./chunk-C6LPOYDM.cjs');
13
+ var _chunkVD3XBUQRcjs = require('./chunk-VD3XBUQR.cjs');
14
+ require('./chunk-AG4HR6Z6.cjs');
15
15
  require('./chunk-NTGIQP7O.cjs');
16
- require('./chunk-ALPRQ3ZX.cjs');
16
+ require('./chunk-3GG3QAPT.cjs');
17
17
  require('./chunk-HQQE74RO.cjs');
18
18
  require('./chunk-DEY6XXGO.cjs');
19
- require('./chunk-4FWURR3W.cjs');
19
+ require('./chunk-VUWPLQBY.cjs');
20
20
  require('./chunk-LU7TD6QS.cjs');
21
21
  require('./chunk-24I6RFVU.cjs');
22
22
  require('./chunk-A6P6DHEZ.cjs');
23
23
  require('./chunk-MZ4KBSH7.cjs');
24
- require('./chunk-3TELPOVH.cjs');
24
+ require('./chunk-7OEVVMAU.cjs');
25
25
  require('./chunk-YUMFVQIN.cjs');
26
- require('./chunk-WZX26ODJ.cjs');
27
- require('./chunk-V3UJ6NDR.cjs');
26
+ require('./chunk-OXCGQV6B.cjs');
27
+ require('./chunk-EM4OEWCM.cjs');
28
28
  require('./chunk-LVO7FALW.cjs');
29
29
  require('./chunk-3RFQPQ7Z.cjs');
30
30
  require('./chunk-YRULLK7N.cjs');
@@ -1825,8 +1825,8 @@ require('./chunk-7DNL734S.cjs');
1825
1825
  require('./chunk-WWUSFOJ7.cjs');
1826
1826
  require('./chunk-SKI6NKOE.cjs');
1827
1827
  require('./chunk-EWPR7662.cjs');
1828
- require('./chunk-XJ3J4UIS.cjs');
1829
- require('./chunk-OFO75R2O.cjs');
1828
+ require('./chunk-4PEG4JTM.cjs');
1829
+ require('./chunk-35RU25PJ.cjs');
1830
1830
  require('./chunk-QYLIHZKZ.cjs');
1831
1831
  require('./chunk-63N4FN5V.cjs');
1832
1832
  require('./chunk-L2IQESTQ.cjs');
@@ -1852,15 +1852,15 @@ require('./chunk-K6VWTUCH.cjs');
1852
1852
  require('./chunk-MGF3FUKD.cjs');
1853
1853
  require('./chunk-Z74QE57T.cjs');
1854
1854
  require('./chunk-XZJCBIYR.cjs');
1855
- require('./chunk-UGCRLRCT.cjs');
1855
+ require('./chunk-NO5UJLLQ.cjs');
1856
1856
  require('./chunk-2QMBXGMQ.cjs');
1857
1857
  require('./chunk-V45KLJQP.cjs');
1858
- require('./chunk-G7SBHMRR.cjs');
1858
+ require('./chunk-KHKPLOU4.cjs');
1859
1859
  require('./chunk-L4UI63K6.cjs');
1860
1860
  require('./chunk-OF336YWG.cjs');
1861
1861
  require('./chunk-3LU4UFPS.cjs');
1862
1862
  require('./chunk-RB6BSE3O.cjs');
1863
- require('./chunk-2YXOD2KL.cjs');
1863
+ require('./chunk-H3RYUTND.cjs');
1864
1864
  require('./chunk-3ATAYP36.cjs');
1865
1865
 
1866
1866
  // src/components/product-demo/fixtures/policies.ts
@@ -1893,14 +1893,14 @@ var POLICIES = [
1893
1893
  policy("policy-local-admins", "No local admins", "No everyday account is a local administrator.", false, 0)
1894
1894
  ];
1895
1895
  var POLICIES_FIXTURE = {
1896
- summary: _chunk6KEJQR6Lcjs.computePolicySummary.call(void 0, POLICIES),
1896
+ summary: _chunkVD3XBUQRcjs.computePolicySummary.call(void 0, POLICIES),
1897
1897
  rows: POLICIES.map((item) => ({
1898
1898
  id: item.id,
1899
1899
  name: item.name,
1900
1900
  description: item.description,
1901
1901
  critical: item.critical,
1902
1902
  severityLabel: item.critical ? "Critical" : "Low",
1903
- status: _chunk6KEJQR6Lcjs.getPolicyTableStatus.call(void 0, item),
1903
+ status: _chunkVD3XBUQRcjs.getPolicyTableStatus.call(void 0, item),
1904
1904
  actions: [
1905
1905
  { label: "Policy Details", onClick: noop },
1906
1906
  { label: "Delete Policy", onClick: noop }
@@ -1914,16 +1914,16 @@ var POLICIES_FIXTURE = {
1914
1914
  var _jsxruntime = require('react/jsx-runtime');
1915
1915
  function PoliciesScreen({ compact = false }) {
1916
1916
  const table = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1917
- _chunk6KEJQR6Lcjs.PoliciesTable,
1917
+ _chunkVD3XBUQRcjs.PoliciesTable,
1918
1918
  {
1919
1919
  rows: POLICIES_FIXTURE.rows,
1920
1920
  rowAsLink: true,
1921
- rightSlot: compact ? void 0 : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6KEJQR6Lcjs.DataTable.RowCount, {}),
1921
+ rightSlot: compact ? void 0 : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVD3XBUQRcjs.DataTable.RowCount, {}),
1922
1922
  emptyMessage: "No policies found."
1923
1923
  }
1924
1924
  );
1925
1925
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col gap-[var(--spacing-system-l)] bg-ods-bg p-[var(--spacing-system-l)]", children: [
1926
- !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6KEJQR6Lcjs.PolicySummaryCards, { summary: POLICIES_FIXTURE.summary, now: POLICIES_FIXTURE.now }),
1926
+ !compact && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVD3XBUQRcjs.PolicySummaryCards, { summary: POLICIES_FIXTURE.summary, now: POLICIES_FIXTURE.now }),
1927
1927
  table
1928
1928
  ] });
1929
1929
  }
@@ -11,7 +11,7 @@ var _chunkDKOLQPE7cjs = require('./chunk-DKOLQPE7.cjs');
11
11
 
12
12
 
13
13
 
14
- var _chunkALPRQ3ZXcjs = require('./chunk-ALPRQ3ZX.cjs');
14
+ var _chunk3GG3QAPTcjs = require('./chunk-3GG3QAPT.cjs');
15
15
  require('./chunk-A6P6DHEZ.cjs');
16
16
  require('./chunk-YRULLK7N.cjs');
17
17
  require('./chunk-P6F6PHVK.cjs');
@@ -1847,13 +1847,13 @@ require('./chunk-MGF3FUKD.cjs');
1847
1847
 
1848
1848
  var _chunkZ74QE57Tcjs = require('./chunk-Z74QE57T.cjs');
1849
1849
  require('./chunk-XZJCBIYR.cjs');
1850
- require('./chunk-UGCRLRCT.cjs');
1850
+ require('./chunk-NO5UJLLQ.cjs');
1851
1851
  require('./chunk-2QMBXGMQ.cjs');
1852
1852
  require('./chunk-V45KLJQP.cjs');
1853
1853
  require('./chunk-OF336YWG.cjs');
1854
1854
  require('./chunk-3LU4UFPS.cjs');
1855
1855
  require('./chunk-RB6BSE3O.cjs');
1856
- require('./chunk-2YXOD2KL.cjs');
1856
+ require('./chunk-H3RYUTND.cjs');
1857
1857
  require('./chunk-3ATAYP36.cjs');
1858
1858
 
1859
1859
  // src/components/product-demo/screens/remote-session.tsx
@@ -1921,7 +1921,7 @@ function TaskbarApp({ icon, active = false }) {
1921
1921
  );
1922
1922
  }
1923
1923
  function RemoteDesktopPicture({ desktop }) {
1924
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `absolute inset-0 flex flex-col overflow-hidden ${_chunkALPRQ3ZXcjs.DEVICE_WALLPAPER_CLASS}`, children: [
1924
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `absolute inset-0 flex flex-col overflow-hidden ${_chunk3GG3QAPTcjs.DEVICE_WALLPAPER_CLASS}`, children: [
1925
1925
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative min-h-0 flex-1", children: [
1926
1926
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "absolute left-[var(--spacing-system-sf)] top-[var(--spacing-system-sf)] hidden flex-col gap-[var(--spacing-system-sf)] content-md:flex", children: [
1927
1927
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesktopShortcut, { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIYHH5EIOcjs.TrashIcon, { className: "h-5 w-5" }), label: "Recycle Bin" }),
@@ -1985,7 +1985,7 @@ function RemoteSessionScreen({ compact = false }) {
1985
1985
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col bg-ods-bg", children: [
1986
1986
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[var(--spacing-system-l)] flex-shrink-0" }),
1987
1987
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1988
- _chunkALPRQ3ZXcjs.RemoteDesktopView,
1988
+ _chunk3GG3QAPTcjs.RemoteDesktopView,
1989
1989
  {
1990
1990
  ...fixture.view,
1991
1991
  onEnterFullscreen: noop,
@@ -1996,7 +1996,7 @@ function RemoteSessionScreen({ compact = false }) {
1996
1996
  screen: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RemoteDesktopPicture, { desktop: fixture.desktop }),
1997
1997
  chat: compact ? null : (
1998
1998
  // The side column needs the room of the wide layout; a narrow frame keeps the screen alone.
1999
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden min-h-0 content-md:flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkALPRQ3ZXcjs.RemoteDesktopChatPanel, { ...fixture.chat, sending: false, onSend: keepDraft, variant: "side" }) })
1999
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden min-h-0 content-md:flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3GG3QAPTcjs.RemoteDesktopChatPanel, { ...fixture.chat, sending: false, onSend: keepDraft, variant: "side" }) })
2000
2000
  )
2001
2001
  }
2002
2002
  ) })