craft-native 0.0.246 → 0.0.248
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/android/src/index.d.ts +11 -0
- package/dist/android/src/index.js +33 -21
- package/dist/android/templates/AndroidManifest.xml.template +1 -0
- package/dist/android/templates/CraftBridge.kt.template +136 -1
- package/dist/android/templates/CraftHeartRate.kt.template +938 -0
- package/dist/android/templates/CraftHeartRateCore.kt.template +485 -0
- package/dist/android/templates/CraftNative.kt.template +17 -0
- package/dist/android/templates/CraftNativeFlatList.kt.template +115 -40
- package/dist/android/templates/CraftNativeMapGoogle.kt.template +92 -5
- package/dist/android/templates/CraftNativeMapLibre.kt.template +90 -3
- package/dist/android/templates/CraftNativeMutation.kt.template +32 -0
- package/dist/android/templates/CraftNativeRefreshableFlatList.kt.template +7 -2
- package/dist/android/templates/CraftNativeServices.kt.template +59 -1
- package/dist/android/templates/CraftNativeShell.kt.template +54 -14
- package/dist/android/templates/MainActivityNative.kt.template +369 -69
- package/dist/android/templates/build.gradle.kts.project.template +1 -1
- package/dist/api/mobile.d.ts +39 -3
- package/dist/browser.js +9 -9
- package/dist/cli.js +90 -673
- package/dist/components/index.d.ts +50 -9
- package/dist/index.cjs +394 -438
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +446 -493
- package/dist/ios/src/index.d.ts +2 -0
- package/dist/ios/src/index.js +54 -53
- package/dist/ios/templates/CraftApp.swift +37 -2
- package/dist/ios/templates/CraftHealth.swift +217 -0
- package/dist/ios/templates/CraftHeartRate.swift +6 -3
- package/dist/ios/templates/CraftHybrid.swift +18 -19
- package/dist/ios/templates/CraftLiveActivities.swift +1 -1
- package/dist/ios/templates/CraftNativeActions.swift +87 -8
- package/dist/ios/templates/CraftNativeFiles.swift +15 -3
- package/dist/ios/templates/CraftNativeFlatList.swift +18 -1
- package/dist/ios/templates/CraftNativeMutation.swift +36 -0
- package/dist/ios/templates/CraftNativeScreen.swift +813 -65
- package/dist/ios/templates/CraftNativeServices.swift +4 -2
- package/dist/ios/templates/CraftNativeUI.swift +10 -2
- package/dist/ios/templates/testing/DriverTests.swift.template +1 -0
- package/dist/ios/templates/testing/HostApp.swift +9 -2
- package/dist/macos/templates/CraftNativeMutation.swift +36 -0
- package/dist/macos/templates/native_layout.zig +226 -2
- package/dist/mobile-testing.js +21 -3
- package/dist/mobile.js +101 -63
- package/dist/testing/media-cache/media-cache.kt +4 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -13,7 +13,67 @@ var __export = (target, all) => {
|
|
|
13
13
|
set: __exportSetter.bind(all, name)
|
|
14
14
|
});
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
|
|
17
|
+
// src/components/index.ts
|
|
18
|
+
var exports_components = {};
|
|
19
|
+
__export(exports_components, {
|
|
20
|
+
Animated: () => Animated,
|
|
21
|
+
FileBrowserInstance: () => FileBrowserInstance,
|
|
22
|
+
OutlineViewInstance: () => OutlineViewInstance,
|
|
23
|
+
Platform: () => Platform,
|
|
24
|
+
ProgressInstance: () => ProgressInstance,
|
|
25
|
+
Sidebar: () => Sidebar2,
|
|
26
|
+
SplitViewInstance: () => SplitViewInstance,
|
|
27
|
+
StyleSheet: () => StyleSheet,
|
|
28
|
+
TableViewInstance: () => TableViewInstance,
|
|
29
|
+
arcStyle: () => arcStyle,
|
|
30
|
+
canQuickLook: () => canQuickLook,
|
|
31
|
+
createArcSidebar: () => createArcSidebar,
|
|
32
|
+
createFileBrowser: () => createFileBrowser,
|
|
33
|
+
createOrbStackSidebar: () => createOrbStackSidebar,
|
|
34
|
+
createOutlineView: () => createOutlineView,
|
|
35
|
+
createProgress: () => createProgress,
|
|
36
|
+
createSidebar: () => createSidebar2,
|
|
37
|
+
createSplitView: () => createSplitView,
|
|
38
|
+
createTableView: () => createTableView,
|
|
39
|
+
createTahoeSidebar: () => createTahoeSidebar,
|
|
40
|
+
default: () => components_default,
|
|
41
|
+
hideQuickLook: () => hideQuickLook,
|
|
42
|
+
orbstackStyle: () => orbstackStyle,
|
|
43
|
+
setToolbar: () => setToolbar,
|
|
44
|
+
setToolbarVisible: () => setToolbarVisible,
|
|
45
|
+
setTouchBar: () => setTouchBar,
|
|
46
|
+
showColorPicker: () => showColorPicker,
|
|
47
|
+
showDatePicker: () => showDatePicker,
|
|
48
|
+
showFontPicker: () => showFontPicker,
|
|
49
|
+
showQuickLook: () => showQuickLook,
|
|
50
|
+
sidebarItem: () => sidebarItem,
|
|
51
|
+
sidebarSection: () => sidebarSection,
|
|
52
|
+
sidebarSeparator: () => sidebarSeparator,
|
|
53
|
+
tahoeStyle: () => tahoeStyle,
|
|
54
|
+
updateToolbarItem: () => updateToolbarItem,
|
|
55
|
+
updateTouchBarItem: () => updateTouchBarItem
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// src/updater/index.ts
|
|
59
|
+
var exports_updater = {};
|
|
60
|
+
__export(exports_updater, {
|
|
61
|
+
AutoUpdater: () => AutoUpdater,
|
|
62
|
+
DeltaGenerator: () => DeltaGenerator,
|
|
63
|
+
canReplaceBundle: () => canReplaceBundle,
|
|
64
|
+
clearQuarantine: () => clearQuarantine,
|
|
65
|
+
default: () => updater_default,
|
|
66
|
+
dittoBundle: () => dittoBundle,
|
|
67
|
+
extractBundle: () => extractBundle,
|
|
68
|
+
extractBundleFromDmg: () => extractBundleFromDmg,
|
|
69
|
+
extractBundleFromZip: () => extractBundleFromZip,
|
|
70
|
+
generateUpdateManifest: () => generateUpdateManifest,
|
|
71
|
+
isMacOS: () => isMacOS,
|
|
72
|
+
readBundleIdentity: () => readBundleIdentity,
|
|
73
|
+
swapBundle: () => swapBundle,
|
|
74
|
+
updaterCommand: () => updaterCommand,
|
|
75
|
+
verifyBundleTrust: () => verifyBundleTrust
|
|
76
|
+
});
|
|
17
77
|
|
|
18
78
|
// src/index.ts
|
|
19
79
|
import { execFile as execFile2, spawn as spawn4 } from "child_process";
|
|
@@ -57,7 +117,7 @@ function craftBinaryNotFoundMessage(triedPath) {
|
|
|
57
117
|
`);
|
|
58
118
|
}
|
|
59
119
|
// package.json
|
|
60
|
-
var version = "0.0.
|
|
120
|
+
var version = "0.0.248";
|
|
61
121
|
|
|
62
122
|
// src/sdk-version.ts
|
|
63
123
|
var SDK_VERSION = version;
|
|
@@ -302,13 +362,13 @@ async function packageApp(config) {
|
|
|
302
362
|
}
|
|
303
363
|
async function packageMacOS(config, outDir) {
|
|
304
364
|
const results = [];
|
|
305
|
-
const { name, version
|
|
365
|
+
const { name, version, bundleId = `com.myapp.${name.toLowerCase()}` } = config;
|
|
306
366
|
const opts = config.macos || {};
|
|
307
367
|
const hardenedRuntime = !opts.appStore;
|
|
308
368
|
const appBundlePath = join2(outDir, `${name}.app`);
|
|
309
369
|
const appBundle = createMacOSAppBundle({
|
|
310
370
|
name,
|
|
311
|
-
version
|
|
371
|
+
version,
|
|
312
372
|
bundleId,
|
|
313
373
|
buildNumber: opts.buildNumber,
|
|
314
374
|
category: opts.category,
|
|
@@ -352,7 +412,7 @@ async function packageMacOS(config, outDir) {
|
|
|
352
412
|
}
|
|
353
413
|
results.push({ success: true, platform: "macos", format: "app", outputPath: appBundlePath });
|
|
354
414
|
if (opts.dmg !== false) {
|
|
355
|
-
const outputPath = join2(outDir, `${name}-${
|
|
415
|
+
const outputPath = join2(outDir, `${name}-${version}.dmg`);
|
|
356
416
|
const dmgResult = await createDMG({ appBundlePath, outputPath, volumeName: name });
|
|
357
417
|
results.push({
|
|
358
418
|
success: dmgResult.success,
|
|
@@ -365,12 +425,12 @@ async function packageMacOS(config, outDir) {
|
|
|
365
425
|
results.push(...await notarizeIfRequested(opts, outputPath, "dmg"));
|
|
366
426
|
}
|
|
367
427
|
if (opts.pkg || opts.appStore) {
|
|
368
|
-
const outputPath = join2(outDir, `${name}-${
|
|
428
|
+
const outputPath = join2(outDir, `${name}-${version}.pkg`);
|
|
369
429
|
const pkgResult = await createPKG({
|
|
370
430
|
appBundlePath,
|
|
371
431
|
outputPath,
|
|
372
432
|
identifier: bundleId,
|
|
373
|
-
version
|
|
433
|
+
version,
|
|
374
434
|
appStore: opts.appStore === true,
|
|
375
435
|
installerIdentity: opts.installerIdentity
|
|
376
436
|
});
|
|
@@ -416,14 +476,14 @@ async function notarizeIfRequested(opts, artifactPath, format) {
|
|
|
416
476
|
}
|
|
417
477
|
async function packageWindows(config, outDir) {
|
|
418
478
|
const results = [];
|
|
419
|
-
const { name, version
|
|
479
|
+
const { name, version } = config;
|
|
420
480
|
const opts = config.windows || {};
|
|
421
481
|
if (opts.msi !== false) {
|
|
422
482
|
const msiResult = await createMSI({
|
|
423
483
|
name,
|
|
424
|
-
version
|
|
484
|
+
version,
|
|
425
485
|
binaryPath: config.binaryPath,
|
|
426
|
-
outputPath: join2(outDir, `${name}-${
|
|
486
|
+
outputPath: join2(outDir, `${name}-${version}.msi`),
|
|
427
487
|
manufacturer: config.author || "Unknown",
|
|
428
488
|
architecture: opts.architecture || windowsArchitecture(process.arch),
|
|
429
489
|
additionalFiles: opts.additionalFiles,
|
|
@@ -443,11 +503,11 @@ async function packageWindows(config, outDir) {
|
|
|
443
503
|
if (opts.zip || opts.msi === false) {
|
|
444
504
|
const zipResult = await createZIP({
|
|
445
505
|
name,
|
|
446
|
-
version
|
|
506
|
+
version,
|
|
447
507
|
manufacturer: config.author || "Unknown",
|
|
448
508
|
binaryPath: config.binaryPath,
|
|
449
509
|
additionalFiles: opts.additionalFiles,
|
|
450
|
-
outputPath: join2(outDir, `${name}-${
|
|
510
|
+
outputPath: join2(outDir, `${name}-${version}-windows.zip`)
|
|
451
511
|
});
|
|
452
512
|
results.push({
|
|
453
513
|
success: zipResult.success,
|
|
@@ -461,14 +521,14 @@ async function packageWindows(config, outDir) {
|
|
|
461
521
|
}
|
|
462
522
|
async function packageLinux(config, outDir) {
|
|
463
523
|
const results = [];
|
|
464
|
-
const { name, version
|
|
524
|
+
const { name, version } = config;
|
|
465
525
|
const opts = config.linux || {};
|
|
466
526
|
if (opts.deb !== false) {
|
|
467
527
|
const debResult = await createDEB({
|
|
468
528
|
name,
|
|
469
|
-
version
|
|
529
|
+
version,
|
|
470
530
|
binaryPath: config.binaryPath,
|
|
471
|
-
outputPath: join2(outDir, `${name}_${
|
|
531
|
+
outputPath: join2(outDir, `${name}_${version}_amd64.deb`),
|
|
472
532
|
description: config.description || "",
|
|
473
533
|
maintainer: config.author || "Unknown",
|
|
474
534
|
dependencies: opts.debDependencies || [...DEFAULT_DEB_DEPENDENCIES],
|
|
@@ -486,9 +546,9 @@ async function packageLinux(config, outDir) {
|
|
|
486
546
|
if (opts.rpm) {
|
|
487
547
|
const rpmResult = await createRPM({
|
|
488
548
|
name,
|
|
489
|
-
version
|
|
549
|
+
version,
|
|
490
550
|
binaryPath: config.binaryPath,
|
|
491
|
-
outputPath: join2(outDir, `${name}-${
|
|
551
|
+
outputPath: join2(outDir, `${name}-${version}-1.x86_64.rpm`),
|
|
492
552
|
description: config.description || "",
|
|
493
553
|
requires: opts.rpmDependencies || ["gtk3", "webkit2gtk3"]
|
|
494
554
|
});
|
|
@@ -503,9 +563,9 @@ async function packageLinux(config, outDir) {
|
|
|
503
563
|
if (opts.appImage) {
|
|
504
564
|
const appImageResult = await createAppImage({
|
|
505
565
|
name,
|
|
506
|
-
version
|
|
566
|
+
version,
|
|
507
567
|
binaryPath: config.binaryPath,
|
|
508
|
-
outputPath: join2(outDir, `${name}-${
|
|
568
|
+
outputPath: join2(outDir, `${name}-${version}-x86_64.AppImage`),
|
|
509
569
|
iconPath: config.iconPath
|
|
510
570
|
});
|
|
511
571
|
results.push({
|
|
@@ -1856,17 +1916,17 @@ class NativeBridge extends EventEmitter {
|
|
|
1856
1916
|
});
|
|
1857
1917
|
}
|
|
1858
1918
|
return new Promise((resolve, reject) => {
|
|
1859
|
-
const
|
|
1919
|
+
const timer = setTimeout(() => {
|
|
1860
1920
|
this.pendingRequests.delete(message.id);
|
|
1861
1921
|
reject(new BridgeError("Request timeout", BridgeErrorCodes.TIMEOUT));
|
|
1862
1922
|
}, effectiveTimeout);
|
|
1863
1923
|
this.pendingRequests.set(message.id, {
|
|
1864
1924
|
resolve,
|
|
1865
1925
|
reject,
|
|
1866
|
-
timeout:
|
|
1926
|
+
timeout: timer
|
|
1867
1927
|
});
|
|
1868
1928
|
if (!this.send(message)) {
|
|
1869
|
-
clearTimeout(
|
|
1929
|
+
clearTimeout(timer);
|
|
1870
1930
|
this.pendingRequests.delete(message.id);
|
|
1871
1931
|
reject(new BridgeError("No bridge transport available \u2014 not running inside a Craft host", BridgeErrorCodes.UNKNOWN));
|
|
1872
1932
|
}
|
|
@@ -2154,54 +2214,6 @@ class BridgeError extends Error {
|
|
|
2154
2214
|
this.data = data;
|
|
2155
2215
|
}
|
|
2156
2216
|
}
|
|
2157
|
-
class NativeComponentBridge {
|
|
2158
|
-
bridge;
|
|
2159
|
-
components = new Map;
|
|
2160
|
-
constructor(bridge) {
|
|
2161
|
-
this.bridge = bridge;
|
|
2162
|
-
this.bridge.on("component.event", this.handleComponentEvent.bind(this));
|
|
2163
|
-
}
|
|
2164
|
-
handleComponentEvent(event) {
|
|
2165
|
-
const component = this.components.get(event.componentId);
|
|
2166
|
-
if (component) {
|
|
2167
|
-
this.bridge.emit(`component:${event.componentId}:${event.eventType}`, event.data);
|
|
2168
|
-
}
|
|
2169
|
-
}
|
|
2170
|
-
async createSidebar(config) {
|
|
2171
|
-
const id = await this.bridge.request("component.createSidebar", config);
|
|
2172
|
-
this.components.set(id, { id, type: "sidebar", props: config });
|
|
2173
|
-
return id;
|
|
2174
|
-
}
|
|
2175
|
-
async createFileBrowser(config) {
|
|
2176
|
-
const id = await this.bridge.request("component.createFileBrowser", config);
|
|
2177
|
-
this.components.set(id, { id, type: "fileBrowser", props: config });
|
|
2178
|
-
return id;
|
|
2179
|
-
}
|
|
2180
|
-
async createSplitView(config) {
|
|
2181
|
-
const id = await this.bridge.request("component.createSplitView", config);
|
|
2182
|
-
this.components.set(id, { id, type: "splitView", props: config });
|
|
2183
|
-
return id;
|
|
2184
|
-
}
|
|
2185
|
-
async updateComponent(componentId, props) {
|
|
2186
|
-
const component = this.components.get(componentId);
|
|
2187
|
-
if (component) {
|
|
2188
|
-
component.props = { ...component.props, ...props };
|
|
2189
|
-
}
|
|
2190
|
-
await this.bridge.request("component.update", { componentId, props });
|
|
2191
|
-
}
|
|
2192
|
-
async destroyComponent(componentId) {
|
|
2193
|
-
this.components.delete(componentId);
|
|
2194
|
-
await this.bridge.request("component.destroy", { componentId });
|
|
2195
|
-
}
|
|
2196
|
-
onComponentEvent(componentId, eventType, callback) {
|
|
2197
|
-
const eventName = `component:${componentId}:${eventType}`;
|
|
2198
|
-
this.bridge.on(eventName, callback);
|
|
2199
|
-
return () => this.bridge.off(eventName, callback);
|
|
2200
|
-
}
|
|
2201
|
-
async getFileBrowserSelection(componentId) {
|
|
2202
|
-
return this.bridge.request("component.getFileBrowserSelection", { componentId });
|
|
2203
|
-
}
|
|
2204
|
-
}
|
|
2205
2217
|
var globalBridge = null;
|
|
2206
2218
|
var globalBridgeConfig = null;
|
|
2207
2219
|
function getBridge(config) {
|
|
@@ -2270,8 +2282,8 @@ function isDesktopWebViewHost() {
|
|
|
2270
2282
|
return true;
|
|
2271
2283
|
if (typeof window === "undefined")
|
|
2272
2284
|
return false;
|
|
2273
|
-
const
|
|
2274
|
-
return typeof
|
|
2285
|
+
const host = window;
|
|
2286
|
+
return typeof host.chrome?.webview?.postMessage === "function";
|
|
2275
2287
|
}
|
|
2276
2288
|
function postWebKit(message) {
|
|
2277
2289
|
if (!isWebKitHost())
|
|
@@ -2289,13 +2301,13 @@ function webkitRequest(bucket, message, options = {}) {
|
|
|
2289
2301
|
return new Promise((resolve, reject) => {
|
|
2290
2302
|
let settled = false;
|
|
2291
2303
|
const list = w.__craftBridgePending[bucket] = w.__craftBridgePending[bucket] || [];
|
|
2292
|
-
let
|
|
2304
|
+
let timer;
|
|
2293
2305
|
const entry = {
|
|
2294
2306
|
resolve: (v) => {
|
|
2295
2307
|
if (settled)
|
|
2296
2308
|
return;
|
|
2297
2309
|
settled = true;
|
|
2298
|
-
clearTimeout(
|
|
2310
|
+
clearTimeout(timer);
|
|
2299
2311
|
const idx = list.indexOf(entry);
|
|
2300
2312
|
if (idx >= 0)
|
|
2301
2313
|
list.splice(idx, 1);
|
|
@@ -2305,7 +2317,7 @@ function webkitRequest(bucket, message, options = {}) {
|
|
|
2305
2317
|
if (settled)
|
|
2306
2318
|
return;
|
|
2307
2319
|
settled = true;
|
|
2308
|
-
clearTimeout(
|
|
2320
|
+
clearTimeout(timer);
|
|
2309
2321
|
const idx = list.indexOf(entry);
|
|
2310
2322
|
if (idx >= 0)
|
|
2311
2323
|
list.splice(idx, 1);
|
|
@@ -2313,7 +2325,7 @@ function webkitRequest(bucket, message, options = {}) {
|
|
|
2313
2325
|
}
|
|
2314
2326
|
};
|
|
2315
2327
|
list.push(entry);
|
|
2316
|
-
|
|
2328
|
+
timer = setTimeout(() => {
|
|
2317
2329
|
entry.reject(new Error(`[WKWebView] ${bucket} timed out after ${timeoutMs}ms`));
|
|
2318
2330
|
}, timeoutMs);
|
|
2319
2331
|
try {
|
|
@@ -2645,8 +2657,8 @@ class WindowManager {
|
|
|
2645
2657
|
if (!injected?._call) {
|
|
2646
2658
|
throw new Error("Craft window bridge is unavailable");
|
|
2647
2659
|
}
|
|
2648
|
-
const
|
|
2649
|
-
return
|
|
2660
|
+
const id = await injected._call("getFocused", undefined, "main");
|
|
2661
|
+
return id ? this._windows.get(id) || null : null;
|
|
2650
2662
|
}
|
|
2651
2663
|
const bridge = getBridge();
|
|
2652
2664
|
const id = await bridge.request("window.getFocused");
|
|
@@ -3383,9 +3395,9 @@ function base64ToUint8(base64) {
|
|
|
3383
3395
|
var fs = {
|
|
3384
3396
|
async readFile(path) {
|
|
3385
3397
|
validatePath(path);
|
|
3386
|
-
const
|
|
3387
|
-
if (
|
|
3388
|
-
return
|
|
3398
|
+
const native = getCraftFs();
|
|
3399
|
+
if (native)
|
|
3400
|
+
return native.readFile(path);
|
|
3389
3401
|
if (typeof window !== "undefined" && window.craft) {
|
|
3390
3402
|
return callBridge("fs.readFile", { path });
|
|
3391
3403
|
}
|
|
@@ -3394,9 +3406,9 @@ var fs = {
|
|
|
3394
3406
|
},
|
|
3395
3407
|
async writeFile(path, content) {
|
|
3396
3408
|
validatePath(path);
|
|
3397
|
-
const
|
|
3398
|
-
if (
|
|
3399
|
-
return
|
|
3409
|
+
const native = getCraftFs();
|
|
3410
|
+
if (native)
|
|
3411
|
+
return native.writeFile(path, content);
|
|
3400
3412
|
if (typeof window !== "undefined" && window.craft) {
|
|
3401
3413
|
await callBridge("fs.writeFile", { path, content });
|
|
3402
3414
|
return;
|
|
@@ -3407,9 +3419,9 @@ var fs = {
|
|
|
3407
3419
|
async readDir(path) {
|
|
3408
3420
|
validatePath(path);
|
|
3409
3421
|
const filter = (xs) => xs.filter((n) => n !== "." && n !== "..");
|
|
3410
|
-
const
|
|
3411
|
-
if (
|
|
3412
|
-
return filter(await
|
|
3422
|
+
const native = getCraftFs();
|
|
3423
|
+
if (native)
|
|
3424
|
+
return filter(await native.readDir(path));
|
|
3413
3425
|
if (typeof window !== "undefined" && window.craft) {
|
|
3414
3426
|
return filter(await callBridge("fs.readDir", { path }));
|
|
3415
3427
|
}
|
|
@@ -3418,9 +3430,9 @@ var fs = {
|
|
|
3418
3430
|
},
|
|
3419
3431
|
async mkdir(path) {
|
|
3420
3432
|
validatePath(path);
|
|
3421
|
-
const
|
|
3422
|
-
if (
|
|
3423
|
-
return
|
|
3433
|
+
const native = getCraftFs();
|
|
3434
|
+
if (native)
|
|
3435
|
+
return native.mkdir(path);
|
|
3424
3436
|
if (typeof window !== "undefined" && window.craft) {
|
|
3425
3437
|
await callBridge("fs.mkdir", { path });
|
|
3426
3438
|
return;
|
|
@@ -3430,9 +3442,9 @@ var fs = {
|
|
|
3430
3442
|
},
|
|
3431
3443
|
async remove(path) {
|
|
3432
3444
|
validatePath(path);
|
|
3433
|
-
const
|
|
3434
|
-
if (
|
|
3435
|
-
return
|
|
3445
|
+
const native = getCraftFs();
|
|
3446
|
+
if (native)
|
|
3447
|
+
return native.remove(path);
|
|
3436
3448
|
if (typeof window !== "undefined" && window.craft) {
|
|
3437
3449
|
await callBridge("fs.remove", { path });
|
|
3438
3450
|
return;
|
|
@@ -3442,9 +3454,9 @@ var fs = {
|
|
|
3442
3454
|
},
|
|
3443
3455
|
async exists(path) {
|
|
3444
3456
|
validatePath(path);
|
|
3445
|
-
const
|
|
3446
|
-
if (
|
|
3447
|
-
return
|
|
3457
|
+
const native = getCraftFs();
|
|
3458
|
+
if (native)
|
|
3459
|
+
return native.exists(path);
|
|
3448
3460
|
if (typeof window !== "undefined" && window.craft) {
|
|
3449
3461
|
return callBridge("fs.exists", { path });
|
|
3450
3462
|
}
|
|
@@ -3529,9 +3541,9 @@ var _watchRecursiveWarned = false;
|
|
|
3529
3541
|
async function watch(path, callback, options = {}) {
|
|
3530
3542
|
validatePath(path);
|
|
3531
3543
|
const recursive = options.recursive ?? true;
|
|
3532
|
-
const
|
|
3533
|
-
if (
|
|
3534
|
-
const handle = await
|
|
3544
|
+
const native = getCraftFs();
|
|
3545
|
+
if (native?.watch) {
|
|
3546
|
+
const handle = await native.watch(path, (event) => callback(event.type, event.path), { recursive });
|
|
3535
3547
|
return () => {
|
|
3536
3548
|
handle.unwatch();
|
|
3537
3549
|
};
|
|
@@ -3764,8 +3776,8 @@ class Database {
|
|
|
3764
3776
|
class KeyValueStore {
|
|
3765
3777
|
db;
|
|
3766
3778
|
tableName;
|
|
3767
|
-
constructor(
|
|
3768
|
-
this.db =
|
|
3779
|
+
constructor(db, tableName = "kv_store") {
|
|
3780
|
+
this.db = db;
|
|
3769
3781
|
this.tableName = tableName;
|
|
3770
3782
|
}
|
|
3771
3783
|
async init() {
|
|
@@ -4126,8 +4138,8 @@ var crypto = {
|
|
|
4126
4138
|
if (!hasNodeCrypto) {
|
|
4127
4139
|
throw new CraftCryptoError("MD5 is not available in this runtime \u2014 WebCrypto does not implement it. " + "Use sha256/sha512, or call this from Node.");
|
|
4128
4140
|
}
|
|
4129
|
-
const { createHash
|
|
4130
|
-
return
|
|
4141
|
+
const { createHash } = await import("crypto");
|
|
4142
|
+
return createHash("md5").update(data).digest("hex");
|
|
4131
4143
|
}
|
|
4132
4144
|
if (typeof globalThis.crypto !== "undefined" && globalThis.crypto.subtle) {
|
|
4133
4145
|
const encoder = new TextEncoder;
|
|
@@ -4135,8 +4147,8 @@ var crypto = {
|
|
|
4135
4147
|
const hashBuffer = await globalThis.crypto.subtle.digest(algorithm === "sha256" ? "SHA-256" : "SHA-512", dataBuffer);
|
|
4136
4148
|
return bufferToHex(hashBuffer);
|
|
4137
4149
|
}
|
|
4138
|
-
const { createHash
|
|
4139
|
-
return
|
|
4150
|
+
const { createHash } = await import("crypto");
|
|
4151
|
+
return createHash(algorithm).update(data).digest("hex");
|
|
4140
4152
|
},
|
|
4141
4153
|
async encrypt(data, key) {
|
|
4142
4154
|
if (typeof window !== "undefined" && window.craft?.crypto) {
|
|
@@ -4161,8 +4173,8 @@ var crypto = {
|
|
|
4161
4173
|
if (combined.length < 1 + SALT_LEN + IV_LEN + TAG_LEN) {
|
|
4162
4174
|
throw new CraftCryptoError("Ciphertext too short to be valid");
|
|
4163
4175
|
}
|
|
4164
|
-
const
|
|
4165
|
-
if (
|
|
4176
|
+
const version = combined[0];
|
|
4177
|
+
if (version !== FORMAT_VERSION) {
|
|
4166
4178
|
throw new LegacyCiphertextError;
|
|
4167
4179
|
}
|
|
4168
4180
|
const salt = combined.slice(1, 1 + SALT_LEN);
|
|
@@ -4201,11 +4213,11 @@ async function aesGcmEncrypt(key, iv, plaintext) {
|
|
|
4201
4213
|
const ct1 = cipher.update(plaintext);
|
|
4202
4214
|
const ct2 = cipher.final();
|
|
4203
4215
|
const tag = cipher.getAuthTag();
|
|
4204
|
-
const
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
return
|
|
4216
|
+
const out = new Uint8Array(ct1.length + ct2.length + tag.length);
|
|
4217
|
+
out.set(ct1, 0);
|
|
4218
|
+
out.set(ct2, ct1.length);
|
|
4219
|
+
out.set(tag, ct1.length + ct2.length);
|
|
4220
|
+
return out;
|
|
4209
4221
|
}
|
|
4210
4222
|
const out = await globalThis.crypto.subtle.encrypt({ name: "AES-GCM", iv: asBufferSource(iv) }, key, asBufferSource(plaintext));
|
|
4211
4223
|
return new Uint8Array(out);
|
|
@@ -4219,10 +4231,10 @@ async function aesGcmDecrypt(key, iv, ciphertextWithTag) {
|
|
|
4219
4231
|
decipher.setAuthTag(tag);
|
|
4220
4232
|
const pt1 = decipher.update(ct);
|
|
4221
4233
|
const pt2 = decipher.final();
|
|
4222
|
-
const
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
return
|
|
4234
|
+
const out = new Uint8Array(pt1.length + pt2.length);
|
|
4235
|
+
out.set(pt1, 0);
|
|
4236
|
+
out.set(pt2, pt1.length);
|
|
4237
|
+
return out;
|
|
4226
4238
|
}
|
|
4227
4239
|
const out = await globalThis.crypto.subtle.decrypt({ name: "AES-GCM", iv: asBufferSource(iv) }, key, asBufferSource(ciphertextWithTag));
|
|
4228
4240
|
return new Uint8Array(out);
|
|
@@ -4607,9 +4619,9 @@ async function tempDir() {
|
|
|
4607
4619
|
}
|
|
4608
4620
|
function exit(code = 0) {
|
|
4609
4621
|
if (typeof window !== "undefined") {
|
|
4610
|
-
const
|
|
4611
|
-
if (
|
|
4612
|
-
|
|
4622
|
+
const app = window.craft?.app;
|
|
4623
|
+
if (app && typeof app.quit === "function") {
|
|
4624
|
+
app.quit(code);
|
|
4613
4625
|
return;
|
|
4614
4626
|
}
|
|
4615
4627
|
}
|
|
@@ -4631,18 +4643,18 @@ async function open(target) {
|
|
|
4631
4643
|
const platform = getPlatform();
|
|
4632
4644
|
const { execFile } = await import("child_process");
|
|
4633
4645
|
const { promisify } = await import("util");
|
|
4634
|
-
const
|
|
4646
|
+
const exec = promisify(execFile);
|
|
4635
4647
|
switch (platform) {
|
|
4636
4648
|
case "darwin":
|
|
4637
4649
|
case "macos":
|
|
4638
|
-
await
|
|
4650
|
+
await exec("open", [target]);
|
|
4639
4651
|
return;
|
|
4640
4652
|
case "win32":
|
|
4641
4653
|
case "windows":
|
|
4642
|
-
await
|
|
4654
|
+
await exec("cmd.exe", ["/c", "start", '""', target]);
|
|
4643
4655
|
return;
|
|
4644
4656
|
case "linux":
|
|
4645
|
-
await
|
|
4657
|
+
await exec("xdg-open", [target]);
|
|
4646
4658
|
return;
|
|
4647
4659
|
default:
|
|
4648
4660
|
throw new Error(`Unsupported platform: ${platform}`);
|
|
@@ -4982,10 +4994,10 @@ var secureStorage = {
|
|
|
4982
4994
|
}
|
|
4983
4995
|
};
|
|
4984
4996
|
function storageHost(method) {
|
|
4985
|
-
const
|
|
4986
|
-
if (typeof
|
|
4997
|
+
const host = getCraftRoot()?.storage;
|
|
4998
|
+
if (typeof host?.[method] !== "function")
|
|
4987
4999
|
throw Object.assign(new Error("This host does not provide native storage"), { code: "STORAGE_UNSUPPORTED" });
|
|
4988
|
-
return
|
|
5000
|
+
return host;
|
|
4989
5001
|
}
|
|
4990
5002
|
var storage2 = {
|
|
4991
5003
|
supportsSetIfAbsent() {
|
|
@@ -7026,13 +7038,13 @@ var media = {
|
|
|
7026
7038
|
return _hasMediaAccess("microphone", "audioinput");
|
|
7027
7039
|
},
|
|
7028
7040
|
async requestPermission(options = {}) {
|
|
7029
|
-
const { camera
|
|
7030
|
-
if (!
|
|
7041
|
+
const { camera = false, microphone = false } = options;
|
|
7042
|
+
if (!camera && !microphone) {
|
|
7031
7043
|
return true;
|
|
7032
7044
|
}
|
|
7033
7045
|
try {
|
|
7034
7046
|
const stream = await this.getMediaStream({
|
|
7035
|
-
video:
|
|
7047
|
+
video: camera,
|
|
7036
7048
|
audio: microphone
|
|
7037
7049
|
});
|
|
7038
7050
|
stream.getTracks().forEach((track) => track.stop());
|
|
@@ -7661,47 +7673,6 @@ function onSwipe(listener) {
|
|
|
7661
7673
|
return gestures.onSwipe(listener);
|
|
7662
7674
|
}
|
|
7663
7675
|
var gestures = { hasNativeGestures, onSwipe };
|
|
7664
|
-
// src/components/index.ts
|
|
7665
|
-
var exports_components = {};
|
|
7666
|
-
__export(exports_components, {
|
|
7667
|
-
updateTouchBarItem: () => updateTouchBarItem,
|
|
7668
|
-
updateToolbarItem: () => updateToolbarItem,
|
|
7669
|
-
tahoeStyle: () => tahoeStyle,
|
|
7670
|
-
sidebarSeparator: () => sidebarSeparator,
|
|
7671
|
-
sidebarSection: () => sidebarSection,
|
|
7672
|
-
sidebarItem: () => sidebarItem,
|
|
7673
|
-
showQuickLook: () => showQuickLook,
|
|
7674
|
-
showFontPicker: () => showFontPicker,
|
|
7675
|
-
showDatePicker: () => showDatePicker,
|
|
7676
|
-
showColorPicker: () => showColorPicker,
|
|
7677
|
-
setTouchBar: () => setTouchBar,
|
|
7678
|
-
setToolbarVisible: () => setToolbarVisible,
|
|
7679
|
-
setToolbar: () => setToolbar,
|
|
7680
|
-
orbstackStyle: () => orbstackStyle,
|
|
7681
|
-
hideQuickLook: () => hideQuickLook,
|
|
7682
|
-
default: () => components_default,
|
|
7683
|
-
createTahoeSidebar: () => createTahoeSidebar,
|
|
7684
|
-
createTableView: () => createTableView,
|
|
7685
|
-
createSplitView: () => createSplitView,
|
|
7686
|
-
createSidebar: () => createSidebar2,
|
|
7687
|
-
createProgress: () => createProgress,
|
|
7688
|
-
createOutlineView: () => createOutlineView,
|
|
7689
|
-
createOrbStackSidebar: () => createOrbStackSidebar,
|
|
7690
|
-
createFileBrowser: () => createFileBrowser,
|
|
7691
|
-
createArcSidebar: () => createArcSidebar,
|
|
7692
|
-
canQuickLook: () => canQuickLook,
|
|
7693
|
-
arcStyle: () => arcStyle,
|
|
7694
|
-
TableViewInstance: () => TableViewInstance,
|
|
7695
|
-
StyleSheet: () => StyleSheet,
|
|
7696
|
-
SplitViewInstance: () => SplitViewInstance,
|
|
7697
|
-
Sidebar: () => Sidebar2,
|
|
7698
|
-
ProgressInstance: () => ProgressInstance,
|
|
7699
|
-
Platform: () => Platform,
|
|
7700
|
-
OutlineViewInstance: () => OutlineViewInstance,
|
|
7701
|
-
FileBrowserInstance: () => FileBrowserInstance,
|
|
7702
|
-
Animated: () => Animated
|
|
7703
|
-
});
|
|
7704
|
-
|
|
7705
7676
|
// src/components/sidebar.ts
|
|
7706
7677
|
var tahoeStyle = {
|
|
7707
7678
|
style: "tahoe",
|
|
@@ -8909,9 +8880,9 @@ async function buildCSS(options) {
|
|
|
8909
8880
|
console.warn("buildCSS can only be run in Node.js environment");
|
|
8910
8881
|
return;
|
|
8911
8882
|
}
|
|
8912
|
-
const { exec
|
|
8883
|
+
const { exec } = await import("child_process");
|
|
8913
8884
|
const { promisify } = await import("util");
|
|
8914
|
-
const execAsync = promisify(
|
|
8885
|
+
const execAsync = promisify(exec);
|
|
8915
8886
|
const args = [
|
|
8916
8887
|
"build",
|
|
8917
8888
|
"--content",
|
|
@@ -9541,9 +9512,9 @@ function renderArcSidebar(data, collapsed = false) {
|
|
|
9541
9512
|
const renderItem = (item) => {
|
|
9542
9513
|
const isSelected = item.selected;
|
|
9543
9514
|
if (collapsed) {
|
|
9544
|
-
const
|
|
9515
|
+
const itemClass = isSelected ? s.itemCollapsedSelected : s.itemCollapsed;
|
|
9545
9516
|
return `
|
|
9546
|
-
<div class='${
|
|
9517
|
+
<div class='${itemClass}' data-id='${item.id}'>
|
|
9547
9518
|
<span class="${isSelected ? s.itemFaviconSelected : s.itemFavicon}">
|
|
9548
9519
|
${item.icon ? getIcon2(item.icon) : ""}
|
|
9549
9520
|
</span>
|
|
@@ -9790,15 +9761,15 @@ var orbstackDemoData = {
|
|
|
9790
9761
|
}
|
|
9791
9762
|
]
|
|
9792
9763
|
};
|
|
9793
|
-
function getFullPageHTML(sidebarHTML,
|
|
9794
|
-
const bgClass =
|
|
9764
|
+
function getFullPageHTML(sidebarHTML, style) {
|
|
9765
|
+
const bgClass = style === "orbstack" ? "bg-[#0f0f0f]" : "bg-neutral-50 dark:bg-neutral-900";
|
|
9795
9766
|
return `
|
|
9796
9767
|
<!DOCTYPE html>
|
|
9797
|
-
<html lang="en" class="${
|
|
9768
|
+
<html lang="en" class="${style === "orbstack" ? "dark" : ""}">
|
|
9798
9769
|
<head>
|
|
9799
9770
|
<meta charset='UTF-8'>
|
|
9800
9771
|
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
|
|
9801
|
-
<title>Craft Sidebar - ${
|
|
9772
|
+
<title>Craft Sidebar - ${style}</title>
|
|
9802
9773
|
<script src='https://cdn.tailwindcss.com'></script>
|
|
9803
9774
|
<style>
|
|
9804
9775
|
/* Custom scrollbar */
|
|
@@ -9905,20 +9876,20 @@ var reactOptimizations = {
|
|
|
9905
9876
|
}
|
|
9906
9877
|
};
|
|
9907
9878
|
var vueOptimizations = {
|
|
9908
|
-
configureProduction(
|
|
9909
|
-
if (!
|
|
9879
|
+
configureProduction(app, config = {}) {
|
|
9880
|
+
if (!app?.config)
|
|
9910
9881
|
return;
|
|
9911
|
-
if (!config.enableDevTools &&
|
|
9912
|
-
|
|
9882
|
+
if (!config.enableDevTools && app.config.devtools !== undefined) {
|
|
9883
|
+
app.config.devtools = false;
|
|
9913
9884
|
}
|
|
9914
|
-
if (
|
|
9915
|
-
|
|
9885
|
+
if (app.config.performance !== undefined) {
|
|
9886
|
+
app.config.performance = config.performance || false;
|
|
9916
9887
|
}
|
|
9917
9888
|
if (config.errorHandler) {
|
|
9918
|
-
|
|
9889
|
+
app.config.errorHandler = config.errorHandler;
|
|
9919
9890
|
}
|
|
9920
9891
|
if (config.warnHandler) {
|
|
9921
|
-
|
|
9892
|
+
app.config.warnHandler = config.warnHandler;
|
|
9922
9893
|
}
|
|
9923
9894
|
},
|
|
9924
9895
|
createAsyncConfig(options = {}) {
|
|
@@ -10220,24 +10191,6 @@ var commonOptimizations = {
|
|
|
10220
10191
|
}
|
|
10221
10192
|
};
|
|
10222
10193
|
// src/updater/index.ts
|
|
10223
|
-
var exports_updater = {};
|
|
10224
|
-
__export(exports_updater, {
|
|
10225
|
-
verifyBundleTrust: () => verifyBundleTrust,
|
|
10226
|
-
updaterCommand: () => updaterCommand,
|
|
10227
|
-
swapBundle: () => swapBundle,
|
|
10228
|
-
readBundleIdentity: () => readBundleIdentity,
|
|
10229
|
-
isMacOS: () => isMacOS,
|
|
10230
|
-
generateUpdateManifest: () => generateUpdateManifest,
|
|
10231
|
-
extractBundleFromZip: () => extractBundleFromZip,
|
|
10232
|
-
extractBundleFromDmg: () => extractBundleFromDmg,
|
|
10233
|
-
extractBundle: () => extractBundle,
|
|
10234
|
-
dittoBundle: () => dittoBundle,
|
|
10235
|
-
default: () => updater_default,
|
|
10236
|
-
clearQuarantine: () => clearQuarantine,
|
|
10237
|
-
canReplaceBundle: () => canReplaceBundle,
|
|
10238
|
-
DeltaGenerator: () => DeltaGenerator,
|
|
10239
|
-
AutoUpdater: () => AutoUpdater
|
|
10240
|
-
});
|
|
10241
10194
|
import { createReadStream, createWriteStream, existsSync as existsSync5, mkdirSync as mkdirSync2, readFileSync as readFileSync2, rmdirSync, statSync as statSync3, unlinkSync, writeFileSync as writeFileSync3 } from "fs";
|
|
10242
10195
|
import { join as join4, basename as basename3, dirname as dirname2 } from "path";
|
|
10243
10196
|
import { tmpdir as tmpdir2 } from "os";
|
|
@@ -10694,8 +10647,8 @@ class AutoUpdater extends EventEmitter3 {
|
|
|
10694
10647
|
throw new Error("No update downloaded");
|
|
10695
10648
|
}
|
|
10696
10649
|
if (this.updateInfo) {
|
|
10697
|
-
const
|
|
10698
|
-
const platformUpdate = this.updateInfo.platforms[
|
|
10650
|
+
const platform = this.getPlatform();
|
|
10651
|
+
const platformUpdate = this.updateInfo.platforms[platform];
|
|
10699
10652
|
if (platformUpdate) {
|
|
10700
10653
|
const hash = await this.computeFileHash(this.downloadPath);
|
|
10701
10654
|
if (hash !== platformUpdate.sha256) {
|
|
@@ -10821,8 +10774,8 @@ class AutoUpdater extends EventEmitter3 {
|
|
|
10821
10774
|
const downloadPath = this.downloadPath;
|
|
10822
10775
|
if (downloadPath.endsWith(".AppImage")) {
|
|
10823
10776
|
execFileSync2("chmod", ["+x", downloadPath]);
|
|
10824
|
-
const { renameSync
|
|
10825
|
-
|
|
10777
|
+
const { renameSync } = await import("fs");
|
|
10778
|
+
renameSync(downloadPath, this.config.appPath);
|
|
10826
10779
|
} else if (downloadPath.endsWith(".deb")) {
|
|
10827
10780
|
execFileSync2("sudo", ["dpkg", "-i", downloadPath]);
|
|
10828
10781
|
} else if (downloadPath.endsWith(".rpm")) {
|
|
@@ -11005,14 +10958,14 @@ async function updaterCommand(args) {
|
|
|
11005
10958
|
switch (subcommand) {
|
|
11006
10959
|
case "check": {
|
|
11007
10960
|
const url = rest[0];
|
|
11008
|
-
const
|
|
10961
|
+
const version = rest[1] || "0.0.0";
|
|
11009
10962
|
if (!url) {
|
|
11010
10963
|
console.error("Usage: craft updater check <update-url> [current-version]");
|
|
11011
10964
|
process.exit(1);
|
|
11012
10965
|
}
|
|
11013
10966
|
const updater = new AutoUpdater({
|
|
11014
10967
|
updateUrl: url,
|
|
11015
|
-
currentVersion:
|
|
10968
|
+
currentVersion: version,
|
|
11016
10969
|
appPath: process.cwd(),
|
|
11017
10970
|
autoDownload: false
|
|
11018
10971
|
});
|
|
@@ -11046,14 +10999,14 @@ ${update.releaseNotes}`);
|
|
|
11046
10999
|
break;
|
|
11047
11000
|
}
|
|
11048
11001
|
case "generate-manifest": {
|
|
11049
|
-
const
|
|
11002
|
+
const version = rest[0];
|
|
11050
11003
|
const outputPath = rest[1] || "update.json";
|
|
11051
|
-
if (!
|
|
11004
|
+
if (!version) {
|
|
11052
11005
|
console.error("Usage: craft updater generate-manifest <version> [output]");
|
|
11053
11006
|
process.exit(1);
|
|
11054
11007
|
}
|
|
11055
11008
|
const manifest = {
|
|
11056
|
-
version
|
|
11009
|
+
version,
|
|
11057
11010
|
releaseDate: new Date().toISOString(),
|
|
11058
11011
|
platforms: {}
|
|
11059
11012
|
};
|
|
@@ -11247,83 +11200,83 @@ class CraftApp {
|
|
|
11247
11200
|
}
|
|
11248
11201
|
buildArgs() {
|
|
11249
11202
|
const args = [];
|
|
11250
|
-
const { window:
|
|
11203
|
+
const { window: window2, html, url, appName } = this.config;
|
|
11251
11204
|
if (appName)
|
|
11252
11205
|
args.push("--app-name", appName);
|
|
11253
|
-
if (!
|
|
11206
|
+
if (!window2?.menubarOnly) {
|
|
11254
11207
|
if (url) {
|
|
11255
11208
|
args.push("--url", url);
|
|
11256
11209
|
} else if (html) {
|
|
11257
11210
|
args.push("--html", html);
|
|
11258
11211
|
}
|
|
11259
11212
|
}
|
|
11260
|
-
if (
|
|
11261
|
-
args.push("--title",
|
|
11262
|
-
if (
|
|
11263
|
-
args.push("--width", String(
|
|
11264
|
-
if (
|
|
11265
|
-
args.push("--height", String(
|
|
11266
|
-
if (
|
|
11267
|
-
args.push("--x", String(
|
|
11268
|
-
if (
|
|
11269
|
-
args.push("--y", String(
|
|
11270
|
-
if (
|
|
11213
|
+
if (window2?.title)
|
|
11214
|
+
args.push("--title", window2.title);
|
|
11215
|
+
if (window2?.width)
|
|
11216
|
+
args.push("--width", String(window2.width));
|
|
11217
|
+
if (window2?.height)
|
|
11218
|
+
args.push("--height", String(window2.height));
|
|
11219
|
+
if (window2?.x !== undefined)
|
|
11220
|
+
args.push("--x", String(window2.x));
|
|
11221
|
+
if (window2?.y !== undefined)
|
|
11222
|
+
args.push("--y", String(window2.y));
|
|
11223
|
+
if (window2?.frameless)
|
|
11271
11224
|
args.push("--frameless");
|
|
11272
|
-
if (
|
|
11225
|
+
if (window2?.transparent)
|
|
11273
11226
|
args.push("--transparent");
|
|
11274
|
-
if (
|
|
11227
|
+
if (window2?.alwaysOnTop)
|
|
11275
11228
|
args.push("--always-on-top");
|
|
11276
|
-
if (
|
|
11229
|
+
if (window2?.fullscreen)
|
|
11277
11230
|
args.push("--fullscreen");
|
|
11278
|
-
if (!
|
|
11231
|
+
if (!window2?.resizable)
|
|
11279
11232
|
args.push("--no-resize");
|
|
11280
|
-
if (
|
|
11233
|
+
if (window2?.darkMode)
|
|
11281
11234
|
args.push("--dark");
|
|
11282
|
-
if (
|
|
11235
|
+
if (window2?.hotReload)
|
|
11283
11236
|
args.push("--hot-reload");
|
|
11284
|
-
if (
|
|
11237
|
+
if (window2?.devTools === false)
|
|
11285
11238
|
args.push("--no-devtools");
|
|
11286
|
-
else if (
|
|
11239
|
+
else if (window2?.devTools === true)
|
|
11287
11240
|
args.push("--dev-tools");
|
|
11288
|
-
if (
|
|
11241
|
+
if (window2?.systemTray)
|
|
11289
11242
|
args.push("--system-tray");
|
|
11290
|
-
if (
|
|
11243
|
+
if (window2?.hideDockIcon)
|
|
11291
11244
|
args.push("--hide-dock-icon");
|
|
11292
|
-
if (
|
|
11245
|
+
if (window2?.menubarOnly)
|
|
11293
11246
|
args.push("--menubar-only");
|
|
11294
|
-
if (
|
|
11247
|
+
if (window2?.trayPopover)
|
|
11295
11248
|
args.push("--tray-popover");
|
|
11296
|
-
if (
|
|
11249
|
+
if (window2?.titlebarHidden)
|
|
11297
11250
|
args.push("--titlebar-hidden");
|
|
11298
|
-
if (
|
|
11251
|
+
if (window2?.headless)
|
|
11299
11252
|
args.push("--headless");
|
|
11300
|
-
if (
|
|
11253
|
+
if (window2?.keepRunning === true)
|
|
11301
11254
|
args.push("--keep-running");
|
|
11302
|
-
else if (
|
|
11255
|
+
else if (window2?.keepRunning === false)
|
|
11303
11256
|
args.push("--quit-on-close");
|
|
11304
|
-
if (
|
|
11257
|
+
if (window2?.webWindowMaterial) {
|
|
11305
11258
|
args.push("--web-window-material");
|
|
11306
|
-
} else if (
|
|
11259
|
+
} else if (window2?.webSidebarMaterial) {
|
|
11307
11260
|
args.push("--web-sidebar-material");
|
|
11308
|
-
if (
|
|
11309
|
-
args.push("--web-sidebar-width", String(
|
|
11310
|
-
if (
|
|
11311
|
-
args.push("--web-sidebar-material-opacity", String(
|
|
11312
|
-
}
|
|
11313
|
-
if (
|
|
11314
|
-
args.push("--icon",
|
|
11315
|
-
if (
|
|
11316
|
-
args.push("--frame-autosave",
|
|
11317
|
-
if (
|
|
11261
|
+
if (window2?.webSidebarWidth)
|
|
11262
|
+
args.push("--web-sidebar-width", String(window2.webSidebarWidth));
|
|
11263
|
+
if (window2?.webSidebarMaterialOpacity !== undefined)
|
|
11264
|
+
args.push("--web-sidebar-material-opacity", String(window2.webSidebarMaterialOpacity));
|
|
11265
|
+
}
|
|
11266
|
+
if (window2?.icon)
|
|
11267
|
+
args.push("--icon", window2.icon);
|
|
11268
|
+
if (window2?.frameAutosave)
|
|
11269
|
+
args.push("--frame-autosave", window2.frameAutosave);
|
|
11270
|
+
if (window2?.nativeSidebar) {
|
|
11318
11271
|
args.push("--native-sidebar");
|
|
11319
|
-
if (
|
|
11320
|
-
args.push("--sidebar-width", String(
|
|
11321
|
-
const sidebarConfig =
|
|
11322
|
-
...
|
|
11323
|
-
variant:
|
|
11324
|
-
material:
|
|
11325
|
-
backgroundEffect:
|
|
11326
|
-
allowsVibrancy:
|
|
11272
|
+
if (window2?.sidebarWidth)
|
|
11273
|
+
args.push("--sidebar-width", String(window2.sidebarWidth));
|
|
11274
|
+
const sidebarConfig = window2?.sidebarConfig ? {
|
|
11275
|
+
...window2.sidebarConfig,
|
|
11276
|
+
variant: window2.sidebarConfig.variant ?? window2.sidebarVariant,
|
|
11277
|
+
material: window2.sidebarConfig.material ?? window2.sidebarMaterial,
|
|
11278
|
+
backgroundEffect: window2.sidebarConfig.backgroundEffect ?? window2.sidebarBackgroundEffect,
|
|
11279
|
+
allowsVibrancy: window2.sidebarConfig.allowsVibrancy ?? window2.sidebarAllowsVibrancy
|
|
11327
11280
|
} : undefined;
|
|
11328
11281
|
if (sidebarConfig?.variant === "desktop") {
|
|
11329
11282
|
sidebarConfig.material = sidebarConfig.material ?? "sidebar";
|
|
@@ -11363,240 +11316,240 @@ function createApp(config) {
|
|
|
11363
11316
|
return new CraftApp(config);
|
|
11364
11317
|
}
|
|
11365
11318
|
async function show2(html, options) {
|
|
11366
|
-
const
|
|
11367
|
-
return
|
|
11319
|
+
const app = new CraftApp({ html, window: options });
|
|
11320
|
+
return app.show();
|
|
11368
11321
|
}
|
|
11369
11322
|
async function loadURL(url, options) {
|
|
11370
|
-
const
|
|
11371
|
-
return
|
|
11323
|
+
const app = new CraftApp({ url, window: options });
|
|
11324
|
+
return app.show();
|
|
11372
11325
|
}
|
|
11373
11326
|
export {
|
|
11374
|
-
|
|
11375
|
-
writeHTML,
|
|
11376
|
-
writeBinaryFile,
|
|
11377
|
-
workManager,
|
|
11378
|
-
windowsWidgets,
|
|
11379
|
-
windowsHello,
|
|
11380
|
-
windowManager,
|
|
11381
|
-
windowManagement,
|
|
11382
|
-
window2 as window,
|
|
11383
|
-
win,
|
|
11384
|
-
watch,
|
|
11385
|
-
vueOptimizations,
|
|
11386
|
-
verifyPassword,
|
|
11387
|
-
verifyBundleTrust,
|
|
11388
|
-
variants,
|
|
11389
|
-
uuid,
|
|
11390
|
-
exports_updater as updater,
|
|
11391
|
-
updateTouchBarItem,
|
|
11392
|
-
updateToolbarItem,
|
|
11393
|
-
unregisterShortcut,
|
|
11394
|
-
tw,
|
|
11395
|
-
trayManager,
|
|
11396
|
-
tray,
|
|
11397
|
-
touchBar,
|
|
11398
|
-
toastNotifications,
|
|
11399
|
-
tipKit,
|
|
11400
|
-
timingSafeEqual,
|
|
11401
|
-
tempDir,
|
|
11402
|
-
taskbarProgress,
|
|
11403
|
-
tahoeStyles,
|
|
11404
|
-
tahoeStyle,
|
|
11405
|
-
tahoeDemoData,
|
|
11406
|
-
swapBundle,
|
|
11407
|
-
svelteOptimizations,
|
|
11408
|
-
submenu,
|
|
11409
|
-
styles,
|
|
11410
|
-
style,
|
|
11411
|
-
storeKit,
|
|
11412
|
-
storage2 as storage,
|
|
11413
|
-
stat,
|
|
11414
|
-
startupTask,
|
|
11415
|
-
stageManager,
|
|
11416
|
-
spotlight,
|
|
11417
|
-
spawn2 as spawn,
|
|
11418
|
-
spaces,
|
|
11419
|
-
sidecar,
|
|
11420
|
-
sidebarUtils,
|
|
11421
|
-
sidebarSeparator,
|
|
11422
|
-
sidebarSection,
|
|
11423
|
-
sidebarItem,
|
|
11424
|
-
sidebarCSSVariables,
|
|
11425
|
-
sidebar,
|
|
11426
|
-
showQuickLook,
|
|
11427
|
-
showPrompt,
|
|
11428
|
-
showFontPicker,
|
|
11429
|
-
showDockIcon,
|
|
11430
|
-
showDatePicker,
|
|
11431
|
-
showConfirm,
|
|
11432
|
-
showColorPicker,
|
|
11433
|
-
showAlert,
|
|
11434
|
-
show2 as show,
|
|
11435
|
-
shareTarget,
|
|
11436
|
-
sharePlay,
|
|
11437
|
-
shareExtension,
|
|
11438
|
-
share,
|
|
11439
|
-
setTouchBar,
|
|
11440
|
-
setToolbarVisible,
|
|
11441
|
-
setToolbar,
|
|
11442
|
-
setBadge,
|
|
11443
|
-
separator,
|
|
11444
|
-
secureStorage,
|
|
11445
|
-
secondaryTiles,
|
|
11446
|
-
saveFile,
|
|
11447
|
-
resolveCraftBinary,
|
|
11448
|
-
requireCraftRuntime,
|
|
11449
|
-
renderTahoeSidebar,
|
|
11450
|
-
renderOrbStackSidebar,
|
|
11451
|
-
renderArcSidebar,
|
|
11452
|
-
registerShortcut,
|
|
11453
|
-
readText,
|
|
11454
|
-
readHTML,
|
|
11455
|
-
readBundleIdentity,
|
|
11456
|
-
readBinaryFile,
|
|
11457
|
-
reactOptimizations,
|
|
11458
|
-
randomString,
|
|
11459
|
-
quit,
|
|
11460
|
-
quickActions,
|
|
11461
|
-
predictiveBack,
|
|
11462
|
-
playBilling,
|
|
11463
|
-
photoPicker,
|
|
11464
|
-
permissions,
|
|
11465
|
-
parseCraftVersionOutput,
|
|
11466
|
-
packageApp,
|
|
11467
|
-
pack,
|
|
11468
|
-
orbstackStyles,
|
|
11469
|
-
orbstackStyle,
|
|
11470
|
-
orbstackDemoData,
|
|
11471
|
-
openFolder,
|
|
11472
|
-
openFile,
|
|
11473
|
-
openDatabase,
|
|
11474
|
-
open,
|
|
11475
|
-
onSwipe,
|
|
11476
|
-
notify,
|
|
11477
|
-
notifications,
|
|
11478
|
-
notifications as notification,
|
|
11479
|
-
msixUpdate,
|
|
11480
|
-
move,
|
|
11481
|
-
menuItem,
|
|
11482
|
-
media,
|
|
11483
|
-
materialYou,
|
|
11484
|
-
location,
|
|
11485
|
-
loadURL,
|
|
11486
|
-
liveActivities,
|
|
11487
|
-
lifecycle,
|
|
11488
|
-
jumpList,
|
|
11489
|
-
isMobile,
|
|
11490
|
-
isDesktop,
|
|
11491
|
-
isDarkMode,
|
|
11492
|
-
isCraftRuntime,
|
|
11493
|
-
isCraft,
|
|
11494
|
-
http,
|
|
11495
|
-
homeDir,
|
|
11496
|
-
hmac,
|
|
11497
|
-
hideQuickLook,
|
|
11498
|
-
hideDockIcon,
|
|
11499
|
-
hide,
|
|
11500
|
-
hashPassword,
|
|
11501
|
-
hasNativeSpaces,
|
|
11502
|
-
hasNativeGestures,
|
|
11503
|
-
haptics,
|
|
11504
|
-
handoff,
|
|
11505
|
-
getVersion,
|
|
11506
|
-
getSystemInfo,
|
|
11507
|
-
getSidebarStyle,
|
|
11508
|
-
getPlatform,
|
|
11509
|
-
getPath,
|
|
11510
|
-
getNativeBridgeCall,
|
|
11511
|
-
getName,
|
|
11512
|
-
getLocale,
|
|
11513
|
-
getInfo,
|
|
11514
|
-
getFullPageHTML,
|
|
11515
|
-
getCraft,
|
|
11516
|
-
gestures,
|
|
11517
|
-
generateUpdateManifest,
|
|
11518
|
-
generateConfig,
|
|
11519
|
-
fs,
|
|
11520
|
-
foregroundService,
|
|
11521
|
-
focusFilters,
|
|
11522
|
-
focus,
|
|
11523
|
-
extractBundleFromZip,
|
|
11524
|
-
extractBundleFromDmg,
|
|
11525
|
-
extractBundle,
|
|
11526
|
-
exit,
|
|
11527
|
-
exec,
|
|
11528
|
-
env,
|
|
11529
|
-
dittoBundle,
|
|
11530
|
-
dialog,
|
|
11531
|
-
device,
|
|
11532
|
-
desktopWidgets,
|
|
11533
|
-
db,
|
|
11534
|
-
cx,
|
|
11535
|
-
cwd,
|
|
11536
|
-
crypto,
|
|
11537
|
-
createWindow,
|
|
11538
|
-
createTahoeSidebar,
|
|
11539
|
-
createTableView,
|
|
11540
|
-
createSplitView,
|
|
11541
|
-
createSpacesSidebar,
|
|
11542
|
-
createSidebar,
|
|
11543
|
-
createSettingsSidebar,
|
|
11544
|
-
createProgress,
|
|
11545
|
-
createOutlineView,
|
|
11546
|
-
createOrbStackSidebar,
|
|
11547
|
-
createMenubarApp,
|
|
11548
|
-
createFileSidebar,
|
|
11549
|
-
createFileBrowser,
|
|
11550
|
-
createClient,
|
|
11551
|
-
createArcSidebar,
|
|
11552
|
-
createApp,
|
|
11553
|
-
craftUnavailableMessage,
|
|
11554
|
-
craftProcessFailedMessage,
|
|
11555
|
-
craftBinaryNotFoundMessage,
|
|
11556
|
-
copy,
|
|
11557
|
-
exports_components as components,
|
|
11558
|
-
commonOptimizations,
|
|
11559
|
-
cx as clsx,
|
|
11560
|
-
clipboard,
|
|
11561
|
-
clearQuarantine,
|
|
11562
|
-
checkbox,
|
|
11563
|
-
carplay,
|
|
11564
|
-
canReplaceBundle,
|
|
11565
|
-
canQuickLook,
|
|
11566
|
-
camera,
|
|
11567
|
-
buildMenu,
|
|
11568
|
-
buildCSS,
|
|
11569
|
-
biometrics,
|
|
11570
|
-
argv,
|
|
11571
|
-
arcStyles,
|
|
11572
|
-
arcStyle,
|
|
11573
|
-
arcDemoData,
|
|
11574
|
-
appManager,
|
|
11575
|
-
appLanguage,
|
|
11576
|
-
appIntents,
|
|
11577
|
-
appClips,
|
|
11578
|
-
app,
|
|
11579
|
-
widgets as androidWidgets,
|
|
11580
|
-
Window,
|
|
11581
|
-
WebSocketClient,
|
|
11582
|
-
Timer,
|
|
11583
|
-
TableViewInstance,
|
|
11584
|
-
SystemTray,
|
|
11585
|
-
StyleSheet,
|
|
11586
|
-
Storage,
|
|
11587
|
-
SplitViewInstance,
|
|
11588
|
-
Sidebar,
|
|
11589
|
-
ProgressInstance,
|
|
11590
|
-
OutlineViewInstance,
|
|
11591
|
-
MenubarApp,
|
|
11592
|
-
KeyValueStore,
|
|
11593
|
-
HttpError,
|
|
11594
|
-
HttpClient,
|
|
11595
|
-
FileBrowserInstance,
|
|
11596
|
-
Database,
|
|
11597
|
-
CraftApp,
|
|
11598
|
-
ChildProcess,
|
|
11599
|
-
AutoUpdater,
|
|
11327
|
+
Animated,
|
|
11600
11328
|
AudioManager,
|
|
11601
|
-
|
|
11329
|
+
AutoUpdater,
|
|
11330
|
+
ChildProcess,
|
|
11331
|
+
CraftApp,
|
|
11332
|
+
Database,
|
|
11333
|
+
FileBrowserInstance,
|
|
11334
|
+
HttpClient,
|
|
11335
|
+
HttpError,
|
|
11336
|
+
KeyValueStore,
|
|
11337
|
+
MenubarApp,
|
|
11338
|
+
OutlineViewInstance,
|
|
11339
|
+
ProgressInstance,
|
|
11340
|
+
Sidebar,
|
|
11341
|
+
SplitViewInstance,
|
|
11342
|
+
Storage,
|
|
11343
|
+
StyleSheet,
|
|
11344
|
+
SystemTray,
|
|
11345
|
+
TableViewInstance,
|
|
11346
|
+
Timer,
|
|
11347
|
+
WebSocketClient,
|
|
11348
|
+
Window,
|
|
11349
|
+
widgets as androidWidgets,
|
|
11350
|
+
app,
|
|
11351
|
+
appClips,
|
|
11352
|
+
appIntents,
|
|
11353
|
+
appLanguage,
|
|
11354
|
+
appManager,
|
|
11355
|
+
arcDemoData,
|
|
11356
|
+
arcStyle,
|
|
11357
|
+
arcStyles,
|
|
11358
|
+
argv,
|
|
11359
|
+
biometrics,
|
|
11360
|
+
buildCSS,
|
|
11361
|
+
buildMenu,
|
|
11362
|
+
camera,
|
|
11363
|
+
canQuickLook,
|
|
11364
|
+
canReplaceBundle,
|
|
11365
|
+
carplay,
|
|
11366
|
+
checkbox,
|
|
11367
|
+
clearQuarantine,
|
|
11368
|
+
clipboard,
|
|
11369
|
+
cx as clsx,
|
|
11370
|
+
commonOptimizations,
|
|
11371
|
+
exports_components as components,
|
|
11372
|
+
copy,
|
|
11373
|
+
craftBinaryNotFoundMessage,
|
|
11374
|
+
craftProcessFailedMessage,
|
|
11375
|
+
craftUnavailableMessage,
|
|
11376
|
+
createApp,
|
|
11377
|
+
createArcSidebar,
|
|
11378
|
+
createClient,
|
|
11379
|
+
createFileBrowser,
|
|
11380
|
+
createFileSidebar,
|
|
11381
|
+
createMenubarApp,
|
|
11382
|
+
createOrbStackSidebar,
|
|
11383
|
+
createOutlineView,
|
|
11384
|
+
createProgress,
|
|
11385
|
+
createSettingsSidebar,
|
|
11386
|
+
createSidebar,
|
|
11387
|
+
createSpacesSidebar,
|
|
11388
|
+
createSplitView,
|
|
11389
|
+
createTableView,
|
|
11390
|
+
createTahoeSidebar,
|
|
11391
|
+
createWindow,
|
|
11392
|
+
crypto,
|
|
11393
|
+
cwd,
|
|
11394
|
+
cx,
|
|
11395
|
+
db,
|
|
11396
|
+
desktopWidgets,
|
|
11397
|
+
device,
|
|
11398
|
+
dialog,
|
|
11399
|
+
dittoBundle,
|
|
11400
|
+
env,
|
|
11401
|
+
exec,
|
|
11402
|
+
exit,
|
|
11403
|
+
extractBundle,
|
|
11404
|
+
extractBundleFromDmg,
|
|
11405
|
+
extractBundleFromZip,
|
|
11406
|
+
focus,
|
|
11407
|
+
focusFilters,
|
|
11408
|
+
foregroundService,
|
|
11409
|
+
fs,
|
|
11410
|
+
generateConfig,
|
|
11411
|
+
generateUpdateManifest,
|
|
11412
|
+
gestures,
|
|
11413
|
+
getCraft,
|
|
11414
|
+
getFullPageHTML,
|
|
11415
|
+
getInfo,
|
|
11416
|
+
getLocale,
|
|
11417
|
+
getName,
|
|
11418
|
+
getNativeBridgeCall,
|
|
11419
|
+
getPath,
|
|
11420
|
+
getPlatform,
|
|
11421
|
+
getSidebarStyle,
|
|
11422
|
+
getSystemInfo,
|
|
11423
|
+
getVersion,
|
|
11424
|
+
handoff,
|
|
11425
|
+
haptics,
|
|
11426
|
+
hasNativeGestures,
|
|
11427
|
+
hasNativeSpaces,
|
|
11428
|
+
hashPassword,
|
|
11429
|
+
hide,
|
|
11430
|
+
hideDockIcon,
|
|
11431
|
+
hideQuickLook,
|
|
11432
|
+
hmac,
|
|
11433
|
+
homeDir,
|
|
11434
|
+
http,
|
|
11435
|
+
isCraft,
|
|
11436
|
+
isCraftRuntime,
|
|
11437
|
+
isDarkMode,
|
|
11438
|
+
isDesktop,
|
|
11439
|
+
isMobile,
|
|
11440
|
+
jumpList,
|
|
11441
|
+
lifecycle,
|
|
11442
|
+
liveActivities,
|
|
11443
|
+
loadURL,
|
|
11444
|
+
location,
|
|
11445
|
+
materialYou,
|
|
11446
|
+
media,
|
|
11447
|
+
menuItem,
|
|
11448
|
+
move,
|
|
11449
|
+
msixUpdate,
|
|
11450
|
+
notifications as notification,
|
|
11451
|
+
notifications,
|
|
11452
|
+
notify,
|
|
11453
|
+
onSwipe,
|
|
11454
|
+
open,
|
|
11455
|
+
openDatabase,
|
|
11456
|
+
openFile,
|
|
11457
|
+
openFolder,
|
|
11458
|
+
orbstackDemoData,
|
|
11459
|
+
orbstackStyle,
|
|
11460
|
+
orbstackStyles,
|
|
11461
|
+
pack,
|
|
11462
|
+
packageApp,
|
|
11463
|
+
parseCraftVersionOutput,
|
|
11464
|
+
permissions,
|
|
11465
|
+
photoPicker,
|
|
11466
|
+
playBilling,
|
|
11467
|
+
predictiveBack,
|
|
11468
|
+
quickActions,
|
|
11469
|
+
quit,
|
|
11470
|
+
randomString,
|
|
11471
|
+
reactOptimizations,
|
|
11472
|
+
readBinaryFile,
|
|
11473
|
+
readBundleIdentity,
|
|
11474
|
+
readHTML,
|
|
11475
|
+
readText,
|
|
11476
|
+
registerShortcut,
|
|
11477
|
+
renderArcSidebar,
|
|
11478
|
+
renderOrbStackSidebar,
|
|
11479
|
+
renderTahoeSidebar,
|
|
11480
|
+
requireCraftRuntime,
|
|
11481
|
+
resolveCraftBinary,
|
|
11482
|
+
saveFile,
|
|
11483
|
+
secondaryTiles,
|
|
11484
|
+
secureStorage,
|
|
11485
|
+
separator,
|
|
11486
|
+
setBadge,
|
|
11487
|
+
setToolbar,
|
|
11488
|
+
setToolbarVisible,
|
|
11489
|
+
setTouchBar,
|
|
11490
|
+
share,
|
|
11491
|
+
shareExtension,
|
|
11492
|
+
sharePlay,
|
|
11493
|
+
shareTarget,
|
|
11494
|
+
show2 as show,
|
|
11495
|
+
showAlert,
|
|
11496
|
+
showColorPicker,
|
|
11497
|
+
showConfirm,
|
|
11498
|
+
showDatePicker,
|
|
11499
|
+
showDockIcon,
|
|
11500
|
+
showFontPicker,
|
|
11501
|
+
showPrompt,
|
|
11502
|
+
showQuickLook,
|
|
11503
|
+
sidebar,
|
|
11504
|
+
sidebarCSSVariables,
|
|
11505
|
+
sidebarItem,
|
|
11506
|
+
sidebarSection,
|
|
11507
|
+
sidebarSeparator,
|
|
11508
|
+
sidebarUtils,
|
|
11509
|
+
sidecar,
|
|
11510
|
+
spaces,
|
|
11511
|
+
spawn2 as spawn,
|
|
11512
|
+
spotlight,
|
|
11513
|
+
stageManager,
|
|
11514
|
+
startupTask,
|
|
11515
|
+
stat,
|
|
11516
|
+
storage2 as storage,
|
|
11517
|
+
storeKit,
|
|
11518
|
+
style,
|
|
11519
|
+
styles,
|
|
11520
|
+
submenu,
|
|
11521
|
+
svelteOptimizations,
|
|
11522
|
+
swapBundle,
|
|
11523
|
+
tahoeDemoData,
|
|
11524
|
+
tahoeStyle,
|
|
11525
|
+
tahoeStyles,
|
|
11526
|
+
taskbarProgress,
|
|
11527
|
+
tempDir,
|
|
11528
|
+
timingSafeEqual,
|
|
11529
|
+
tipKit,
|
|
11530
|
+
toastNotifications,
|
|
11531
|
+
touchBar,
|
|
11532
|
+
tray,
|
|
11533
|
+
trayManager,
|
|
11534
|
+
tw,
|
|
11535
|
+
unregisterShortcut,
|
|
11536
|
+
updateToolbarItem,
|
|
11537
|
+
updateTouchBarItem,
|
|
11538
|
+
exports_updater as updater,
|
|
11539
|
+
uuid,
|
|
11540
|
+
variants,
|
|
11541
|
+
verifyBundleTrust,
|
|
11542
|
+
verifyPassword,
|
|
11543
|
+
vueOptimizations,
|
|
11544
|
+
watch,
|
|
11545
|
+
win,
|
|
11546
|
+
window2 as window,
|
|
11547
|
+
windowManagement,
|
|
11548
|
+
windowManager,
|
|
11549
|
+
windowsHello,
|
|
11550
|
+
windowsWidgets,
|
|
11551
|
+
workManager,
|
|
11552
|
+
writeBinaryFile,
|
|
11553
|
+
writeHTML,
|
|
11554
|
+
writeText
|
|
11602
11555
|
};
|