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,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Craft Structured Logging
|
|
3
|
+
* JSON-based structured logging with filtering and remote reporting
|
|
4
|
+
*/
|
|
5
|
+
export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
|
6
|
+
export interface LogEntry {
|
|
7
|
+
level: LogLevel;
|
|
8
|
+
message: string;
|
|
9
|
+
timestamp: string;
|
|
10
|
+
context?: Record<string, unknown>;
|
|
11
|
+
stack?: string;
|
|
12
|
+
tags?: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface LoggerConfig {
|
|
15
|
+
level?: LogLevel;
|
|
16
|
+
format?: 'json' | 'pretty' | 'minimal';
|
|
17
|
+
output?: 'console' | 'file' | 'both' | 'none';
|
|
18
|
+
filePath?: string;
|
|
19
|
+
maxFileSize?: number;
|
|
20
|
+
maxFiles?: number;
|
|
21
|
+
remote?: {
|
|
22
|
+
url: string;
|
|
23
|
+
batchSize?: number;
|
|
24
|
+
flushInterval?: number;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Field names to redact in logged context. Each entry is matched
|
|
28
|
+
* case-insensitively as a substring of the key — `'password'` matches
|
|
29
|
+
* `password`, `userPassword`, and `oldPassword`. For more precise control
|
|
30
|
+
* use {@link LoggerConfig.redactPatterns} instead.
|
|
31
|
+
*/
|
|
32
|
+
redact?: string[];
|
|
33
|
+
/**
|
|
34
|
+
* Regular expressions to match against context keys for redaction. These
|
|
35
|
+
* fire in addition to {@link LoggerConfig.redact}. Use this when you
|
|
36
|
+
* need to redact things like `^auth_` prefixes without redacting `author`.
|
|
37
|
+
*/
|
|
38
|
+
redactPatterns?: RegExp[];
|
|
39
|
+
enrichers?: Array<(entry: LogEntry) => LogEntry>;
|
|
40
|
+
}
|
|
41
|
+
export declare class Logger {
|
|
42
|
+
private config;
|
|
43
|
+
private context;
|
|
44
|
+
private buffer;
|
|
45
|
+
private flushTimer;
|
|
46
|
+
private currentFileSize;
|
|
47
|
+
private fileIndex;
|
|
48
|
+
constructor(config?: LoggerConfig);
|
|
49
|
+
private initFileLogging;
|
|
50
|
+
private startRemoteFlush;
|
|
51
|
+
/**
|
|
52
|
+
* Create a child logger with additional context
|
|
53
|
+
*/
|
|
54
|
+
child(context: Record<string, unknown>): Logger;
|
|
55
|
+
/**
|
|
56
|
+
* Add context to all log entries
|
|
57
|
+
*/
|
|
58
|
+
withContext(context: Record<string, unknown>): this;
|
|
59
|
+
/**
|
|
60
|
+
* Log methods
|
|
61
|
+
*/
|
|
62
|
+
trace(message: string, context?: Record<string, unknown>): void;
|
|
63
|
+
debug(message: string, context?: Record<string, unknown>): void;
|
|
64
|
+
info(message: string, context?: Record<string, unknown>): void;
|
|
65
|
+
warn(message: string, context?: Record<string, unknown>): void;
|
|
66
|
+
error(message: string, context?: Record<string, unknown>): void;
|
|
67
|
+
fatal(message: string, context?: Record<string, unknown>): void;
|
|
68
|
+
/**
|
|
69
|
+
* Log with error object
|
|
70
|
+
*/
|
|
71
|
+
errorWithStack(message: string, error: Error, context?: Record<string, unknown>): void;
|
|
72
|
+
/**
|
|
73
|
+
* Main log method
|
|
74
|
+
*/
|
|
75
|
+
private log;
|
|
76
|
+
/**
|
|
77
|
+
* Output log entry
|
|
78
|
+
*/
|
|
79
|
+
private output;
|
|
80
|
+
/**
|
|
81
|
+
* Output to console. When running inside a Craft webview we ALSO mirror
|
|
82
|
+
* the message through `window.craft.bridge.call('log.write', …)` so the
|
|
83
|
+
* native log facility (and tools like `Console.app` / `journalctl`)
|
|
84
|
+
* receives the entry — webview console output is otherwise stuck behind
|
|
85
|
+
* a devtools connection that production users don't have open.
|
|
86
|
+
*/
|
|
87
|
+
private outputConsole;
|
|
88
|
+
/**
|
|
89
|
+
* Output to file
|
|
90
|
+
*/
|
|
91
|
+
private outputFile;
|
|
92
|
+
/**
|
|
93
|
+
* Rotate log file
|
|
94
|
+
*/
|
|
95
|
+
private rotateFile;
|
|
96
|
+
/**
|
|
97
|
+
* Format log entry
|
|
98
|
+
*/
|
|
99
|
+
private format;
|
|
100
|
+
/**
|
|
101
|
+
* Redact sensitive fields. A field is redacted if its name (lowercased)
|
|
102
|
+
* substring-matches one of `config.redact`, OR if its name (untouched)
|
|
103
|
+
* matches one of `config.redactPatterns`. Nested objects recurse.
|
|
104
|
+
*/
|
|
105
|
+
private redactSensitive;
|
|
106
|
+
/**
|
|
107
|
+
* Flush logs to remote endpoint
|
|
108
|
+
*/
|
|
109
|
+
private flushRemote;
|
|
110
|
+
/**
|
|
111
|
+
* Flush and close logger
|
|
112
|
+
*/
|
|
113
|
+
close(): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Set log level
|
|
116
|
+
*/
|
|
117
|
+
setLevel(level: LogLevel): void;
|
|
118
|
+
/**
|
|
119
|
+
* Get current log level
|
|
120
|
+
*/
|
|
121
|
+
getLevel(): LogLevel;
|
|
122
|
+
}
|
|
123
|
+
export declare const enrichers: {
|
|
124
|
+
/**
|
|
125
|
+
* Add process info
|
|
126
|
+
*/
|
|
127
|
+
processInfo: (entry: LogEntry) => LogEntry;
|
|
128
|
+
/**
|
|
129
|
+
* Add hostname
|
|
130
|
+
*/
|
|
131
|
+
hostname: (entry: LogEntry) => LogEntry;
|
|
132
|
+
/**
|
|
133
|
+
* Add environment
|
|
134
|
+
*/
|
|
135
|
+
environment: (entry: LogEntry) => LogEntry;
|
|
136
|
+
/**
|
|
137
|
+
* Add request ID (for HTTP contexts)
|
|
138
|
+
*/
|
|
139
|
+
requestId: (getId: () => string | undefined) => (entry: LogEntry) => LogEntry;
|
|
140
|
+
};
|
|
141
|
+
export declare function getLogger(config?: LoggerConfig): Logger;
|
|
142
|
+
export declare function setDefaultLogger(logger: Logger): void;
|
|
143
|
+
export declare const log: {
|
|
144
|
+
trace: (message: string, context?: Record<string, unknown>) => void;
|
|
145
|
+
debug: (message: string, context?: Record<string, unknown>) => void;
|
|
146
|
+
info: (message: string, context?: Record<string, unknown>) => void;
|
|
147
|
+
warn: (message: string, context?: Record<string, unknown>) => void;
|
|
148
|
+
error: (message: string, context?: Record<string, unknown>) => void;
|
|
149
|
+
fatal: (message: string, context?: Record<string, unknown>) => void;
|
|
150
|
+
};
|
|
151
|
+
export default Logger;
|
|
152
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework-Specific Optimizations
|
|
3
|
+
*
|
|
4
|
+
* Performance optimizations for React, Vue, and Svelte.
|
|
5
|
+
* These utilities are framework-agnostic at the core level
|
|
6
|
+
* and integrate with specific frameworks when available.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for React-specific optimizations
|
|
10
|
+
*/
|
|
11
|
+
export interface ReactOptimizationConfig {
|
|
12
|
+
/** Enable React DevTools in development */
|
|
13
|
+
enableDevTools?: boolean;
|
|
14
|
+
/** Enable React Profiler */
|
|
15
|
+
enableProfiler?: boolean;
|
|
16
|
+
/** Enable strict mode warnings */
|
|
17
|
+
strictMode?: boolean;
|
|
18
|
+
/** Enable concurrent features */
|
|
19
|
+
concurrent?: boolean;
|
|
20
|
+
/** Lazy loading chunk size limit in KB */
|
|
21
|
+
lazyChunkLimit?: number;
|
|
22
|
+
/** Enable automatic batching */
|
|
23
|
+
autoBatching?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* React optimization utilities
|
|
27
|
+
*
|
|
28
|
+
* Note: These functions require React to be installed in your project.
|
|
29
|
+
* They gracefully handle cases where React is not available.
|
|
30
|
+
*/
|
|
31
|
+
export declare const reactOptimizations: {
|
|
32
|
+
/**
|
|
33
|
+
* Configure React for production
|
|
34
|
+
*/
|
|
35
|
+
configureProduction(config?: ReactOptimizationConfig): void;
|
|
36
|
+
/**
|
|
37
|
+
* Create a lazy component factory function
|
|
38
|
+
* Returns a function that creates lazy components when React is available
|
|
39
|
+
*/
|
|
40
|
+
createLazyFactory(): <T>(factory: () => Promise<{
|
|
41
|
+
default: T;
|
|
42
|
+
}>, options?: {
|
|
43
|
+
preload?: boolean;
|
|
44
|
+
}) => {
|
|
45
|
+
load: () => Promise<void>;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Create a debounce hook factory
|
|
49
|
+
*/
|
|
50
|
+
createDebouncedValueHook<T>(delay: number): (value: T) => T;
|
|
51
|
+
/**
|
|
52
|
+
* Create a throttle function
|
|
53
|
+
*/
|
|
54
|
+
createThrottle<T extends (...args: any[]) => any>(fn: T, delay: number): T;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Configuration for Vue-specific optimizations
|
|
58
|
+
*/
|
|
59
|
+
export interface VueOptimizationConfig {
|
|
60
|
+
/** Enable Vue DevTools in development */
|
|
61
|
+
enableDevTools?: boolean;
|
|
62
|
+
/** Enable performance tracing */
|
|
63
|
+
performance?: boolean;
|
|
64
|
+
/** Custom error handler */
|
|
65
|
+
errorHandler?: (err: Error, vm: any, info: string) => void;
|
|
66
|
+
/** Custom warn handler */
|
|
67
|
+
warnHandler?: (msg: string, vm: any, trace: string) => void;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Vue optimization utilities
|
|
71
|
+
*
|
|
72
|
+
* Note: These functions require Vue to be installed in your project.
|
|
73
|
+
*/
|
|
74
|
+
export declare const vueOptimizations: {
|
|
75
|
+
/**
|
|
76
|
+
* Configure Vue app for production
|
|
77
|
+
*/
|
|
78
|
+
configureProduction(app: any, config?: VueOptimizationConfig): void;
|
|
79
|
+
/**
|
|
80
|
+
* Create an async component loader configuration
|
|
81
|
+
*/
|
|
82
|
+
createAsyncConfig(options?: {
|
|
83
|
+
delay?: number;
|
|
84
|
+
timeout?: number;
|
|
85
|
+
retries?: number;
|
|
86
|
+
}): {
|
|
87
|
+
delay: number;
|
|
88
|
+
timeout: number;
|
|
89
|
+
onError: (error: Error, retry: () => void, fail: () => void, attempts: number) => void;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Create a cached computed factory.
|
|
93
|
+
*
|
|
94
|
+
* - `maxAge`: discard entries older than `maxAge` ms (0 = forever).
|
|
95
|
+
* - `maxEntries`: hard cap on the number of cached entries (default
|
|
96
|
+
* 1000). Once exceeded, the least-recently-used entry is evicted.
|
|
97
|
+
* This prevents the unbounded growth that the previous version
|
|
98
|
+
* exhibited — calling `get(uniqueKey, …)` in a loop with `maxAge=0`
|
|
99
|
+
* would leak indefinitely.
|
|
100
|
+
*
|
|
101
|
+
* LRU is implemented via the `Map` insertion-order property: on hit,
|
|
102
|
+
* we re-insert the entry to move it to the tail; on insert, the head
|
|
103
|
+
* (`cache.keys().next().value`) is the LRU.
|
|
104
|
+
*/
|
|
105
|
+
createCacheFactory<T>(options?: {
|
|
106
|
+
maxAge?: number;
|
|
107
|
+
maxEntries?: number;
|
|
108
|
+
}): {
|
|
109
|
+
cache: Map<string, {
|
|
110
|
+
value: T;
|
|
111
|
+
timestamp: number;
|
|
112
|
+
}>;
|
|
113
|
+
get: (key: string, getter: () => T) => T;
|
|
114
|
+
invalidate: (key?: string) => void;
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Configuration for Svelte-specific optimizations
|
|
119
|
+
*/
|
|
120
|
+
export interface SvelteOptimizationConfig {
|
|
121
|
+
/** Enable dev mode */
|
|
122
|
+
dev?: boolean;
|
|
123
|
+
/** Enable CSS optimization */
|
|
124
|
+
cssOptimization?: boolean;
|
|
125
|
+
/** Hydration strategy */
|
|
126
|
+
hydration?: 'full' | 'partial' | 'none';
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Svelte optimization utilities
|
|
130
|
+
*
|
|
131
|
+
* Note: These functions require Svelte to be installed in your project.
|
|
132
|
+
*/
|
|
133
|
+
export declare const svelteOptimizations: {
|
|
134
|
+
/**
|
|
135
|
+
* Create a memoization wrapper for derived values
|
|
136
|
+
*/
|
|
137
|
+
createMemoizer<T, U>(fn: (value: T) => U, isEqual?: (a: U, b: U) => boolean): (value: T) => U;
|
|
138
|
+
/**
|
|
139
|
+
* Create a debounced setter
|
|
140
|
+
*/
|
|
141
|
+
createDebouncedSetter<T>(delay?: number): {
|
|
142
|
+
set: (value: T, callback: (value: T) => void) => void;
|
|
143
|
+
cancel: () => void;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Create a throttled setter
|
|
147
|
+
*/
|
|
148
|
+
createThrottledSetter<T>(delay?: number): {
|
|
149
|
+
set: (value: T, callback: (value: T) => void) => void;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Create an intersection observer action config
|
|
153
|
+
*/
|
|
154
|
+
createLazyActionConfig(options?: {
|
|
155
|
+
threshold?: number;
|
|
156
|
+
rootMargin?: string;
|
|
157
|
+
}): IntersectionObserverInit;
|
|
158
|
+
/**
|
|
159
|
+
* Create transition configuration with hardware acceleration hints
|
|
160
|
+
*/
|
|
161
|
+
createAcceleratedTransitionConfig(type: "fade" | "slide" | "scale", options?: {
|
|
162
|
+
duration?: number;
|
|
163
|
+
easing?: string;
|
|
164
|
+
}): {
|
|
165
|
+
type: string;
|
|
166
|
+
duration: number;
|
|
167
|
+
easing: string;
|
|
168
|
+
willChange: string;
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* Common optimization utilities for all frameworks
|
|
173
|
+
*/
|
|
174
|
+
export declare const commonOptimizations: {
|
|
175
|
+
/**
|
|
176
|
+
* Defer non-critical JavaScript execution
|
|
177
|
+
*/
|
|
178
|
+
defer(fn: () => void): void;
|
|
179
|
+
/**
|
|
180
|
+
* Preload critical resources
|
|
181
|
+
*/
|
|
182
|
+
preload(urls: string[], type: "script" | "style" | "image" | "font"): void;
|
|
183
|
+
/**
|
|
184
|
+
* Prefetch resources for future navigation
|
|
185
|
+
*/
|
|
186
|
+
prefetch(urls: string[]): void;
|
|
187
|
+
/**
|
|
188
|
+
* Create an intersection observer for lazy loading
|
|
189
|
+
*/
|
|
190
|
+
createLazyLoader(callback: (entry: IntersectionObserverEntry) => void, options?: IntersectionObserverInit): IntersectionObserver | null;
|
|
191
|
+
/**
|
|
192
|
+
* Measure component render time
|
|
193
|
+
*/
|
|
194
|
+
measureRender(name: string): {
|
|
195
|
+
start: () => void;
|
|
196
|
+
end: () => void;
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* Create a memoized function
|
|
200
|
+
*/
|
|
201
|
+
memoize<T extends (...args: any[]) => any>(fn: T, options?: {
|
|
202
|
+
maxSize?: number;
|
|
203
|
+
ttl?: number;
|
|
204
|
+
}): T;
|
|
205
|
+
/**
|
|
206
|
+
* Batch DOM updates using requestAnimationFrame
|
|
207
|
+
*/
|
|
208
|
+
batchDOMUpdates(updates: Array<() => void>): void;
|
|
209
|
+
/**
|
|
210
|
+
* Create a debounce function
|
|
211
|
+
*/
|
|
212
|
+
debounce<T extends (...args: any[]) => any>(fn: T, delay: number): T & {
|
|
213
|
+
cancel: () => void;
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Create a throttle function
|
|
217
|
+
*/
|
|
218
|
+
throttle<T extends (...args: any[]) => any>(fn: T, delay: number): T;
|
|
219
|
+
/**
|
|
220
|
+
* Detect if running in a low-power mode or reduced motion preference
|
|
221
|
+
*/
|
|
222
|
+
detectReducedMotion(): boolean;
|
|
223
|
+
/**
|
|
224
|
+
* Detect if running on a low-end device
|
|
225
|
+
*/
|
|
226
|
+
detectLowEndDevice(): boolean;
|
|
227
|
+
/**
|
|
228
|
+
* Create an adaptive quality level based on device capabilities
|
|
229
|
+
*/
|
|
230
|
+
getAdaptiveQuality(): "low" | "medium" | "high";
|
|
231
|
+
};
|
|
232
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/optimizations/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Craft Packaging API
|
|
3
|
+
*
|
|
4
|
+
* Enables users to create installers for their Craft applications
|
|
5
|
+
* across all platforms (macOS, Windows, Linux)
|
|
6
|
+
*/
|
|
7
|
+
export interface PackageConfig {
|
|
8
|
+
/** Application name */
|
|
9
|
+
name: string;
|
|
10
|
+
/** Application version (semver) */
|
|
11
|
+
version: string;
|
|
12
|
+
/** Application description */
|
|
13
|
+
description?: string;
|
|
14
|
+
/** Author/Maintainer */
|
|
15
|
+
author?: string;
|
|
16
|
+
/** Homepage URL */
|
|
17
|
+
homepage?: string;
|
|
18
|
+
/** Path to application binary */
|
|
19
|
+
binaryPath: string;
|
|
20
|
+
/** Path to application icon (platform-specific formats) */
|
|
21
|
+
iconPath?: string;
|
|
22
|
+
/** Output directory for installers */
|
|
23
|
+
outDir?: string;
|
|
24
|
+
/** Bundle identifier (macOS/iOS) */
|
|
25
|
+
bundleId?: string;
|
|
26
|
+
/** Platforms to build for */
|
|
27
|
+
platforms?: Array<'macos' | 'windows' | 'linux'>;
|
|
28
|
+
/** macOS-specific options */
|
|
29
|
+
macos?: {
|
|
30
|
+
/** Create DMG installer */
|
|
31
|
+
dmg?: boolean;
|
|
32
|
+
/** Create PKG installer */
|
|
33
|
+
pkg?: boolean;
|
|
34
|
+
/** Code signing identity */
|
|
35
|
+
signIdentity?: string;
|
|
36
|
+
/** Notarize the app */
|
|
37
|
+
notarize?: boolean;
|
|
38
|
+
/** Apple ID for notarization */
|
|
39
|
+
appleId?: string;
|
|
40
|
+
/** App-specific password */
|
|
41
|
+
applePassword?: string;
|
|
42
|
+
};
|
|
43
|
+
/** Windows-specific options */
|
|
44
|
+
windows?: {
|
|
45
|
+
/** Create MSI installer */
|
|
46
|
+
msi?: boolean;
|
|
47
|
+
/** Create ZIP archive */
|
|
48
|
+
zip?: boolean;
|
|
49
|
+
/** Code signing certificate */
|
|
50
|
+
certificatePath?: string;
|
|
51
|
+
/** Certificate password */
|
|
52
|
+
certificatePassword?: string;
|
|
53
|
+
};
|
|
54
|
+
/** Linux-specific options */
|
|
55
|
+
linux?: {
|
|
56
|
+
/** Create DEB package */
|
|
57
|
+
deb?: boolean;
|
|
58
|
+
/** Create RPM package */
|
|
59
|
+
rpm?: boolean;
|
|
60
|
+
/** Create AppImage */
|
|
61
|
+
appImage?: boolean;
|
|
62
|
+
/** Desktop categories */
|
|
63
|
+
categories?: string[];
|
|
64
|
+
/** Dependencies (Debian) */
|
|
65
|
+
debDependencies?: string[];
|
|
66
|
+
/** Dependencies (RPM) */
|
|
67
|
+
rpmDependencies?: string[];
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export interface PackageResult {
|
|
71
|
+
success: boolean;
|
|
72
|
+
platform: string;
|
|
73
|
+
format: string;
|
|
74
|
+
outputPath?: string;
|
|
75
|
+
error?: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Package a Craft application for distribution
|
|
79
|
+
*/
|
|
80
|
+
export declare function packageApp(config: PackageConfig): Promise<PackageResult[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Simple packaging function for quick use
|
|
83
|
+
*/
|
|
84
|
+
export declare function pack(options: {
|
|
85
|
+
name: string;
|
|
86
|
+
version: string;
|
|
87
|
+
binaryPath: string;
|
|
88
|
+
outDir?: string;
|
|
89
|
+
}): Promise<PackageResult[]>;
|
|
90
|
+
//# sourceMappingURL=package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgCH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IAEZ,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAA;IAEf,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAA;IAElB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,CAAA;IAEhD,6BAA6B;IAC7B,KAAK,CAAC,EAAE;QACN,2BAA2B;QAC3B,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,2BAA2B;QAC3B,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,4BAA4B;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAA;QAErB,uBAAuB;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAElB,gCAAgC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAA;QAEhB,4BAA4B;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,CAAA;IAED,+BAA+B;IAC/B,OAAO,CAAC,EAAE;QACR,2BAA2B;QAC3B,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,yBAAyB;QACzB,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,+BAA+B;QAC/B,eAAe,CAAC,EAAE,MAAM,CAAA;QAExB,2BAA2B;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAC7B,CAAA;IAED,6BAA6B;IAC7B,KAAK,CAAC,EAAE;QACN,yBAAyB;QACzB,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,yBAAyB;QACzB,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,sBAAsB;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAElB,yBAAyB;QACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;QAErB,4BAA4B;QAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;QAE1B,yBAAyB;QACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAC3B,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAiChF;AA2sBD;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAK3B"}
|