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.
Files changed (117) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +424 -0
  3. package/bin/cli.ts +937 -0
  4. package/dist/api/android-advanced.d.ts +737 -0
  5. package/dist/api/android-advanced.d.ts.map +1 -0
  6. package/dist/api/app.d.ts +432 -0
  7. package/dist/api/app.d.ts.map +1 -0
  8. package/dist/api/clipboard.d.ts +85 -0
  9. package/dist/api/clipboard.d.ts.map +1 -0
  10. package/dist/api/crypto.d.ts +79 -0
  11. package/dist/api/crypto.d.ts.map +1 -0
  12. package/dist/api/db.d.ts +427 -0
  13. package/dist/api/db.d.ts.map +1 -0
  14. package/dist/api/dialog.d.ts +141 -0
  15. package/dist/api/dialog.d.ts.map +1 -0
  16. package/dist/api/fs.d.ts +131 -0
  17. package/dist/api/fs.d.ts.map +1 -0
  18. package/dist/api/http.d.ts +196 -0
  19. package/dist/api/http.d.ts.map +1 -0
  20. package/dist/api/index.d.ts +38 -0
  21. package/dist/api/index.d.ts.map +1 -0
  22. package/dist/api/ios-advanced.d.ts +833 -0
  23. package/dist/api/ios-advanced.d.ts.map +1 -0
  24. package/dist/api/macos-advanced.d.ts +721 -0
  25. package/dist/api/macos-advanced.d.ts.map +1 -0
  26. package/dist/api/media.d.ts +233 -0
  27. package/dist/api/media.d.ts.map +1 -0
  28. package/dist/api/mobile.d.ts +658 -0
  29. package/dist/api/mobile.d.ts.map +1 -0
  30. package/dist/api/process.d.ts +168 -0
  31. package/dist/api/process.d.ts.map +1 -0
  32. package/dist/api/sidebar.d.ts +125 -0
  33. package/dist/api/sidebar.d.ts.map +1 -0
  34. package/dist/api/tray.d.ts +410 -0
  35. package/dist/api/tray.d.ts.map +1 -0
  36. package/dist/api/window.d.ts +462 -0
  37. package/dist/api/window.d.ts.map +1 -0
  38. package/dist/api/windows-advanced.d.ts +719 -0
  39. package/dist/api/windows-advanced.d.ts.map +1 -0
  40. package/dist/assets/index.d.ts +69 -0
  41. package/dist/assets/index.d.ts.map +1 -0
  42. package/dist/binary-resolver.d.ts +39 -0
  43. package/dist/binary-resolver.d.ts.map +1 -0
  44. package/dist/bridge/android.d.ts +574 -0
  45. package/dist/bridge/android.d.ts.map +1 -0
  46. package/dist/bridge/core.d.ts +474 -0
  47. package/dist/bridge/core.d.ts.map +1 -0
  48. package/dist/bridge/ids.d.ts +18 -0
  49. package/dist/bridge/ids.d.ts.map +1 -0
  50. package/dist/bridge/ios.d.ts +528 -0
  51. package/dist/bridge/ios.d.ts.map +1 -0
  52. package/dist/bridge/webkit-pending.d.ts +50 -0
  53. package/dist/bridge/webkit-pending.d.ts.map +1 -0
  54. package/dist/build/bundle-optimizer.d.ts +69 -0
  55. package/dist/build/bundle-optimizer.d.ts.map +1 -0
  56. package/dist/components/index.d.ts +719 -0
  57. package/dist/components/index.d.ts.map +1 -0
  58. package/dist/components/native.d.ts +728 -0
  59. package/dist/components/native.d.ts.map +1 -0
  60. package/dist/components/sidebar.d.ts +458 -0
  61. package/dist/components/sidebar.d.ts.map +1 -0
  62. package/dist/dev/devtools.d.ts +118 -0
  63. package/dist/dev/devtools.d.ts.map +1 -0
  64. package/dist/dev/error-overlay.d.ts +73 -0
  65. package/dist/dev/error-overlay.d.ts.map +1 -0
  66. package/dist/dev/hot-reload.d.ts +127 -0
  67. package/dist/dev/hot-reload.d.ts.map +1 -0
  68. package/dist/index.cjs +10253 -0
  69. package/dist/index.d.cts +59 -0
  70. package/dist/index.d.ts +59 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +10240 -0
  73. package/dist/logging/index.d.ts +152 -0
  74. package/dist/logging/index.d.ts.map +1 -0
  75. package/dist/optimizations/index.d.ts +232 -0
  76. package/dist/optimizations/index.d.ts.map +1 -0
  77. package/dist/package.d.ts +90 -0
  78. package/dist/package.d.ts.map +1 -0
  79. package/dist/performance/runtime.d.ts +230 -0
  80. package/dist/performance/runtime.d.ts.map +1 -0
  81. package/dist/performance/startup.d.ts +223 -0
  82. package/dist/performance/startup.d.ts.map +1 -0
  83. package/dist/plugins/index.d.ts +114 -0
  84. package/dist/plugins/index.d.ts.map +1 -0
  85. package/dist/security/index.d.ts +268 -0
  86. package/dist/security/index.d.ts.map +1 -0
  87. package/dist/signing/index.d.ts +104 -0
  88. package/dist/signing/index.d.ts.map +1 -0
  89. package/dist/styles/headwind.d.ts +222 -0
  90. package/dist/styles/headwind.d.ts.map +1 -0
  91. package/dist/styles/index.d.ts +31 -0
  92. package/dist/styles/index.d.ts.map +1 -0
  93. package/dist/styles/sidebar-templates.d.ts +77 -0
  94. package/dist/styles/sidebar-templates.d.ts.map +1 -0
  95. package/dist/styles/sidebars.d.ts +194 -0
  96. package/dist/styles/sidebars.d.ts.map +1 -0
  97. package/dist/types.d.ts +1555 -0
  98. package/dist/types.d.ts.map +1 -0
  99. package/dist/updater/index.d.ts +164 -0
  100. package/dist/updater/index.d.ts.map +1 -0
  101. package/dist/utils/audio.d.ts +40 -0
  102. package/dist/utils/audio.d.ts.map +1 -0
  103. package/dist/utils/index.d.ts +9 -0
  104. package/dist/utils/index.d.ts.map +1 -0
  105. package/dist/utils/native.d.ts +27 -0
  106. package/dist/utils/native.d.ts.map +1 -0
  107. package/dist/utils/react.d.ts +157 -0
  108. package/dist/utils/react.d.ts.map +1 -0
  109. package/dist/utils/storage.d.ts +35 -0
  110. package/dist/utils/storage.d.ts.map +1 -0
  111. package/dist/utils/svelte.d.ts +187 -0
  112. package/dist/utils/svelte.d.ts.map +1 -0
  113. package/dist/utils/timer.d.ts +57 -0
  114. package/dist/utils/timer.d.ts.map +1 -0
  115. package/dist/utils/vue.d.ts +157 -0
  116. package/dist/utils/vue.d.ts.map +1 -0
  117. 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"}