ugly-app 0.1.620 → 0.1.622
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.
- package/dist/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/client/animation/useScrollAnimation.d.ts +10 -0
- package/dist/client/animation/useScrollAnimation.d.ts.map +1 -1
- package/dist/client/animation/useScrollAnimation.js +64 -59
- package/dist/client/animation/useScrollAnimation.js.map +1 -1
- package/dist/client/components/ScrollAnimatedView.d.ts.map +1 -1
- package/dist/client/components/ScrollAnimatedView.js +3 -2
- package/dist/client/components/ScrollAnimatedView.js.map +1 -1
- package/dist/native/contract-meta.d.ts +7 -0
- package/dist/native/contract-meta.d.ts.map +1 -0
- package/dist/native/contract-meta.js +105 -0
- package/dist/native/contract-meta.js.map +1 -0
- package/dist/native/contract.d.ts +254 -24
- package/dist/native/contract.d.ts.map +1 -1
- package/dist/native/contract.js +4 -15
- package/dist/native/contract.js.map +1 -1
- package/dist/native/facades/net.d.ts +26 -0
- package/dist/native/facades/net.d.ts.map +1 -0
- package/dist/native/facades/net.js +22 -0
- package/dist/native/facades/net.js.map +1 -0
- package/dist/native/facades/process.d.ts +20 -0
- package/dist/native/facades/process.d.ts.map +1 -0
- package/dist/native/facades/process.js +15 -0
- package/dist/native/facades/process.js.map +1 -0
- package/dist/native/facades/studio.d.ts +47 -0
- package/dist/native/facades/studio.d.ts.map +1 -0
- package/dist/native/facades/studio.js +38 -0
- package/dist/native/facades/studio.js.map +1 -0
- package/dist/native/index.d.ts +10 -3
- package/dist/native/index.d.ts.map +1 -1
- package/dist/native/index.js +4 -2
- package/dist/native/index.js.map +1 -1
- package/dist/native/install.d.ts.map +1 -1
- package/dist/native/install.js +10 -8
- package/dist/native/install.js.map +1 -1
- package/dist/native/permissions.d.ts +12 -0
- package/dist/native/permissions.d.ts.map +1 -0
- package/dist/native/permissions.js +47 -0
- package/dist/native/permissions.js.map +1 -0
- package/dist/native/protocol.d.ts +5 -1
- package/dist/native/protocol.d.ts.map +1 -1
- package/dist/native/protocol.js +8 -0
- package/dist/native/protocol.js.map +1 -1
- package/dist/native/web-adapter.d.ts +5 -0
- package/dist/native/web-adapter.d.ts.map +1 -0
- package/dist/native/web-adapter.js +111 -0
- package/dist/native/web-adapter.js.map +1 -0
- package/dist/native/wrapper.d.ts +80 -6
- package/dist/native/wrapper.d.ts.map +1 -1
- package/dist/native/wrapper.js +149 -12
- package/dist/native/wrapper.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/version.ts +1 -1
- package/src/client/animation/useScrollAnimation.ts +72 -74
- package/src/client/components/ScrollAnimatedView.tsx +3 -6
- package/src/native/contract-meta.test.ts +23 -0
- package/src/native/contract-meta.ts +114 -0
- package/src/native/contract.test.ts +13 -7
- package/src/native/contract.ts +130 -32
- package/src/native/facades/facades.test.ts +35 -0
- package/src/native/facades/net.ts +50 -0
- package/src/native/facades/process.ts +37 -0
- package/src/native/facades/studio.ts +73 -0
- package/src/native/index.ts +24 -3
- package/src/native/install.test.ts +8 -0
- package/src/native/install.ts +12 -8
- package/src/native/permissions.test.ts +42 -0
- package/src/native/permissions.ts +53 -0
- package/src/native/protocol.test.ts +15 -0
- package/src/native/protocol.ts +10 -1
- package/src/native/web-adapter.test.ts +27 -0
- package/src/native/web-adapter.ts +118 -0
- package/src/native/wrapper.test.ts +22 -0
- package/src/native/wrapper.ts +163 -13
package/dist/cli/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CLI_VERSION = "0.1.
|
|
1
|
+
export declare const CLI_VERSION = "0.1.622";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/cli/version.js
CHANGED
|
@@ -15,7 +15,17 @@ export interface ScrollAnimationStyle {
|
|
|
15
15
|
opacity: number;
|
|
16
16
|
transform: string;
|
|
17
17
|
transition?: string;
|
|
18
|
+
willChange?: string;
|
|
18
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Reveal-on-scroll hook driven entirely by CSS transitions.
|
|
22
|
+
*
|
|
23
|
+
* The element renders ONCE in its hidden state and ONCE in its visible state;
|
|
24
|
+
* the GPU interpolates opacity/transform between them. There is no per-frame
|
|
25
|
+
* React re-render (the previous implementation ran a requestAnimationFrame loop
|
|
26
|
+
* that called forceUpdate() every frame, per instance — with several staggered
|
|
27
|
+
* items on screen that re-render storm caused the visible jank).
|
|
28
|
+
*/
|
|
19
29
|
export declare function useScrollAnimation<T extends HTMLElement = HTMLDivElement>(config?: ScrollAnimationConfig): {
|
|
20
30
|
ref: import("react").RefObject<T | null>;
|
|
21
31
|
style: ScrollAnimationStyle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollAnimation.d.ts","sourceRoot":"","sources":["../../../src/client/animation/useScrollAnimation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useScrollAnimation.d.ts","sourceRoot":"","sources":["../../../src/client/animation/useScrollAnimation.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,GACR,SAAS,GACT,WAAW,GACX,WAAW,GACX,YAAY,GACZ,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiCD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EACvE,MAAM,GAAE,qBAA0B;;;;;EAoDnC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,IASS,OAAO,MAAM,KAAG,qBAAqB,CAM9C"}
|
|
@@ -1,82 +1,87 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { useEffect, useRef, useState } from 'react';
|
|
2
|
+
// Smooth ease-out (no overshoot/bounce — the old springBouncy easing read as
|
|
3
|
+
// "jerky" once many items animated at once). Compositor-friendly.
|
|
4
|
+
const EASE = 'cubic-bezier(0.16, 1, 0.3, 1)';
|
|
5
|
+
function hiddenTransform(animation) {
|
|
6
|
+
switch (animation) {
|
|
7
|
+
case 'slideUp':
|
|
8
|
+
return 'translateY(40px)';
|
|
9
|
+
case 'slideDown':
|
|
10
|
+
return 'translateY(-40px)';
|
|
11
|
+
case 'slideLeft':
|
|
12
|
+
return 'translateX(40px)';
|
|
13
|
+
case 'slideRight':
|
|
14
|
+
return 'translateX(-40px)';
|
|
15
|
+
case 'scale':
|
|
16
|
+
return 'scale(0.92)';
|
|
17
|
+
case 'fadeIn':
|
|
18
|
+
case 'none':
|
|
19
|
+
default:
|
|
20
|
+
return 'none';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function prefersReducedMotion() {
|
|
24
|
+
return (typeof window !== 'undefined' &&
|
|
25
|
+
typeof window.matchMedia === 'function' &&
|
|
26
|
+
window.matchMedia('(prefers-reduced-motion: reduce)').matches);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Reveal-on-scroll hook driven entirely by CSS transitions.
|
|
30
|
+
*
|
|
31
|
+
* The element renders ONCE in its hidden state and ONCE in its visible state;
|
|
32
|
+
* the GPU interpolates opacity/transform between them. There is no per-frame
|
|
33
|
+
* React re-render (the previous implementation ran a requestAnimationFrame loop
|
|
34
|
+
* that called forceUpdate() every frame, per instance — with several staggered
|
|
35
|
+
* items on screen that re-render storm caused the visible jank).
|
|
36
|
+
*/
|
|
3
37
|
export function useScrollAnimation(config = {}) {
|
|
4
|
-
const { animation = 'fadeIn', delay = 0, duration, threshold = 0.2, once = true, } = config;
|
|
38
|
+
const { animation = 'fadeIn', delay = 0, duration = 600, threshold = 0.2, once = true, } = config;
|
|
5
39
|
const ref = useRef(null);
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
useLayoutEffect(() => {
|
|
11
|
-
const element = ref.current;
|
|
12
|
-
if (!element)
|
|
13
|
-
return;
|
|
14
|
-
const rect = element.getBoundingClientRect();
|
|
15
|
-
if (rect.top >= window.innerHeight) {
|
|
16
|
-
animatedValue.set(0);
|
|
17
|
-
setIsVisible(false);
|
|
18
|
-
hasAnimated.current = false;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
hasAnimated.current = true;
|
|
22
|
-
}
|
|
23
|
-
}, [animatedValue]);
|
|
40
|
+
const reduce = animation === 'none' || prefersReducedMotion();
|
|
41
|
+
// Hidden until revealed (unless there's nothing to animate).
|
|
42
|
+
const [visible, setVisible] = useState(reduce);
|
|
43
|
+
const hasAnimated = useRef(reduce);
|
|
24
44
|
useEffect(() => {
|
|
45
|
+
if (reduce)
|
|
46
|
+
return;
|
|
25
47
|
const element = ref.current;
|
|
26
48
|
if (!element)
|
|
27
49
|
return;
|
|
28
50
|
const observer = new IntersectionObserver((entries) => {
|
|
29
|
-
|
|
51
|
+
for (const entry of entries) {
|
|
30
52
|
if (entry.isIntersecting) {
|
|
31
|
-
if (once && hasAnimated.current)
|
|
32
|
-
return;
|
|
33
53
|
hasAnimated.current = true;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
duration,
|
|
38
|
-
easing: easingFunctions.springBouncy,
|
|
39
|
-
});
|
|
40
|
-
}, delay);
|
|
54
|
+
setVisible(true);
|
|
55
|
+
if (once)
|
|
56
|
+
observer.disconnect();
|
|
41
57
|
}
|
|
42
|
-
else if (!once) {
|
|
43
|
-
|
|
44
|
-
animatedValue.set(0);
|
|
58
|
+
else if (!once && !hasAnimated.current) {
|
|
59
|
+
setVisible(false);
|
|
45
60
|
}
|
|
46
|
-
}
|
|
61
|
+
}
|
|
47
62
|
}, { threshold });
|
|
48
63
|
observer.observe(element);
|
|
49
64
|
return () => observer.disconnect();
|
|
50
|
-
}, [
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
case 'slideRight':
|
|
63
|
-
return { opacity: p, transform: `translateX(${-40 * (1 - p)}px)` };
|
|
64
|
-
case 'scale':
|
|
65
|
-
return { opacity: p, transform: `scale(${0.9 + 0.1 * p})` };
|
|
66
|
-
case 'none':
|
|
67
|
-
default:
|
|
68
|
-
return { opacity: 1, transform: 'none' };
|
|
69
|
-
}
|
|
70
|
-
}, [animation, progress]);
|
|
71
|
-
return { ref, style: getStyle(), isVisible, progress };
|
|
65
|
+
}, [reduce, once, threshold]);
|
|
66
|
+
const transitionDelay = delay > 0 ? ` ${delay}ms` : '';
|
|
67
|
+
const style = {
|
|
68
|
+
opacity: visible ? 1 : 0,
|
|
69
|
+
transform: visible ? 'none' : hiddenTransform(animation),
|
|
70
|
+
transition: reduce
|
|
71
|
+
? undefined
|
|
72
|
+
: `opacity ${duration}ms ${EASE}${transitionDelay}, transform ${duration}ms ${EASE}${transitionDelay}`,
|
|
73
|
+
// GPU-hint only while waiting to animate in; drop it once shown.
|
|
74
|
+
willChange: visible ? undefined : 'opacity, transform',
|
|
75
|
+
};
|
|
76
|
+
return { ref, style, isVisible: visible, progress: visible ? 1 : 0 };
|
|
72
77
|
}
|
|
73
78
|
export function useStaggerAnimation(config) {
|
|
74
79
|
const { baseDelay = 100, startDelay = 0, animation = 'slideUp', duration = 600, threshold = 0.2, } = config;
|
|
75
|
-
return
|
|
80
|
+
return (index) => ({
|
|
76
81
|
animation,
|
|
77
82
|
delay: startDelay + index * baseDelay,
|
|
78
83
|
duration,
|
|
79
84
|
threshold,
|
|
80
|
-
})
|
|
85
|
+
});
|
|
81
86
|
}
|
|
82
87
|
//# sourceMappingURL=useScrollAnimation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollAnimation.js","sourceRoot":"","sources":["../../../src/client/animation/useScrollAnimation.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useScrollAnimation.js","sourceRoot":"","sources":["../../../src/client/animation/useScrollAnimation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAnimatedView.d.ts","sourceRoot":"","sources":["../../../src/client/components/ScrollAnimatedView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,qBAAqB,EAEtB,MAAM,oCAAoC,CAAC;AAG5C,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,KAAK,EACL,SAAoB,EACpB,KAAS,EACT,QAAQ,EACR,SAAe,EACf,IAAW,GACZ,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"ScrollAnimatedView.d.ts","sourceRoot":"","sources":["../../../src/client/components/ScrollAnimatedView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,qBAAqB,EAEtB,MAAM,oCAAoC,CAAC;AAG5C,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,KAAK,EACL,SAAoB,EACpB,KAAS,EACT,QAAQ,EACR,SAAe,EACf,IAAW,GACZ,EAAE,uBAAuB,qBAyBzB;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,QAAQ,EACR,SAAqB,EACrB,SAAe,EACf,UAAc,EACd,QAAQ,EACR,SAAe,EACf,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,qBAkBA"}
|
|
@@ -3,7 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import { useScrollAnimation, } from '../animation/useScrollAnimation.js';
|
|
4
4
|
import { View } from './View.js';
|
|
5
5
|
export function ScrollAnimatedView({ children, style, animation = 'fadeIn', delay = 0, duration, threshold = 0.2, once = true, }) {
|
|
6
|
-
const { ref, style: animationStyle
|
|
6
|
+
const { ref, style: animationStyle } = useScrollAnimation({
|
|
7
7
|
animation,
|
|
8
8
|
delay,
|
|
9
9
|
duration,
|
|
@@ -14,7 +14,8 @@ export function ScrollAnimatedView({ children, style, animation = 'fadeIn', dela
|
|
|
14
14
|
...Object(style),
|
|
15
15
|
opacity: animationStyle.opacity,
|
|
16
16
|
transform: animationStyle.transform,
|
|
17
|
-
|
|
17
|
+
transition: animationStyle.transition,
|
|
18
|
+
willChange: animationStyle.willChange,
|
|
18
19
|
width: '100%',
|
|
19
20
|
alignItems: 'center',
|
|
20
21
|
}, children: children }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollAnimatedView.js","sourceRoot":"","sources":["../../../src/client/components/ScrollAnimatedView.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,KAAK,EACL,SAAS,GAAG,QAAQ,EACpB,KAAK,GAAG,CAAC,EACT,QAAQ,EACR,SAAS,GAAG,GAAG,EACf,IAAI,GAAG,IAAI,GACa;IACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"ScrollAnimatedView.js","sourceRoot":"","sources":["../../../src/client/components/ScrollAnimatedView.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,KAAK,EACL,SAAS,GAAG,QAAQ,EACpB,KAAK,GAAG,CAAC,EACT,QAAQ,EACR,SAAS,GAAG,GAAG,EACf,IAAI,GAAG,IAAI,GACa;IACxB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC;QACxD,SAAS;QACT,KAAK;QACL,QAAQ;QACR,SAAS;QACT,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,IAAI,IACH,OAAO,EAAE,GAAG,EACZ,KAAK,EAAE;YACL,GAAG,MAAM,CAAC,KAAK,CAAC;YAChB,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,QAAQ;SACrB,YAEA,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,EAC1C,QAAQ,EACR,SAAS,GAAG,SAAS,EACrB,SAAS,GAAG,GAAG,EACf,UAAU,GAAG,CAAC,EACd,QAAQ,EACR,SAAS,GAAG,GAAG,EACf,KAAK,GASN;IACC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpD,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,YACf,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,KAAC,kBAAkB,IAEjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,UAAU,GAAG,KAAK,GAAG,SAAS,EACrC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,YAEnB,KAAK,IAND,KAAK,CAOS,CACtB,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Channel, Namespace } from './contract.js';
|
|
2
|
+
export type Platform = 'ios' | 'android' | 'desktop' | 'web';
|
|
3
|
+
export type Fallback = 'native' | 'web' | 'noop' | 'throw';
|
|
4
|
+
export declare const NAMESPACES: Namespace[];
|
|
5
|
+
export declare const CHANNEL_FALLBACK: Record<Channel, Record<Platform, Fallback>>;
|
|
6
|
+
export declare function fallbackFor(channel: Channel, platform: Platform): Fallback;
|
|
7
|
+
//# sourceMappingURL=contract-meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-meta.d.ts","sourceRoot":"","sources":["../../src/native/contract-meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAC7D,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,eAAO,MAAM,UAAU,EAAE,SAAS,EAmBjC,CAAC;AAiFF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAA0B,CAAC;AAEpG,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAK1E"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { namespaceOf } from './contract.js';
|
|
2
|
+
export const NAMESPACES = [
|
|
3
|
+
'capture',
|
|
4
|
+
'gps',
|
|
5
|
+
'liveActivity',
|
|
6
|
+
'alarm',
|
|
7
|
+
'tts',
|
|
8
|
+
'push',
|
|
9
|
+
'clipboard',
|
|
10
|
+
'system',
|
|
11
|
+
'badge',
|
|
12
|
+
'ui',
|
|
13
|
+
'fs',
|
|
14
|
+
'secrets',
|
|
15
|
+
'serve',
|
|
16
|
+
'workers',
|
|
17
|
+
'net',
|
|
18
|
+
'process',
|
|
19
|
+
'permissions',
|
|
20
|
+
'studio',
|
|
21
|
+
];
|
|
22
|
+
// Per-namespace fallback profile when no explicit channel override applies.
|
|
23
|
+
// Tuple order: [ios, android, desktop, web].
|
|
24
|
+
const NS_DEFAULT = {
|
|
25
|
+
capture: ['native', 'native', 'native', 'web'],
|
|
26
|
+
gps: ['native', 'native', 'native', 'web'],
|
|
27
|
+
liveActivity: ['native', 'native', 'native', 'web'],
|
|
28
|
+
alarm: ['native', 'native', 'native', 'web'],
|
|
29
|
+
tts: ['native', 'native', 'native', 'web'],
|
|
30
|
+
push: ['native', 'native', 'native', 'web'],
|
|
31
|
+
clipboard: ['native', 'native', 'native', 'web'],
|
|
32
|
+
system: ['native', 'native', 'native', 'web'],
|
|
33
|
+
badge: ['native', 'native', 'native', 'web'],
|
|
34
|
+
ui: ['native', 'native', 'noop', 'web'],
|
|
35
|
+
fs: ['native', 'native', 'native', 'throw'],
|
|
36
|
+
secrets: ['native', 'native', 'native', 'throw'],
|
|
37
|
+
serve: ['native', 'native', 'native', 'throw'],
|
|
38
|
+
workers: ['native', 'native', 'native', 'throw'],
|
|
39
|
+
net: ['native', 'native', 'native', 'throw'],
|
|
40
|
+
process: ['throw', 'throw', 'native', 'throw'],
|
|
41
|
+
permissions: ['native', 'native', 'native', 'native'],
|
|
42
|
+
studio: ['native', 'native', 'native', 'throw'],
|
|
43
|
+
};
|
|
44
|
+
const PLATFORM_INDEX = { ios: 0, android: 1, desktop: 2, web: 3 };
|
|
45
|
+
// All request/response channels (mirrors contract.ts channels; the test guards count).
|
|
46
|
+
const CHANNELS = [
|
|
47
|
+
'capture.screenshot',
|
|
48
|
+
'gps.start',
|
|
49
|
+
'gps.stop',
|
|
50
|
+
'liveActivity.startWorkout',
|
|
51
|
+
'liveActivity.updateWorkout',
|
|
52
|
+
'liveActivity.endWorkout',
|
|
53
|
+
'liveActivity.startCardio',
|
|
54
|
+
'liveActivity.updateCardio',
|
|
55
|
+
'liveActivity.endCardio',
|
|
56
|
+
'alarm.schedule',
|
|
57
|
+
'alarm.cancel',
|
|
58
|
+
'alarm.playAudio',
|
|
59
|
+
'tts.start',
|
|
60
|
+
'tts.pause',
|
|
61
|
+
'tts.resume',
|
|
62
|
+
'tts.stop',
|
|
63
|
+
'push.register',
|
|
64
|
+
'clipboard.write',
|
|
65
|
+
'clipboard.read',
|
|
66
|
+
'system.openExternal',
|
|
67
|
+
'system.share',
|
|
68
|
+
'badge.set',
|
|
69
|
+
'ui.getSafeArea',
|
|
70
|
+
'fs.readFile',
|
|
71
|
+
'fs.writeFile',
|
|
72
|
+
'fs.mkdir',
|
|
73
|
+
'fs.rm',
|
|
74
|
+
'fs.rename',
|
|
75
|
+
'fs.readdir',
|
|
76
|
+
'fs.stat',
|
|
77
|
+
'fs.exists',
|
|
78
|
+
'fs.realpath',
|
|
79
|
+
'secrets.get',
|
|
80
|
+
'secrets.set',
|
|
81
|
+
'secrets.delete',
|
|
82
|
+
'secrets.list',
|
|
83
|
+
'serve.start',
|
|
84
|
+
'serve.stop',
|
|
85
|
+
'workers.register',
|
|
86
|
+
'workers.unregister',
|
|
87
|
+
'workers.list',
|
|
88
|
+
];
|
|
89
|
+
function buildChannelFallback() {
|
|
90
|
+
const out = {};
|
|
91
|
+
for (const ch of CHANNELS) {
|
|
92
|
+
const prof = NS_DEFAULT[namespaceOf(ch)];
|
|
93
|
+
out[ch] = { ios: prof[0], android: prof[1], desktop: prof[2], web: prof[3] };
|
|
94
|
+
}
|
|
95
|
+
return out;
|
|
96
|
+
}
|
|
97
|
+
export const CHANNEL_FALLBACK = buildChannelFallback();
|
|
98
|
+
export function fallbackFor(channel, platform) {
|
|
99
|
+
const row = CHANNEL_FALLBACK[channel];
|
|
100
|
+
if (row)
|
|
101
|
+
return row[platform];
|
|
102
|
+
// Facade-namespace channel (e.g. studio.*, process.*, net.*) not in the table:
|
|
103
|
+
return NS_DEFAULT[namespaceOf(channel)][PLATFORM_INDEX[platform]];
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=contract-meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract-meta.js","sourceRoot":"","sources":["../../src/native/contract-meta.ts"],"names":[],"mappings":"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"}
|