craft-native 0.0.37
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.md +21 -0
- package/README.md +424 -0
- package/bin/cli.ts +937 -0
- package/dist/api/android-advanced.d.ts +737 -0
- package/dist/api/android-advanced.d.ts.map +1 -0
- package/dist/api/app.d.ts +432 -0
- package/dist/api/app.d.ts.map +1 -0
- package/dist/api/clipboard.d.ts +85 -0
- package/dist/api/clipboard.d.ts.map +1 -0
- package/dist/api/crypto.d.ts +79 -0
- package/dist/api/crypto.d.ts.map +1 -0
- package/dist/api/db.d.ts +427 -0
- package/dist/api/db.d.ts.map +1 -0
- package/dist/api/dialog.d.ts +141 -0
- package/dist/api/dialog.d.ts.map +1 -0
- package/dist/api/fs.d.ts +131 -0
- package/dist/api/fs.d.ts.map +1 -0
- package/dist/api/http.d.ts +196 -0
- package/dist/api/http.d.ts.map +1 -0
- package/dist/api/index.d.ts +38 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/ios-advanced.d.ts +833 -0
- package/dist/api/ios-advanced.d.ts.map +1 -0
- package/dist/api/macos-advanced.d.ts +721 -0
- package/dist/api/macos-advanced.d.ts.map +1 -0
- package/dist/api/media.d.ts +233 -0
- package/dist/api/media.d.ts.map +1 -0
- package/dist/api/mobile.d.ts +658 -0
- package/dist/api/mobile.d.ts.map +1 -0
- package/dist/api/process.d.ts +168 -0
- package/dist/api/process.d.ts.map +1 -0
- package/dist/api/sidebar.d.ts +125 -0
- package/dist/api/sidebar.d.ts.map +1 -0
- package/dist/api/tray.d.ts +410 -0
- package/dist/api/tray.d.ts.map +1 -0
- package/dist/api/window.d.ts +462 -0
- package/dist/api/window.d.ts.map +1 -0
- package/dist/api/windows-advanced.d.ts +719 -0
- package/dist/api/windows-advanced.d.ts.map +1 -0
- package/dist/assets/index.d.ts +69 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/binary-resolver.d.ts +39 -0
- package/dist/binary-resolver.d.ts.map +1 -0
- package/dist/bridge/android.d.ts +574 -0
- package/dist/bridge/android.d.ts.map +1 -0
- package/dist/bridge/core.d.ts +474 -0
- package/dist/bridge/core.d.ts.map +1 -0
- package/dist/bridge/ids.d.ts +18 -0
- package/dist/bridge/ids.d.ts.map +1 -0
- package/dist/bridge/ios.d.ts +528 -0
- package/dist/bridge/ios.d.ts.map +1 -0
- package/dist/bridge/webkit-pending.d.ts +50 -0
- package/dist/bridge/webkit-pending.d.ts.map +1 -0
- package/dist/build/bundle-optimizer.d.ts +69 -0
- package/dist/build/bundle-optimizer.d.ts.map +1 -0
- package/dist/components/index.d.ts +719 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/native.d.ts +728 -0
- package/dist/components/native.d.ts.map +1 -0
- package/dist/components/sidebar.d.ts +458 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/dev/devtools.d.ts +118 -0
- package/dist/dev/devtools.d.ts.map +1 -0
- package/dist/dev/error-overlay.d.ts +73 -0
- package/dist/dev/error-overlay.d.ts.map +1 -0
- package/dist/dev/hot-reload.d.ts +127 -0
- package/dist/dev/hot-reload.d.ts.map +1 -0
- package/dist/index.cjs +10253 -0
- package/dist/index.d.cts +59 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10240 -0
- package/dist/logging/index.d.ts +152 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/optimizations/index.d.ts +232 -0
- package/dist/optimizations/index.d.ts.map +1 -0
- package/dist/package.d.ts +90 -0
- package/dist/package.d.ts.map +1 -0
- package/dist/performance/runtime.d.ts +230 -0
- package/dist/performance/runtime.d.ts.map +1 -0
- package/dist/performance/startup.d.ts +223 -0
- package/dist/performance/startup.d.ts.map +1 -0
- package/dist/plugins/index.d.ts +114 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/security/index.d.ts +268 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/signing/index.d.ts +104 -0
- package/dist/signing/index.d.ts.map +1 -0
- package/dist/styles/headwind.d.ts +222 -0
- package/dist/styles/headwind.d.ts.map +1 -0
- package/dist/styles/index.d.ts +31 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/sidebar-templates.d.ts +77 -0
- package/dist/styles/sidebar-templates.d.ts.map +1 -0
- package/dist/styles/sidebars.d.ts +194 -0
- package/dist/styles/sidebars.d.ts.map +1 -0
- package/dist/types.d.ts +1555 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/updater/index.d.ts +164 -0
- package/dist/updater/index.d.ts.map +1 -0
- package/dist/utils/audio.d.ts +40 -0
- package/dist/utils/audio.d.ts.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/native.d.ts +27 -0
- package/dist/utils/native.d.ts.map +1 -0
- package/dist/utils/react.d.ts +157 -0
- package/dist/utils/react.d.ts.map +1 -0
- package/dist/utils/storage.d.ts +35 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/svelte.d.ts +187 -0
- package/dist/utils/svelte.d.ts.map +1 -0
- package/dist/utils/timer.d.ts +57 -0
- package/dist/utils/timer.d.ts.map +1 -0
- package/dist/utils/vue.d.ts +157 -0
- package/dist/utils/vue.d.ts.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Craft iOS Bridge
|
|
3
|
+
* Complete iOS native bridge with WebView, permissions, haptics, and platform APIs
|
|
4
|
+
*/
|
|
5
|
+
export interface IOSWebViewConfig {
|
|
6
|
+
url?: string;
|
|
7
|
+
html?: string;
|
|
8
|
+
allowsBackForwardNavigationGestures?: boolean;
|
|
9
|
+
allowsInlineMediaPlayback?: boolean;
|
|
10
|
+
mediaTypesRequiringUserAction?: ('audio' | 'video' | 'all' | 'none')[];
|
|
11
|
+
suppressesIncrementalRendering?: boolean;
|
|
12
|
+
allowsAirPlayForMediaPlayback?: boolean;
|
|
13
|
+
scrollEnabled?: boolean;
|
|
14
|
+
bounces?: boolean;
|
|
15
|
+
contentInsetAdjustmentBehavior?: 'automatic' | 'scrollableAxes' | 'never' | 'always';
|
|
16
|
+
}
|
|
17
|
+
export interface IOSPermission {
|
|
18
|
+
type: 'camera' | 'microphone' | 'photos' | 'location' | 'locationAlways' | 'contacts' | 'calendar' | 'reminders' | 'notifications' | 'bluetooth' | 'healthKit' | 'motion' | 'speechRecognition' | 'mediaLibrary' | 'siri' | 'faceID' | 'tracking';
|
|
19
|
+
status: 'notDetermined' | 'restricted' | 'denied' | 'authorized' | 'authorizedWhenInUse' | 'provisional';
|
|
20
|
+
}
|
|
21
|
+
export interface IOSHapticFeedback {
|
|
22
|
+
type: 'impact' | 'notification' | 'selection';
|
|
23
|
+
style?: 'light' | 'medium' | 'heavy' | 'soft' | 'rigid';
|
|
24
|
+
notificationType?: 'success' | 'warning' | 'error';
|
|
25
|
+
}
|
|
26
|
+
export interface IOSAppClipConfig {
|
|
27
|
+
invocationURL: string;
|
|
28
|
+
experienceType: 'default' | 'locationBased';
|
|
29
|
+
businessCategory?: string;
|
|
30
|
+
subtitle?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface IOSSharePlayActivity {
|
|
33
|
+
activityIdentifier: string;
|
|
34
|
+
fallbackURL?: string;
|
|
35
|
+
title: string;
|
|
36
|
+
subtitle?: string;
|
|
37
|
+
image?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface IOSLiveActivity {
|
|
40
|
+
activityId: string;
|
|
41
|
+
contentState: Record<string, unknown>;
|
|
42
|
+
staleDate?: Date;
|
|
43
|
+
relevanceScore?: number;
|
|
44
|
+
}
|
|
45
|
+
export interface IOSFocusFilter {
|
|
46
|
+
identifier: string;
|
|
47
|
+
name: string;
|
|
48
|
+
iconSystemName?: string;
|
|
49
|
+
parameters: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
export interface IOSAppIntent {
|
|
52
|
+
identifier: string;
|
|
53
|
+
title: string;
|
|
54
|
+
description?: string;
|
|
55
|
+
parameters?: Array<{
|
|
56
|
+
name: string;
|
|
57
|
+
type: 'string' | 'number' | 'boolean' | 'date' | 'url';
|
|
58
|
+
required?: boolean;
|
|
59
|
+
}>;
|
|
60
|
+
}
|
|
61
|
+
export interface IOSTipKitTip {
|
|
62
|
+
identifier: string;
|
|
63
|
+
title: string;
|
|
64
|
+
message: string;
|
|
65
|
+
imageName?: string;
|
|
66
|
+
actions?: Array<{
|
|
67
|
+
identifier: string;
|
|
68
|
+
title: string;
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
71
|
+
export interface IOSStoreKitProduct {
|
|
72
|
+
productId: string;
|
|
73
|
+
displayName: string;
|
|
74
|
+
description: string;
|
|
75
|
+
price: number;
|
|
76
|
+
displayPrice: string;
|
|
77
|
+
type: 'consumable' | 'nonConsumable' | 'autoRenewable' | 'nonRenewable';
|
|
78
|
+
}
|
|
79
|
+
export interface IOSCarPlayTemplate {
|
|
80
|
+
type: 'list' | 'grid' | 'tab' | 'information' | 'pointOfInterest' | 'nowPlaying' | 'alert' | 'action';
|
|
81
|
+
title: string;
|
|
82
|
+
items?: Array<{
|
|
83
|
+
title: string;
|
|
84
|
+
subtitle?: string;
|
|
85
|
+
image?: string;
|
|
86
|
+
handler?: string;
|
|
87
|
+
}>;
|
|
88
|
+
}
|
|
89
|
+
export declare class IOSWebView {
|
|
90
|
+
private id;
|
|
91
|
+
private config;
|
|
92
|
+
constructor(config?: IOSWebViewConfig);
|
|
93
|
+
/**
|
|
94
|
+
* Create the WebView (calls Objective-C runtime)
|
|
95
|
+
*/
|
|
96
|
+
create(): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Load a URL
|
|
99
|
+
*/
|
|
100
|
+
loadURL(url: string): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Load HTML content
|
|
103
|
+
*/
|
|
104
|
+
loadHTML(html: string, baseURL?: string): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Evaluate JavaScript in the WebView
|
|
107
|
+
*/
|
|
108
|
+
evaluateJavaScript<T = unknown>(script: string): Promise<T>;
|
|
109
|
+
/**
|
|
110
|
+
* Go back in history
|
|
111
|
+
*/
|
|
112
|
+
goBack(): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Go forward in history
|
|
115
|
+
*/
|
|
116
|
+
goForward(): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Reload the current page
|
|
119
|
+
*/
|
|
120
|
+
reload(): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Stop loading
|
|
123
|
+
*/
|
|
124
|
+
stopLoading(): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Take a snapshot of the WebView
|
|
127
|
+
*/
|
|
128
|
+
takeSnapshot(): Promise<string>;
|
|
129
|
+
/**
|
|
130
|
+
* Destroy the WebView
|
|
131
|
+
*/
|
|
132
|
+
destroy(): Promise<void>;
|
|
133
|
+
private callNative;
|
|
134
|
+
}
|
|
135
|
+
export declare class IOSPermissions {
|
|
136
|
+
/**
|
|
137
|
+
* Check permission status
|
|
138
|
+
*/
|
|
139
|
+
check(type: IOSPermission['type']): Promise<IOSPermission['status']>;
|
|
140
|
+
/**
|
|
141
|
+
* Request permission
|
|
142
|
+
*/
|
|
143
|
+
request(type: IOSPermission['type']): Promise<IOSPermission['status']>;
|
|
144
|
+
/**
|
|
145
|
+
* Open app settings
|
|
146
|
+
*/
|
|
147
|
+
openSettings(): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Check if can open settings
|
|
150
|
+
*/
|
|
151
|
+
canOpenSettings(): Promise<boolean>;
|
|
152
|
+
private callNative;
|
|
153
|
+
}
|
|
154
|
+
export declare class IOSHaptics {
|
|
155
|
+
/**
|
|
156
|
+
* Trigger impact feedback
|
|
157
|
+
*/
|
|
158
|
+
impact(style?: IOSHapticFeedback['style']): Promise<void>;
|
|
159
|
+
/**
|
|
160
|
+
* Trigger notification feedback
|
|
161
|
+
*/
|
|
162
|
+
notification(type?: IOSHapticFeedback['notificationType']): Promise<void>;
|
|
163
|
+
/**
|
|
164
|
+
* Trigger selection feedback
|
|
165
|
+
*/
|
|
166
|
+
selection(): Promise<void>;
|
|
167
|
+
private callNative;
|
|
168
|
+
}
|
|
169
|
+
export declare class IOSAppClips {
|
|
170
|
+
/**
|
|
171
|
+
* Configure App Clip experience
|
|
172
|
+
*/
|
|
173
|
+
configure(config: IOSAppClipConfig): Promise<void>;
|
|
174
|
+
/**
|
|
175
|
+
* Get invocation URL
|
|
176
|
+
*/
|
|
177
|
+
getInvocationURL(): Promise<string | null>;
|
|
178
|
+
/**
|
|
179
|
+
* Check if running as App Clip
|
|
180
|
+
*/
|
|
181
|
+
isAppClip(): Promise<boolean>;
|
|
182
|
+
/**
|
|
183
|
+
* Request full app installation
|
|
184
|
+
*/
|
|
185
|
+
requestFullAppInstallation(): Promise<void>;
|
|
186
|
+
private callNative;
|
|
187
|
+
}
|
|
188
|
+
export declare class IOSSharePlay {
|
|
189
|
+
private activity;
|
|
190
|
+
/**
|
|
191
|
+
* Start a SharePlay activity
|
|
192
|
+
*/
|
|
193
|
+
startActivity(activity: IOSSharePlayActivity): Promise<void>;
|
|
194
|
+
/**
|
|
195
|
+
* End the current SharePlay activity
|
|
196
|
+
*/
|
|
197
|
+
endActivity(): Promise<void>;
|
|
198
|
+
/**
|
|
199
|
+
* Check if SharePlay is available
|
|
200
|
+
*/
|
|
201
|
+
isAvailable(): Promise<boolean>;
|
|
202
|
+
/**
|
|
203
|
+
* Send message to participants
|
|
204
|
+
*/
|
|
205
|
+
sendMessage(data: unknown): Promise<void>;
|
|
206
|
+
/**
|
|
207
|
+
* Listen for messages
|
|
208
|
+
*/
|
|
209
|
+
onMessage(callback: (data: unknown) => void): () => void;
|
|
210
|
+
private callNative;
|
|
211
|
+
}
|
|
212
|
+
export declare class IOSLiveActivities {
|
|
213
|
+
/**
|
|
214
|
+
* Start a Live Activity
|
|
215
|
+
*/
|
|
216
|
+
start(activity: Omit<IOSLiveActivity, 'activityId'>): Promise<string>;
|
|
217
|
+
/**
|
|
218
|
+
* Update a Live Activity
|
|
219
|
+
*/
|
|
220
|
+
update(activityId: string, contentState: Record<string, unknown>): Promise<void>;
|
|
221
|
+
/**
|
|
222
|
+
* End a Live Activity
|
|
223
|
+
*/
|
|
224
|
+
end(activityId: string, dismissalPolicy?: 'immediate' | 'default' | 'after'): Promise<void>;
|
|
225
|
+
/**
|
|
226
|
+
* Get all active Live Activities
|
|
227
|
+
*/
|
|
228
|
+
getAll(): Promise<IOSLiveActivity[]>;
|
|
229
|
+
/**
|
|
230
|
+
* Check if Live Activities are supported
|
|
231
|
+
*/
|
|
232
|
+
areSupported(): Promise<boolean>;
|
|
233
|
+
private callNative;
|
|
234
|
+
}
|
|
235
|
+
export declare class IOSFocusFilters {
|
|
236
|
+
/**
|
|
237
|
+
* Register a focus filter
|
|
238
|
+
*/
|
|
239
|
+
register(filter: IOSFocusFilter): Promise<void>;
|
|
240
|
+
/**
|
|
241
|
+
* Get current focus filter
|
|
242
|
+
*/
|
|
243
|
+
getCurrent(): Promise<IOSFocusFilter | null>;
|
|
244
|
+
/**
|
|
245
|
+
* Check if a focus is active
|
|
246
|
+
*/
|
|
247
|
+
isFocusActive(): Promise<boolean>;
|
|
248
|
+
private callNative;
|
|
249
|
+
}
|
|
250
|
+
export declare class IOSAppIntents {
|
|
251
|
+
/**
|
|
252
|
+
* Register an App Intent
|
|
253
|
+
*/
|
|
254
|
+
register(intent: IOSAppIntent): Promise<void>;
|
|
255
|
+
/**
|
|
256
|
+
* Donate an intent (for suggestions)
|
|
257
|
+
*/
|
|
258
|
+
donate(intentIdentifier: string, parameters?: Record<string, unknown>): Promise<void>;
|
|
259
|
+
/**
|
|
260
|
+
* Handle intent execution
|
|
261
|
+
*/
|
|
262
|
+
onExecute(callback: (intent: IOSAppIntent, parameters: Record<string, unknown>) => Promise<unknown>): () => void;
|
|
263
|
+
private callNative;
|
|
264
|
+
}
|
|
265
|
+
export declare class IOSTipKit {
|
|
266
|
+
/**
|
|
267
|
+
* Configure TipKit
|
|
268
|
+
*/
|
|
269
|
+
configure(options?: {
|
|
270
|
+
displayFrequency?: 'immediate' | 'hourly' | 'daily' | 'weekly' | 'monthly';
|
|
271
|
+
}): Promise<void>;
|
|
272
|
+
/**
|
|
273
|
+
* Register a tip
|
|
274
|
+
*/
|
|
275
|
+
registerTip(tip: IOSTipKitTip): Promise<void>;
|
|
276
|
+
/**
|
|
277
|
+
* Show a tip
|
|
278
|
+
*/
|
|
279
|
+
showTip(identifier: string): Promise<void>;
|
|
280
|
+
/**
|
|
281
|
+
* Invalidate a tip
|
|
282
|
+
*/
|
|
283
|
+
invalidateTip(identifier: string): Promise<void>;
|
|
284
|
+
/**
|
|
285
|
+
* Reset all tips
|
|
286
|
+
*/
|
|
287
|
+
resetAllTips(): Promise<void>;
|
|
288
|
+
private callNative;
|
|
289
|
+
}
|
|
290
|
+
export declare class IOSStoreKit {
|
|
291
|
+
/**
|
|
292
|
+
* Get available products
|
|
293
|
+
*/
|
|
294
|
+
getProducts(productIds: string[]): Promise<IOSStoreKitProduct[]>;
|
|
295
|
+
/**
|
|
296
|
+
* Purchase a product
|
|
297
|
+
*/
|
|
298
|
+
purchase(productId: string): Promise<{
|
|
299
|
+
transactionId: string;
|
|
300
|
+
status: 'purchased' | 'pending' | 'cancelled';
|
|
301
|
+
}>;
|
|
302
|
+
/**
|
|
303
|
+
* Restore purchases
|
|
304
|
+
*/
|
|
305
|
+
restorePurchases(): Promise<Array<{
|
|
306
|
+
productId: string;
|
|
307
|
+
transactionId: string;
|
|
308
|
+
}>>;
|
|
309
|
+
/**
|
|
310
|
+
* Check entitlement
|
|
311
|
+
*/
|
|
312
|
+
checkEntitlement(productId: string): Promise<boolean>;
|
|
313
|
+
/**
|
|
314
|
+
* Get subscription status
|
|
315
|
+
*/
|
|
316
|
+
getSubscriptionStatus(productId: string): Promise<{
|
|
317
|
+
isActive: boolean;
|
|
318
|
+
willRenew: boolean;
|
|
319
|
+
expirationDate?: string;
|
|
320
|
+
gracePeriodExpirationDate?: string;
|
|
321
|
+
} | null>;
|
|
322
|
+
/**
|
|
323
|
+
* Present offer code redemption sheet
|
|
324
|
+
*/
|
|
325
|
+
presentOfferCodeRedemption(): Promise<void>;
|
|
326
|
+
/**
|
|
327
|
+
* Listen for transaction updates
|
|
328
|
+
*/
|
|
329
|
+
onTransactionUpdate(callback: (transaction: {
|
|
330
|
+
productId: string;
|
|
331
|
+
transactionId: string;
|
|
332
|
+
status: string;
|
|
333
|
+
}) => void): () => void;
|
|
334
|
+
private callNative;
|
|
335
|
+
}
|
|
336
|
+
export declare class IOSCarPlay {
|
|
337
|
+
private connected;
|
|
338
|
+
/**
|
|
339
|
+
* Check if CarPlay is connected
|
|
340
|
+
*/
|
|
341
|
+
isConnected(): Promise<boolean>;
|
|
342
|
+
/**
|
|
343
|
+
* Set root template
|
|
344
|
+
*/
|
|
345
|
+
setRootTemplate(template: IOSCarPlayTemplate): Promise<void>;
|
|
346
|
+
/**
|
|
347
|
+
* Push a template
|
|
348
|
+
*/
|
|
349
|
+
pushTemplate(template: IOSCarPlayTemplate, animated?: boolean): Promise<void>;
|
|
350
|
+
/**
|
|
351
|
+
* Pop the current template
|
|
352
|
+
*/
|
|
353
|
+
popTemplate(animated?: boolean): Promise<void>;
|
|
354
|
+
/**
|
|
355
|
+
* Present an alert
|
|
356
|
+
*/
|
|
357
|
+
presentAlert(title: string, message?: string, actions?: Array<{
|
|
358
|
+
title: string;
|
|
359
|
+
style?: 'default' | 'cancel' | 'destructive';
|
|
360
|
+
}>): Promise<number>;
|
|
361
|
+
/**
|
|
362
|
+
* Update Now Playing info
|
|
363
|
+
*/
|
|
364
|
+
updateNowPlaying(info: {
|
|
365
|
+
title: string;
|
|
366
|
+
artist?: string;
|
|
367
|
+
album?: string;
|
|
368
|
+
artwork?: string;
|
|
369
|
+
duration?: number;
|
|
370
|
+
elapsedTime?: number;
|
|
371
|
+
playbackRate?: number;
|
|
372
|
+
}): Promise<void>;
|
|
373
|
+
/**
|
|
374
|
+
* Listen for CarPlay connection changes
|
|
375
|
+
*/
|
|
376
|
+
onConnectionChange(callback: (connected: boolean) => void): () => void;
|
|
377
|
+
private callNative;
|
|
378
|
+
}
|
|
379
|
+
export declare class IOSNativeComponents {
|
|
380
|
+
/**
|
|
381
|
+
* Create a native navigation controller
|
|
382
|
+
*/
|
|
383
|
+
createNavigationController(config: {
|
|
384
|
+
title?: string;
|
|
385
|
+
largeTitleDisplayMode?: 'automatic' | 'always' | 'never';
|
|
386
|
+
prefersLargeTitles?: boolean;
|
|
387
|
+
tintColor?: string;
|
|
388
|
+
}): Promise<string>;
|
|
389
|
+
/**
|
|
390
|
+
* Create a native tab bar controller
|
|
391
|
+
*/
|
|
392
|
+
createTabBarController(tabs: Array<{
|
|
393
|
+
title: string;
|
|
394
|
+
icon: string;
|
|
395
|
+
selectedIcon?: string;
|
|
396
|
+
badgeValue?: string;
|
|
397
|
+
}>): Promise<string>;
|
|
398
|
+
/**
|
|
399
|
+
* Create a native collection view
|
|
400
|
+
*/
|
|
401
|
+
createCollectionView(config: {
|
|
402
|
+
layout: 'flow' | 'compositional' | 'list';
|
|
403
|
+
itemSize?: {
|
|
404
|
+
width: number;
|
|
405
|
+
height: number;
|
|
406
|
+
};
|
|
407
|
+
sectionInsets?: {
|
|
408
|
+
top: number;
|
|
409
|
+
left: number;
|
|
410
|
+
bottom: number;
|
|
411
|
+
right: number;
|
|
412
|
+
};
|
|
413
|
+
minimumLineSpacing?: number;
|
|
414
|
+
minimumInteritemSpacing?: number;
|
|
415
|
+
}): Promise<string>;
|
|
416
|
+
/**
|
|
417
|
+
* Show SwiftUI view
|
|
418
|
+
*/
|
|
419
|
+
showSwiftUIView(viewName: string, props?: Record<string, unknown>): Promise<void>;
|
|
420
|
+
private callNative;
|
|
421
|
+
}
|
|
422
|
+
export declare class IOSPushNotifications {
|
|
423
|
+
/**
|
|
424
|
+
* Register for remote notifications
|
|
425
|
+
*/
|
|
426
|
+
register(): Promise<string>;
|
|
427
|
+
/**
|
|
428
|
+
* Get APNs device token
|
|
429
|
+
*/
|
|
430
|
+
getDeviceToken(): Promise<string | null>;
|
|
431
|
+
/**
|
|
432
|
+
* Schedule a local notification
|
|
433
|
+
*/
|
|
434
|
+
scheduleLocal(notification: {
|
|
435
|
+
identifier: string;
|
|
436
|
+
title: string;
|
|
437
|
+
body: string;
|
|
438
|
+
subtitle?: string;
|
|
439
|
+
badge?: number;
|
|
440
|
+
sound?: string | 'default';
|
|
441
|
+
userInfo?: Record<string, unknown>;
|
|
442
|
+
trigger: {
|
|
443
|
+
type: 'timeInterval';
|
|
444
|
+
seconds: number;
|
|
445
|
+
repeats?: boolean;
|
|
446
|
+
} | {
|
|
447
|
+
type: 'calendar';
|
|
448
|
+
dateComponents: Record<string, number>;
|
|
449
|
+
repeats?: boolean;
|
|
450
|
+
} | {
|
|
451
|
+
type: 'location';
|
|
452
|
+
latitude: number;
|
|
453
|
+
longitude: number;
|
|
454
|
+
radius: number;
|
|
455
|
+
notifyOnEntry?: boolean;
|
|
456
|
+
notifyOnExit?: boolean;
|
|
457
|
+
};
|
|
458
|
+
categoryIdentifier?: string;
|
|
459
|
+
threadIdentifier?: string;
|
|
460
|
+
interruptionLevel?: 'passive' | 'active' | 'timeSensitive' | 'critical';
|
|
461
|
+
relevanceScore?: number;
|
|
462
|
+
}): Promise<void>;
|
|
463
|
+
/**
|
|
464
|
+
* Cancel pending notifications
|
|
465
|
+
*/
|
|
466
|
+
cancelPending(identifiers: string[]): Promise<void>;
|
|
467
|
+
/**
|
|
468
|
+
* Get pending notifications
|
|
469
|
+
*/
|
|
470
|
+
getPending(): Promise<Array<{
|
|
471
|
+
identifier: string;
|
|
472
|
+
trigger: unknown;
|
|
473
|
+
}>>;
|
|
474
|
+
/**
|
|
475
|
+
* Handle notification response
|
|
476
|
+
*/
|
|
477
|
+
onNotificationResponse(callback: (response: {
|
|
478
|
+
identifier: string;
|
|
479
|
+
actionIdentifier: string;
|
|
480
|
+
userInfo: Record<string, unknown>;
|
|
481
|
+
}) => void): () => void;
|
|
482
|
+
private callNative;
|
|
483
|
+
}
|
|
484
|
+
export declare class IOSAppLifecycle {
|
|
485
|
+
/**
|
|
486
|
+
* Get current app state
|
|
487
|
+
*/
|
|
488
|
+
getState(): Promise<'active' | 'inactive' | 'background'>;
|
|
489
|
+
/**
|
|
490
|
+
* Register for state restoration
|
|
491
|
+
*/
|
|
492
|
+
registerStateRestoration(activityType: string): Promise<void>;
|
|
493
|
+
/**
|
|
494
|
+
* Save user activity for state restoration
|
|
495
|
+
*/
|
|
496
|
+
saveUserActivity(activityType: string, userInfo: Record<string, unknown>): Promise<void>;
|
|
497
|
+
/**
|
|
498
|
+
* Register background task
|
|
499
|
+
*/
|
|
500
|
+
registerBackgroundTask(identifier: string, handler: () => Promise<void>): Promise<void>;
|
|
501
|
+
/**
|
|
502
|
+
* Schedule background refresh
|
|
503
|
+
*/
|
|
504
|
+
scheduleBackgroundRefresh(identifier: string, earliestBeginDate?: Date): Promise<void>;
|
|
505
|
+
/**
|
|
506
|
+
* Listen for app state changes
|
|
507
|
+
*/
|
|
508
|
+
onStateChange(callback: (state: 'active' | 'inactive' | 'background') => void): () => void;
|
|
509
|
+
private callNative;
|
|
510
|
+
}
|
|
511
|
+
export declare const ios: {
|
|
512
|
+
WebView: typeof IOSWebView;
|
|
513
|
+
Permissions: IOSPermissions;
|
|
514
|
+
Haptics: IOSHaptics;
|
|
515
|
+
AppClips: IOSAppClips;
|
|
516
|
+
SharePlay: IOSSharePlay;
|
|
517
|
+
LiveActivities: IOSLiveActivities;
|
|
518
|
+
FocusFilters: IOSFocusFilters;
|
|
519
|
+
AppIntents: IOSAppIntents;
|
|
520
|
+
TipKit: IOSTipKit;
|
|
521
|
+
StoreKit: IOSStoreKit;
|
|
522
|
+
CarPlay: IOSCarPlay;
|
|
523
|
+
NativeComponents: IOSNativeComponents;
|
|
524
|
+
PushNotifications: IOSPushNotifications;
|
|
525
|
+
AppLifecycle: IOSAppLifecycle;
|
|
526
|
+
};
|
|
527
|
+
export default ios;
|
|
528
|
+
//# sourceMappingURL=ios.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../src/bridge/ios.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared WKWebView pending-response helper.
|
|
3
|
+
*
|
|
4
|
+
* The legacy WKWebView path uses `webkit.messageHandlers.craft.postMessage`,
|
|
5
|
+
* which is one-way — the native side calls back into the page via
|
|
6
|
+
* `window.__craftBridgeResolve(action, payload)` (or `__craftBridgeReject`).
|
|
7
|
+
*
|
|
8
|
+
* Before this helper, every API module (`api/dialog.ts`, `api/clipboard.ts`)
|
|
9
|
+
* re-implemented the same `__craftBridgePending` queue and a number of others
|
|
10
|
+
* (`api/window.ts`, `api/app.ts`) skipped it entirely and resolved with
|
|
11
|
+
* `undefined`. Centralizing it here means:
|
|
12
|
+
*
|
|
13
|
+
* - one place to enforce a default timeout (callers that "just call once"
|
|
14
|
+
* can't leak closures forever),
|
|
15
|
+
* - one place to expose the `__craftBridgeResolve`/`__craftBridgeReject`
|
|
16
|
+
* globals the native side needs (the legacy native bridge looks for these
|
|
17
|
+
* names, so they have to be declared on `window`),
|
|
18
|
+
* - one place to swap the implementation later without touching every API.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Returns true when the page is running inside a WKWebView with a registered
|
|
22
|
+
* `craft` message handler.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isWebKitHost(): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Send a fire-and-forget message into the WKWebView host. Returns true if
|
|
27
|
+
* the message was delivered, false otherwise.
|
|
28
|
+
*/
|
|
29
|
+
export declare function postWebKit(message: unknown): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Send a request via the WKWebView host and wait for the native side to
|
|
32
|
+
* resolve it through `window.__craftBridgeResolve(bucket, payload)`. The
|
|
33
|
+
* returned promise:
|
|
34
|
+
*
|
|
35
|
+
* - rejects with `Error('No WKWebView host')` if the page isn't running
|
|
36
|
+
* inside a webview,
|
|
37
|
+
* - rejects with a timeout error after `timeoutMs` if the native side
|
|
38
|
+
* never replies (default 30s — match the bridge core's default),
|
|
39
|
+
* - cleans up its slot in the pending queue on settle / cancel so it can
|
|
40
|
+
* never leak the resolver closure.
|
|
41
|
+
*/
|
|
42
|
+
export declare function webkitRequest<T>(bucket: string, message: unknown, options?: {
|
|
43
|
+
timeoutMs?: number;
|
|
44
|
+
}): Promise<T>;
|
|
45
|
+
/**
|
|
46
|
+
* Test helper: drain every queued promise and reject them with the given
|
|
47
|
+
* error. Used by the test suite to assert that we don't leak closures.
|
|
48
|
+
*/
|
|
49
|
+
export declare function _drainPendingForTests(error?: Error): number;
|
|
50
|
+
//# sourceMappingURL=webkit-pending.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webkit-pending.d.ts","sourceRoot":"","sources":["../../src/bridge/webkit-pending.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAiDH;;;GAGG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAIpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,OAAO,CAAC,CAAC,CAAC,CAwCZ;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,KAA0B,GAAG,MAAM,CAa/E"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Craft Bundle Optimizer
|
|
3
|
+
* Code splitting, tree shaking, and bundle optimization
|
|
4
|
+
*/
|
|
5
|
+
export interface BundleOptimizerConfig {
|
|
6
|
+
input: string | string[];
|
|
7
|
+
outDir: string;
|
|
8
|
+
splitting?: boolean;
|
|
9
|
+
treeshaking?: boolean;
|
|
10
|
+
minify?: boolean;
|
|
11
|
+
sourcemap?: boolean | 'external' | 'inline';
|
|
12
|
+
target?: 'browser' | 'node' | 'bun';
|
|
13
|
+
format?: 'esm' | 'cjs' | 'iife';
|
|
14
|
+
external?: string[];
|
|
15
|
+
define?: Record<string, string>;
|
|
16
|
+
compress?: {
|
|
17
|
+
gzip?: boolean;
|
|
18
|
+
brotli?: boolean;
|
|
19
|
+
};
|
|
20
|
+
analyze?: boolean;
|
|
21
|
+
maxChunkSize?: number;
|
|
22
|
+
manualChunks?: Record<string, string[]>;
|
|
23
|
+
}
|
|
24
|
+
export interface BundleResult {
|
|
25
|
+
files: BundleFile[];
|
|
26
|
+
totalSize: number;
|
|
27
|
+
totalCompressedSize: number;
|
|
28
|
+
chunks: ChunkInfo[];
|
|
29
|
+
warnings: string[];
|
|
30
|
+
buildTime: number;
|
|
31
|
+
}
|
|
32
|
+
export interface BundleFile {
|
|
33
|
+
path: string;
|
|
34
|
+
size: number;
|
|
35
|
+
gzipSize?: number;
|
|
36
|
+
brotliSize?: number;
|
|
37
|
+
isEntry: boolean;
|
|
38
|
+
hash: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ChunkInfo {
|
|
41
|
+
name: string;
|
|
42
|
+
size: number;
|
|
43
|
+
modules: string[];
|
|
44
|
+
imports: string[];
|
|
45
|
+
exports: string[];
|
|
46
|
+
}
|
|
47
|
+
export declare class BundleOptimizer {
|
|
48
|
+
private config;
|
|
49
|
+
constructor(config: BundleOptimizerConfig);
|
|
50
|
+
/**
|
|
51
|
+
* Build and optimize bundle
|
|
52
|
+
*/
|
|
53
|
+
build(): Promise<BundleResult>;
|
|
54
|
+
/**
|
|
55
|
+
* Bundle using Bun's bundler
|
|
56
|
+
*/
|
|
57
|
+
private bundleWithBun;
|
|
58
|
+
/**
|
|
59
|
+
* Fallback bundler using esbuild CLI
|
|
60
|
+
*/
|
|
61
|
+
private bundleWithEsbuild;
|
|
62
|
+
/**
|
|
63
|
+
* Generate bundle analysis
|
|
64
|
+
*/
|
|
65
|
+
private generateAnalysis;
|
|
66
|
+
}
|
|
67
|
+
export declare function bundleCommand(args: string[]): Promise<void>;
|
|
68
|
+
export default BundleOptimizer;
|
|
69
|
+
//# sourceMappingURL=bundle-optimizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-optimizer.d.ts","sourceRoot":"","sources":["../../src/build/bundle-optimizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAA;IAC3C,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAAA;IACnC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAGD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,EAAE,qBAAqB;IAiBzC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IAwFpC;;OAEG;YACW,aAAa;IAwC3B;;OAEG;YACW,iBAAiB;IAgC/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAuEzB;AAUD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDjE;AAED,eAAe,eAAe,CAAA"}
|