@symbiote-native/screen-capture 0.0.0-stage → 0.1.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.
- package/LICENSE +21 -0
- package/README.md +137 -2
- package/build/angular/index.d.ts +4 -0
- package/build/angular/index.js +4 -0
- package/build/angular/services/permissions.service/index.d.ts +5 -0
- package/build/angular/services/permissions.service/index.js +59 -0
- package/build/angular/services/prevent-screen-capture.service/index.d.ts +4 -0
- package/build/angular/services/prevent-screen-capture.service/index.js +65 -0
- package/build/angular/services/screenshot-listener.service/index.d.ts +4 -0
- package/build/angular/services/screenshot-listener.service/index.js +65 -0
- package/build/core/index.d.ts +2 -0
- package/build/core/index.js +2 -0
- package/build/core/native-module.d.ts +13 -0
- package/build/core/native-module.js +4 -0
- package/build/core/permissions-runtime.d.ts +5 -0
- package/build/core/permissions-runtime.js +16 -0
- package/build/core/screen-capture.d.ts +16 -0
- package/build/core/screen-capture.js +68 -0
- package/build/react/hooks/use-permissions/index.d.ts +7 -0
- package/build/react/hooks/use-permissions/index.js +37 -0
- package/build/react/hooks/use-prevent-screen-capture/index.d.ts +1 -0
- package/build/react/hooks/use-prevent-screen-capture/index.js +12 -0
- package/build/react/hooks/use-screenshot-listener/index.d.ts +1 -0
- package/build/react/hooks/use-screenshot-listener/index.js +12 -0
- package/build/react/index.d.ts +4 -0
- package/build/react/index.js +4 -0
- package/build/solid/index.d.ts +4 -0
- package/build/solid/index.js +4 -0
- package/build/solid/primitives/create-permissions.d.ts +8 -0
- package/build/solid/primitives/create-permissions.js +25 -0
- package/build/solid/primitives/create-prevent-screen-capture.d.ts +1 -0
- package/build/solid/primitives/create-prevent-screen-capture.js +11 -0
- package/build/solid/primitives/create-screenshot-listener.d.ts +1 -0
- package/build/solid/primitives/create-screenshot-listener.js +10 -0
- package/build/svelte/index.d.ts +4 -0
- package/build/svelte/index.js +4 -0
- package/build/svelte/use-permissions.svelte.d.ts +7 -0
- package/build/svelte/use-permissions.svelte.js +27 -0
- package/build/svelte/use-prevent-screen-capture.svelte.d.ts +1 -0
- package/build/svelte/use-prevent-screen-capture.svelte.js +10 -0
- package/build/svelte/use-screenshot-listener.svelte.d.ts +1 -0
- package/build/svelte/use-screenshot-listener.svelte.js +11 -0
- package/build/vue/composables/use-permissions/index.d.ts +8 -0
- package/build/vue/composables/use-permissions/index.js +19 -0
- package/build/vue/composables/use-prevent-screen-capture/index.d.ts +1 -0
- package/build/vue/composables/use-prevent-screen-capture/index.js +12 -0
- package/build/vue/composables/use-screenshot-listener/index.d.ts +1 -0
- package/build/vue/composables/use-screenshot-listener/index.js +13 -0
- package/build/vue/index.d.ts +4 -0
- package/build/vue/index.js +4 -0
- package/build-ngc/angular/index.d.ts +4 -0
- package/build-ngc/angular/index.js +5 -0
- package/build-ngc/angular/index.js.map +1 -0
- package/build-ngc/angular/services/permissions.service/index.d.ts +8 -0
- package/build-ngc/angular/services/permissions.service/index.js +16 -0
- package/build-ngc/angular/services/permissions.service/index.js.map +1 -0
- package/build-ngc/angular/services/prevent-screen-capture.service/index.d.ts +7 -0
- package/build-ngc/angular/services/prevent-screen-capture.service/index.js +23 -0
- package/build-ngc/angular/services/prevent-screen-capture.service/index.js.map +1 -0
- package/build-ngc/angular/services/screenshot-listener.service/index.d.ts +7 -0
- package/build-ngc/angular/services/screenshot-listener.service/index.js +23 -0
- package/build-ngc/angular/services/screenshot-listener.service/index.js.map +1 -0
- package/build-ngc/core/index.d.ts +2 -0
- package/build-ngc/core/index.js +3 -0
- package/build-ngc/core/index.js.map +1 -0
- package/build-ngc/core/native-module.d.ts +13 -0
- package/build-ngc/core/native-module.js +5 -0
- package/build-ngc/core/native-module.js.map +1 -0
- package/build-ngc/core/permissions-runtime.d.ts +5 -0
- package/build-ngc/core/permissions-runtime.js +17 -0
- package/build-ngc/core/permissions-runtime.js.map +1 -0
- package/build-ngc/core/screen-capture.d.ts +16 -0
- package/build-ngc/core/screen-capture.js +69 -0
- package/build-ngc/core/screen-capture.js.map +1 -0
- package/native-link.json +12 -0
- package/package.json +148 -3
- package/src/angular/index.ts +4 -0
- package/src/angular/services/permissions.service/index.ts +11 -0
- package/src/angular/services/prevent-screen-capture.service/index.ts +25 -0
- package/src/angular/services/screenshot-listener.service/index.ts +22 -0
- package/src/core/index.ts +17 -0
- package/src/core/native-module.ts +27 -0
- package/src/core/permissions-runtime.ts +26 -0
- package/src/core/screen-capture.ts +102 -0
- package/src/react/hooks/use-permissions/index.ts +49 -0
- package/src/react/hooks/use-prevent-screen-capture/index.ts +17 -0
- package/src/react/hooks/use-screenshot-listener/index.ts +14 -0
- package/src/react/index.ts +4 -0
- package/src/solid/index.ts +4 -0
- package/src/solid/primitives/create-permissions.ts +39 -0
- package/src/solid/primitives/create-prevent-screen-capture.ts +14 -0
- package/src/solid/primitives/create-screenshot-listener.ts +13 -0
- package/src/svelte/index.ts +4 -0
- package/src/svelte/svelte-ambient.d.ts +3 -0
- package/src/svelte/svelte-compile.test-helper.ts +7 -0
- package/src/svelte/use-permissions.svelte.ts +41 -0
- package/src/svelte/use-prevent-screen-capture.svelte.ts +12 -0
- package/src/svelte/use-screenshot-listener.svelte.ts +13 -0
- package/src/vue/composables/use-permissions/index.ts +33 -0
- package/src/vue/composables/use-prevent-screen-capture/index.ts +18 -0
- package/src/vue/composables/use-screenshot-listener/index.ts +18 -0
- package/src/vue/index.ts +4 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Vue lifecycle wiring over core/screen-capture.ts. The mount fetch has nobody to reject to,
|
|
2
|
+
// so its failure lands in `error` instead of escaping as an unhandled rejection
|
|
3
|
+
|
|
4
|
+
import { onMounted, ref, type Ref } from '@vue/runtime-core';
|
|
5
|
+
import { getPermissionsAsync, requestPermissionsAsync } from '../../../core';
|
|
6
|
+
import type { PermissionResponse } from '../../../core';
|
|
7
|
+
import { createPermissionsApi } from '../../../core/permissions-runtime';
|
|
8
|
+
|
|
9
|
+
export function usePermissions(): {
|
|
10
|
+
status: Ref<PermissionResponse | null>;
|
|
11
|
+
error: Ref<Error | null>;
|
|
12
|
+
request: () => Promise<PermissionResponse>;
|
|
13
|
+
get: () => Promise<PermissionResponse>;
|
|
14
|
+
} {
|
|
15
|
+
const status = ref<PermissionResponse | null>(null);
|
|
16
|
+
const error = ref<Error | null>(null);
|
|
17
|
+
const api = createPermissionsApi(
|
|
18
|
+
getPermissionsAsync,
|
|
19
|
+
requestPermissionsAsync,
|
|
20
|
+
response => {
|
|
21
|
+
status.value = response;
|
|
22
|
+
error.value = null;
|
|
23
|
+
},
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
onMounted(() => {
|
|
27
|
+
api.get().catch((cause: unknown) => {
|
|
28
|
+
error.value = cause instanceof Error ? cause : new Error(String(cause));
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
return { status, error, request: api.request, get: api.get };
|
|
33
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Vue lifecycle wiring over the framework-agnostic core (core/screen-capture.ts): prevents on
|
|
2
|
+
// mount, allows on unmount, mirroring React's `usePreventScreenCapture` hook
|
|
3
|
+
|
|
4
|
+
import { onMounted, onUnmounted } from '@vue/runtime-core';
|
|
5
|
+
import {
|
|
6
|
+
allowScreenCaptureAsync,
|
|
7
|
+
preventScreenCaptureAsync,
|
|
8
|
+
} from '../../../core';
|
|
9
|
+
|
|
10
|
+
export function usePreventScreenCapture(key: string = 'default'): void {
|
|
11
|
+
onMounted(() => {
|
|
12
|
+
preventScreenCaptureAsync(key);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
onUnmounted(() => {
|
|
16
|
+
allowScreenCaptureAsync(key);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Vue lifecycle wiring over the framework-agnostic core (core/screen-capture.ts): subscribes on
|
|
2
|
+
// mount, unsubscribes on unmount, mirroring React's `useScreenshotListener` hook
|
|
3
|
+
|
|
4
|
+
import { onMounted, onUnmounted } from '@vue/runtime-core';
|
|
5
|
+
import { addScreenshotListener } from '../../../core';
|
|
6
|
+
import type { EventSubscription } from '../../../core';
|
|
7
|
+
|
|
8
|
+
export function useScreenshotListener(listener: () => void): void {
|
|
9
|
+
let subscription: EventSubscription | undefined;
|
|
10
|
+
|
|
11
|
+
onMounted(() => {
|
|
12
|
+
subscription = addScreenshotListener(listener);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
onUnmounted(() => {
|
|
16
|
+
subscription?.remove();
|
|
17
|
+
});
|
|
18
|
+
}
|
package/src/vue/index.ts
ADDED