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,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Craft Error Overlay
|
|
3
|
+
* Visual error display for development with helpful suggestions
|
|
4
|
+
*/
|
|
5
|
+
export interface ErrorInfo {
|
|
6
|
+
message: string;
|
|
7
|
+
stack?: string;
|
|
8
|
+
source?: string;
|
|
9
|
+
line?: number;
|
|
10
|
+
column?: number;
|
|
11
|
+
componentStack?: string;
|
|
12
|
+
suggestions?: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface ErrorOverlayConfig {
|
|
15
|
+
enableOverlay?: boolean;
|
|
16
|
+
enableConsole?: boolean;
|
|
17
|
+
dismissOnClick?: boolean;
|
|
18
|
+
position?: 'top' | 'bottom' | 'center';
|
|
19
|
+
}
|
|
20
|
+
export declare class ErrorOverlay {
|
|
21
|
+
private config;
|
|
22
|
+
private currentError;
|
|
23
|
+
private lastRawError;
|
|
24
|
+
private errorHandler;
|
|
25
|
+
private rejectionHandler;
|
|
26
|
+
constructor(config?: ErrorOverlayConfig);
|
|
27
|
+
/**
|
|
28
|
+
* Show error overlay. If the same error is already on screen (same message
|
|
29
|
+
* and stack), skip re-rendering — otherwise hot-reload triggers two
|
|
30
|
+
* identical overlays for the same uncaught exception.
|
|
31
|
+
*/
|
|
32
|
+
show(error: Error | string, componentStack?: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Hide error overlay
|
|
35
|
+
*/
|
|
36
|
+
hide(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Get current error
|
|
39
|
+
*/
|
|
40
|
+
getCurrentError(): ErrorInfo | null;
|
|
41
|
+
/**
|
|
42
|
+
* Install global error handlers. Idempotent — calling install() twice
|
|
43
|
+
* does not register duplicate listeners. Uses addEventListener (not
|
|
44
|
+
* `window.onerror = …`) so we don't clobber other libraries' handlers.
|
|
45
|
+
*/
|
|
46
|
+
install(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Uninstall global error handlers. Removes only the listeners we added —
|
|
49
|
+
* other libraries' handlers are left intact.
|
|
50
|
+
*/
|
|
51
|
+
uninstall(): void;
|
|
52
|
+
}
|
|
53
|
+
declare class ErrorBoundary {
|
|
54
|
+
state: {
|
|
55
|
+
hasError: boolean;
|
|
56
|
+
};
|
|
57
|
+
props: {
|
|
58
|
+
children?: unknown;
|
|
59
|
+
};
|
|
60
|
+
static getDerivedStateFromError(): {
|
|
61
|
+
hasError: boolean;
|
|
62
|
+
};
|
|
63
|
+
componentDidCatch(_error: Error, _errorInfo: {
|
|
64
|
+
componentStack: string;
|
|
65
|
+
}): void;
|
|
66
|
+
render(): unknown;
|
|
67
|
+
}
|
|
68
|
+
export declare function createReactErrorBoundary(overlay: ErrorOverlay): typeof ErrorBoundary;
|
|
69
|
+
export declare function getErrorOverlay(): ErrorOverlay;
|
|
70
|
+
export declare function showError(error: Error | string): void;
|
|
71
|
+
export declare function hideError(): void;
|
|
72
|
+
export default ErrorOverlay;
|
|
73
|
+
//# sourceMappingURL=error-overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-overlay.d.ts","sourceRoot":"","sources":["../../src/dev/error-overlay.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;CACvC;AAsUD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAAyB;IAI7C,OAAO,CAAC,YAAY,CAA8B;IAElD,OAAO,CAAC,YAAY,CAA6C;IAEjE,OAAO,CAAC,gBAAgB,CAAwD;gBAEpE,MAAM,GAAE,kBAAuB;IAU3C;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI;IA2C1D;;OAEG;IACH,IAAI,IAAI,IAAI;IAUZ;;OAEG;IACH,eAAe,IAAI,SAAS,GAAG,IAAI;IAInC;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAgBf;;;OAGG;IACH,SAAS,IAAI,IAAI;CAWlB;AAGD,cAAM,aAAa;IACjB,KAAK;;MAAsB;IAC3B,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAK;IAElC,MAAM,CAAC,wBAAwB,IAAI;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE;IAIxD,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI9E,MAAM,IAAI,OAAO;CAMlB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,aAAa,CAOpF;AAKD,wBAAgB,eAAe,IAAI,YAAY,CAK9C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAErD;AAED,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Craft Hot Reload
|
|
3
|
+
* Hot module replacement and live reload for development
|
|
4
|
+
*/
|
|
5
|
+
import { WebSocket } from 'ws';
|
|
6
|
+
import { EventEmitter } from 'events';
|
|
7
|
+
export interface HotReloadConfig {
|
|
8
|
+
port?: number;
|
|
9
|
+
watchDir: string;
|
|
10
|
+
extensions?: string[];
|
|
11
|
+
ignored?: (string | RegExp)[];
|
|
12
|
+
cssOnly?: boolean;
|
|
13
|
+
preserveState?: boolean;
|
|
14
|
+
verbose?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface HotReloadClient {
|
|
17
|
+
ws: WebSocket;
|
|
18
|
+
id: string;
|
|
19
|
+
platform: string;
|
|
20
|
+
}
|
|
21
|
+
export interface FileChange {
|
|
22
|
+
path: string;
|
|
23
|
+
type: 'add' | 'change' | 'unlink';
|
|
24
|
+
timestamp: number;
|
|
25
|
+
}
|
|
26
|
+
export declare class HotReloadServer extends EventEmitter {
|
|
27
|
+
private config;
|
|
28
|
+
private server;
|
|
29
|
+
private wss;
|
|
30
|
+
private clients;
|
|
31
|
+
private fileVersions;
|
|
32
|
+
private debounceTimers;
|
|
33
|
+
private stateSnapshots;
|
|
34
|
+
private watcher;
|
|
35
|
+
constructor(config: HotReloadConfig);
|
|
36
|
+
/**
|
|
37
|
+
* Start the hot reload server
|
|
38
|
+
*/
|
|
39
|
+
start(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Stop the hot reload server
|
|
42
|
+
*/
|
|
43
|
+
/**
|
|
44
|
+
* Stop the hot-reload server and release every resource it acquired.
|
|
45
|
+
*
|
|
46
|
+
* Returns a Promise so callers that need to know when the server has
|
|
47
|
+
* actually torn down (tests, lifecycle managers) can `await stop()`.
|
|
48
|
+
* The return value is non-breaking: synchronous callers can still
|
|
49
|
+
* fire-and-forget `server.stop()`.
|
|
50
|
+
*/
|
|
51
|
+
stop(): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Start watching files for changes. Stores the FSWatcher reference so
|
|
54
|
+
* stop() can release it.
|
|
55
|
+
*/
|
|
56
|
+
private startWatching;
|
|
57
|
+
/**
|
|
58
|
+
* Handle file change
|
|
59
|
+
*/
|
|
60
|
+
private handleFileChange;
|
|
61
|
+
/**
|
|
62
|
+
* Broadcast CSS update (no full reload needed)
|
|
63
|
+
*/
|
|
64
|
+
private broadcastCssUpdate;
|
|
65
|
+
/**
|
|
66
|
+
* Broadcast hot module update
|
|
67
|
+
*/
|
|
68
|
+
private broadcastHotUpdate;
|
|
69
|
+
/**
|
|
70
|
+
* Broadcast full reload
|
|
71
|
+
*/
|
|
72
|
+
private broadcastFullReload;
|
|
73
|
+
/**
|
|
74
|
+
* Broadcast message to all clients
|
|
75
|
+
*/
|
|
76
|
+
private broadcast;
|
|
77
|
+
/**
|
|
78
|
+
* Handle HTTP request (for HMR runtime).
|
|
79
|
+
*
|
|
80
|
+
* `/hmr-module/<path>` previously joined the user-supplied path with
|
|
81
|
+
* `watchDir` and read it — letting any client on the dev port read
|
|
82
|
+
* arbitrary files via `../../etc/passwd`. We now:
|
|
83
|
+
* - decode percent-encodes (so `..%2F` is caught),
|
|
84
|
+
* - reject any segment containing `..` or null bytes,
|
|
85
|
+
* - resolve the result and require it to live under `watchDir` (this
|
|
86
|
+
* also blocks symlink escapes that resolve outside the root).
|
|
87
|
+
*
|
|
88
|
+
* Anything else returns 403 — silently 404'ing made traversal probes
|
|
89
|
+
* indistinguishable from "file not found".
|
|
90
|
+
*/
|
|
91
|
+
private handleHttpRequest;
|
|
92
|
+
/**
|
|
93
|
+
* Resolve an HMR-module URL path against `watchDir`. Returns null when
|
|
94
|
+
* the path is empty, contains traversal sequences, embeds NULs, or
|
|
95
|
+
* resolves outside the watch root. Exposed as a method so the test
|
|
96
|
+
* suite can exercise the validator directly.
|
|
97
|
+
*/
|
|
98
|
+
private resolveHmrModulePath;
|
|
99
|
+
/**
|
|
100
|
+
* Handle client message
|
|
101
|
+
*/
|
|
102
|
+
private handleClientMessage;
|
|
103
|
+
/**
|
|
104
|
+
* Get HMR runtime code for injection into client
|
|
105
|
+
*/
|
|
106
|
+
private getHmrRuntime;
|
|
107
|
+
private shouldIgnore;
|
|
108
|
+
private getAcceptDependencies;
|
|
109
|
+
private generateClientId;
|
|
110
|
+
/**
|
|
111
|
+
* Get connected clients count
|
|
112
|
+
*/
|
|
113
|
+
getClientCount(): number;
|
|
114
|
+
/**
|
|
115
|
+
* Get list of connected clients
|
|
116
|
+
*/
|
|
117
|
+
getClients(): Array<{
|
|
118
|
+
id: string;
|
|
119
|
+
platform: string;
|
|
120
|
+
}>;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Create HMR client code for injection
|
|
124
|
+
*/
|
|
125
|
+
export declare function createHmrClient(serverUrl: string): string;
|
|
126
|
+
export default HotReloadServer;
|
|
127
|
+
//# sourceMappingURL=hot-reload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hot-reload.d.ts","sourceRoot":"","sources":["../../src/dev/hot-reload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAmB,SAAS,EAAE,MAAM,IAAI,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAIrC,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,SAAS,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;CAClB;AAGD,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,cAAc,CAA8B;IAIpD,OAAO,CAAC,OAAO,CAAyB;gBAE5B,MAAM,EAAE,eAAe;IAanC;;OAEG;IACH,KAAK,IAAI,IAAI;IAsDb;;OAEG;IACH;;;;;;;OAOG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IA8BrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwCxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,aAAa;IA4JrB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,UAAU,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAMtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAYzD;AAED,eAAe,eAAe,CAAA"}
|