@use-voltra/ios-client 1.4.0-rc.0

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 (105) hide show
  1. package/build/cjs/VoltraModule.js +6 -0
  2. package/build/cjs/VoltraModule.js.map +1 -0
  3. package/build/cjs/components/VoltraLiveActivityPreview.js +20 -0
  4. package/build/cjs/components/VoltraLiveActivityPreview.js.map +1 -0
  5. package/build/cjs/components/VoltraView.js +37 -0
  6. package/build/cjs/components/VoltraView.js.map +1 -0
  7. package/build/cjs/components/VoltraWidgetPreview.js +26 -0
  8. package/build/cjs/components/VoltraWidgetPreview.js.map +1 -0
  9. package/build/cjs/events.js +19 -0
  10. package/build/cjs/events.js.map +1 -0
  11. package/build/cjs/helpers.js +30 -0
  12. package/build/cjs/helpers.js.map +1 -0
  13. package/build/cjs/index.js +49 -0
  14. package/build/cjs/index.js.map +1 -0
  15. package/build/cjs/live-activity/api.js +158 -0
  16. package/build/cjs/live-activity/api.js.map +1 -0
  17. package/build/cjs/logger.js +36 -0
  18. package/build/cjs/logger.js.map +1 -0
  19. package/build/cjs/package.json +3 -0
  20. package/build/cjs/preload.js +54 -0
  21. package/build/cjs/preload.js.map +1 -0
  22. package/build/cjs/types.js +3 -0
  23. package/build/cjs/types.js.map +1 -0
  24. package/build/cjs/utils/assertRunningOnApple.js +13 -0
  25. package/build/cjs/utils/assertRunningOnApple.js.map +1 -0
  26. package/build/cjs/utils/helpers.js +7 -0
  27. package/build/cjs/utils/helpers.js.map +1 -0
  28. package/build/cjs/utils/index.js +19 -0
  29. package/build/cjs/utils/index.js.map +1 -0
  30. package/build/cjs/utils/useUpdateOnHMR.js +22 -0
  31. package/build/cjs/utils/useUpdateOnHMR.js.map +1 -0
  32. package/build/cjs/widgets/server-credentials.js +18 -0
  33. package/build/cjs/widgets/server-credentials.js.map +1 -0
  34. package/build/cjs/widgets/widget-api.js +59 -0
  35. package/build/cjs/widgets/widget-api.js.map +1 -0
  36. package/build/esm/VoltraModule.js +4 -0
  37. package/build/esm/VoltraModule.js.map +1 -0
  38. package/build/esm/components/VoltraLiveActivityPreview.js +17 -0
  39. package/build/esm/components/VoltraLiveActivityPreview.js.map +1 -0
  40. package/build/esm/components/VoltraView.js +34 -0
  41. package/build/esm/components/VoltraView.js.map +1 -0
  42. package/build/esm/components/VoltraWidgetPreview.js +23 -0
  43. package/build/esm/components/VoltraWidgetPreview.js.map +1 -0
  44. package/build/esm/events.js +13 -0
  45. package/build/esm/events.js.map +1 -0
  46. package/build/esm/helpers.js +23 -0
  47. package/build/esm/helpers.js.map +1 -0
  48. package/build/esm/index.js +10 -0
  49. package/build/esm/index.js.map +1 -0
  50. package/build/esm/live-activity/api.js +146 -0
  51. package/build/esm/live-activity/api.js.map +1 -0
  52. package/build/esm/logger.js +33 -0
  53. package/build/esm/logger.js.map +1 -0
  54. package/build/esm/package.json +3 -0
  55. package/build/esm/preload.js +46 -0
  56. package/build/esm/preload.js.map +1 -0
  57. package/build/esm/types.js +2 -0
  58. package/build/esm/types.js.map +1 -0
  59. package/build/esm/utils/assertRunningOnApple.js +9 -0
  60. package/build/esm/utils/assertRunningOnApple.js.map +1 -0
  61. package/build/esm/utils/helpers.js +2 -0
  62. package/build/esm/utils/helpers.js.map +1 -0
  63. package/build/esm/utils/index.js +3 -0
  64. package/build/esm/utils/index.js.map +1 -0
  65. package/build/esm/utils/useUpdateOnHMR.js +18 -0
  66. package/build/esm/utils/useUpdateOnHMR.js.map +1 -0
  67. package/build/esm/widgets/server-credentials.js +11 -0
  68. package/build/esm/widgets/server-credentials.js.map +1 -0
  69. package/build/esm/widgets/widget-api.js +47 -0
  70. package/build/esm/widgets/widget-api.js.map +1 -0
  71. package/build/types/VoltraModule.d.ts +44 -0
  72. package/build/types/VoltraModule.d.ts.map +1 -0
  73. package/build/types/components/VoltraLiveActivityPreview.d.ts +7 -0
  74. package/build/types/components/VoltraLiveActivityPreview.d.ts.map +1 -0
  75. package/build/types/components/VoltraView.d.ts +12 -0
  76. package/build/types/components/VoltraView.d.ts.map +1 -0
  77. package/build/types/components/VoltraWidgetPreview.d.ts +9 -0
  78. package/build/types/components/VoltraWidgetPreview.d.ts.map +1 -0
  79. package/build/types/events.d.ts +33 -0
  80. package/build/types/events.d.ts.map +1 -0
  81. package/build/types/helpers.d.ts +3 -0
  82. package/build/types/helpers.d.ts.map +1 -0
  83. package/build/types/index.d.ts +13 -0
  84. package/build/types/index.d.ts.map +1 -0
  85. package/build/types/live-activity/api.d.ts +35 -0
  86. package/build/types/live-activity/api.d.ts.map +1 -0
  87. package/build/types/logger.d.ts +16 -0
  88. package/build/types/logger.d.ts.map +1 -0
  89. package/build/types/preload.d.ts +6 -0
  90. package/build/types/preload.d.ts.map +1 -0
  91. package/build/types/types.d.ts +2 -0
  92. package/build/types/types.d.ts.map +1 -0
  93. package/build/types/utils/assertRunningOnApple.d.ts +2 -0
  94. package/build/types/utils/assertRunningOnApple.d.ts.map +1 -0
  95. package/build/types/utils/helpers.d.ts +2 -0
  96. package/build/types/utils/helpers.d.ts.map +1 -0
  97. package/build/types/utils/index.d.ts +3 -0
  98. package/build/types/utils/index.d.ts.map +1 -0
  99. package/build/types/utils/useUpdateOnHMR.d.ts +5 -0
  100. package/build/types/utils/useUpdateOnHMR.d.ts.map +1 -0
  101. package/build/types/widgets/server-credentials.d.ts +5 -0
  102. package/build/types/widgets/server-credentials.d.ts.map +1 -0
  103. package/build/types/widgets/widget-api.d.ts +11 -0
  104. package/build/types/widgets/widget-api.d.ts.map +1 -0
  105. package/package.json +53 -0
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getActiveWidgets = exports.scheduleWidget = exports.clearAllWidgets = exports.clearWidget = exports.reloadWidgets = exports.updateWidget = void 0;
7
+ const ios_1 = require("@use-voltra/ios");
8
+ const assertRunningOnApple_js_1 = require("../utils/assertRunningOnApple.js");
9
+ const VoltraModule_js_1 = __importDefault(require("../VoltraModule.js"));
10
+ const updateWidget = async (widgetId, variants, options) => {
11
+ if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
12
+ return Promise.resolve();
13
+ const payload = (0, ios_1.renderWidgetToString)(variants);
14
+ return VoltraModule_js_1.default.updateWidget(widgetId, payload, {
15
+ deepLinkUrl: options?.deepLinkUrl,
16
+ });
17
+ };
18
+ exports.updateWidget = updateWidget;
19
+ const reloadWidgets = async (widgetIds) => {
20
+ if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
21
+ return Promise.resolve();
22
+ return VoltraModule_js_1.default.reloadWidgets(widgetIds ?? null);
23
+ };
24
+ exports.reloadWidgets = reloadWidgets;
25
+ const clearWidget = async (widgetId) => {
26
+ if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
27
+ return Promise.resolve();
28
+ return VoltraModule_js_1.default.clearWidget(widgetId);
29
+ };
30
+ exports.clearWidget = clearWidget;
31
+ const clearAllWidgets = async () => {
32
+ if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
33
+ return Promise.resolve();
34
+ return VoltraModule_js_1.default.clearAllWidgets();
35
+ };
36
+ exports.clearAllWidgets = clearAllWidgets;
37
+ const scheduleWidget = async (widgetId, entries) => {
38
+ if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
39
+ return Promise.resolve();
40
+ const renderedEntries = entries.map((entry) => ({
41
+ date: entry.date.getTime(),
42
+ json: (0, ios_1.renderWidgetToString)(entry.variants),
43
+ deepLinkUrl: entry.deepLinkUrl,
44
+ }));
45
+ const timelineData = {
46
+ entries: renderedEntries,
47
+ policy: { type: 'never' },
48
+ };
49
+ const timelineJson = JSON.stringify(timelineData);
50
+ return VoltraModule_js_1.default.scheduleWidget(widgetId, timelineJson);
51
+ };
52
+ exports.scheduleWidget = scheduleWidget;
53
+ const getActiveWidgets = async () => {
54
+ if (!(0, assertRunningOnApple_js_1.assertRunningOnApple)())
55
+ return [];
56
+ return VoltraModule_js_1.default.getActiveWidgets();
57
+ };
58
+ exports.getActiveWidgets = getActiveWidgets;
59
+ //# sourceMappingURL=widget-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-api.js","sourceRoot":"","sources":["../../../src/widgets/widget-api.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAuH;AAGvH,8EAAuE;AACvE,yEAA6C;AAKtC,MAAM,YAAY,GAAG,KAAK,EAC/B,QAAgB,EAChB,QAAwB,EACxB,OAA6B,EACd,EAAE;IACjB,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,MAAM,OAAO,GAAG,IAAA,0BAAoB,EAAC,QAAQ,CAAC,CAAA;IAE9C,OAAO,yBAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE;QAClD,WAAW,EAAE,OAAO,EAAE,WAAW;KAClC,CAAC,CAAA;AACJ,CAAC,CAAA;AAZY,QAAA,YAAY,gBAYxB;AAEM,MAAM,aAAa,GAAG,KAAK,EAAE,SAAoB,EAAiB,EAAE;IACzE,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,OAAO,yBAAY,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;AACtD,CAAC,CAAA;AAJY,QAAA,aAAa,iBAIzB;AAEM,MAAM,WAAW,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IACnE,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,OAAO,yBAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;AAC3C,CAAC,CAAA;AAJY,QAAA,WAAW,eAIvB;AAEM,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;IACvD,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,OAAO,yBAAY,CAAC,eAAe,EAAE,CAAA;AACvC,CAAC,CAAA;AAJY,QAAA,eAAe,mBAI3B;AAEM,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAE,OAA+B,EAAiB,EAAE;IACvG,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,IAAA,0BAAoB,EAAC,KAAK,CAAC,QAAQ,CAAC;QAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,CAAC,CAAA;IAEH,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC1B,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IAEjD,OAAO,yBAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;AAC5D,CAAC,CAAA;AAjBY,QAAA,cAAc,kBAiB1B;AAEM,MAAM,gBAAgB,GAAG,KAAK,IAA2B,EAAE;IAChE,IAAI,CAAC,IAAA,8CAAoB,GAAE;QAAE,OAAO,EAAE,CAAA;IAEtC,OAAO,yBAAY,CAAC,gBAAgB,EAAE,CAAA;AACxC,CAAC,CAAA;AAJY,QAAA,gBAAgB,oBAI5B"}
@@ -0,0 +1,4 @@
1
+ import { requireNativeModule } from 'expo';
2
+ const VoltraModule = requireNativeModule('VoltraModule');
3
+ export default VoltraModule;
4
+ //# sourceMappingURL=VoltraModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoltraModule.js","sourceRoot":"","sources":["../../src/VoltraModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAsD1C,MAAM,YAAY,GAAG,mBAAmB,CAAsB,cAAc,CAAC,CAAA;AAE7E,eAAe,YAAY,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { VoltraView } from './VoltraView.js';
3
+ const LOCK_SCREEN_DIMENSIONS = {
4
+ width: 364,
5
+ height: 160,
6
+ };
7
+ export function VoltraLiveActivityPreview({ style, children, ...voltraViewProps }) {
8
+ const previewStyle = [
9
+ {
10
+ width: LOCK_SCREEN_DIMENSIONS.width,
11
+ height: LOCK_SCREEN_DIMENSIONS.height,
12
+ },
13
+ style,
14
+ ];
15
+ return (_jsx(VoltraView, { ...voltraViewProps, style: previewStyle, children: children }));
16
+ }
17
+ //# sourceMappingURL=VoltraLiveActivityPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoltraLiveActivityPreview.js","sourceRoot":"","sources":["../../../src/components/VoltraLiveActivityPreview.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAA;AAElE,MAAM,sBAAsB,GAAG;IAC7B,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;CACZ,CAAA;AAMD,MAAM,UAAU,yBAAyB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAkC;IAC/G,MAAM,YAAY,GAAyB;QACzC;YACE,KAAK,EAAE,sBAAsB,CAAC,KAAK;YACnC,MAAM,EAAE,sBAAsB,CAAC,MAAM;SACtC;QACD,KAAK;KACN,CAAA;IAED,OAAO,CACL,KAAC,UAAU,OAAK,eAAe,EAAE,KAAK,EAAE,YAAY,YACjD,QAAQ,GACE,CACd,CAAA;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { requireNativeView } from 'expo';
3
+ import { useEffect, useMemo } from 'react';
4
+ import { View } from 'react-native';
5
+ import { renderVoltraVariantToJson } from '@use-voltra/ios';
6
+ import { addVoltraListener } from '../events.js';
7
+ const NativeVoltraView = requireNativeView('VoltraModule');
8
+ const generateViewId = () => `voltra-view-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
9
+ const voltraViewStyle = {
10
+ flex: 1,
11
+ };
12
+ export function VoltraView({ id, children, style, onInteraction, testID }) {
13
+ const viewId = useMemo(() => id || generateViewId(), [id]);
14
+ const json = renderVoltraVariantToJson(children);
15
+ const payload = JSON.stringify(json);
16
+ useEffect(() => {
17
+ if (!onInteraction)
18
+ return;
19
+ const subscription = addVoltraListener('interaction', (event) => {
20
+ if (event.source === viewId) {
21
+ onInteraction({
22
+ type: 'interaction',
23
+ source: event.source,
24
+ timestamp: event.timestamp,
25
+ identifier: event.identifier,
26
+ payload: event.payload,
27
+ });
28
+ }
29
+ });
30
+ return () => subscription.remove();
31
+ }, [viewId, onInteraction]);
32
+ return (_jsx(View, { testID: testID, style: style, children: _jsx(NativeVoltraView, { payload: payload, viewId: viewId, style: voltraViewStyle }) }));
33
+ }
34
+ //# sourceMappingURL=VoltraView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoltraView.js","sourceRoot":"","sources":["../../../src/components/VoltraView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAA;AACxC,OAAc,EAAkB,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,EAAkB,IAAI,EAAkB,MAAM,cAAc,CAAA;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAA+B,MAAM,cAAc,CAAA;AAE7E,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;AAE1D,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AAEtG,MAAM,eAAe,GAAc;IACjC,IAAI,EAAE,CAAC;CACR,CAAA;AAUD,MAAM,UAAU,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAmB;IACxF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAE1D,MAAM,IAAI,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa;YAAE,OAAM;QAE1B,MAAM,YAAY,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5B,aAAa,CAAC;oBACZ,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;IACpC,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;IAE3B,OAAO,CACL,KAAC,IAAI,IAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,YAChC,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAI,GACzE,CACR,CAAA;AACH,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { VoltraView } from './VoltraView.js';
3
+ const WIDGET_DIMENSIONS = {
4
+ systemSmall: { width: 170, height: 170 },
5
+ systemMedium: { width: 364, height: 170 },
6
+ systemLarge: { width: 364, height: 382 },
7
+ systemExtraLarge: { width: 364, height: 768 },
8
+ accessoryCircular: { width: 76, height: 76 },
9
+ accessoryRectangular: { width: 172, height: 76 },
10
+ accessoryInline: { width: 172, height: 40 },
11
+ };
12
+ export function VoltraWidgetPreview({ family, style, children, ...voltraViewProps }) {
13
+ const dimensions = WIDGET_DIMENSIONS[family];
14
+ const previewStyle = [
15
+ {
16
+ width: dimensions.width,
17
+ height: dimensions.height,
18
+ },
19
+ style,
20
+ ];
21
+ return (_jsx(VoltraView, { ...voltraViewProps, style: previewStyle, children: children }));
22
+ }
23
+ //# sourceMappingURL=VoltraWidgetPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoltraWidgetPreview.js","sourceRoot":"","sources":["../../../src/components/VoltraWidgetPreview.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAA;AAElE,MAAM,iBAAiB,GAA4D;IACjF,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACxC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACzC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACxC,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAC7C,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAC5C,oBAAoB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;IAChD,eAAe,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;CAC5C,CAAA;AAOD,MAAM,UAAU,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,eAAe,EAA4B;IAC3G,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAyB;QACzC;YACE,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B;QACD,KAAK;KACN,CAAA;IAED,OAAO,CACL,KAAC,UAAU,OAAK,eAAe,EAAE,KAAK,EAAE,YAAY,YACjD,QAAQ,GACE,CACd,CAAA;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Platform } from 'react-native';
2
+ import VoltraModule from './VoltraModule.js';
3
+ const noopSubscription = {
4
+ remove: () => { },
5
+ };
6
+ export function addVoltraListener(event, listener) {
7
+ if (Platform.OS !== 'ios') {
8
+ console.warn(`[Voltra] Event '${event}' is only supported on iOS. Returning no-op subscription.`);
9
+ return noopSubscription;
10
+ }
11
+ return VoltraModule.addListener(event, listener);
12
+ }
13
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAGvC,OAAO,YAAY,MAAM,mBAAmB,CAAA;AA6B5C,MAAM,gBAAgB,GAAsB;IAC1C,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;CACjB,CAAA;AASD,MAAM,UAAU,iBAAiB,CAC/B,KAAQ,EACR,QAA4C;IAE5C,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,2DAA2D,CAAC,CAAA;QACjG,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED,OAAO,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAClD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Platform } from 'react-native';
2
+ import VoltraModule from './VoltraModule.js';
3
+ export function isGlassSupported() {
4
+ if (Platform.OS !== 'ios')
5
+ return false;
6
+ const v = Platform.Version;
7
+ let major = 0;
8
+ if (typeof v === 'string') {
9
+ const m = parseInt(v.split('.')[0] || '0', 10);
10
+ if (!Number.isNaN(m))
11
+ major = m;
12
+ }
13
+ else if (typeof v === 'number') {
14
+ major = Math.floor(v);
15
+ }
16
+ return major >= 26;
17
+ }
18
+ export function isHeadless() {
19
+ if (Platform.OS !== 'ios')
20
+ return false;
21
+ return VoltraModule.isHeadless?.() ?? false;
22
+ }
23
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAE5C,MAAM,UAAU,gBAAgB;IAC9B,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IACvC,MAAM,CAAC,GAAQ,QAAQ,CAAC,OAAO,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,KAAK,GAAG,CAAC,CAAA;IACjC,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACjC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,KAAK,IAAI,EAAE,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IACvC,OAAO,YAAY,CAAC,UAAU,EAAE,EAAE,IAAI,KAAK,CAAA;AAC7C,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { VoltraLiveActivityPreview, } from './components/VoltraLiveActivityPreview.js';
2
+ export { VoltraView } from './components/VoltraView.js';
3
+ export { VoltraWidgetPreview } from './components/VoltraWidgetPreview.js';
4
+ export * from './events.js';
5
+ export { isGlassSupported, isHeadless } from './helpers.js';
6
+ export { endAllLiveActivities, isLiveActivityActive, startLiveActivity, stopLiveActivity, updateLiveActivity, useLiveActivity, } from './live-activity/api.js';
7
+ export { clearPreloadedImages, preloadImages, reloadLiveActivities, } from './preload.js';
8
+ export { clearWidgetServerCredentials, setWidgetServerCredentials, } from './widgets/server-credentials.js';
9
+ export { clearAllWidgets, clearWidget, getActiveWidgets, reloadWidgets, scheduleWidget, updateWidget, } from './widgets/widget-api.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAE1B,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,UAAU,EAAwB,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,mBAAmB,EAAiC,MAAM,qCAAqC,CAAA;AACxG,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EACL,oBAAoB,EAEpB,oBAAoB,EAEpB,iBAAiB,EAEjB,gBAAgB,EAChB,kBAAkB,EAElB,eAAe,GAGhB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,oBAAoB,EAEpB,aAAa,EAEb,oBAAoB,GACrB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAE3B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,EAEb,cAAc,EACd,YAAY,GAEb,MAAM,yBAAyB,CAAA"}
@@ -0,0 +1,146 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { renderLiveActivityToString } from '@use-voltra/ios';
3
+ import { addVoltraListener } from '../events.js';
4
+ import { logger } from '../logger.js';
5
+ import { assertRunningOnApple, useUpdateOnHMR } from '../utils/index.js';
6
+ import VoltraModule from '../VoltraModule.js';
7
+ const normalizeSharedLiveActivityOptions = (options) => {
8
+ if (!options)
9
+ return undefined;
10
+ const normalizedOptions = {};
11
+ if (options.staleDate !== undefined) {
12
+ if (options.staleDate < Date.now()) {
13
+ logger.warn('Ignoring staleDate because it is in the past, the Live Activity would be dismissed immediately.');
14
+ }
15
+ else {
16
+ normalizedOptions.staleDate = options.staleDate;
17
+ }
18
+ }
19
+ const relevanceScore = options.relevanceScore ?? 0.0;
20
+ if (relevanceScore < 0 || relevanceScore > 1) {
21
+ logger.warn('Ignoring relevanceScore because it is out of range [0.0, 1.0], using default 0.0');
22
+ normalizedOptions.relevanceScore = 0.0;
23
+ }
24
+ else {
25
+ normalizedOptions.relevanceScore = relevanceScore;
26
+ }
27
+ return Object.keys(normalizedOptions).length > 0 ? normalizedOptions : undefined;
28
+ };
29
+ const normalizeEndLiveActivityOptions = (options) => {
30
+ if (!options?.dismissalPolicy)
31
+ return undefined;
32
+ if (typeof options.dismissalPolicy === 'string') {
33
+ if (options.dismissalPolicy === 'immediate') {
34
+ return { dismissalPolicy: { type: 'immediate' } };
35
+ }
36
+ }
37
+ else if (typeof options.dismissalPolicy === 'object' && 'after' in options.dismissalPolicy) {
38
+ return { dismissalPolicy: { type: 'after', date: options.dismissalPolicy.after } };
39
+ }
40
+ return { dismissalPolicy: { type: 'immediate' } };
41
+ };
42
+ export const useLiveActivity = (variants, options) => {
43
+ const [targetId, setTargetId] = useState(() => {
44
+ if (options?.activityName) {
45
+ return isLiveActivityActive(options.activityName) ? options.activityName : null;
46
+ }
47
+ return null;
48
+ });
49
+ const isActive = targetId !== null;
50
+ const optionsRef = useRef(options);
51
+ const variantsRef = useRef(variants);
52
+ const lastUpdateOptionsRef = useRef(undefined);
53
+ useEffect(() => {
54
+ optionsRef.current = options;
55
+ }, [options]);
56
+ useEffect(() => {
57
+ variantsRef.current = variants;
58
+ }, [variants]);
59
+ useUpdateOnHMR();
60
+ const start = useCallback(async (options) => {
61
+ const id = await startLiveActivity(variantsRef.current, { ...optionsRef.current, ...options });
62
+ setTargetId(id);
63
+ }, []);
64
+ const update = useCallback(async (options) => {
65
+ if (!targetId) {
66
+ return;
67
+ }
68
+ const updateOptions = { ...optionsRef.current, ...options };
69
+ lastUpdateOptionsRef.current = updateOptions;
70
+ await updateLiveActivity(targetId, variantsRef.current, updateOptions);
71
+ }, [targetId]);
72
+ const end = useCallback(async (options) => {
73
+ if (!targetId) {
74
+ return;
75
+ }
76
+ await stopLiveActivity(targetId, options);
77
+ setTargetId(null);
78
+ }, [targetId]);
79
+ useEffect(() => {
80
+ if (!options?.autoStart) {
81
+ return;
82
+ }
83
+ start();
84
+ }, [options?.autoStart, start]);
85
+ useEffect(() => {
86
+ if (!options?.autoUpdate)
87
+ return;
88
+ update(lastUpdateOptionsRef.current);
89
+ }, [options?.autoUpdate, update, variants]);
90
+ useEffect(() => {
91
+ if (!targetId)
92
+ return;
93
+ const subscription = addVoltraListener('stateChange', (event) => {
94
+ if (event.activityName !== targetId)
95
+ return;
96
+ if (event.activityState === 'dismissed' || event.activityState === 'ended') {
97
+ setTargetId(null);
98
+ }
99
+ });
100
+ return () => subscription.remove();
101
+ }, [targetId]);
102
+ return {
103
+ start,
104
+ update,
105
+ end,
106
+ isActive,
107
+ };
108
+ };
109
+ export const startLiveActivity = async (variants, options) => {
110
+ if (!assertRunningOnApple())
111
+ return Promise.resolve('');
112
+ const payload = renderLiveActivityToString(variants);
113
+ const normalizedSharedOptions = normalizeSharedLiveActivityOptions(options);
114
+ const targetId = await VoltraModule.startLiveActivity(payload, {
115
+ target: 'liveActivity',
116
+ deepLinkUrl: options?.deepLinkUrl,
117
+ activityName: options?.activityName,
118
+ channelId: options?.channelId,
119
+ ...normalizedSharedOptions,
120
+ });
121
+ return targetId;
122
+ };
123
+ export const updateLiveActivity = async (targetId, variants, options) => {
124
+ if (!assertRunningOnApple())
125
+ return Promise.resolve();
126
+ const payload = renderLiveActivityToString(variants);
127
+ const normalizedSharedOptions = normalizeSharedLiveActivityOptions(options);
128
+ return VoltraModule.updateLiveActivity(targetId, payload, normalizedSharedOptions);
129
+ };
130
+ export const stopLiveActivity = async (targetId, options) => {
131
+ if (!assertRunningOnApple())
132
+ return Promise.resolve();
133
+ const normalizedOptions = normalizeEndLiveActivityOptions(options);
134
+ return VoltraModule.endLiveActivity(targetId, normalizedOptions);
135
+ };
136
+ export const isLiveActivityActive = (activityName) => {
137
+ if (!assertRunningOnApple())
138
+ return false;
139
+ return VoltraModule.isLiveActivityActive(activityName);
140
+ };
141
+ export async function endAllLiveActivities() {
142
+ if (!assertRunningOnApple())
143
+ return Promise.resolve();
144
+ return VoltraModule.endAllLiveActivities();
145
+ }
146
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/live-activity/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ const LEVELS = {
2
+ debug: 0,
3
+ info: 1,
4
+ warn: 2,
5
+ error: 3,
6
+ };
7
+ let currentLevel = __DEV__ ? 'debug' : 'info';
8
+ export const logger = {
9
+ debug: (message) => {
10
+ if (LEVELS.debug >= LEVELS[currentLevel]) {
11
+ console.log(`[Voltra] ${message}`);
12
+ }
13
+ },
14
+ info: (message) => {
15
+ if (LEVELS.info >= LEVELS[currentLevel]) {
16
+ console.info(`[Voltra] ${message}`);
17
+ }
18
+ },
19
+ warn: (message) => {
20
+ if (LEVELS.warn >= LEVELS[currentLevel]) {
21
+ console.warn(`[Voltra] ${message}`);
22
+ }
23
+ },
24
+ error: (message) => {
25
+ if (LEVELS.error >= LEVELS[currentLevel]) {
26
+ console.error(`[Voltra] ${message}`);
27
+ }
28
+ },
29
+ setLevel: (level) => {
30
+ currentLevel = level;
31
+ },
32
+ };
33
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACA,CAAA;AAGV,IAAI,YAAY,GAAmB,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;AAE7D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE;QACzB,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;QACxB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;QACxB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE;QACzB,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IACD,QAAQ,EAAE,CAAC,KAAqB,EAAE,EAAE;QAClC,YAAY,GAAG,KAAK,CAAA;IACtB,CAAC;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,46 @@
1
+ import { Platform } from 'react-native';
2
+ import VoltraModule from './VoltraModule.js';
3
+ function assertIOS(name) {
4
+ const isIOS = Platform.OS === 'ios';
5
+ if (!isIOS)
6
+ console.error(`${name} is only available on iOS`);
7
+ return isIOS;
8
+ }
9
+ export async function preloadImages(images) {
10
+ if (!assertIOS('preloadImages')) {
11
+ return { succeeded: [], failed: images.map((img) => ({ key: img.key, error: 'Not available on this platform' })) };
12
+ }
13
+ try {
14
+ return await VoltraModule.preloadImages(images);
15
+ }
16
+ catch (error) {
17
+ return {
18
+ succeeded: [],
19
+ failed: images.map((img) => ({
20
+ key: img.key,
21
+ error: error instanceof Error ? error.message : 'Unknown error',
22
+ })),
23
+ };
24
+ }
25
+ }
26
+ export async function reloadLiveActivities(activityNames) {
27
+ if (!assertIOS('reloadLiveActivities'))
28
+ return;
29
+ try {
30
+ await VoltraModule.reloadLiveActivities(activityNames ?? null);
31
+ }
32
+ catch (error) {
33
+ console.error('Failed to reload Live Activities:', error);
34
+ }
35
+ }
36
+ export async function clearPreloadedImages(keys) {
37
+ if (!assertIOS('clearPreloadedImages'))
38
+ return;
39
+ try {
40
+ await VoltraModule.clearPreloadedImages(keys ?? null);
41
+ }
42
+ catch (error) {
43
+ console.error('Failed to clear preloaded images:', error);
44
+ }
45
+ }
46
+ //# sourceMappingURL=preload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/preload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAGvC,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAI5C,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAA;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,2BAA2B,CAAC,CAAA;IAC7D,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA6B;IAC/D,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC,CAAC,EAAE,CAAA;IACpH,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,aAAwB;IACjE,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;QAAE,OAAM;IAE9C,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,oBAAoB,CAAC,aAAa,IAAI,IAAI,CAAC,CAAA;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAe;IACxD,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;QAAE,OAAM;IAE9C,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,oBAAoB,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { Platform } from 'react-native';
2
+ export const assertRunningOnApple = () => {
3
+ if (Platform.OS !== 'ios') {
4
+ console.error(`Voltra is available only on iOS!`);
5
+ return false;
6
+ }
7
+ return true;
8
+ };
9
+ //# sourceMappingURL=assertRunningOnApple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertRunningOnApple.js","sourceRoot":"","sources":["../../../src/utils/assertRunningOnApple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAY,EAAE;IAChD,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACjD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { isGlassSupported, isHeadless } from '../helpers.js';
2
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './assertRunningOnApple.js';
2
+ export * from './useUpdateOnHMR.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { useEffect, useState } from 'react';
2
+ export const useUpdateOnHMR = () => {
3
+ const [, forceUpdate] = useState(0);
4
+ useEffect(() => {
5
+ if (!__DEV__) {
6
+ return;
7
+ }
8
+ const oldAccept = global['__accept'];
9
+ global['__accept'] = (...args) => {
10
+ forceUpdate((prev) => prev + 1);
11
+ oldAccept?.(...args);
12
+ };
13
+ return () => {
14
+ global['__accept'] = oldAccept;
15
+ };
16
+ }, []);
17
+ };
18
+ //# sourceMappingURL=useUpdateOnHMR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUpdateOnHMR.js","sourceRoot":"","sources":["../../../src/utils/useUpdateOnHMR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAM3C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;YAC/B,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;YAC/B,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;QACtB,CAAC,CAAA;QAED,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;QAChC,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import VoltraModule from '../VoltraModule.js';
2
+ export async function setWidgetServerCredentials(credentials) {
3
+ if (!credentials.token) {
4
+ throw new Error('[Voltra][iOS] setWidgetServerCredentials: token is required');
5
+ }
6
+ return VoltraModule.setWidgetServerCredentials(credentials);
7
+ }
8
+ export async function clearWidgetServerCredentials() {
9
+ return VoltraModule.clearWidgetServerCredentials();
10
+ }
11
+ //# sourceMappingURL=server-credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-credentials.js","sourceRoot":"","sources":["../../../src/widgets/server-credentials.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAI7C,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,WAAoC;IACnF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAChF,CAAC;IAED,OAAO,YAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAChD,OAAO,YAAY,CAAC,4BAA4B,EAAE,CAAA;AACpD,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { renderWidgetToString } from '@use-voltra/ios';
2
+ import { assertRunningOnApple } from '../utils/assertRunningOnApple.js';
3
+ import VoltraModule from '../VoltraModule.js';
4
+ export const updateWidget = async (widgetId, variants, options) => {
5
+ if (!assertRunningOnApple())
6
+ return Promise.resolve();
7
+ const payload = renderWidgetToString(variants);
8
+ return VoltraModule.updateWidget(widgetId, payload, {
9
+ deepLinkUrl: options?.deepLinkUrl,
10
+ });
11
+ };
12
+ export const reloadWidgets = async (widgetIds) => {
13
+ if (!assertRunningOnApple())
14
+ return Promise.resolve();
15
+ return VoltraModule.reloadWidgets(widgetIds ?? null);
16
+ };
17
+ export const clearWidget = async (widgetId) => {
18
+ if (!assertRunningOnApple())
19
+ return Promise.resolve();
20
+ return VoltraModule.clearWidget(widgetId);
21
+ };
22
+ export const clearAllWidgets = async () => {
23
+ if (!assertRunningOnApple())
24
+ return Promise.resolve();
25
+ return VoltraModule.clearAllWidgets();
26
+ };
27
+ export const scheduleWidget = async (widgetId, entries) => {
28
+ if (!assertRunningOnApple())
29
+ return Promise.resolve();
30
+ const renderedEntries = entries.map((entry) => ({
31
+ date: entry.date.getTime(),
32
+ json: renderWidgetToString(entry.variants),
33
+ deepLinkUrl: entry.deepLinkUrl,
34
+ }));
35
+ const timelineData = {
36
+ entries: renderedEntries,
37
+ policy: { type: 'never' },
38
+ };
39
+ const timelineJson = JSON.stringify(timelineData);
40
+ return VoltraModule.scheduleWidget(widgetId, timelineJson);
41
+ };
42
+ export const getActiveWidgets = async () => {
43
+ if (!assertRunningOnApple())
44
+ return [];
45
+ return VoltraModule.getActiveWidgets();
46
+ };
47
+ //# sourceMappingURL=widget-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-api.js","sourceRoot":"","sources":["../../../src/widgets/widget-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmE,MAAM,iBAAiB,CAAA;AAGvH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAK7C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,QAAgB,EAChB,QAAwB,EACxB,OAA6B,EACd,EAAE;IACjB,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAE9C,OAAO,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE;QAClD,WAAW,EAAE,OAAO,EAAE,WAAW;KAClC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,SAAoB,EAAiB,EAAE;IACzE,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,OAAO,YAAY,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IACnE,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,OAAO,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;IACvD,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,OAAO,YAAY,CAAC,eAAe,EAAE,CAAA;AACvC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAE,OAA+B,EAAiB,EAAE;IACvG,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAErD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,CAAC,CAAA;IAEH,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC1B,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;IAEjD,OAAO,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAA2B,EAAE;IAChE,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO,EAAE,CAAA;IAEtC,OAAO,YAAY,CAAC,gBAAgB,EAAE,CAAA;AACxC,CAAC,CAAA"}