@symbiote-native/tracking-transparency 0.3.0 → 1.0.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/README.md +36 -4
- package/package.json +26 -15
package/README.md
CHANGED
|
@@ -151,6 +151,29 @@ export class TrackingScreen {
|
|
|
151
151
|
}
|
|
152
152
|
```
|
|
153
153
|
|
|
154
|
+
```svelte
|
|
155
|
+
<!-- Svelte — the rune hands back a boxed object whose `status` is a getter; destructuring it
|
|
156
|
+
would freeze the value at its initial null, since Svelte 5 reactivity is lexically scoped. -->
|
|
157
|
+
<script lang="ts">
|
|
158
|
+
import {
|
|
159
|
+
getAdvertisingId,
|
|
160
|
+
usePermissions,
|
|
161
|
+
} from '@symbiote-native/tracking-transparency/svelte';
|
|
162
|
+
|
|
163
|
+
const permissions = usePermissions();
|
|
164
|
+
</script>
|
|
165
|
+
|
|
166
|
+
<View>
|
|
167
|
+
<Text>{permissions.status?.status ?? 'checking…'}</Text>
|
|
168
|
+
<Pressable onPress={() => permissions.request()}>
|
|
169
|
+
<Text>Request tracking permission</Text>
|
|
170
|
+
</Pressable>
|
|
171
|
+
<Pressable onPress={() => console.log(getAdvertisingId())}>
|
|
172
|
+
<Text>Log advertising ID</Text>
|
|
173
|
+
</Pressable>
|
|
174
|
+
</View>
|
|
175
|
+
```
|
|
176
|
+
|
|
154
177
|
```tsx
|
|
155
178
|
// Solid — the accessors are CALLED; a Solid component body runs once, so a snapshot would freeze.
|
|
156
179
|
import { createPermissions } from '@symbiote-native/tracking-transparency/solid';
|
|
@@ -178,6 +201,8 @@ The examples above mirror the real canary demo screens —
|
|
|
178
201
|
`examples/expo-react/screens/TrackingTransparencyScreen.tsx`,
|
|
179
202
|
`examples/expo-vue-sfc/screens/TrackingTransparencyScreen.vue`,
|
|
180
203
|
`examples/expo-vue-tsx/screens/TrackingTransparencyScreen.tsx`,
|
|
204
|
+
`examples/expo-svelte/screens/TrackingTransparencyScreen.svelte`,
|
|
205
|
+
`examples/expo-solid/screens/TrackingTransparencyScreen.tsx`,
|
|
181
206
|
`examples/expo-angular/src/screens/TrackingTransparencyScreen.ts`.
|
|
182
207
|
|
|
183
208
|
## API
|
|
@@ -215,17 +240,24 @@ import { PermissionsService } from '@symbiote-native/tracking-transparency/angul
|
|
|
215
240
|
```
|
|
216
241
|
|
|
217
242
|
`usePermissions` auto-fetches the current permission status on mount and returns a
|
|
218
|
-
`[status, request, get, error]` tuple (React) / `{ status, error, request, get }` object
|
|
219
|
-
|
|
220
|
-
`Ref`s, and Angular's `PermissionsService.connect()` returns a readonly
|
|
243
|
+
`[status, request, get, error]` tuple (React) / `{ status, error, request, get }` object (Vue,
|
|
244
|
+
destructurable — `status` is a `Ref`). Solid's `createPermissions` returns the same shape with
|
|
245
|
+
`Accessor`s instead of `Ref`s, and Angular's `PermissionsService.connect()` returns a readonly
|
|
246
|
+
`Signal`. **Svelte's rune returns a boxed object whose `status` is a getter — do not destructure
|
|
247
|
+
it**, or the value freezes at its initial `null` (Svelte 5 reactivity is lexically scoped to the
|
|
248
|
+
property access):
|
|
221
249
|
|
|
222
250
|
```ts
|
|
223
251
|
// React
|
|
224
252
|
const [status, request] = usePermissions();
|
|
225
253
|
|
|
226
|
-
// Vue
|
|
254
|
+
// Vue
|
|
227
255
|
const { status, request } = usePermissions();
|
|
228
256
|
|
|
257
|
+
// Svelte — read permissions.status, never destructure it
|
|
258
|
+
const permissions = usePermissions();
|
|
259
|
+
permissions.status;
|
|
260
|
+
|
|
229
261
|
// Solid — status is an accessor, called at the read site
|
|
230
262
|
const { status, request } = createPermissions();
|
|
231
263
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@symbiote-native/tracking-transparency",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "expo-tracking-transparency wrapped for SymbioteNative — one framework-agnostic core, built once and reachable from the React, Vue, Svelte, Solid, and Angular adapters. iOS App Tracking Transparency prompt (permission get/request, always-granted on Android/web) plus the advertising-ID getter.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"react-native",
|
|
7
|
+
"symbiote-native",
|
|
8
|
+
"react",
|
|
9
|
+
"vue",
|
|
10
|
+
"svelte",
|
|
11
|
+
"solid",
|
|
12
|
+
"angular",
|
|
13
|
+
"app-tracking-transparency",
|
|
14
|
+
"idfa"
|
|
15
|
+
],
|
|
5
16
|
"license": "MIT",
|
|
6
17
|
"repository": {
|
|
7
18
|
"type": "git",
|
|
@@ -61,19 +72,19 @@
|
|
|
61
72
|
"expo-modules-core": "57.0.5"
|
|
62
73
|
},
|
|
63
74
|
"peerDependencies": {
|
|
64
|
-
"@symbiote-native/angular": ">=0.6.2",
|
|
65
|
-
"@symbiote-native/engine": ">=0.1.7",
|
|
66
|
-
"@symbiote-native/react": ">=0.2.8",
|
|
67
|
-
"@symbiote-native/solid": ">=0.0.1",
|
|
68
|
-
"@symbiote-native/svelte": ">=0.1.0",
|
|
69
|
-
"@symbiote-native/vue": ">=0.3.8",
|
|
70
75
|
"@angular/core": ">=20",
|
|
71
76
|
"@vue/runtime-core": "^3.5.13",
|
|
72
77
|
"react": ">=19.0.0",
|
|
73
78
|
"react-native": ">=0.86",
|
|
74
79
|
"solid-js": ">=1.9.0",
|
|
75
80
|
"svelte": ">=5.56.0",
|
|
76
|
-
"vue": ">=3.5.0"
|
|
81
|
+
"vue": ">=3.5.0",
|
|
82
|
+
"@symbiote-native/angular": "^1.0.0",
|
|
83
|
+
"@symbiote-native/engine": "^0.4.0",
|
|
84
|
+
"@symbiote-native/react": "^1.0.0",
|
|
85
|
+
"@symbiote-native/solid": "^1.0.0",
|
|
86
|
+
"@symbiote-native/vue": "^1.0.0",
|
|
87
|
+
"@symbiote-native/svelte": "^1.0.0"
|
|
77
88
|
},
|
|
78
89
|
"peerDependenciesMeta": {
|
|
79
90
|
"@symbiote-native/angular": {
|
|
@@ -121,13 +132,13 @@
|
|
|
121
132
|
"solid-js": "^1.9.14",
|
|
122
133
|
"svelte": "^5.56.0",
|
|
123
134
|
"typescript": "~6.0.0",
|
|
124
|
-
"@symbiote-native/
|
|
125
|
-
"@symbiote-native/
|
|
126
|
-
"@symbiote-native/
|
|
127
|
-
"@symbiote-native/solid": "
|
|
128
|
-
"@symbiote-native/svelte": "0.
|
|
129
|
-
"@symbiote-native/test-utils": "0.
|
|
130
|
-
"@symbiote-native/vue": "0.
|
|
135
|
+
"@symbiote-native/angular": "1.0.0",
|
|
136
|
+
"@symbiote-native/engine": "0.4.0",
|
|
137
|
+
"@symbiote-native/react": "1.0.0",
|
|
138
|
+
"@symbiote-native/solid": "1.0.0",
|
|
139
|
+
"@symbiote-native/svelte": "1.0.0",
|
|
140
|
+
"@symbiote-native/test-utils": "0.3.0",
|
|
141
|
+
"@symbiote-native/vue": "1.0.0"
|
|
131
142
|
},
|
|
132
143
|
"scripts": {
|
|
133
144
|
"typecheck": "tsc --build",
|