@absolutejs/absolute 0.20.0-beta.4 → 0.20.0-beta.41
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/README.md +203 -0
- package/dist/angular/browser.js +15 -1
- package/dist/angular/browser.js.map +3 -3
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js +361 -30
- package/dist/angular/index.js.map +9 -6
- package/dist/angular/server.js +361 -30
- package/dist/angular/server.js.map +9 -6
- package/dist/build.js +2097 -1114
- package/dist/build.js.map +20 -16
- package/dist/cli/config/server.js +4 -0
- package/dist/cli/index.js +6986 -1561
- package/dist/dev/client/cssUtils.ts +16 -2
- package/dist/dev/client/handlers/rebuild.ts +11 -1
- package/dist/dev/client/hmrClient.ts +35 -3
- package/dist/dev/client/hmrTiming.ts +20 -7
- package/dist/dev/client/syncDevtools.ts +237 -0
- package/dist/dev/serverBootstrap.js +28 -0
- package/dist/index.js +2947 -1670
- package/dist/index.js.map +37 -31
- package/dist/mobile/browser.js +123 -1
- package/dist/mobile/browser.js.map +6 -4
- package/dist/mobile/index.js +4579 -375
- package/dist/mobile/index.js.map +39 -18
- package/dist/mobile/remoteMacAgentEntry.js +14 -14
- package/dist/mobile/shellAuth.js +36 -0
- package/dist/mobile/shellBootstrap.js +837 -0
- package/dist/mobile/shellExpoDevices.js +99 -0
- package/dist/mobile/shellSync.js +173 -0
- package/dist/react/index.js +5 -1
- package/dist/react/index.js.map +3 -3
- package/dist/react/server.js +5 -1
- package/dist/react/server.js.map +3 -3
- package/dist/src/angular/pageHandler.d.ts +3 -0
- package/dist/src/build/pwa.d.ts +16 -0
- package/dist/src/cli/config/server.d.ts +1 -1
- package/dist/src/cli/instanceStatus.d.ts +1 -0
- package/dist/src/cli/scripts/dev.d.ts +2 -0
- package/dist/src/core/devBuild.d.ts +1 -0
- package/dist/src/core/pageHandlers.d.ts +11 -2
- package/dist/src/core/prepare.d.ts +376 -0
- package/dist/src/dev/clientManager.d.ts +1 -0
- package/dist/src/dev/devCert.d.ts +6 -4
- package/dist/src/dev/serverEntryCopies.d.ts +3 -0
- package/dist/src/mobile/androidEmulatorController.d.ts +14 -2
- package/dist/src/mobile/androidRelease.d.ts +6 -0
- package/dist/src/mobile/androidTestReport.d.ts +14 -0
- package/dist/src/mobile/androidUpgradeConformance.d.ts +47 -0
- package/dist/src/mobile/androidWebView.d.ts +1 -0
- package/dist/src/mobile/browser.d.ts +1 -0
- package/dist/src/mobile/buildPipeline.d.ts +1 -0
- package/dist/src/mobile/capacitorBundle.d.ts +22 -1
- package/dist/src/mobile/ciWorkflow.d.ts +26 -0
- package/dist/src/mobile/client.d.ts +4 -0
- package/dist/src/mobile/config.d.ts +4 -1
- package/dist/src/mobile/devDeviceAdapter.d.ts +3 -0
- package/dist/src/mobile/deviceCapabilities.d.ts +46 -0
- package/dist/src/mobile/expoBridge.d.ts +91 -0
- package/dist/src/mobile/expoDevController.d.ts +49 -0
- package/dist/src/mobile/expoProject.d.ts +16 -0
- package/dist/src/mobile/index.d.ts +14 -0
- package/dist/src/mobile/iosDeviceAcceptance.d.ts +32 -0
- package/dist/src/mobile/iosPhysicalDeviceTransport.d.ts +16 -0
- package/dist/src/mobile/iosRelease.d.ts +4 -1
- package/dist/src/mobile/iosSimulatorController.d.ts +20 -2
- package/dist/src/mobile/iosTestReport.d.ts +24 -0
- package/dist/src/mobile/mobileBundleInspection.d.ts +55 -0
- package/dist/src/mobile/mobileInspect.d.ts +136 -0
- package/dist/src/mobile/mobilePreview.d.ts +174 -0
- package/dist/src/mobile/mobilePreviewClient.d.ts +1 -0
- package/dist/src/mobile/nativeAuth.d.ts +17 -0
- package/dist/src/mobile/nativeBackgroundSync.d.ts +4 -0
- package/dist/src/mobile/nativeDeviceCapabilities.d.ts +6 -0
- package/dist/src/mobile/nativeTestReport.d.ts +91 -0
- package/dist/src/mobile/releaseArtifact.d.ts +2 -0
- package/dist/src/mobile/releaseDoctor.d.ts +23 -1
- package/dist/src/mobile/remoteMacProtocol.d.ts +11 -0
- package/dist/src/mobile/shellAuth.d.ts +15 -0
- package/dist/src/mobile/shellBootstrap.d.ts +23 -1
- package/dist/src/mobile/shellExpoDevices.d.ts +3 -0
- package/dist/src/mobile/shellHttp.d.ts +2 -0
- package/dist/src/mobile/shellPush.d.ts +11 -0
- package/dist/src/mobile/shellSync.d.ts +47 -0
- package/dist/src/mobile/staticDocument.d.ts +5 -0
- package/dist/src/mobile/syncRemediation.d.ts +10 -0
- package/dist/src/mobile/syncSchema.d.ts +9 -0
- package/dist/src/mobile/transport.d.ts +16 -1
- package/dist/src/plugins/hmr.d.ts +3 -0
- package/dist/src/plugins/imageOptimizer.d.ts +1 -1
- package/dist/src/react/hooks/useMediaQuery.d.ts +1 -1
- package/dist/src/svelte/pageHandler.d.ts +3 -0
- package/dist/src/utils/imageProcessing.d.ts +3 -0
- package/dist/src/utils/loadConfig.d.ts +1 -0
- package/dist/src/utils/logger.d.ts +1 -0
- package/dist/src/utils/startupBanner.d.ts +1 -0
- package/dist/src/utils/userAgentFunctions.d.ts +1 -1
- package/dist/src/vue/pageHandler.d.ts +3 -0
- package/dist/svelte/index.js +316 -23
- package/dist/svelte/index.js.map +8 -5
- package/dist/svelte/server.js +311 -18
- package/dist/svelte/server.js.map +8 -5
- package/dist/types/build.d.ts +50 -3
- package/dist/types/cli.d.ts +1 -0
- package/dist/types/messages.d.ts +1 -1
- package/dist/vue/index.js +316 -23
- package/dist/vue/index.js.map +8 -5
- package/dist/vue/server.js +311 -18
- package/dist/vue/server.js.map +8 -5
- package/package.json +41 -11
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { Elysia } from 'elysia';
|
|
2
|
+
import type { MobileConfig } from '../../types/build';
|
|
3
|
+
export declare const ABSOLUTE_MOBILE_PREVIEW_PATH: "/__absolute/mobile-preview";
|
|
4
|
+
export declare const absoluteMobilePreviewDocument: (mobile: MobileConfig) => string;
|
|
5
|
+
export declare const createAbsoluteMobilePreviewPlugin: (mobile: MobileConfig | undefined) => Elysia<"", "local", import("elysia/types").DefaultSingleton, {
|
|
6
|
+
typebox: {};
|
|
7
|
+
error: [];
|
|
8
|
+
}, import("elysia/types").DefaultMetadata, {}, import("elysia/types").DefaultEphemeral, import("elysia/types").DefaultEphemeral> | import("elysia/types").AddRoute<"", "local", import("elysia/types").DefaultSingleton, {
|
|
9
|
+
typebox: {};
|
|
10
|
+
error: [];
|
|
11
|
+
}, import("elysia/types").DefaultMetadata, {
|
|
12
|
+
__absolute: {
|
|
13
|
+
"mobile-preview": {
|
|
14
|
+
get: {
|
|
15
|
+
body: unknown;
|
|
16
|
+
params: {};
|
|
17
|
+
query: unknown;
|
|
18
|
+
headers: unknown;
|
|
19
|
+
response: {
|
|
20
|
+
200: Response;
|
|
21
|
+
};
|
|
22
|
+
error: never;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
}, import("elysia/types").DefaultEphemeral, import("elysia/types").DefaultEphemeral, "post", "/__absolute/mobile-preview-telemetry", import("elysia/types").IntersectIfObjectSchema<import("elysia").UnwrapRoute<{}, {}, "/__absolute/mobile-preview-telemetry">, import("elysia/types").MergeScopedSchemas<{}, {}, {}>>, {}, ({ body, status }: {
|
|
27
|
+
body: unknown;
|
|
28
|
+
query: Record<string, string | undefined>;
|
|
29
|
+
params: {};
|
|
30
|
+
headers: Record<string, string | undefined>;
|
|
31
|
+
cookie: Record<string, import("elysia").Cookie<unknown>>;
|
|
32
|
+
server: import("elysia").Server | null;
|
|
33
|
+
redirect: import("elysia").redirect;
|
|
34
|
+
set: {
|
|
35
|
+
headers: import("elysia").HTTPHeaders;
|
|
36
|
+
status?: number | keyof import("elysia").StatusMap;
|
|
37
|
+
cookie?: Record<string, import("elysia").BaseCookie>;
|
|
38
|
+
};
|
|
39
|
+
status: <const Code extends number | keyof import("elysia").StatusMap, const T = Code extends 500 | 100 | 200 | 400 | 404 | 300 | 304 | 426 | 204 | 101 | 102 | 103 | 201 | 202 | 203 | 205 | 206 | 207 | 208 | 301 | 302 | 303 | 307 | 308 | 401 | 402 | 403 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 428 | 429 | 431 | 451 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
|
|
40
|
+
readonly 100: "Continue";
|
|
41
|
+
readonly 101: "Switching Protocols";
|
|
42
|
+
readonly 102: "Processing";
|
|
43
|
+
readonly 103: "Early Hints";
|
|
44
|
+
readonly 200: "OK";
|
|
45
|
+
readonly 201: "Created";
|
|
46
|
+
readonly 202: "Accepted";
|
|
47
|
+
readonly 203: "Non-Authoritative Information";
|
|
48
|
+
readonly 204: "No Content";
|
|
49
|
+
readonly 205: "Reset Content";
|
|
50
|
+
readonly 206: "Partial Content";
|
|
51
|
+
readonly 207: "Multi-Status";
|
|
52
|
+
readonly 208: "Already Reported";
|
|
53
|
+
readonly 300: "Multiple Choices";
|
|
54
|
+
readonly 301: "Moved Permanently";
|
|
55
|
+
readonly 302: "Found";
|
|
56
|
+
readonly 303: "See Other";
|
|
57
|
+
readonly 304: "Not Modified";
|
|
58
|
+
readonly 307: "Temporary Redirect";
|
|
59
|
+
readonly 308: "Permanent Redirect";
|
|
60
|
+
readonly 400: "Bad Request";
|
|
61
|
+
readonly 401: "Unauthorized";
|
|
62
|
+
readonly 402: "Payment Required";
|
|
63
|
+
readonly 403: "Forbidden";
|
|
64
|
+
readonly 404: "Not Found";
|
|
65
|
+
readonly 405: "Method Not Allowed";
|
|
66
|
+
readonly 406: "Not Acceptable";
|
|
67
|
+
readonly 407: "Proxy Authentication Required";
|
|
68
|
+
readonly 408: "Request Timeout";
|
|
69
|
+
readonly 409: "Conflict";
|
|
70
|
+
readonly 410: "Gone";
|
|
71
|
+
readonly 411: "Length Required";
|
|
72
|
+
readonly 412: "Precondition Failed";
|
|
73
|
+
readonly 413: "Payload Too Large";
|
|
74
|
+
readonly 414: "URI Too Long";
|
|
75
|
+
readonly 415: "Unsupported Media Type";
|
|
76
|
+
readonly 416: "Range Not Satisfiable";
|
|
77
|
+
readonly 417: "Expectation Failed";
|
|
78
|
+
readonly 418: "I'm a teapot";
|
|
79
|
+
readonly 420: "Enhance Your Calm";
|
|
80
|
+
readonly 421: "Misdirected Request";
|
|
81
|
+
readonly 422: "Unprocessable Content";
|
|
82
|
+
readonly 423: "Locked";
|
|
83
|
+
readonly 424: "Failed Dependency";
|
|
84
|
+
readonly 425: "Too Early";
|
|
85
|
+
readonly 426: "Upgrade Required";
|
|
86
|
+
readonly 428: "Precondition Required";
|
|
87
|
+
readonly 429: "Too Many Requests";
|
|
88
|
+
readonly 431: "Request Header Fields Too Large";
|
|
89
|
+
readonly 451: "Unavailable For Legal Reasons";
|
|
90
|
+
readonly 500: "Internal Server Error";
|
|
91
|
+
readonly 501: "Not Implemented";
|
|
92
|
+
readonly 502: "Bad Gateway";
|
|
93
|
+
readonly 503: "Service Unavailable";
|
|
94
|
+
readonly 504: "Gateway Timeout";
|
|
95
|
+
readonly 505: "HTTP Version Not Supported";
|
|
96
|
+
readonly 506: "Variant Also Negotiates";
|
|
97
|
+
readonly 507: "Insufficient Storage";
|
|
98
|
+
readonly 508: "Loop Detected";
|
|
99
|
+
readonly 510: "Not Extended";
|
|
100
|
+
readonly 511: "Network Authentication Required";
|
|
101
|
+
}[Code] : Code>(code: Code, response?: T) => import("elysia").ElysiaStatus<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
|
|
102
|
+
readonly Continue: 100;
|
|
103
|
+
readonly "Switching Protocols": 101;
|
|
104
|
+
readonly Processing: 102;
|
|
105
|
+
readonly "Early Hints": 103;
|
|
106
|
+
readonly OK: 200;
|
|
107
|
+
readonly Created: 201;
|
|
108
|
+
readonly Accepted: 202;
|
|
109
|
+
readonly "Non-Authoritative Information": 203;
|
|
110
|
+
readonly "No Content": 204;
|
|
111
|
+
readonly "Reset Content": 205;
|
|
112
|
+
readonly "Partial Content": 206;
|
|
113
|
+
readonly "Multi-Status": 207;
|
|
114
|
+
readonly "Already Reported": 208;
|
|
115
|
+
readonly "Multiple Choices": 300;
|
|
116
|
+
readonly "Moved Permanently": 301;
|
|
117
|
+
readonly Found: 302;
|
|
118
|
+
readonly "See Other": 303;
|
|
119
|
+
readonly "Not Modified": 304;
|
|
120
|
+
readonly "Temporary Redirect": 307;
|
|
121
|
+
readonly "Permanent Redirect": 308;
|
|
122
|
+
readonly "Bad Request": 400;
|
|
123
|
+
readonly Unauthorized: 401;
|
|
124
|
+
readonly "Payment Required": 402;
|
|
125
|
+
readonly Forbidden: 403;
|
|
126
|
+
readonly "Not Found": 404;
|
|
127
|
+
readonly "Method Not Allowed": 405;
|
|
128
|
+
readonly "Not Acceptable": 406;
|
|
129
|
+
readonly "Proxy Authentication Required": 407;
|
|
130
|
+
readonly "Request Timeout": 408;
|
|
131
|
+
readonly Conflict: 409;
|
|
132
|
+
readonly Gone: 410;
|
|
133
|
+
readonly "Length Required": 411;
|
|
134
|
+
readonly "Precondition Failed": 412;
|
|
135
|
+
readonly "Payload Too Large": 413;
|
|
136
|
+
readonly "URI Too Long": 414;
|
|
137
|
+
readonly "Unsupported Media Type": 415;
|
|
138
|
+
readonly "Range Not Satisfiable": 416;
|
|
139
|
+
readonly "Expectation Failed": 417;
|
|
140
|
+
readonly "I'm a teapot": 418;
|
|
141
|
+
readonly "Enhance Your Calm": 420;
|
|
142
|
+
readonly "Misdirected Request": 421;
|
|
143
|
+
readonly "Unprocessable Content": 422;
|
|
144
|
+
readonly Locked: 423;
|
|
145
|
+
readonly "Failed Dependency": 424;
|
|
146
|
+
readonly "Too Early": 425;
|
|
147
|
+
readonly "Upgrade Required": 426;
|
|
148
|
+
readonly "Precondition Required": 428;
|
|
149
|
+
readonly "Too Many Requests": 429;
|
|
150
|
+
readonly "Request Header Fields Too Large": 431;
|
|
151
|
+
readonly "Unavailable For Legal Reasons": 451;
|
|
152
|
+
readonly "Internal Server Error": 500;
|
|
153
|
+
readonly "Not Implemented": 501;
|
|
154
|
+
readonly "Bad Gateway": 502;
|
|
155
|
+
readonly "Service Unavailable": 503;
|
|
156
|
+
readonly "Gateway Timeout": 504;
|
|
157
|
+
readonly "HTTP Version Not Supported": 505;
|
|
158
|
+
readonly "Variant Also Negotiates": 506;
|
|
159
|
+
readonly "Insufficient Storage": 507;
|
|
160
|
+
readonly "Loop Detected": 508;
|
|
161
|
+
readonly "Not Extended": 510;
|
|
162
|
+
readonly "Network Authentication Required": 511;
|
|
163
|
+
}[Code] : Code>;
|
|
164
|
+
defer: (fn: import("elysia/types").AfterResponseHandler<NoInfer<import("elysia/types").IntersectIfObjectSchema<import("elysia").UnwrapRoute<{}, {}, "/__absolute/mobile-preview-telemetry">, import("elysia/types").MergeScopedSchemas<{}, {}, {}>>>, NoInfer<import("elysia/types").DefaultSingleton & {
|
|
165
|
+
derive: {};
|
|
166
|
+
}>>) => import("elysia/types").MaybePromise<void>;
|
|
167
|
+
readonly path: string;
|
|
168
|
+
route?: string | undefined;
|
|
169
|
+
rid?: string | undefined;
|
|
170
|
+
request: Request;
|
|
171
|
+
store: {};
|
|
172
|
+
}) => import("elysia").ElysiaStatus<400, {
|
|
173
|
+
readonly error: "invalid-preview-telemetry";
|
|
174
|
+
}, 400> | import("elysia").ElysiaStatus<204, "No Content", 204>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const installAbsoluteMobilePreview: () => void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NormalizedAbsoluteMobileConfig } from './config';
|
|
2
|
+
export declare const ABSOLUTE_AUTH_PACKAGE: "@absolutejs/auth";
|
|
3
|
+
export declare const ABSOLUTE_NATIVE_AUTH_CLIENTS_ENV: "ABSOLUTE_AUTH_NATIVE_CLIENTS";
|
|
4
|
+
export declare const ABSOLUTE_NATIVE_AUTH_SCOPES: readonly ["openid", "profile"];
|
|
5
|
+
export declare const ABSOLUTE_SYNC_PACKAGE: "@absolutejs/sync";
|
|
6
|
+
export type AbsoluteMobileAuthManifest = {
|
|
7
|
+
clientId: string;
|
|
8
|
+
issuer: string;
|
|
9
|
+
redirectUri: string;
|
|
10
|
+
scopes: string[];
|
|
11
|
+
};
|
|
12
|
+
export declare const createAbsoluteMobileAuthManifest: (config: NormalizedAbsoluteMobileConfig) => AbsoluteMobileAuthManifest;
|
|
13
|
+
export declare const installAbsoluteMobileAuthEnvironment: (projectRoot: string, config: NormalizedAbsoluteMobileConfig) => AbsoluteMobileAuthManifest | undefined;
|
|
14
|
+
export declare const projectUsesAbsoluteAuth: (projectRoot: string) => boolean;
|
|
15
|
+
export declare const projectUsesAbsoluteSync: (projectRoot: string) => boolean;
|
|
16
|
+
export declare const resolveAbsoluteMobileAuthManifest: (projectRoot: string, config: NormalizedAbsoluteMobileConfig) => AbsoluteMobileAuthManifest | undefined;
|
|
17
|
+
export declare const serializeAbsoluteMobileAuthEnvironment: (config: NormalizedAbsoluteMobileConfig, auth: AbsoluteMobileAuthManifest | undefined) => string | undefined;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MobilePlatform } from '../../types/build';
|
|
2
|
+
import type { NormalizedAbsoluteMobileConfig } from './config';
|
|
3
|
+
import { type AbsoluteDeviceCapabilityPlan } from './deviceCapabilities';
|
|
4
|
+
export declare const applyAbsoluteNativeDeviceCapabilities: (projectRoot: string, config: NormalizedAbsoluteMobileConfig, platforms?: readonly MobilePlatform[], plan?: AbsoluteDeviceCapabilityPlan) => Promise<{
|
|
5
|
+
changed: MobilePlatform[];
|
|
6
|
+
}>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { AbsoluteAndroidUpgradeConformanceResult } from './androidUpgradeConformance';
|
|
2
|
+
export type AbsoluteNativeReportResult = 'FAIL' | 'NOT_RUN' | 'PASS' | 'SKIPPED';
|
|
3
|
+
export type AbsoluteNativeReportCheck = {
|
|
4
|
+
details: string;
|
|
5
|
+
evidence?: string;
|
|
6
|
+
id: string;
|
|
7
|
+
result: AbsoluteNativeReportResult;
|
|
8
|
+
};
|
|
9
|
+
export type AbsoluteNativeHmrResult = {
|
|
10
|
+
clientMs?: number;
|
|
11
|
+
durationMs: number;
|
|
12
|
+
outcome: 'applied' | 'failed' | 'reloaded';
|
|
13
|
+
serverMs?: number;
|
|
14
|
+
};
|
|
15
|
+
export type AbsoluteNativeSyncMigrationResult = {
|
|
16
|
+
durationMs: number;
|
|
17
|
+
failedAttempt: {
|
|
18
|
+
code: 'INVALID_PLAN' | 'MIGRATION_MISSING' | 'SCHEMA_TOO_NEW' | 'SCHEMA_TOO_OLD' | 'UNKNOWN';
|
|
19
|
+
storedVersion?: number;
|
|
20
|
+
targetVersion?: number;
|
|
21
|
+
};
|
|
22
|
+
outcome: 'fail' | 'pass';
|
|
23
|
+
recovery: {
|
|
24
|
+
storedVersion: number;
|
|
25
|
+
targetVersion: number;
|
|
26
|
+
};
|
|
27
|
+
state: {
|
|
28
|
+
authCredential: boolean;
|
|
29
|
+
pendingOperations: boolean;
|
|
30
|
+
rollbackPreserved: boolean;
|
|
31
|
+
schemaAdvanced: boolean;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export type AbsoluteNativeAutomatedRun = {
|
|
35
|
+
appId: string;
|
|
36
|
+
deviceAcceptance?: {
|
|
37
|
+
https: boolean;
|
|
38
|
+
relaunchMs: number;
|
|
39
|
+
remote: boolean;
|
|
40
|
+
};
|
|
41
|
+
durationMs: number;
|
|
42
|
+
error?: string;
|
|
43
|
+
hmr?: AbsoluteNativeHmrResult;
|
|
44
|
+
hmrConnected: boolean;
|
|
45
|
+
platform: 'android' | 'ios';
|
|
46
|
+
port: number;
|
|
47
|
+
routes?: string[];
|
|
48
|
+
screenshot?: string;
|
|
49
|
+
status: 'fail' | 'pass';
|
|
50
|
+
syncMigration?: AbsoluteNativeSyncMigrationResult;
|
|
51
|
+
targetId: string;
|
|
52
|
+
targetKind: 'device' | 'emulator' | 'simulator';
|
|
53
|
+
upgrade?: AbsoluteAndroidUpgradeConformanceResult;
|
|
54
|
+
};
|
|
55
|
+
export type AbsoluteNativeTestReport = {
|
|
56
|
+
automatedChecks: AbsoluteNativeReportCheck[];
|
|
57
|
+
generatedAt: string;
|
|
58
|
+
manualChecks: AbsoluteNativeReportCheck[];
|
|
59
|
+
metadata: Record<string, string> & {
|
|
60
|
+
absolutejsVersion: string;
|
|
61
|
+
bunVersion: string;
|
|
62
|
+
provider: 'capacitor';
|
|
63
|
+
};
|
|
64
|
+
overallResult: 'FAIL' | 'INCOMPLETE';
|
|
65
|
+
platform: 'android' | 'ios';
|
|
66
|
+
reportVersion: 1;
|
|
67
|
+
run: AbsoluteNativeAutomatedRun;
|
|
68
|
+
};
|
|
69
|
+
export type AbsoluteNativeManualCheckDefinition = readonly [
|
|
70
|
+
id: string,
|
|
71
|
+
details: string
|
|
72
|
+
];
|
|
73
|
+
type CreateAbsoluteNativeTestReportOptions = {
|
|
74
|
+
automatedChecks?: AbsoluteNativeReportCheck[];
|
|
75
|
+
generatedAt?: string;
|
|
76
|
+
manualChecks: readonly AbsoluteNativeManualCheckDefinition[];
|
|
77
|
+
manualCheckResults?: Record<string, AbsoluteNativeReportCheck>;
|
|
78
|
+
metadata: AbsoluteNativeTestReport['metadata'];
|
|
79
|
+
run: AbsoluteNativeAutomatedRun;
|
|
80
|
+
};
|
|
81
|
+
export declare const sanitizeNativeReportText: (value: string) => string;
|
|
82
|
+
export declare const createAbsoluteNativeAutomatedChecks: (run: AbsoluteNativeAutomatedRun) => AbsoluteNativeReportCheck[];
|
|
83
|
+
export declare const createAbsoluteNativeTestReport: (options: CreateAbsoluteNativeTestReportOptions) => AbsoluteNativeTestReport;
|
|
84
|
+
export declare const readPackageVersionForNativeReport: (packageJsonPath: string) => Promise<string>;
|
|
85
|
+
export declare const renderAbsoluteNativeTestReport: (report: AbsoluteNativeTestReport) => string;
|
|
86
|
+
export declare const writeAbsoluteNativeTestReport: (directory: string, report: AbsoluteNativeTestReport) => Promise<{
|
|
87
|
+
directory: string;
|
|
88
|
+
jsonPath: string;
|
|
89
|
+
markdownPath: string;
|
|
90
|
+
}>;
|
|
91
|
+
export {};
|
|
@@ -8,6 +8,8 @@ export type AbsoluteMobileCompatibilityPage = {
|
|
|
8
8
|
framework: AbsoluteMobilePageFramework;
|
|
9
9
|
pageId: string;
|
|
10
10
|
propsSchemaHash: string;
|
|
11
|
+
styleBundleHash?: string;
|
|
12
|
+
styleBundlePath?: string;
|
|
11
13
|
};
|
|
12
14
|
export type AbsoluteMobileCompatibilityRoute = {
|
|
13
15
|
method: 'GET' | 'HEAD';
|
|
@@ -4,10 +4,32 @@ export type AbsoluteMobileReleaseCheck = {
|
|
|
4
4
|
id: string;
|
|
5
5
|
path?: string;
|
|
6
6
|
remediation?: string;
|
|
7
|
-
status: 'fail' | 'pass';
|
|
7
|
+
status: 'fail' | 'pass' | 'warn';
|
|
8
8
|
};
|
|
9
9
|
export type AbsoluteMobileReleaseDoctorResult = {
|
|
10
10
|
checks: AbsoluteMobileReleaseCheck[];
|
|
11
11
|
ready: boolean;
|
|
12
12
|
};
|
|
13
|
+
export declare const ABSOLUTE_MOBILE_COMPLIANCE_REPORT_FORMAT: 1;
|
|
14
|
+
export type AbsoluteMobileComplianceReport = {
|
|
15
|
+
app: {
|
|
16
|
+
appId: string;
|
|
17
|
+
engine: 'capacitor' | 'expo';
|
|
18
|
+
platforms: string[];
|
|
19
|
+
productionOrigin: string;
|
|
20
|
+
};
|
|
21
|
+
checks: Array<{
|
|
22
|
+
id: string;
|
|
23
|
+
status: AbsoluteMobileReleaseCheck['status'];
|
|
24
|
+
}>;
|
|
25
|
+
format: typeof ABSOLUTE_MOBILE_COMPLIANCE_REPORT_FORMAT;
|
|
26
|
+
manualReview: string[];
|
|
27
|
+
ready: boolean;
|
|
28
|
+
summary: {
|
|
29
|
+
failed: number;
|
|
30
|
+
passed: number;
|
|
31
|
+
warnings: number;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export declare const createAbsoluteMobileComplianceReport: (config: NormalizedAbsoluteMobileConfig, result: AbsoluteMobileReleaseDoctorResult) => AbsoluteMobileComplianceReport;
|
|
13
35
|
export declare const inspectAbsoluteMobileRelease: (config: NormalizedAbsoluteMobileConfig, projectRoot: string) => Promise<AbsoluteMobileReleaseDoctorResult>;
|
|
@@ -49,7 +49,9 @@ export type AbsoluteRemoteMacTransport = {
|
|
|
49
49
|
};
|
|
50
50
|
};
|
|
51
51
|
export type AbsoluteRemoteIosOptions = {
|
|
52
|
+
certificateAuthorityPath?: string;
|
|
52
53
|
https?: boolean;
|
|
54
|
+
deviceIdentifier?: string;
|
|
53
55
|
log?: (message: string) => void;
|
|
54
56
|
nativeLog?: (entry: AbsoluteIosNativeLogEntry) => void;
|
|
55
57
|
onPhaseTiming?: (timing: AbsoluteIosDevPhaseTiming) => void;
|
|
@@ -57,6 +59,7 @@ export type AbsoluteRemoteIosOptions = {
|
|
|
57
59
|
port: number;
|
|
58
60
|
project: AbsoluteRemoteIosDevProject;
|
|
59
61
|
signal?: AbortSignal;
|
|
62
|
+
serverHost?: string;
|
|
60
63
|
installAgent?: (project: AbsoluteRemoteIosDevProject) => Promise<{
|
|
61
64
|
remotePath: string;
|
|
62
65
|
uploaded?: boolean;
|
|
@@ -69,6 +72,13 @@ export declare const validateAbsoluteSshDestination: (destination: string) => st
|
|
|
69
72
|
export declare const absoluteRemoteMacSshBase: (profile: Pick<AbsoluteRemoteMacProfile, "destination" | "port">, options?: {
|
|
70
73
|
acceptNew?: boolean;
|
|
71
74
|
}) => string[];
|
|
75
|
+
/** Run a non-interactive command on an already paired Mac.
|
|
76
|
+
*
|
|
77
|
+
* Arguments are quoted independently before crossing SSH. This is intended for
|
|
78
|
+
* small, read-only inspections and lifecycle commands that do not need the
|
|
79
|
+
* long-running remote development agent.
|
|
80
|
+
*/
|
|
81
|
+
export declare const captureAbsoluteRemoteMacCommand: (profile: AbsoluteRemoteMacProfile, command: string[], transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<AbsoluteRemoteMacCommandResult>;
|
|
72
82
|
export declare const getAbsoluteRemoteMacProfile: (name?: string, profilePath?: string) => Promise<AbsoluteRemoteMacProfile | undefined>;
|
|
73
83
|
export declare const inspectAbsoluteRemoteMac: (destination: string, options?: {
|
|
74
84
|
acceptNew?: boolean;
|
|
@@ -80,6 +90,7 @@ export declare const inspectAbsoluteRemoteMac: (destination: string, options?: {
|
|
|
80
90
|
os: string;
|
|
81
91
|
xcodeVersion: string;
|
|
82
92
|
}>;
|
|
93
|
+
export declare const inspectAbsoluteRemoteMacLanHost: (profile: AbsoluteRemoteMacProfile, transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<string>;
|
|
83
94
|
export declare const listAbsoluteRemoteMacProfiles: (profilePath?: string) => Promise<{
|
|
84
95
|
defaultProfile: string | undefined;
|
|
85
96
|
profiles: AbsoluteRemoteMacProfile[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type MobileAuthPrincipal } from '@absolutejs/auth/client/mobile';
|
|
2
|
+
import type { AbsoluteMobileAuthManifest } from './nativeAuth';
|
|
3
|
+
import type { AbsoluteMobileFetch } from './transport';
|
|
4
|
+
export type AbsoluteMobileShellAuth = {
|
|
5
|
+
clientId: string;
|
|
6
|
+
fetch: AbsoluteMobileFetch;
|
|
7
|
+
onPrincipalChange: (listener: (principal: MobileAuthPrincipal | null) => void) => () => void;
|
|
8
|
+
principal: MobileAuthPrincipal | null;
|
|
9
|
+
redirectUri: string;
|
|
10
|
+
issuer: string;
|
|
11
|
+
socketTicket: (audience?: string) => Promise<string>;
|
|
12
|
+
};
|
|
13
|
+
export declare const createAbsoluteMobileShellAuth: (config: AbsoluteMobileAuthManifest, options?: {
|
|
14
|
+
beforeSignOut?: () => Promise<void> | void;
|
|
15
|
+
}) => Promise<AbsoluteMobileShellAuth>;
|
|
@@ -1 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
import { type AbsoluteMobileFetch, type AbsoluteMobileClientManifest } from './transport';
|
|
2
|
+
export type AbsoluteMobileShellAuthRuntime = {
|
|
3
|
+
clientId: string;
|
|
4
|
+
fetch: AbsoluteMobileFetch;
|
|
5
|
+
onPrincipalChange: (listener: (principal: AbsoluteMobileShellPrincipal | null) => void) => () => void;
|
|
6
|
+
principal: AbsoluteMobileShellPrincipal | null;
|
|
7
|
+
redirectUri: string;
|
|
8
|
+
issuer: string;
|
|
9
|
+
socketTicket: (audience?: string) => Promise<string>;
|
|
10
|
+
};
|
|
11
|
+
export type AbsoluteMobileShellPrincipal = {
|
|
12
|
+
namespace: string;
|
|
13
|
+
};
|
|
14
|
+
export type AbsoluteMobileShellOptions = {
|
|
15
|
+
createFetch?: (manifest: AbsoluteMobileClientManifest) => AbsoluteMobileFetch;
|
|
16
|
+
createAuth?: (config: NonNullable<AbsoluteMobileClientManifest['auth']>, options?: {
|
|
17
|
+
beforeSignOut?: () => Promise<void> | void;
|
|
18
|
+
}) => Promise<AbsoluteMobileShellAuthRuntime>;
|
|
19
|
+
beforeSignOut?: () => Promise<void> | void;
|
|
20
|
+
connectPush?: (auth: AbsoluteMobileShellAuthRuntime) => void;
|
|
21
|
+
installSync?: (auth: AbsoluteMobileShellAuthRuntime, config: NonNullable<AbsoluteMobileClientManifest['sync']>) => void | (() => void);
|
|
22
|
+
};
|
|
23
|
+
export declare const startAbsoluteMobileShell: (options?: AbsoluteMobileShellOptions) => Promise<void>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Installs only capabilities implemented by the versioned Expo WebView bridge. */
|
|
2
|
+
export declare const createAbsoluteExpoBridgeFetch: () => (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
3
|
+
export declare const installAbsoluteExpoWebDeviceAdapter: () => () => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { secureStorage, type DevicePushNotificationsCapability } from '@absolutejs/devices';
|
|
2
|
+
import type { CapacitorPushNotificationsOptions } from '@absolutejs/devices-capacitor/push-notifications';
|
|
3
|
+
import type { AbsoluteMobileShellAuthRuntime } from './shellBootstrap';
|
|
4
|
+
export declare const ABSOLUTE_PUSH_ROUTE: "/auth/push";
|
|
5
|
+
export declare const createAbsoluteMobileShellPush: ({ storage }?: {
|
|
6
|
+
storage?: Pick<typeof secureStorage, "get" | "remove" | "set">;
|
|
7
|
+
}) => {
|
|
8
|
+
capabilityOptions: CapacitorPushNotificationsOptions;
|
|
9
|
+
beforeSignOut: () => Promise<void>;
|
|
10
|
+
connect: (nextAuth: AbsoluteMobileShellAuthRuntime, nextCapability: DevicePushNotificationsCapability) => void;
|
|
11
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { configureCapacitorBackgroundSync, type CapacitorSyncLifecycleOptions, type CapacitorSyncLocalStoreOptions } from '@absolutejs/sync-capacitor';
|
|
2
|
+
import type { SyncClientStatus, SyncLocalStore, SyncLocalStoreSchemaStatus } from '@absolutejs/sync/client';
|
|
3
|
+
import type { AbsoluteMobileShellAuthRuntime } from './shellBootstrap';
|
|
4
|
+
import type { AbsoluteMobileClientManifest } from './transport';
|
|
5
|
+
export type AbsoluteMobileShellSyncOptions = {
|
|
6
|
+
createStore?: (options?: CapacitorSyncLocalStoreOptions) => SyncLocalStore;
|
|
7
|
+
installLifecycle?: (options: CapacitorSyncLifecycleOptions) => Promise<() => void>;
|
|
8
|
+
reload?: () => void;
|
|
9
|
+
reportStatus?: (status: SyncClientStatus) => void;
|
|
10
|
+
reportSchemaState?: (state: AbsoluteMobileSyncSchemaState) => void;
|
|
11
|
+
configureBackground?: typeof configureCapacitorBackgroundSync;
|
|
12
|
+
clearBackground?: () => Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
export declare const ABSOLUTE_MOBILE_SYNC_SCHEMA_EVENT = "absolute:sync-schema";
|
|
15
|
+
export declare const ABSOLUTE_MOBILE_SYNC_SCHEMA_STATE_KEY = "absolutejs.mobile.sync.schema-state";
|
|
16
|
+
export declare const ABSOLUTE_MOBILE_SYNC_STATUS_EVENT = "absolute:sync-status";
|
|
17
|
+
export type AbsoluteMobileSyncSchemaFailureCode = 'INVALID_PLAN' | 'MIGRATION_MISSING' | 'SCHEMA_TOO_NEW' | 'SCHEMA_TOO_OLD' | 'UNKNOWN';
|
|
18
|
+
export type AbsoluteMobileSyncSchemaState = {
|
|
19
|
+
state: 'preparing';
|
|
20
|
+
} | SyncLocalStoreSchemaStatus | {
|
|
21
|
+
code: AbsoluteMobileSyncSchemaFailureCode;
|
|
22
|
+
state: 'failed';
|
|
23
|
+
storedVersion?: number;
|
|
24
|
+
targetVersion?: number;
|
|
25
|
+
};
|
|
26
|
+
export declare const readAbsoluteMobileSyncSchemaState: () => SyncLocalStoreSchemaStatus | {
|
|
27
|
+
code: AbsoluteMobileSyncSchemaFailureCode;
|
|
28
|
+
state: "failed";
|
|
29
|
+
storedVersion?: number;
|
|
30
|
+
targetVersion?: number;
|
|
31
|
+
} | {
|
|
32
|
+
state: any;
|
|
33
|
+
minimumCompatibleVersion?: undefined;
|
|
34
|
+
storedVersion?: undefined;
|
|
35
|
+
targetVersion?: undefined;
|
|
36
|
+
} | {
|
|
37
|
+
minimumCompatibleVersion: number;
|
|
38
|
+
state: any;
|
|
39
|
+
storedVersion: number;
|
|
40
|
+
targetVersion: number;
|
|
41
|
+
} | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Provisions unchanged Sync clients with native durability, Auth isolation, and
|
|
44
|
+
* foreground/connectivity reconnects. An identity change reloads the shell so
|
|
45
|
+
* no page-held client can retain the previous account's in-memory rows.
|
|
46
|
+
*/
|
|
47
|
+
export declare const installAbsoluteMobileShellSync: (auth: AbsoluteMobileShellAuthRuntime, config?: NonNullable<AbsoluteMobileClientManifest["sync"]>, options?: AbsoluteMobileShellSyncOptions) => () => void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AbsoluteMobileClientManifest, AbsoluteMobileClientPage } from './transport';
|
|
2
|
+
export declare const hashAbsoluteMobileStaticDocument: (source: string) => Promise<string>;
|
|
3
|
+
export declare const rewriteAbsoluteMobileHtmxRequests: (source: string, productionOrigin: string) => string;
|
|
4
|
+
export declare const sanitizeAbsoluteMobileHtmxFragment: (source: string, productionOrigin: string, parse?: (source: string) => Document) => string;
|
|
5
|
+
export declare const installAbsoluteMobileStaticDocument: (manifest: AbsoluteMobileClientManifest, page: AbsoluteMobileClientPage, localUrl: string) => Promise<void>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type SyncRuntimeInspection } from '@absolutejs/sync/client/runtime';
|
|
2
|
+
export type AbsoluteMobileSyncRemediation = {
|
|
3
|
+
discard: (operationId: string) => Promise<void>;
|
|
4
|
+
inspect: () => Promise<SyncRuntimeInspection>;
|
|
5
|
+
rebase: (operationId: string, args: unknown) => Promise<string>;
|
|
6
|
+
retry: (operationId: string) => Promise<void>;
|
|
7
|
+
};
|
|
8
|
+
/** Install the native shell's framework-neutral, redacted remediation bridge. */
|
|
9
|
+
export declare const getAbsoluteMobileSyncRemediation: () => AbsoluteMobileSyncRemediation | undefined;
|
|
10
|
+
export declare const installAbsoluteMobileSyncRemediation: (bridge?: AbsoluteMobileSyncRemediation) => () => void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type SyncLocalStoreSchemaBundle } from '@absolutejs/sync/client';
|
|
2
|
+
export type AbsoluteSyncSchemaDiscovery = {
|
|
3
|
+
components: SyncLocalStoreSchemaBundle['components'];
|
|
4
|
+
sources: {
|
|
5
|
+
id: string;
|
|
6
|
+
manifestPath: string;
|
|
7
|
+
}[];
|
|
8
|
+
};
|
|
9
|
+
export declare const discoverAbsoluteSyncSchema: (projectRoot: string) => AbsoluteSyncSchemaDiscovery;
|
|
@@ -1,24 +1,38 @@
|
|
|
1
1
|
import { type AbsoluteMobilePageActivationOptions } from './client';
|
|
2
2
|
import type { AbsoluteMobileCompatibilityPage, AbsoluteMobileCompatibilityRoute } from './releaseArtifact';
|
|
3
|
+
import type { AbsoluteMobileAuthManifest } from './nativeAuth';
|
|
4
|
+
import type { SyncLocalStoreSchemaBundle } from '@absolutejs/sync/client';
|
|
3
5
|
export declare const ABSOLUTE_MOBILE_CLIENT_MANIFEST_FORMAT: 1;
|
|
6
|
+
export type AbsoluteMobileFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
4
7
|
export type AbsoluteMobileClientPage = AbsoluteMobileCompatibilityPage & {
|
|
5
8
|
localBundlePath: string;
|
|
9
|
+
localStylePath?: string;
|
|
6
10
|
};
|
|
7
11
|
export type AbsoluteMobileClientManifest = {
|
|
12
|
+
auth?: AbsoluteMobileAuthManifest;
|
|
8
13
|
appBuild: string;
|
|
9
14
|
appId: string;
|
|
10
15
|
appName: string;
|
|
11
16
|
deepLinkHosts: string[];
|
|
12
17
|
deepLinkScheme?: string;
|
|
18
|
+
deviceCapabilities: string[];
|
|
13
19
|
entry: string;
|
|
14
20
|
format: typeof ABSOLUTE_MOBILE_CLIENT_MANIFEST_FORMAT;
|
|
15
21
|
pages: AbsoluteMobileClientPage[];
|
|
16
22
|
productionOrigin: string;
|
|
17
23
|
routes: AbsoluteMobileCompatibilityRoute[];
|
|
18
24
|
runtime: string;
|
|
25
|
+
sync?: {
|
|
26
|
+
socketTickets: true;
|
|
27
|
+
background: {
|
|
28
|
+
endpoint: string;
|
|
29
|
+
intervalMinutes: number;
|
|
30
|
+
};
|
|
31
|
+
storageSchema: SyncLocalStoreSchemaBundle;
|
|
32
|
+
};
|
|
19
33
|
};
|
|
20
34
|
export type AbsoluteMobileTransportOptions = {
|
|
21
|
-
fetch?:
|
|
35
|
+
fetch?: AbsoluteMobileFetch;
|
|
22
36
|
headers?: HeadersInit;
|
|
23
37
|
};
|
|
24
38
|
export declare const createAbsoluteMobilePageRequest: (manifest: AbsoluteMobileClientManifest, path: string, options?: AbsoluteMobileTransportOptions) => Request;
|
|
@@ -29,3 +43,4 @@ export declare const navigateAbsoluteMobilePage: (manifest: AbsoluteMobileClient
|
|
|
29
43
|
pageId: string;
|
|
30
44
|
}>;
|
|
31
45
|
export declare const resolveAbsoluteMobileDeepLink: (manifest: AbsoluteMobileClientManifest, value: string) => string;
|
|
46
|
+
export declare const resolveAbsoluteMobileNavigation: (manifest: AbsoluteMobileClientManifest, value: string, localOrigin: string) => string | undefined;
|
|
@@ -86,7 +86,10 @@ export declare const hmr: (hmrState: HMRState, manifest: Record<string, string>,
|
|
|
86
86
|
entryWatcherReady: boolean;
|
|
87
87
|
isRebuilding: boolean;
|
|
88
88
|
manifestKeys: string[];
|
|
89
|
+
pendingBundleRebuilds: ("svelte" | "vue" | "angular")[];
|
|
90
|
+
pendingFileChanges: number;
|
|
89
91
|
rebuildCount: number;
|
|
90
92
|
rebuildQueue: string[];
|
|
93
|
+
rebuildScheduled: boolean;
|
|
91
94
|
timestamp: number;
|
|
92
95
|
}>;
|
|
@@ -19,7 +19,7 @@ export declare const imageOptimizer: (config: ImageConfig | undefined, buildDir:
|
|
|
19
19
|
status?: number | keyof import("elysia").StatusMap;
|
|
20
20
|
cookie?: Record<string, import("elysia").BaseCookie>;
|
|
21
21
|
};
|
|
22
|
-
status: <const Code extends number | keyof import("elysia").StatusMap, const T = Code extends 500 | 100 | 200 | 400 | 404 | 300 | 304 | 426 |
|
|
22
|
+
status: <const Code extends number | keyof import("elysia").StatusMap, const T = Code extends 500 | 100 | 200 | 400 | 404 | 300 | 304 | 426 | 204 | 101 | 102 | 103 | 201 | 202 | 203 | 205 | 206 | 207 | 208 | 301 | 302 | 303 | 307 | 308 | 401 | 402 | 403 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 428 | 429 | 431 | 451 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
|
|
23
23
|
readonly 100: "Continue";
|
|
24
24
|
readonly 101: "Switching Protocols";
|
|
25
25
|
readonly 102: "Processing";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Breakpoint, Breakpoints } from '../../../types/mediaQuery';
|
|
2
|
-
export declare const UserAgentProvider: import("react").Provider<"console" | "other" | "
|
|
2
|
+
export declare const UserAgentProvider: import("react").Provider<"console" | "other" | "phone" | "tablet" | "desktop" | "bot" | "tv" | "car" | "iot" | null>;
|
|
3
3
|
export declare const useMediaQuery: (customBreakpoints?: Breakpoints) => {
|
|
4
4
|
breakpoint: string;
|
|
5
5
|
isSizeOrGreater: (target: Breakpoint) => boolean;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Component as SvelteComponent } from 'svelte';
|
|
2
2
|
import type { SveltePropsOf } from '../../types/svelte';
|
|
3
|
+
import type { AbsoluteMobileBuildPageMetadata } from '../mobile/buildMetadata';
|
|
3
4
|
import { type StreamingSlotEnhancerOptions } from '../core/responseEnhancers';
|
|
4
5
|
export type SveltePageRenderOptions = {
|
|
5
6
|
collectStreamingSlots?: boolean;
|
|
@@ -13,6 +14,8 @@ export type SveltePageRenderOptions = {
|
|
|
13
14
|
} & StreamingSlotEnhancerOptions;
|
|
14
15
|
type HasNoSvelteProps<Props> = [Props] extends [never] ? true : keyof Props extends never ? true : false;
|
|
15
16
|
export type SveltePageRequestInput<Component extends SvelteComponent<never> = SvelteComponent<Record<never, never>>> = SveltePageRenderOptions & {
|
|
17
|
+
/** @internal Build-generated mobile identity. Application code must not set this. */
|
|
18
|
+
__absoluteMobile?: AbsoluteMobileBuildPageMetadata;
|
|
16
19
|
indexPath: string;
|
|
17
20
|
pagePath: string;
|
|
18
21
|
/** The incoming Elysia request. When provided, the request's pathname
|
|
@@ -24,6 +24,9 @@ export declare const getCacheKey: (url: string, width: number, quality: number,
|
|
|
24
24
|
export declare const isCacheStale: (meta: CacheMeta) => boolean;
|
|
25
25
|
export declare const matchRemotePattern: (urlString: string, patterns: RemotePattern[]) => boolean;
|
|
26
26
|
export declare const negotiateFormat: (acceptHeader: string, configuredFormats: ImageFormat[]) => ImageFormat;
|
|
27
|
+
/** The MIME type an image buffer actually is, from its magic bytes — used
|
|
28
|
+
* when optimization fails and the original must be served as itself. */
|
|
29
|
+
export declare const sniffImageMime: (buffer: Buffer) => "image/avif" | "image/gif" | "image/jpeg" | "image/png" | "image/webp" | null;
|
|
27
30
|
export declare const optimizeImage: (buffer: Buffer | ArrayBuffer, width: number, quality: number, format: ImageFormat) => Promise<Buffer<ArrayBufferLike>>;
|
|
28
31
|
export declare const readFromCache: (cacheDir: string, cacheKey: string) => {
|
|
29
32
|
buffer: NonSharedBuffer;
|
|
@@ -21,6 +21,7 @@ export declare const loadConfig: (configPath?: string) => Promise<{
|
|
|
21
21
|
htmlDirectory?: string;
|
|
22
22
|
htmxDirectory?: string;
|
|
23
23
|
mobile?: import("..").MobileConfig;
|
|
24
|
+
pwa?: import("..").PwaConfig;
|
|
24
25
|
stylesConfig?: string | import("..").StylesConfig;
|
|
25
26
|
stylePreprocessors?: import("..").StylePreprocessorConfig;
|
|
26
27
|
postcss?: import("..").PostCSSConfig;
|