@absolutejs/absolute 0.20.0-beta.6 → 0.20.0-beta.60
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 +205 -0
- package/dist/angular/browser.js +392 -405
- package/dist/angular/browser.js.map +3 -3
- package/dist/angular/components/core/streamingSlotRegistrar.js +7 -7
- package/dist/angular/components/core/streamingSlotRegistry.js +4 -4
- package/dist/angular/index.js +379 -321
- package/dist/angular/index.js.map +8 -7
- package/dist/angular/server.js +133 -61
- package/dist/angular/server.js.map +8 -7
- package/dist/build.js +2336 -1347
- package/dist/build.js.map +22 -17
- package/dist/cli/config/client.js +12 -12
- package/dist/cli/config/server.js +1140 -1091
- package/dist/cli/index.js +9621 -2093
- package/dist/client/chunks/angularPatch-arh4sr68.js +157 -0
- package/dist/client/chunks/angularPatch-arh4sr68.js.map +10 -0
- package/dist/client/chunks/index-5py90ctf.js +87 -0
- package/dist/client/chunks/index-5py90ctf.js.map +10 -0
- package/dist/client/chunks/index-m35nbkdp.js +374 -0
- package/dist/client/chunks/index-m35nbkdp.js.map +12 -0
- package/dist/client/chunks/index-qxjc7kc5.js +12 -0
- package/dist/client/chunks/index-qxjc7kc5.js.map +9 -0
- package/dist/client/chunks/islands-xj2n8nwf.js +281 -0
- package/dist/client/chunks/islands-xj2n8nwf.js.map +14 -0
- package/dist/client/chunks/react-pdg4325x.js +65 -0
- package/dist/client/chunks/react-pdg4325x.js.map +10 -0
- package/dist/client/chunks/svelte-s0c964kb.js +19 -0
- package/dist/client/chunks/svelte-s0c964kb.js.map +10 -0
- package/dist/client/chunks/vue-rdskrnyg.js +24 -0
- package/dist/client/chunks/vue-rdskrnyg.js.map +10 -0
- package/dist/client/index.js +73 -841
- package/dist/client/index.js.map +7 -20
- package/dist/core/streamingSlotRegistrar.js +15 -13
- package/dist/core/streamingSlotRegistrar.js.map +2 -2
- package/dist/core/streamingSlotRegistry.js +11 -9
- package/dist/core/streamingSlotRegistry.js.map +2 -2
- package/dist/dev/client/hmrClient.ts +35 -3
- package/dist/dev/client/hmrTiming.ts +6 -0
- package/dist/dev/client/syncDevtools.ts +237 -0
- package/dist/dev/serverBootstrap.js +28 -0
- package/dist/image-client/imageClient.js +7 -7
- package/dist/index.js +3748 -2361
- package/dist/index.js.map +38 -30
- package/dist/islands/browser.js +11 -25
- package/dist/islands/browser.js.map +2 -2
- package/dist/islands/index.js +55 -52
- package/dist/islands/index.js.map +5 -4
- package/dist/mobile/browser.js +429 -20
- package/dist/mobile/browser.js.map +8 -5
- package/dist/mobile/index.js +10626 -3132
- package/dist/mobile/index.js.map +47 -18
- package/dist/mobile/remoteMacAgentEntry.js +1374 -14
- package/dist/mobile/shellAuth.js +36 -0
- package/dist/mobile/shellBootstrap.js +1800 -0
- package/dist/mobile/shellExpoAuth.js +163 -0
- package/dist/mobile/shellExpoDevices.js +77 -0
- package/dist/mobile/shellExpoSync.js +104 -0
- package/dist/mobile/shellSync.js +184 -0
- package/dist/mobile/shellUpdate.js +456 -0
- package/dist/mobile/uiPrimitives.js +264 -0
- package/dist/react/browser.js +17 -59
- package/dist/react/browser.js.map +2 -2
- package/dist/react/components/browser/index.js +107 -107
- package/dist/react/components/index.js +118 -116
- package/dist/react/components/index.js.map +2 -2
- package/dist/react/hooks/index.js +11 -25
- package/dist/react/hooks/index.js.map +2 -2
- package/dist/react/index.js +110 -67
- package/dist/react/index.js.map +8 -7
- package/dist/react/jsxDevRuntimeCompat.js +11 -9
- package/dist/react/jsxDevRuntimeCompat.js.map +2 -2
- package/dist/react/jsxRuntimeCompat.js +11 -9
- package/dist/react/jsxRuntimeCompat.js.map +2 -2
- package/dist/react/router/browser.js +9 -7
- package/dist/react/router/browser.js.map +2 -2
- package/dist/react/router/index.js +9 -7
- package/dist/react/router/index.js.map +2 -2
- package/dist/react/server.js +67 -11
- package/dist/react/server.js.map +7 -6
- 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/client/browserTranslation.d.ts +19 -0
- package/dist/src/client/index.d.ts +1 -0
- package/dist/src/core/browserTranslation.d.ts +6 -0
- package/dist/src/core/devBuild.d.ts +1 -0
- 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/ember/browser.d.ts +0 -16
- package/dist/src/mobile/adaptiveShell.d.ts +27 -0
- package/dist/src/mobile/androidEmulatorController.d.ts +8 -1
- package/dist/src/mobile/androidRelease.d.ts +9 -2
- 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 +2 -0
- package/dist/src/mobile/capacitorBundle.d.ts +18 -0
- package/dist/src/mobile/ciWorkflow.d.ts +26 -0
- package/dist/src/mobile/config.d.ts +9 -1
- package/dist/src/mobile/devDeviceAdapter.d.ts +3 -0
- package/dist/src/mobile/deviceCapabilities.d.ts +49 -0
- package/dist/src/mobile/expoBridge.d.ts +91 -0
- package/dist/src/mobile/expoDevController.d.ts +56 -0
- package/dist/src/mobile/expoProject.d.ts +16 -0
- package/dist/src/mobile/index.d.ts +23 -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 +63 -3
- 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 +63 -0
- package/dist/src/mobile/mobileInspect.d.ts +142 -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 +6 -0
- package/dist/src/mobile/nativeBackgroundSync.d.ts +4 -0
- package/dist/src/mobile/nativeDeviceCapabilities.d.ts +6 -0
- package/dist/src/mobile/nativeRoute.d.ts +13 -0
- package/dist/src/mobile/nativeTestReport.d.ts +91 -0
- package/dist/src/mobile/nativeUpdates.d.ts +4 -0
- package/dist/src/mobile/navigationLifecycle.d.ts +36 -0
- package/dist/src/mobile/navigationState.d.ts +53 -0
- package/dist/src/mobile/pageProtocol.d.ts +2 -0
- package/dist/src/mobile/releaseDoctor.d.ts +23 -1
- package/dist/src/mobile/remoteMacProtocol.d.ts +134 -1
- package/dist/src/mobile/remoteMacWire.d.ts +1 -1
- package/dist/src/mobile/shellAuth.d.ts +8 -1
- package/dist/src/mobile/shellBootstrap.d.ts +15 -2
- package/dist/src/mobile/shellExpoAuth.d.ts +12 -0
- package/dist/src/mobile/shellExpoDevices.d.ts +3 -0
- package/dist/src/mobile/shellExpoSync.d.ts +18 -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 +46 -1
- package/dist/src/mobile/shellUpdate.d.ts +2 -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 +14 -0
- package/dist/src/mobile/uiPrimitives.d.ts +37 -0
- package/dist/src/mobile/updateClient.d.ts +40 -0
- package/dist/src/mobile/updateProtocol.d.ts +51 -0
- package/dist/src/mobile/updatePublisher.d.ts +66 -0
- package/dist/src/mobile/updateRollout.d.ts +16 -0
- package/dist/src/mobile/updateRuntime.d.ts +27 -0
- package/dist/src/mobile/updateSigning.d.ts +20 -0
- 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/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/browser.d.ts +1 -0
- package/dist/src/vue/browserTranslation.d.ts +5 -0
- package/dist/src/vue/index.d.ts +1 -0
- package/dist/svelte/browser.js +12 -26
- package/dist/svelte/browser.js.map +2 -2
- package/dist/svelte/index.js +104 -61
- package/dist/svelte/index.js.map +8 -7
- package/dist/svelte/server.js +84 -28
- package/dist/svelte/server.js.map +7 -6
- package/dist/types/build.d.ts +62 -3
- package/dist/types/cli.d.ts +1 -0
- package/dist/types/messages.d.ts +1 -1
- package/dist/vue/browser.js +116 -56
- package/dist/vue/browser.js.map +5 -3
- package/dist/vue/components/Image.js +9 -7
- package/dist/vue/components/Image.js.map +2 -2
- package/dist/vue/components/index.js +11 -9
- package/dist/vue/components/index.js.map +2 -2
- package/dist/vue/index.js +211 -94
- package/dist/vue/index.js.map +10 -7
- package/dist/vue/server.js +69 -13
- package/dist/vue/server.js.map +7 -6
- package/package.json +40 -14
|
@@ -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>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { FileSink } from 'bun';
|
|
2
2
|
import type { NormalizedAbsoluteMobileConfig } from './config';
|
|
3
|
+
import { installAbsoluteIosRelease, type AbsoluteIosReleaseMetadata } from './iosRelease';
|
|
3
4
|
import type { AbsoluteIosDevPhaseTiming, AbsoluteIosDevSession, AbsoluteIosDevState, AbsoluteIosNativeLogEntry } from './iosSimulatorController';
|
|
5
|
+
import type { AbsoluteExpoDevPhaseTiming, AbsoluteExpoDevSession, AbsoluteExpoDevState } from './expoDevController';
|
|
4
6
|
export { ABSOLUTE_REMOTE_MAC_EVENT_PREFIX, ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION } from './remoteMacWire';
|
|
5
7
|
export type AbsoluteRemoteMacProfile = {
|
|
6
8
|
bunPath: string;
|
|
@@ -28,6 +30,11 @@ export type AbsoluteRemoteIosDevProject = {
|
|
|
28
30
|
xcodebuild: string;
|
|
29
31
|
xcrun: string;
|
|
30
32
|
};
|
|
33
|
+
export type AbsoluteRemoteExpoIosDevProject = AbsoluteRemoteIosDevProject & {
|
|
34
|
+
config: NormalizedAbsoluteMobileConfig & {
|
|
35
|
+
engine: 'expo';
|
|
36
|
+
};
|
|
37
|
+
};
|
|
31
38
|
export type AbsoluteIosDevelopmentProject = AbsoluteRemoteIosDevProject | (import('./iosSimulatorController').AbsoluteIosDevProject & {
|
|
32
39
|
remote?: false;
|
|
33
40
|
});
|
|
@@ -49,7 +56,9 @@ export type AbsoluteRemoteMacTransport = {
|
|
|
49
56
|
};
|
|
50
57
|
};
|
|
51
58
|
export type AbsoluteRemoteIosOptions = {
|
|
59
|
+
certificateAuthorityPath?: string;
|
|
52
60
|
https?: boolean;
|
|
61
|
+
deviceIdentifier?: string;
|
|
53
62
|
log?: (message: string) => void;
|
|
54
63
|
nativeLog?: (entry: AbsoluteIosNativeLogEntry) => void;
|
|
55
64
|
onPhaseTiming?: (timing: AbsoluteIosDevPhaseTiming) => void;
|
|
@@ -57,6 +66,26 @@ export type AbsoluteRemoteIosOptions = {
|
|
|
57
66
|
port: number;
|
|
58
67
|
project: AbsoluteRemoteIosDevProject;
|
|
59
68
|
signal?: AbortSignal;
|
|
69
|
+
serverHost?: string;
|
|
70
|
+
installAgent?: (project: AbsoluteRemoteIosDevProject) => Promise<{
|
|
71
|
+
remotePath: string;
|
|
72
|
+
uploaded?: boolean;
|
|
73
|
+
}>;
|
|
74
|
+
syncProject?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
|
|
75
|
+
transport?: AbsoluteRemoteMacTransport;
|
|
76
|
+
};
|
|
77
|
+
export type AbsoluteRemoteExpoIosOptions = {
|
|
78
|
+
certificateAuthorityPath?: string;
|
|
79
|
+
deviceIdentifier?: string;
|
|
80
|
+
https?: boolean;
|
|
81
|
+
log?: (message: string) => void;
|
|
82
|
+
metroPort: number;
|
|
83
|
+
onPhaseTiming?: (timing: AbsoluteExpoDevPhaseTiming) => void;
|
|
84
|
+
onStateChange?: (state: AbsoluteExpoDevState) => void;
|
|
85
|
+
port: number;
|
|
86
|
+
project: AbsoluteRemoteExpoIosDevProject;
|
|
87
|
+
serverHost?: string;
|
|
88
|
+
signal?: AbortSignal;
|
|
60
89
|
installAgent?: (project: AbsoluteRemoteIosDevProject) => Promise<{
|
|
61
90
|
remotePath: string;
|
|
62
91
|
uploaded?: boolean;
|
|
@@ -64,11 +93,55 @@ export type AbsoluteRemoteIosOptions = {
|
|
|
64
93
|
syncProject?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
|
|
65
94
|
transport?: AbsoluteRemoteMacTransport;
|
|
66
95
|
};
|
|
96
|
+
export type BuildAbsoluteRemoteIosReleaseOptions = {
|
|
97
|
+
acquireLease?: (project: AbsoluteRemoteIosDevProject, signal?: AbortSignal) => Promise<AbsoluteRemoteMacLease>;
|
|
98
|
+
allowUnsigned?: boolean;
|
|
99
|
+
developmentTeam?: string;
|
|
100
|
+
installAgent?: (project: AbsoluteRemoteIosDevProject) => Promise<{
|
|
101
|
+
remotePath: string;
|
|
102
|
+
uploaded?: boolean;
|
|
103
|
+
}>;
|
|
104
|
+
log?: (message: string) => void;
|
|
105
|
+
onPhaseTiming?: (timing: {
|
|
106
|
+
durationMs: number;
|
|
107
|
+
phase: string;
|
|
108
|
+
}) => void;
|
|
109
|
+
outputDirectory?: string;
|
|
110
|
+
prepareBuildNumber?: (buildIdentity: string) => Promise<number>;
|
|
111
|
+
project: AbsoluteRemoteIosDevProject;
|
|
112
|
+
retrieveRelease?: (project: AbsoluteRemoteIosDevProject, metadata: AbsoluteIosReleaseMetadata, outputDirectory?: string) => Promise<Awaited<ReturnType<typeof installAbsoluteIosRelease>>>;
|
|
113
|
+
syncReleaseInputs?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
|
|
114
|
+
syncProject?: (project: AbsoluteRemoteIosDevProject) => Promise<void>;
|
|
115
|
+
signal?: AbortSignal;
|
|
116
|
+
transport?: Pick<AbsoluteRemoteMacTransport, 'capture' | 'spawn'>;
|
|
117
|
+
};
|
|
118
|
+
export type AbsoluteRemoteMacLease = {
|
|
119
|
+
heartbeat: () => Promise<void>;
|
|
120
|
+
path: string;
|
|
121
|
+
recovered: boolean;
|
|
122
|
+
release: () => Promise<void>;
|
|
123
|
+
token: string;
|
|
124
|
+
};
|
|
125
|
+
export type AbsoluteRemoteMacWorkspaceInspection = {
|
|
126
|
+
agentCount: number;
|
|
127
|
+
bytes: number;
|
|
128
|
+
leaseCount: number;
|
|
129
|
+
profile: string;
|
|
130
|
+
projectCount: number;
|
|
131
|
+
workspaceRoot: string;
|
|
132
|
+
};
|
|
67
133
|
export declare const validateAbsoluteRemoteMacProfileName: (name: string) => string;
|
|
68
134
|
export declare const validateAbsoluteSshDestination: (destination: string) => string;
|
|
69
135
|
export declare const absoluteRemoteMacSshBase: (profile: Pick<AbsoluteRemoteMacProfile, "destination" | "port">, options?: {
|
|
70
136
|
acceptNew?: boolean;
|
|
71
137
|
}) => string[];
|
|
138
|
+
/** Run a non-interactive command on an already paired Mac.
|
|
139
|
+
*
|
|
140
|
+
* Arguments are quoted independently before crossing SSH. This is intended for
|
|
141
|
+
* small, read-only inspections and lifecycle commands that do not need the
|
|
142
|
+
* long-running remote development agent.
|
|
143
|
+
*/
|
|
144
|
+
export declare const captureAbsoluteRemoteMacCommand: (profile: AbsoluteRemoteMacProfile, command: string[], transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<AbsoluteRemoteMacCommandResult>;
|
|
72
145
|
export declare const getAbsoluteRemoteMacProfile: (name?: string, profilePath?: string) => Promise<AbsoluteRemoteMacProfile | undefined>;
|
|
73
146
|
export declare const inspectAbsoluteRemoteMac: (destination: string, options?: {
|
|
74
147
|
acceptNew?: boolean;
|
|
@@ -80,6 +153,7 @@ export declare const inspectAbsoluteRemoteMac: (destination: string, options?: {
|
|
|
80
153
|
os: string;
|
|
81
154
|
xcodeVersion: string;
|
|
82
155
|
}>;
|
|
156
|
+
export declare const inspectAbsoluteRemoteMacLanHost: (profile: AbsoluteRemoteMacProfile, transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<string>;
|
|
83
157
|
export declare const listAbsoluteRemoteMacProfiles: (profilePath?: string) => Promise<{
|
|
84
158
|
defaultProfile: string | undefined;
|
|
85
159
|
profiles: AbsoluteRemoteMacProfile[];
|
|
@@ -93,7 +167,29 @@ export declare const pairAbsoluteRemoteMac: (options: {
|
|
|
93
167
|
workspaceRoot?: string;
|
|
94
168
|
}) => Promise<AbsoluteRemoteMacProfile>;
|
|
95
169
|
export declare const removeAbsoluteRemoteMacProfile: (name: string, profilePath?: string) => Promise<boolean>;
|
|
170
|
+
export declare const createAbsoluteRemoteExpoIosDevProject: (config: NormalizedAbsoluteMobileConfig, projectRoot: string, profile: AbsoluteRemoteMacProfile) => AbsoluteRemoteExpoIosDevProject;
|
|
96
171
|
export declare const createAbsoluteRemoteIosDevProject: (config: NormalizedAbsoluteMobileConfig, projectRoot: string, profile: AbsoluteRemoteMacProfile) => AbsoluteRemoteIosDevProject;
|
|
172
|
+
/** Acquire the project-scoped release lease before changing shared remote state.
|
|
173
|
+
*
|
|
174
|
+
* `mkdir` and the stale-directory rename are atomic on the Remote Mac. The
|
|
175
|
+
* random token prevents an expired owner from touching or releasing a newer
|
|
176
|
+
* owner's lease after a delayed SSH command completes.
|
|
177
|
+
*/
|
|
178
|
+
export declare const acquireAbsoluteRemoteMacReleaseLease: (project: AbsoluteRemoteIosDevProject, options?: {
|
|
179
|
+
signal?: AbortSignal;
|
|
180
|
+
staleSeconds?: number;
|
|
181
|
+
transport?: Pick<AbsoluteRemoteMacTransport, "capture">;
|
|
182
|
+
}) => Promise<AbsoluteRemoteMacLease>;
|
|
183
|
+
declare const inspectAbsoluteRemoteMacWorkspace: (profile: AbsoluteRemoteMacProfile, transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<AbsoluteRemoteMacWorkspaceInspection>;
|
|
184
|
+
/** Remove only abandoned staging directories. Project dependency/native caches,
|
|
185
|
+
* immutable releases, and active leases are deliberately retained.
|
|
186
|
+
*/
|
|
187
|
+
declare const cleanAbsoluteRemoteMacWorkspace: (profile: AbsoluteRemoteMacProfile, transport?: Pick<AbsoluteRemoteMacTransport, "capture">) => Promise<{
|
|
188
|
+
profile: string;
|
|
189
|
+
removed: number;
|
|
190
|
+
workspaceRoot: string;
|
|
191
|
+
}>;
|
|
192
|
+
export { cleanAbsoluteRemoteMacWorkspace, inspectAbsoluteRemoteMacWorkspace };
|
|
97
193
|
export declare const installAbsoluteRemoteMacAgent: (project: AbsoluteRemoteIosDevProject) => Promise<{
|
|
98
194
|
remotePath: string;
|
|
99
195
|
uploaded: boolean;
|
|
@@ -110,5 +206,42 @@ export declare const absoluteRemoteProjectSyncCommands: (project: AbsoluteRemote
|
|
|
110
206
|
remote: string[];
|
|
111
207
|
tar: string[];
|
|
112
208
|
};
|
|
113
|
-
export declare const syncAbsoluteRemoteMacProject: (project: AbsoluteRemoteIosDevProject
|
|
209
|
+
export declare const syncAbsoluteRemoteMacProject: (project: AbsoluteRemoteIosDevProject, options?: {
|
|
210
|
+
signal?: AbortSignal;
|
|
211
|
+
}) => Promise<void>;
|
|
212
|
+
export declare const absoluteRemoteReleaseInputSyncCommands: (project: AbsoluteRemoteIosDevProject) => {
|
|
213
|
+
remote: string[];
|
|
214
|
+
tar: string[];
|
|
215
|
+
};
|
|
216
|
+
export declare const syncAbsoluteRemoteMacReleaseInputs: (project: AbsoluteRemoteIosDevProject, options?: {
|
|
217
|
+
signal?: AbortSignal;
|
|
218
|
+
}) => Promise<void>;
|
|
219
|
+
export declare const buildAbsoluteRemoteIosRelease: (options: BuildAbsoluteRemoteIosReleaseOptions) => Promise<{
|
|
220
|
+
timings: {
|
|
221
|
+
'remote-agent': number;
|
|
222
|
+
'remote-release-download': number;
|
|
223
|
+
'remote-release-lease': number;
|
|
224
|
+
'remote-release-sync': number;
|
|
225
|
+
total: number;
|
|
226
|
+
};
|
|
227
|
+
artifactPath: string;
|
|
228
|
+
metadata: {
|
|
229
|
+
artifact: "App.ipa";
|
|
230
|
+
sha256: string;
|
|
231
|
+
type: "ipa";
|
|
232
|
+
format: typeof import("./iosRelease").ABSOLUTE_IOS_RELEASE_FORMAT;
|
|
233
|
+
bytes: number;
|
|
234
|
+
runtime: string;
|
|
235
|
+
releaseId: string;
|
|
236
|
+
appBuild: string;
|
|
237
|
+
appId: string;
|
|
238
|
+
platform: "ios";
|
|
239
|
+
buildNumber?: number | undefined;
|
|
240
|
+
engine: "capacitor" | "expo";
|
|
241
|
+
marketingVersion: string;
|
|
242
|
+
signed: boolean;
|
|
243
|
+
};
|
|
244
|
+
releaseRoot: string;
|
|
245
|
+
}>;
|
|
246
|
+
export declare const startAbsoluteRemoteExpoIosDevSession: (options: AbsoluteRemoteExpoIosOptions) => Promise<AbsoluteExpoDevSession>;
|
|
114
247
|
export declare const startAbsoluteRemoteIosDevSession: (options: AbsoluteRemoteIosOptions) => Promise<AbsoluteIosDevSession>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const ABSOLUTE_REMOTE_MAC_EVENT_PREFIX = "ABSOLUTE_REMOTE_MAC\t";
|
|
2
|
-
export declare const ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION =
|
|
2
|
+
export declare const ABSOLUTE_REMOTE_MAC_PROTOCOL_VERSION = 3;
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
import { type MobileAuthPrincipal } from '@absolutejs/auth/client/mobile';
|
|
1
2
|
import type { AbsoluteMobileAuthManifest } from './nativeAuth';
|
|
2
3
|
import type { AbsoluteMobileFetch } from './transport';
|
|
3
4
|
export type AbsoluteMobileShellAuth = {
|
|
5
|
+
clientId: string;
|
|
4
6
|
fetch: AbsoluteMobileFetch;
|
|
7
|
+
onPrincipalChange: (listener: (principal: MobileAuthPrincipal | null) => void) => () => void;
|
|
8
|
+
principal: MobileAuthPrincipal | null;
|
|
5
9
|
redirectUri: string;
|
|
10
|
+
issuer: string;
|
|
6
11
|
socketTicket: (audience?: string) => Promise<string>;
|
|
7
12
|
};
|
|
8
|
-
export declare const createAbsoluteMobileShellAuth: (config: AbsoluteMobileAuthManifest
|
|
13
|
+
export declare const createAbsoluteMobileShellAuth: (config: AbsoluteMobileAuthManifest, options?: {
|
|
14
|
+
beforeSignOut?: () => Promise<void> | void;
|
|
15
|
+
}) => Promise<AbsoluteMobileShellAuth>;
|
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
import { type AbsoluteMobileFetch, type AbsoluteMobileClientManifest } from './transport';
|
|
2
2
|
export type AbsoluteMobileShellAuthRuntime = {
|
|
3
|
+
clientId: string;
|
|
3
4
|
fetch: AbsoluteMobileFetch;
|
|
5
|
+
onPrincipalChange: (listener: (principal: AbsoluteMobileShellPrincipal | null) => void) => () => void;
|
|
6
|
+
principal: AbsoluteMobileShellPrincipal | null;
|
|
4
7
|
redirectUri: string;
|
|
8
|
+
issuer: string;
|
|
5
9
|
socketTicket: (audience?: string) => Promise<string>;
|
|
6
10
|
};
|
|
11
|
+
export type AbsoluteMobileShellPrincipal = {
|
|
12
|
+
namespace: string;
|
|
13
|
+
};
|
|
7
14
|
export type AbsoluteMobileShellOptions = {
|
|
8
|
-
|
|
9
|
-
|
|
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
|
+
installUpdates?: (manifest: AbsoluteMobileClientManifest) => Promise<void>;
|
|
10
23
|
};
|
|
11
24
|
export declare const startAbsoluteMobileShell: (options?: AbsoluteMobileShellOptions) => Promise<void>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type MobileAuthPrincipal } from '@absolutejs/auth/client/mobile';
|
|
2
|
+
import type { AbsoluteMobileAuthManifest } from './nativeAuth';
|
|
3
|
+
import type { AbsoluteMobileFetch } from './transport';
|
|
4
|
+
export declare const createAbsoluteExpoShellAuth: (config: AbsoluteMobileAuthManifest) => Promise<{
|
|
5
|
+
clientId: string;
|
|
6
|
+
fetch: AbsoluteMobileFetch;
|
|
7
|
+
issuer: string;
|
|
8
|
+
principal: Pick<MobileAuthPrincipal, "namespace"> | null;
|
|
9
|
+
redirectUri: string;
|
|
10
|
+
onPrincipalChange: (listener: (principal: Pick<MobileAuthPrincipal, "namespace"> | null) => void) => () => boolean;
|
|
11
|
+
socketTicket: () => Promise<never>;
|
|
12
|
+
}>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const createAbsoluteExpoBridgeFetch: () => (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
2
|
+
/** Installs the provider-neutral adapter backed by the generated native host. */
|
|
3
|
+
export declare const installAbsoluteExpoWebDeviceAdapter: (capabilities?: readonly string[]) => () => void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type AbsoluteExpoSyncBridgeProvider } from '@absolutejs/sync-expo/client';
|
|
2
|
+
import type { SyncClientStatus } from '@absolutejs/sync/client';
|
|
3
|
+
import type { AbsoluteMobileShellAuthRuntime } from './shellBootstrap';
|
|
4
|
+
import type { AbsoluteMobileClientManifest } from './transport';
|
|
5
|
+
type ExpoBridge = AbsoluteExpoSyncBridgeProvider & {
|
|
6
|
+
on(event: 'sync.socket' | 'sync.wake', listener: (payload: Record<string, unknown>) => void): () => void;
|
|
7
|
+
};
|
|
8
|
+
export type AbsoluteExpoShellSyncOptions = {
|
|
9
|
+
provider?: ExpoBridge;
|
|
10
|
+
reload?: () => void;
|
|
11
|
+
reportStatus?: (status: SyncClientStatus) => void;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Gives unchanged WebView page clients native-owned SQLite and sockets. Auth
|
|
15
|
+
* namespaces and socket tickets never cross into page-controlled JavaScript.
|
|
16
|
+
*/
|
|
17
|
+
export declare const installAbsoluteExpoShellSync: (auth: AbsoluteMobileShellAuthRuntime, config?: NonNullable<AbsoluteMobileClientManifest["sync"]>, options?: AbsoluteExpoShellSyncOptions) => () => void;
|
|
18
|
+
export {};
|
|
@@ -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
|
+
};
|
|
@@ -1,2 +1,47 @@
|
|
|
1
|
+
import { configureCapacitorBackgroundSync, type CapacitorSyncLifecycleOptions, type CapacitorSyncLocalStoreOptions } from '@absolutejs/sync-capacitor';
|
|
2
|
+
import type { SyncClientStatus, SyncLocalStore, SyncLocalStoreSchemaStatus } from '@absolutejs/sync/client';
|
|
1
3
|
import type { AbsoluteMobileShellAuthRuntime } from './shellBootstrap';
|
|
2
|
-
|
|
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,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,6 +1,7 @@
|
|
|
1
1
|
import { type AbsoluteMobilePageActivationOptions } from './client';
|
|
2
2
|
import type { AbsoluteMobileCompatibilityPage, AbsoluteMobileCompatibilityRoute } from './releaseArtifact';
|
|
3
3
|
import type { AbsoluteMobileAuthManifest } from './nativeAuth';
|
|
4
|
+
import type { SyncLocalStoreSchemaBundle } from '@absolutejs/sync/client';
|
|
4
5
|
export declare const ABSOLUTE_MOBILE_CLIENT_MANIFEST_FORMAT: 1;
|
|
5
6
|
export type AbsoluteMobileFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
6
7
|
export type AbsoluteMobileClientPage = AbsoluteMobileCompatibilityPage & {
|
|
@@ -14,19 +15,32 @@ export type AbsoluteMobileClientManifest = {
|
|
|
14
15
|
appName: string;
|
|
15
16
|
deepLinkHosts: string[];
|
|
16
17
|
deepLinkScheme?: string;
|
|
18
|
+
deviceCapabilities: string[];
|
|
17
19
|
entry: string;
|
|
18
20
|
format: typeof ABSOLUTE_MOBILE_CLIENT_MANIFEST_FORMAT;
|
|
21
|
+
nativeRuntime: string;
|
|
19
22
|
pages: AbsoluteMobileClientPage[];
|
|
20
23
|
productionOrigin: string;
|
|
21
24
|
routes: AbsoluteMobileCompatibilityRoute[];
|
|
22
25
|
runtime: string;
|
|
26
|
+
updates?: {
|
|
27
|
+
channel: string;
|
|
28
|
+
manifestUrl: string;
|
|
29
|
+
publicKeys: Record<string, string>;
|
|
30
|
+
};
|
|
23
31
|
sync?: {
|
|
24
32
|
socketTickets: true;
|
|
33
|
+
background: {
|
|
34
|
+
endpoint: string;
|
|
35
|
+
intervalMinutes: number;
|
|
36
|
+
};
|
|
37
|
+
storageSchema: SyncLocalStoreSchemaBundle;
|
|
25
38
|
};
|
|
26
39
|
};
|
|
27
40
|
export type AbsoluteMobileTransportOptions = {
|
|
28
41
|
fetch?: AbsoluteMobileFetch;
|
|
29
42
|
headers?: HeadersInit;
|
|
43
|
+
signal?: AbortSignal;
|
|
30
44
|
};
|
|
31
45
|
export declare const createAbsoluteMobilePageRequest: (manifest: AbsoluteMobileClientManifest, path: string, options?: AbsoluteMobileTransportOptions) => Request;
|
|
32
46
|
export declare const fetchAbsoluteMobilePage: (manifest: AbsoluteMobileClientManifest, path: string, options?: AbsoluteMobileTransportOptions) => Promise<unknown>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export type AbsoluteMobileNavigationDirection = 'back' | 'forward' | 'replace';
|
|
2
|
+
export type AbsoluteMobileNavigationDetail = {
|
|
3
|
+
direction: AbsoluteMobileNavigationDirection;
|
|
4
|
+
from: string;
|
|
5
|
+
to: string;
|
|
6
|
+
};
|
|
7
|
+
export type AbsoluteMobileSheetDetail = {
|
|
8
|
+
id: string;
|
|
9
|
+
open: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type AbsoluteMobileLinkIntent = {
|
|
12
|
+
kind: 'back';
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'external';
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'navigate';
|
|
17
|
+
replace: boolean;
|
|
18
|
+
};
|
|
19
|
+
declare global {
|
|
20
|
+
interface WindowEventMap {
|
|
21
|
+
'absolute:back-request': CustomEvent;
|
|
22
|
+
'absolute:navigation-change': CustomEvent<AbsoluteMobileNavigationDetail>;
|
|
23
|
+
'absolute:sheet-change': CustomEvent<AbsoluteMobileSheetDetail>;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export type AbsoluteMobileUiPrimitives = {
|
|
27
|
+
dispose(): void;
|
|
28
|
+
navigate(detail: AbsoluteMobileNavigationDetail): void;
|
|
29
|
+
refreshDocument(path?: string): void;
|
|
30
|
+
requestBack(): boolean;
|
|
31
|
+
};
|
|
32
|
+
export declare const closeAbsoluteMobileSheet: (target: HTMLDialogElement | string) => boolean;
|
|
33
|
+
export declare const openAbsoluteMobileSheet: (target: HTMLDialogElement | string, opener?: HTMLElement) => boolean;
|
|
34
|
+
export declare const readAbsoluteMobileLinkIntent: (anchor: HTMLAnchorElement) => AbsoluteMobileLinkIntent;
|
|
35
|
+
export declare const requestAbsoluteMobileBack: () => boolean;
|
|
36
|
+
/** Installs optional semantic-HTML mobile layout and interaction primitives. */
|
|
37
|
+
export declare const installAbsoluteMobileUiPrimitives: () => AbsoluteMobileUiPrimitives;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type AbsoluteMobileUpdateFile, type AbsoluteMobileUpdateManifest } from './updateProtocol';
|
|
2
|
+
export type AbsoluteMobileUpdateClientConfig = {
|
|
3
|
+
appId: string;
|
|
4
|
+
channel: string;
|
|
5
|
+
currentReleaseId: string;
|
|
6
|
+
installationId: string;
|
|
7
|
+
manifestUrl: string;
|
|
8
|
+
runtimeFingerprint: string;
|
|
9
|
+
};
|
|
10
|
+
export type AbsoluteMobileUpdateStore = {
|
|
11
|
+
abort(releaseId: string): Promise<void>;
|
|
12
|
+
activate(releaseId: string): Promise<void>;
|
|
13
|
+
begin(manifest: AbsoluteMobileUpdateManifest): Promise<void>;
|
|
14
|
+
commit(manifest: AbsoluteMobileUpdateManifest): Promise<void>;
|
|
15
|
+
write(file: AbsoluteMobileUpdateFile, contents: Uint8Array): Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export type AbsoluteMobileUpdateVerifier = {
|
|
18
|
+
digest(contents: Uint8Array): Promise<string>;
|
|
19
|
+
verify(manifest: AbsoluteMobileUpdateManifest): Promise<boolean>;
|
|
20
|
+
};
|
|
21
|
+
export type AbsoluteMobileUpdateClientOptions = {
|
|
22
|
+
config: AbsoluteMobileUpdateClientConfig;
|
|
23
|
+
fetch?: typeof globalThis.fetch;
|
|
24
|
+
store: AbsoluteMobileUpdateStore;
|
|
25
|
+
verifier: AbsoluteMobileUpdateVerifier;
|
|
26
|
+
};
|
|
27
|
+
export type AbsoluteMobileUpdateCheckResult = {
|
|
28
|
+
kind: 'current';
|
|
29
|
+
} | {
|
|
30
|
+
kind: 'downloaded';
|
|
31
|
+
manifest: AbsoluteMobileUpdateManifest;
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'update-available';
|
|
34
|
+
manifest: AbsoluteMobileUpdateManifest;
|
|
35
|
+
};
|
|
36
|
+
export declare const createAbsoluteMobileUpdateClient: (options: AbsoluteMobileUpdateClientOptions) => {
|
|
37
|
+
check: (download?: boolean) => Promise<AbsoluteMobileUpdateCheckResult>;
|
|
38
|
+
activate: (releaseId: string) => Promise<void>;
|
|
39
|
+
download: () => Promise<AbsoluteMobileUpdateCheckResult>;
|
|
40
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export declare const ABSOLUTE_MOBILE_UPDATE_FORMAT: 1;
|
|
2
|
+
export declare const ABSOLUTE_MOBILE_UPDATE_MAX_FILE_BYTES: number;
|
|
3
|
+
export declare const ABSOLUTE_MOBILE_UPDATE_MAX_FILES = 10000;
|
|
4
|
+
export declare const ABSOLUTE_MOBILE_UPDATE_MAX_TOTAL_BYTES: number;
|
|
5
|
+
export declare const ABSOLUTE_MOBILE_UPDATE_SIGNATURE_ALGORITHM: "ecdsa-p256-sha256";
|
|
6
|
+
export type AbsoluteMobileUpdateClassification = 'bug-fix' | 'content' | 'security';
|
|
7
|
+
export type AbsoluteMobileUpdateFile = {
|
|
8
|
+
bytes: number;
|
|
9
|
+
path: string;
|
|
10
|
+
sha256: string;
|
|
11
|
+
};
|
|
12
|
+
export type AbsoluteMobileUnsignedUpdateManifest = {
|
|
13
|
+
appId: string;
|
|
14
|
+
channel: string;
|
|
15
|
+
classification: AbsoluteMobileUpdateClassification;
|
|
16
|
+
createdAt: string;
|
|
17
|
+
files: AbsoluteMobileUpdateFile[];
|
|
18
|
+
format: typeof ABSOLUTE_MOBILE_UPDATE_FORMAT;
|
|
19
|
+
/** A content identity for the complete update, excluding its signature. */
|
|
20
|
+
releaseId: string;
|
|
21
|
+
/** Locks an update to the native plugins, bridge, Auth, and local-data ABI. */
|
|
22
|
+
runtimeFingerprint: string;
|
|
23
|
+
/** Store-policy attestation. Feature/primary-purpose changes require a store build. */
|
|
24
|
+
withinSubmittedPurpose: true;
|
|
25
|
+
};
|
|
26
|
+
export type AbsoluteMobileUpdateManifest = AbsoluteMobileUnsignedUpdateManifest & {
|
|
27
|
+
signature: {
|
|
28
|
+
algorithm: typeof ABSOLUTE_MOBILE_UPDATE_SIGNATURE_ALGORITHM;
|
|
29
|
+
keyId: string;
|
|
30
|
+
value: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export declare const absoluteMobileUpdateSigningPayload: (manifest: AbsoluteMobileUnsignedUpdateManifest) => Uint8Array<ArrayBuffer>;
|
|
34
|
+
export declare const canonicalizeAbsoluteMobileUpdate: (value: unknown) => string;
|
|
35
|
+
export declare const normalizeAbsoluteMobileUpdatePath: (value: unknown) => string;
|
|
36
|
+
export declare const parseAbsoluteMobileUnsignedUpdateManifest: (value: unknown) => AbsoluteMobileUnsignedUpdateManifest;
|
|
37
|
+
export declare const parseAbsoluteMobileUpdateManifest: (value: unknown) => AbsoluteMobileUpdateManifest;
|
|
38
|
+
export declare const unsignedAbsoluteMobileUpdate: (manifest: AbsoluteMobileUpdateManifest) => {
|
|
39
|
+
appId: string;
|
|
40
|
+
channel: string;
|
|
41
|
+
classification: AbsoluteMobileUpdateClassification;
|
|
42
|
+
createdAt: string;
|
|
43
|
+
files: AbsoluteMobileUpdateFile[];
|
|
44
|
+
format: typeof ABSOLUTE_MOBILE_UPDATE_FORMAT;
|
|
45
|
+
/** A content identity for the complete update, excluding its signature. */
|
|
46
|
+
releaseId: string;
|
|
47
|
+
/** Locks an update to the native plugins, bridge, Auth, and local-data ABI. */
|
|
48
|
+
runtimeFingerprint: string;
|
|
49
|
+
/** Store-policy attestation. Feature/primary-purpose changes require a store build. */
|
|
50
|
+
withinSubmittedPurpose: true;
|
|
51
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { readAbsoluteMobileUpdate } from './updateSigning';
|
|
2
|
+
export type AbsoluteMobileUpdatePublication = {
|
|
3
|
+
appId: string;
|
|
4
|
+
channel: string;
|
|
5
|
+
releaseId: string;
|
|
6
|
+
reused: boolean;
|
|
7
|
+
rollout: number;
|
|
8
|
+
stage: 'published';
|
|
9
|
+
};
|
|
10
|
+
export type AbsoluteMobileUpdatePromotion = {
|
|
11
|
+
appId: string;
|
|
12
|
+
channel: string;
|
|
13
|
+
releaseId: string;
|
|
14
|
+
rollout: number;
|
|
15
|
+
stage: 'promoted';
|
|
16
|
+
};
|
|
17
|
+
export type AbsoluteMobileUpdateRollback = {
|
|
18
|
+
appId: string;
|
|
19
|
+
channel: string;
|
|
20
|
+
releaseId?: string;
|
|
21
|
+
stage: 'rolled-back';
|
|
22
|
+
};
|
|
23
|
+
export type AbsoluteMobileUpdatePublisher = {
|
|
24
|
+
publishUpdate(options: {
|
|
25
|
+
manifest: Awaited<ReturnType<typeof readAbsoluteMobileUpdate>>;
|
|
26
|
+
releaseDirectory: string;
|
|
27
|
+
rollout: number;
|
|
28
|
+
signal?: AbortSignal;
|
|
29
|
+
}): Promise<AbsoluteMobileUpdatePublication>;
|
|
30
|
+
promoteUpdate(options: {
|
|
31
|
+
appId: string;
|
|
32
|
+
channel: string;
|
|
33
|
+
releaseId: string;
|
|
34
|
+
rollout: number;
|
|
35
|
+
signal?: AbortSignal;
|
|
36
|
+
}): Promise<AbsoluteMobileUpdatePromotion>;
|
|
37
|
+
rollbackUpdate(options: {
|
|
38
|
+
appId: string;
|
|
39
|
+
channel: string;
|
|
40
|
+
releaseId?: string;
|
|
41
|
+
signal?: AbortSignal;
|
|
42
|
+
}): Promise<AbsoluteMobileUpdateRollback>;
|
|
43
|
+
};
|
|
44
|
+
export declare const loadAbsoluteMobileUpdatePublisher: (projectRoot: string, requestedModulePath: string) => Promise<AbsoluteMobileUpdatePublisher>;
|
|
45
|
+
export declare const promoteAbsoluteMobileUpdate: (options: {
|
|
46
|
+
appId: string;
|
|
47
|
+
channel: string;
|
|
48
|
+
publisher: AbsoluteMobileUpdatePublisher;
|
|
49
|
+
releaseId: string;
|
|
50
|
+
rollout: number;
|
|
51
|
+
signal?: AbortSignal;
|
|
52
|
+
}) => Promise<AbsoluteMobileUpdatePromotion>;
|
|
53
|
+
export declare const publishAbsoluteMobileUpdate: (options: {
|
|
54
|
+
projectRoot: string;
|
|
55
|
+
publisher: AbsoluteMobileUpdatePublisher;
|
|
56
|
+
releaseDirectory: string;
|
|
57
|
+
rollout: number;
|
|
58
|
+
signal?: AbortSignal;
|
|
59
|
+
}) => Promise<AbsoluteMobileUpdatePublication>;
|
|
60
|
+
export declare const rollbackAbsoluteMobileUpdate: (options: {
|
|
61
|
+
appId: string;
|
|
62
|
+
channel: string;
|
|
63
|
+
publisher: AbsoluteMobileUpdatePublisher;
|
|
64
|
+
releaseId?: string;
|
|
65
|
+
signal?: AbortSignal;
|
|
66
|
+
}) => Promise<AbsoluteMobileUpdateRollback>;
|