@ng-native/expo 0.1.3 → 0.3.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 +32 -382
- package/dist/async-storage.d.ts +15 -0
- package/dist/async-storage.js +29 -0
- package/dist/async-storage.js.map +1 -0
- package/dist/audio.d.ts +10 -0
- package/dist/audio.js +26 -0
- package/dist/audio.js.map +1 -0
- package/dist/expo-ui-components.d.ts +142 -10
- package/dist/expo-ui-components.js +362 -39
- package/dist/expo-ui-components.js.map +1 -1
- package/dist/expo-ui.js +9 -6
- package/dist/expo-ui.js.map +1 -1
- package/dist/foldable.d.ts +78 -0
- package/dist/foldable.js +87 -0
- package/dist/foldable.js.map +1 -0
- package/dist/fonts.d.ts +3 -0
- package/dist/fonts.js +7 -2
- package/dist/fonts.js.map +1 -1
- package/dist/image-picker.js +3 -9
- package/dist/image-picker.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/live-activity.d.ts +88 -0
- package/dist/live-activity.js +150 -0
- package/dist/live-activity.js.map +1 -0
- package/dist/location.js +2 -7
- package/dist/location.js.map +1 -1
- package/dist/media-library.js +1 -3
- package/dist/media-library.js.map +1 -1
- package/dist/native.d.ts +4 -1
- package/dist/native.js +60 -4
- package/dist/native.js.map +1 -1
- package/dist/notifications.js +2 -4
- package/dist/notifications.js.map +1 -1
- package/dist/permissions.d.ts +2 -0
- package/dist/permissions.js +6 -0
- package/dist/permissions.js.map +1 -1
- package/dist/player.d.ts +24 -11
- package/dist/player.js +7 -26
- package/dist/player.js.map +1 -1
- package/dist/register-expo-view.d.ts +5 -0
- package/dist/register-expo-view.js +5 -1
- package/dist/register-expo-view.js.map +1 -1
- package/dist/screen-capture.js +2 -4
- package/dist/screen-capture.js.map +1 -1
- package/dist/secure-store.d.ts +15 -0
- package/dist/secure-store.js +30 -0
- package/dist/secure-store.js.map +1 -0
- package/dist/store.d.ts +5 -10
- package/dist/store.js +5 -36
- package/dist/store.js.map +1 -1
- package/dist/tracking.d.ts +1 -1
- package/dist/tracking.js +3 -5
- package/dist/tracking.js.map +1 -1
- package/dist/video.d.ts +5 -0
- package/dist/video.js +21 -0
- package/dist/video.js.map +1 -0
- package/dist/watch.d.ts +103 -0
- package/dist/watch.js +228 -0
- package/dist/watch.js.map +1 -0
- package/package.json +49 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DestroyRef,\n ErrorHandler,\n InjectionToken,\n Service,\n inject,\n signal,\n type Signal,\n} from '@angular/core';\nimport { expoModule } from './native.ts';\n\nexport type WatchPayload = Record<string, unknown>;\n\nexport interface WatchFileTransfer {\n readonly id: string;\n readonly uri: string;\n readonly metadata: WatchPayload;\n readonly bytesTotal: number;\n readonly bytesTransferred: number;\n readonly fractionCompleted: number;\n readonly startTime: Date;\n readonly endTime: Date | null;\n readonly error: Error | null;\n}\n\nexport interface WatchFileEvent extends WatchFileTransfer {\n readonly type: string;\n}\n\nexport interface WatchError {\n readonly kind:\n | 'activation'\n | 'application-context'\n | 'application-context-received'\n | 'user-info'\n | 'file-received';\n readonly payload: unknown;\n}\n\ntype Unsubscribe = () => void;\ntype Reply = ((response: WatchPayload) => void) | null;\n\nexport interface NativeWatch {\n sendMessage(\n message: WatchPayload,\n reply?: (response: WatchPayload) => void,\n error?: (error: Error) => void,\n ): void;\n sendMessageData(data: string): Promise<string>;\n updateApplicationContext(context: WatchPayload): void;\n getApplicationContext(): Promise<WatchPayload | null>;\n transferUserInfo(userInfo: WatchPayload): void;\n transferCurrentComplicationUserInfo(userInfo: WatchPayload): void;\n startFileTransfer(uri: string, metadata?: WatchPayload): Promise<string>;\n getReachability(): Promise<boolean>;\n getIsPaired(): Promise<boolean>;\n getIsWatchAppInstalled(): Promise<boolean>;\n watchEvents: {\n on(event: 'message', listener: (message: WatchPayload, reply: Reply) => void): Unsubscribe;\n on(event: 'application-context', listener: (context: WatchPayload) => void): Unsubscribe;\n on(event: 'user-info', listener: (userInfo: WatchPayload[]) => void): Unsubscribe;\n on(event: 'file', listener: (event: WatchFileEvent) => void): Unsubscribe;\n on(event: 'file-received', listener: (files: WatchPayload[]) => void): Unsubscribe;\n on(\n event: 'reachability' | 'paired' | 'installed',\n listener: (value: boolean) => void,\n ): Unsubscribe;\n on(\n event:\n | 'activation-error'\n | 'application-context-error'\n | 'application-context-received-error'\n | 'user-info-error'\n | 'file-received-error'\n | 'session-became-inactive'\n | 'session-did-deactivate',\n listener: (payload: unknown) => void,\n ): Unsubscribe;\n };\n}\n\nexport type WatchMessageHandler = (\n message: WatchPayload,\n) => WatchPayload | void | Promise<WatchPayload | void>;\n\nconst ERRORS = [\n ['activation-error', 'activation'],\n ['application-context-error', 'application-context'],\n ['application-context-received-error', 'application-context-received'],\n ['user-info-error', 'user-info'],\n ['file-received-error', 'file-received'],\n] as const;\n\nconst SETTLE_DELAYS = [0, 250, 1000, 3000, 10000];\n\n@Service()\nexport class Watch {\n /**\n * `react-native-watch-connectivity`, iOS only. It is a TurboModule, which it asks for with\n * `getEnforcing` as it is evaluated, so it is evaluated only once `WatchConnectivity` is\n * registered: in Expo Go, or a build made before it was installed, it would throw an invariant\n * Metro reports as fatal rather than the `MissingModuleError` this answers.\n */\n static readonly SOURCE = new InjectionToken<NativeWatch | null>('angular-native.watchSource', {\n factory: () =>\n expoModule(\n 'react-native-watch-connectivity',\n () =>\n (require('react-native') as typeof import('react-native')).TurboModuleRegistry?.get(\n 'WatchConnectivity',\n )\n ? (require('react-native-watch-connectivity') as NativeWatch)\n : null,\n ['ios'],\n ),\n });\n\n private readonly native = inject(Watch.SOURCE);\n private readonly handlers = new Set<WatchMessageHandler>();\n private readonly errors = inject(ErrorHandler);\n private destroyed = false;\n private ready = false;\n private pendingContext: WatchPayload | null = null;\n private readonly pendingTransfers: [complication: boolean, userInfo: WatchPayload][] = [];\n\n private readonly pairedState = signal(false);\n private readonly installedState = signal(false);\n private readonly reachableState = signal(false);\n private readonly messageState = signal<WatchPayload | null>(null);\n private readonly contextState = signal<WatchPayload | null>(null);\n private readonly userInfoState = signal<readonly WatchPayload[]>([]);\n private readonly filesState = signal<readonly WatchPayload[]>([]);\n private readonly transfersState = signal<ReadonlyMap<string, WatchFileEvent>>(new Map());\n private readonly errorState = signal<WatchError | null>(null);\n\n readonly available = this.native !== null;\n readonly paired: Signal<boolean> = this.pairedState.asReadonly();\n readonly installed: Signal<boolean> = this.installedState.asReadonly();\n readonly reachable: Signal<boolean> = this.reachableState.asReadonly();\n readonly message: Signal<WatchPayload | null> = this.messageState.asReadonly();\n readonly context: Signal<WatchPayload | null> = this.contextState.asReadonly();\n readonly userInfo: Signal<readonly WatchPayload[]> = this.userInfoState.asReadonly();\n readonly files: Signal<readonly WatchPayload[]> = this.filesState.asReadonly();\n readonly transfers: Signal<ReadonlyMap<string, WatchFileEvent>> =\n this.transfersState.asReadonly();\n readonly error: Signal<WatchError | null> = this.errorState.asReadonly();\n\n constructor() {\n const native = this.native;\n if (!native) return;\n const events = native.watchEvents;\n const stops: Unsubscribe[] = [\n events.on('reachability', (reachable) => {\n if (reachable) this.connected();\n else this.reachableState.set(false);\n void this.status().catch(() => {});\n }),\n events.on('paired', (paired) => {\n this.pairedState.set(paired);\n // A watch paired after `settle` stopped asking: the session is active, so send what it held.\n if (paired) this.activated();\n }),\n events.on('installed', (installed) => this.installedState.set(installed)),\n events.on('message', (message, reply) => this.received(message, reply)),\n events.on('application-context', (context) => this.contextState.set(context)),\n events.on('user-info', (userInfo) =>\n this.userInfoState.update((received) => [...received, ...userInfo]),\n ),\n events.on('file-received', (files) => this.filesState.set(files)),\n events.on('file', (event) =>\n this.transfersState.update((transfers) => new Map(transfers).set(event.id, event)),\n ),\n events.on('session-became-inactive', () => this.reachableState.set(false)),\n events.on('session-did-deactivate', () => this.reachableState.set(false)),\n ...ERRORS.map(([event, kind]) =>\n events.on(event, (payload) => this.errorState.set({ kind, payload })),\n ),\n ];\n inject(DestroyRef).onDestroy(() => {\n this.destroyed = true;\n stops.forEach((stop) => stop());\n });\n void this.settle();\n native.getApplicationContext().then(\n (context) => context && this.contextState.set(context),\n () => {},\n );\n }\n\n async status(): Promise<{ paired: boolean; installed: boolean; reachable: boolean }> {\n const native = this.native;\n if (!native) return { paired: false, installed: false, reachable: false };\n const [paired, installed, reachable] = await Promise.all([\n native.getIsPaired(),\n native.getIsWatchAppInstalled(),\n native.getReachability(),\n ]);\n if (reachable) {\n this.connected();\n return { paired: true, installed: true, reachable };\n }\n this.pairedState.set(paired);\n this.installedState.set(installed);\n this.reachableState.set(false);\n if (paired) this.activated();\n return { paired, installed, reachable };\n }\n\n send(message: WatchPayload): Promise<WatchPayload> {\n const native = this.native;\n if (!native) return Promise.reject(unavailable());\n return new Promise((resolve, reject) =>\n native.sendMessage(\n message,\n (response) => {\n this.connected();\n resolve(response);\n },\n (error) => {\n this.reachableState.set(false);\n reject(error);\n },\n ),\n );\n }\n\n sendData(data: string): Promise<string> {\n return this.native ? this.native.sendMessageData(data) : Promise.reject(unavailable());\n }\n\n onMessage(handler: WatchMessageHandler): Unsubscribe {\n this.handlers.add(handler);\n return () => this.handlers.delete(handler);\n }\n\n update(context: WatchPayload): void {\n if (!this.native) return;\n if (this.ready) this.native.updateApplicationContext(context);\n else this.pendingContext = context;\n }\n\n currentContext(): Promise<WatchPayload | null> {\n return this.native ? this.native.getApplicationContext() : Promise.resolve(null);\n }\n\n transfer(userInfo: WatchPayload): void {\n this.queue(false, userInfo);\n }\n\n transferComplication(userInfo: WatchPayload): void {\n this.queue(true, userInfo);\n }\n\n sendFile(uri: string, metadata: WatchPayload = {}): Promise<string> {\n return this.native\n ? this.native.startFileTransfer(uri, metadata)\n : Promise.reject(unavailable());\n }\n\n private queue(complication: boolean, userInfo: WatchPayload): void {\n const native = this.native;\n if (!native) return;\n if (!this.ready) this.pendingTransfers.push([complication, userInfo]);\n else if (complication) native.transferCurrentComplicationUserInfo(userInfo);\n else native.transferUserInfo(userInfo);\n }\n\n private connected(): void {\n this.pairedState.set(true);\n this.installedState.set(true);\n this.reachableState.set(true);\n this.activated();\n }\n\n private activated(): void {\n if (this.ready) return;\n this.ready = true;\n if (this.pendingContext) this.update(this.pendingContext);\n this.pendingContext = null;\n for (const [complication, userInfo] of this.pendingTransfers.splice(0)) {\n this.queue(complication, userInfo);\n }\n }\n\n private async settle(): Promise<void> {\n for (const delay of SETTLE_DELAYS) {\n await new Promise((resolve) => setTimeout(resolve, delay));\n if (this.destroyed) return;\n const status = await this.status().catch(() => null);\n if (status?.paired) return;\n }\n }\n\n private received(message: WatchPayload, reply: Reply): void {\n this.connected();\n this.messageState.set(message);\n if (!reply) {\n for (const handler of this.handlers) {\n void Promise.resolve()\n .then(() => handler(message))\n .catch((error: unknown) => this.errors.handleError(error));\n }\n return;\n }\n void this.answer(message).then(reply, (error: unknown) => {\n this.errors.handleError(error);\n reply({});\n });\n }\n\n private async answer(message: WatchPayload): Promise<WatchPayload> {\n let response: WatchPayload = {};\n for (const handler of this.handlers) {\n const result = await handler(message);\n if (result) response = { ...response, ...result };\n }\n return response;\n }\n}\n\nfunction unavailable(): Error {\n return new Error(\n 'No paired Apple Watch session: react-native-watch-connectivity is not installed, or this is not iOS.',\n );\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-native/expo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Expo modules as Angular services for Angular Native, plus registerExpoView for a module's native view.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -32,6 +32,14 @@
|
|
|
32
32
|
"types": "./dist/assets.d.ts",
|
|
33
33
|
"default": "./dist/assets.js"
|
|
34
34
|
},
|
|
35
|
+
"./async-storage": {
|
|
36
|
+
"types": "./dist/async-storage.d.ts",
|
|
37
|
+
"default": "./dist/async-storage.js"
|
|
38
|
+
},
|
|
39
|
+
"./audio": {
|
|
40
|
+
"types": "./dist/audio.d.ts",
|
|
41
|
+
"default": "./dist/audio.js"
|
|
42
|
+
},
|
|
35
43
|
"./background-task": {
|
|
36
44
|
"types": "./dist/background-task.d.ts",
|
|
37
45
|
"default": "./dist/background-task.js"
|
|
@@ -84,6 +92,10 @@
|
|
|
84
92
|
"types": "./dist/file-system.d.ts",
|
|
85
93
|
"default": "./dist/file-system.js"
|
|
86
94
|
},
|
|
95
|
+
"./foldable": {
|
|
96
|
+
"types": "./dist/foldable.d.ts",
|
|
97
|
+
"default": "./dist/foldable.js"
|
|
98
|
+
},
|
|
87
99
|
"./fonts": {
|
|
88
100
|
"types": "./dist/fonts.d.ts",
|
|
89
101
|
"default": "./dist/fonts.js"
|
|
@@ -108,6 +120,10 @@
|
|
|
108
120
|
"types": "./dist/language-model.d.ts",
|
|
109
121
|
"default": "./dist/language-model.js"
|
|
110
122
|
},
|
|
123
|
+
"./live-activity": {
|
|
124
|
+
"types": "./dist/live-activity.d.ts",
|
|
125
|
+
"default": "./dist/live-activity.js"
|
|
126
|
+
},
|
|
111
127
|
"./locale": {
|
|
112
128
|
"types": "./dist/locale.d.ts",
|
|
113
129
|
"default": "./dist/locale.js"
|
|
@@ -144,6 +160,10 @@
|
|
|
144
160
|
"types": "./dist/screen-capture.d.ts",
|
|
145
161
|
"default": "./dist/screen-capture.js"
|
|
146
162
|
},
|
|
163
|
+
"./secure-store": {
|
|
164
|
+
"types": "./dist/secure-store.d.ts",
|
|
165
|
+
"default": "./dist/secure-store.js"
|
|
166
|
+
},
|
|
147
167
|
"./sensors": {
|
|
148
168
|
"types": "./dist/sensors.d.ts",
|
|
149
169
|
"default": "./dist/sensors.js"
|
|
@@ -168,13 +188,21 @@
|
|
|
168
188
|
"types": "./dist/updates.d.ts",
|
|
169
189
|
"default": "./dist/updates.js"
|
|
170
190
|
},
|
|
191
|
+
"./video": {
|
|
192
|
+
"types": "./dist/video.d.ts",
|
|
193
|
+
"default": "./dist/video.js"
|
|
194
|
+
},
|
|
195
|
+
"./watch": {
|
|
196
|
+
"types": "./dist/watch.d.ts",
|
|
197
|
+
"default": "./dist/watch.js"
|
|
198
|
+
},
|
|
171
199
|
"./package.json": "./package.json"
|
|
172
200
|
},
|
|
173
201
|
"publishConfig": {
|
|
174
202
|
"access": "public"
|
|
175
203
|
},
|
|
176
204
|
"dependencies": {
|
|
177
|
-
"@ng-native/fabric": "0.
|
|
205
|
+
"@ng-native/fabric": "0.3.0"
|
|
178
206
|
},
|
|
179
207
|
"nx": {
|
|
180
208
|
"tags": [
|
|
@@ -205,6 +233,7 @@
|
|
|
205
233
|
"expo-device": "^57.0.0",
|
|
206
234
|
"expo-document-picker": "^57.0.0",
|
|
207
235
|
"expo-file-system": "^57.0.0",
|
|
236
|
+
"expo-foldables": "^0.1.0",
|
|
208
237
|
"expo-font": "^57.0.0",
|
|
209
238
|
"expo-haptics": "^57.0.0",
|
|
210
239
|
"expo-image-manipulator": "^57.0.0",
|
|
@@ -230,10 +259,13 @@
|
|
|
230
259
|
"expo-updates": "^57.0.0",
|
|
231
260
|
"expo-video": "^57.0.0",
|
|
232
261
|
"expo-web-browser": "^57.0.0",
|
|
233
|
-
"
|
|
262
|
+
"expo-widgets": "^57.0.0",
|
|
263
|
+
"react-native": ">=0.86.0",
|
|
264
|
+
"react-native-watch-connectivity": "^2.0.0"
|
|
234
265
|
},
|
|
235
266
|
"devDependencies": {
|
|
236
267
|
"@angular/core": "22.2.0",
|
|
268
|
+
"@babel/core": "^7.29.7",
|
|
237
269
|
"@expo/ui": "^57.0.21",
|
|
238
270
|
"@react-native-async-storage/async-storage": "^3.1.1",
|
|
239
271
|
"expo": "^57.0.26",
|
|
@@ -248,6 +280,7 @@
|
|
|
248
280
|
"expo-crypto": "^57.0.3",
|
|
249
281
|
"expo-device": "^57.0.2",
|
|
250
282
|
"expo-document-picker": "^57.0.3",
|
|
283
|
+
"expo-foldables": "^0.1.0",
|
|
251
284
|
"expo-image-manipulator": "^57.0.20",
|
|
252
285
|
"expo-image-picker": "^57.0.20",
|
|
253
286
|
"expo-keep-awake": "^57.0.2",
|
|
@@ -269,7 +302,10 @@
|
|
|
269
302
|
"expo-tracking-transparency": "^57.0.2",
|
|
270
303
|
"expo-updates": "^57.0.24",
|
|
271
304
|
"expo-video": "^57.0.5",
|
|
272
|
-
"expo-web-browser": "^57.0.3"
|
|
305
|
+
"expo-web-browser": "^57.0.3",
|
|
306
|
+
"expo-widgets": "^57.0.22",
|
|
307
|
+
"react-native-watch-connectivity": "^2.0.0",
|
|
308
|
+
"typescript": "~6.0.3"
|
|
273
309
|
},
|
|
274
310
|
"peerDependenciesMeta": {
|
|
275
311
|
"@expo/ui": {
|
|
@@ -317,6 +353,9 @@
|
|
|
317
353
|
"expo-file-system": {
|
|
318
354
|
"optional": true
|
|
319
355
|
},
|
|
356
|
+
"expo-foldables": {
|
|
357
|
+
"optional": true
|
|
358
|
+
},
|
|
320
359
|
"expo-font": {
|
|
321
360
|
"optional": true
|
|
322
361
|
},
|
|
@@ -388,6 +427,12 @@
|
|
|
388
427
|
},
|
|
389
428
|
"expo-web-browser": {
|
|
390
429
|
"optional": true
|
|
430
|
+
},
|
|
431
|
+
"expo-widgets": {
|
|
432
|
+
"optional": true
|
|
433
|
+
},
|
|
434
|
+
"react-native-watch-connectivity": {
|
|
435
|
+
"optional": true
|
|
391
436
|
}
|
|
392
437
|
},
|
|
393
438
|
"repository": {
|