@absolutejs/absolute 0.20.0-beta.5 → 0.20.0-beta.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +205 -0
  2. package/dist/angular/browser.js +392 -361
  3. package/dist/angular/browser.js.map +3 -3
  4. package/dist/angular/components/core/streamingSlotRegistrar.js +7 -7
  5. package/dist/angular/components/core/streamingSlotRegistry.js +4 -4
  6. package/dist/angular/index.js +355 -302
  7. package/dist/angular/index.js.map +5 -5
  8. package/dist/angular/server.js +109 -58
  9. package/dist/angular/server.js.map +5 -5
  10. package/dist/build.js +2261 -1335
  11. package/dist/build.js.map +16 -12
  12. package/dist/cli/config/client.js +12 -12
  13. package/dist/cli/config/server.js +1136 -1090
  14. package/dist/cli/index.js +8615 -1975
  15. package/dist/client/index.js +29 -25
  16. package/dist/client/index.js.map +2 -2
  17. package/dist/core/streamingSlotRegistrar.js +15 -13
  18. package/dist/core/streamingSlotRegistrar.js.map +2 -2
  19. package/dist/core/streamingSlotRegistry.js +11 -9
  20. package/dist/core/streamingSlotRegistry.js.map +2 -2
  21. package/dist/dev/client/hmrClient.ts +35 -3
  22. package/dist/dev/client/hmrTiming.ts +6 -0
  23. package/dist/dev/client/syncDevtools.ts +237 -0
  24. package/dist/dev/serverBootstrap.js +28 -0
  25. package/dist/image-client/imageClient.js +7 -7
  26. package/dist/index.js +3400 -2126
  27. package/dist/index.js.map +30 -23
  28. package/dist/islands/browser.js +11 -9
  29. package/dist/islands/browser.js.map +2 -2
  30. package/dist/islands/index.js +39 -35
  31. package/dist/islands/index.js.map +2 -2
  32. package/dist/mobile/browser.js +167 -20
  33. package/dist/mobile/browser.js.map +7 -5
  34. package/dist/mobile/index.js +8144 -3016
  35. package/dist/mobile/index.js.map +37 -18
  36. package/dist/mobile/remoteMacAgentEntry.js +1355 -14
  37. package/dist/mobile/shellAuth.js +36 -0
  38. package/dist/mobile/shellBootstrap.js +836 -0
  39. package/dist/mobile/shellExpoAuth.js +163 -0
  40. package/dist/mobile/shellExpoDevices.js +77 -0
  41. package/dist/mobile/shellExpoSync.js +104 -0
  42. package/dist/mobile/shellSync.js +173 -0
  43. package/dist/react/browser.js +17 -15
  44. package/dist/react/browser.js.map +2 -2
  45. package/dist/react/components/browser/index.js +107 -107
  46. package/dist/react/components/index.js +118 -116
  47. package/dist/react/components/index.js.map +2 -2
  48. package/dist/react/hooks/index.js +11 -9
  49. package/dist/react/hooks/index.js.map +2 -2
  50. package/dist/react/index.js +92 -49
  51. package/dist/react/index.js.map +4 -4
  52. package/dist/react/jsxDevRuntimeCompat.js +11 -9
  53. package/dist/react/jsxDevRuntimeCompat.js.map +2 -2
  54. package/dist/react/jsxRuntimeCompat.js +11 -9
  55. package/dist/react/jsxRuntimeCompat.js.map +2 -2
  56. package/dist/react/router/browser.js +9 -7
  57. package/dist/react/router/browser.js.map +2 -2
  58. package/dist/react/router/index.js +9 -7
  59. package/dist/react/router/index.js.map +2 -2
  60. package/dist/react/server.js +51 -10
  61. package/dist/react/server.js.map +4 -4
  62. package/dist/src/build/pwa.d.ts +16 -0
  63. package/dist/src/cli/config/server.d.ts +1 -1
  64. package/dist/src/cli/instanceStatus.d.ts +1 -0
  65. package/dist/src/cli/scripts/dev.d.ts +2 -0
  66. package/dist/src/core/devBuild.d.ts +1 -0
  67. package/dist/src/core/prepare.d.ts +376 -0
  68. package/dist/src/dev/clientManager.d.ts +1 -0
  69. package/dist/src/dev/devCert.d.ts +6 -4
  70. package/dist/src/dev/serverEntryCopies.d.ts +3 -0
  71. package/dist/src/mobile/androidEmulatorController.d.ts +8 -1
  72. package/dist/src/mobile/androidRelease.d.ts +9 -2
  73. package/dist/src/mobile/androidTestReport.d.ts +14 -0
  74. package/dist/src/mobile/androidUpgradeConformance.d.ts +47 -0
  75. package/dist/src/mobile/androidWebView.d.ts +1 -0
  76. package/dist/src/mobile/browser.d.ts +1 -0
  77. package/dist/src/mobile/capacitorBundle.d.ts +11 -0
  78. package/dist/src/mobile/ciWorkflow.d.ts +26 -0
  79. package/dist/src/mobile/config.d.ts +4 -1
  80. package/dist/src/mobile/devDeviceAdapter.d.ts +3 -0
  81. package/dist/src/mobile/deviceCapabilities.d.ts +48 -0
  82. package/dist/src/mobile/expoBridge.d.ts +91 -0
  83. package/dist/src/mobile/expoDevController.d.ts +56 -0
  84. package/dist/src/mobile/expoProject.d.ts +16 -0
  85. package/dist/src/mobile/index.d.ts +14 -0
  86. package/dist/src/mobile/iosDeviceAcceptance.d.ts +32 -0
  87. package/dist/src/mobile/iosPhysicalDeviceTransport.d.ts +16 -0
  88. package/dist/src/mobile/iosRelease.d.ts +63 -3
  89. package/dist/src/mobile/iosSimulatorController.d.ts +20 -2
  90. package/dist/src/mobile/iosTestReport.d.ts +24 -0
  91. package/dist/src/mobile/mobileBundleInspection.d.ts +55 -0
  92. package/dist/src/mobile/mobileInspect.d.ts +136 -0
  93. package/dist/src/mobile/mobilePreview.d.ts +174 -0
  94. package/dist/src/mobile/mobilePreviewClient.d.ts +1 -0
  95. package/dist/src/mobile/nativeAuth.d.ts +6 -0
  96. package/dist/src/mobile/nativeBackgroundSync.d.ts +4 -0
  97. package/dist/src/mobile/nativeDeviceCapabilities.d.ts +6 -0
  98. package/dist/src/mobile/nativeRoute.d.ts +13 -0
  99. package/dist/src/mobile/nativeTestReport.d.ts +91 -0
  100. package/dist/src/mobile/pageProtocol.d.ts +2 -0
  101. package/dist/src/mobile/releaseDoctor.d.ts +23 -1
  102. package/dist/src/mobile/remoteMacProtocol.d.ts +90 -0
  103. package/dist/src/mobile/remoteMacWire.d.ts +1 -1
  104. package/dist/src/mobile/shellAuth.d.ts +8 -1
  105. package/dist/src/mobile/shellBootstrap.d.ts +14 -2
  106. package/dist/src/mobile/shellExpoAuth.d.ts +12 -0
  107. package/dist/src/mobile/shellExpoDevices.d.ts +3 -0
  108. package/dist/src/mobile/shellExpoSync.d.ts +18 -0
  109. package/dist/src/mobile/shellHttp.d.ts +2 -0
  110. package/dist/src/mobile/shellPush.d.ts +11 -0
  111. package/dist/src/mobile/shellSync.d.ts +46 -1
  112. package/dist/src/mobile/syncRemediation.d.ts +10 -0
  113. package/dist/src/mobile/syncSchema.d.ts +9 -0
  114. package/dist/src/mobile/transport.d.ts +7 -0
  115. package/dist/src/plugins/hmr.d.ts +3 -0
  116. package/dist/src/plugins/imageOptimizer.d.ts +1 -1
  117. package/dist/src/react/hooks/useMediaQuery.d.ts +1 -1
  118. package/dist/src/utils/imageProcessing.d.ts +3 -0
  119. package/dist/src/utils/loadConfig.d.ts +1 -0
  120. package/dist/src/utils/logger.d.ts +1 -0
  121. package/dist/src/utils/startupBanner.d.ts +1 -0
  122. package/dist/src/utils/userAgentFunctions.d.ts +1 -1
  123. package/dist/svelte/browser.js +12 -10
  124. package/dist/svelte/browser.js.map +2 -2
  125. package/dist/svelte/index.js +86 -43
  126. package/dist/svelte/index.js.map +4 -4
  127. package/dist/svelte/server.js +68 -27
  128. package/dist/svelte/server.js.map +4 -4
  129. package/dist/types/build.d.ts +53 -3
  130. package/dist/types/cli.d.ts +1 -0
  131. package/dist/types/messages.d.ts +1 -1
  132. package/dist/vue/browser.js +14 -12
  133. package/dist/vue/browser.js.map +2 -2
  134. package/dist/vue/components/Image.js +9 -7
  135. package/dist/vue/components/Image.js.map +2 -2
  136. package/dist/vue/components/index.js +11 -9
  137. package/dist/vue/components/index.js.map +2 -2
  138. package/dist/vue/index.js +91 -48
  139. package/dist/vue/index.js.map +4 -4
  140. package/dist/vue/server.js +53 -12
  141. package/dist/vue/server.js.map +4 -4
  142. package/package.json +35 -15
@@ -1,11 +1,23 @@
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
- createAuth?: (config: NonNullable<AbsoluteMobileClientManifest['auth']>) => Promise<AbsoluteMobileShellAuthRuntime>;
9
- installSync?: (auth: AbsoluteMobileShellAuthRuntime) => void;
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);
10
22
  };
11
23
  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,2 @@
1
+ import { type AbsoluteHttpFetch } from '@absolutejs/http';
2
+ export declare const installAbsoluteMobileShellHttp: (origin: string, fetch?: AbsoluteHttpFetch) => () => 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
+ };
@@ -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
- export declare const installAbsoluteMobileShellSync: (auth: AbsoluteMobileShellAuthRuntime) => void;
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,6 +15,7 @@ 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;
19
21
  pages: AbsoluteMobileClientPage[];
@@ -22,6 +24,11 @@ export type AbsoluteMobileClientManifest = {
22
24
  runtime: string;
23
25
  sync?: {
24
26
  socketTickets: true;
27
+ background: {
28
+ endpoint: string;
29
+ intervalMinutes: number;
30
+ };
31
+ storageSchema: SyncLocalStoreSchemaBundle;
25
32
  };
26
33
  };
27
34
  export type AbsoluteMobileTransportOptions = {
@@ -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 | 204 | 302 | 101 | 102 | 103 | 201 | 202 | 203 | 205 | 206 | 207 | 208 | 301 | 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 ? {
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" | "bot" | "phone" | "tablet" | "tv" | "car" | "iot" | "desktop" | null>;
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;
@@ -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;
@@ -15,6 +15,7 @@ export declare const logReady: (options: {
15
15
  port: string | number;
16
16
  host: string;
17
17
  networkUrl?: string;
18
+ mobilePreviewUrl?: string;
18
19
  protocol?: string;
19
20
  }) => void;
20
21
  /**
@@ -6,5 +6,6 @@ export declare const startupBanner: (options: {
6
6
  port: string | number;
7
7
  host: string;
8
8
  networkUrl?: string;
9
+ mobilePreviewUrl?: string;
9
10
  protocol?: string;
10
11
  }) => void;
@@ -1 +1 @@
1
- export declare const getUserAgentType: (userAgent: string) => "console" | "other" | "bot" | "phone" | "tablet" | "tv" | "car" | "iot" | "desktop";
1
+ export declare const getUserAgentType: (userAgent: string) => "console" | "other" | "phone" | "tablet" | "desktop" | "bot" | "tv" | "car" | "iot";
@@ -19,12 +19,14 @@ var __toESM = (mod, isNodeMode, target) => {
19
19
  }
20
20
  target = mod != null ? __create(__getProtoOf(mod)) : {};
21
21
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
22
- for (let key of __getOwnPropNames(mod))
23
- if (!__hasOwnProp.call(to, key))
24
- __defProp(to, key, {
25
- get: __accessProp.bind(mod, key),
26
- enumerable: true
27
- });
22
+ if (mod && typeof mod === "object" || typeof mod === "function") {
23
+ for (let key of __getOwnPropNames(mod))
24
+ if (!__hasOwnProp.call(to, key))
25
+ __defProp(to, key, {
26
+ get: __accessProp.bind(mod, key),
27
+ enumerable: true
28
+ });
29
+ }
28
30
  if (canCache)
29
31
  cache.set(mod, to);
30
32
  return to;
@@ -281,11 +283,11 @@ var renderIsland = async () => {
281
283
  throw new Error("renderIsland is server-only. Use it during SSR, not in the browser.");
282
284
  };
283
285
  export {
284
- useIslandStore,
285
- resolveIslandHtml,
286
+ createTypedIsland,
286
287
  renderIsland,
287
- createTypedIsland
288
+ resolveIslandHtml,
289
+ useIslandStore
288
290
  };
289
291
 
290
- //# debugId=5801DC3CA876DA0F64756E2164756E21
292
+ //# debugId=5372359D65B50AC664756E2164756E21
291
293
  //# sourceMappingURL=browser.js.map
@@ -13,7 +13,7 @@
13
13
  "import type { StoreApi } from 'zustand/vanilla';\nimport {\n\treadIslandStore,\n\tsubscribeIslandStore,\n\ttype IslandStoreState\n} from '../client/islandStore';\n\nexport const useIslandStore = <TState extends IslandStoreState, TSelected>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => ({\n\tsubscribe(listener: (value: TSelected) => void) {\n\t\tlistener(readIslandStore(store, selector));\n\n\t\treturn subscribeIslandStore(store, selector, listener);\n\t}\n});\n",
14
14
  "export { createTypedIsland } from './createIsland.browser';\nexport { resolveIslandHtml } from './resolveIslandHtml.browser';\nexport { useIslandStore } from './islandStore';\n\nexport const renderIsland = async () => {\n\tthrow new Error(\n\t\t'renderIsland is server-only. Use it during SSR, not in the browser.'\n\t);\n};\n"
15
15
  ],
16
- "mappings": "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",
17
- "debugId": "5801DC3CA876DA0F64756E2164756E21",
16
+ "mappings": "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",
17
+ "debugId": "5372359D65B50AC664756E2164756E21",
18
18
  "names": []
19
19
  }
@@ -19,12 +19,14 @@ var __toESM = (mod, isNodeMode, target) => {
19
19
  }
20
20
  target = mod != null ? __create(__getProtoOf(mod)) : {};
21
21
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
22
- for (let key of __getOwnPropNames(mod))
23
- if (!__hasOwnProp.call(to, key))
24
- __defProp(to, key, {
25
- get: __accessProp.bind(mod, key),
26
- enumerable: true
27
- });
22
+ if (mod && typeof mod === "object" || typeof mod === "function") {
23
+ for (let key of __getOwnPropNames(mod))
24
+ if (!__hasOwnProp.call(to, key))
25
+ __defProp(to, key, {
26
+ get: __accessProp.bind(mod, key),
27
+ enumerable: true
28
+ });
29
+ }
28
30
  if (canCache)
29
31
  cache.set(mod, to);
30
32
  return to;
@@ -262,22 +264,22 @@ var init_lowerAwaitSlotSyntax = __esm(() => {
262
264
  // src/build/stylePreprocessor.ts
263
265
  var exports_stylePreprocessor = {};
264
266
  __export(exports_stylePreprocessor, {
265
- stylePreprocessorPlugin: () => stylePreprocessorPlugin,
266
- recordStyleOutput: () => recordStyleOutput,
267
- isStylePath: () => isStylePath,
268
- isStyleModulePath: () => isStyleModulePath,
269
- isPreprocessableStylePath: () => isPreprocessableStylePath,
270
- getStyleBaseName: () => getStyleBaseName,
271
- getCssOutputExtension: () => getCssOutputExtension,
272
- forgetStyleEntry: () => forgetStyleEntry,
273
- findStyleEntriesImporting: () => findStyleEntriesImporting,
274
- createSvelteStylePreprocessor: () => createSvelteStylePreprocessor,
275
- createStyleTransformConfig: () => createStyleTransformConfig,
276
- createStylePreprocessorPlugin: () => createStylePreprocessorPlugin,
277
- compileStyleSource: () => compileStyleSource,
278
- compileStyleFileIfNeededSync: () => compileStyleFileIfNeededSync,
267
+ addStyleImporter: () => addStyleImporter,
279
268
  compileStyleFileIfNeeded: () => compileStyleFileIfNeeded,
280
- addStyleImporter: () => addStyleImporter
269
+ compileStyleFileIfNeededSync: () => compileStyleFileIfNeededSync,
270
+ compileStyleSource: () => compileStyleSource,
271
+ createStylePreprocessorPlugin: () => createStylePreprocessorPlugin,
272
+ createStyleTransformConfig: () => createStyleTransformConfig,
273
+ createSvelteStylePreprocessor: () => createSvelteStylePreprocessor,
274
+ findStyleEntriesImporting: () => findStyleEntriesImporting,
275
+ forgetStyleEntry: () => forgetStyleEntry,
276
+ getCssOutputExtension: () => getCssOutputExtension,
277
+ getStyleBaseName: () => getStyleBaseName,
278
+ isPreprocessableStylePath: () => isPreprocessableStylePath,
279
+ isStyleModulePath: () => isStyleModulePath,
280
+ isStylePath: () => isStylePath,
281
+ recordStyleOutput: () => recordStyleOutput,
282
+ stylePreprocessorPlugin: () => stylePreprocessorPlugin
281
283
  });
282
284
  import { createHash } from "crypto";
283
285
  import { existsSync as existsSync2, readFileSync as readFileSync2 } from "fs";
@@ -1048,10 +1050,10 @@ var init_svelteServerModule = __esm(() => {
1048
1050
  // src/core/devRouteRegistrationCallsite.ts
1049
1051
  var exports_devRouteRegistrationCallsite = {};
1050
1052
  __export(exports_devRouteRegistrationCallsite, {
1051
- patchElysiaRouteRegistrationCallsites: () => patchElysiaRouteRegistrationCallsites,
1052
- isPageHandler: () => isPageHandler,
1053
+ getCurrentRouteRegistrationCallsite: () => getCurrentRouteRegistrationCallsite,
1053
1054
  getOriginalPageHandlerSource: () => getOriginalPageHandlerSource,
1054
- getCurrentRouteRegistrationCallsite: () => getCurrentRouteRegistrationCallsite
1055
+ isPageHandler: () => isPageHandler,
1056
+ patchElysiaRouteRegistrationCallsites: () => patchElysiaRouteRegistrationCallsites
1055
1057
  });
1056
1058
  import { AsyncLocalStorage } from "async_hooks";
1057
1059
  import { Elysia } from "elysia";
@@ -1906,6 +1908,7 @@ var colors, MONTHS, formatTimestamp = () => {
1906
1908
  port,
1907
1909
  host,
1908
1910
  networkUrl,
1911
+ mobilePreviewUrl,
1909
1912
  protocol = "http"
1910
1913
  } = options;
1911
1914
  const name = `${colors.cyan}${colors.bold}ABSOLUTEJS${colors.reset}`;
@@ -1919,6 +1922,9 @@ var colors, MONTHS, formatTimestamp = () => {
1919
1922
  if (networkUrl) {
1920
1923
  console.log(` ${colors.green}\u279C${colors.reset} ${colors.bold}Network:${colors.reset} ${networkUrl}`);
1921
1924
  }
1925
+ if (mobilePreviewUrl) {
1926
+ console.log(` ${colors.green}\u279C${colors.reset} ${colors.bold}Mobile:${colors.reset} ${mobilePreviewUrl}`);
1927
+ }
1922
1928
  console.log("");
1923
1929
  };
1924
1930
  var init_startupBanner = __esm(() => {
@@ -2463,8 +2469,8 @@ var init_spaRouteManifest = __esm(() => {
2463
2469
  // src/svelte/renderToReadableStream.ts
2464
2470
  var exports_renderToReadableStream = {};
2465
2471
  __export(exports_renderToReadableStream, {
2466
- renderToReadableStream: () => renderToReadableStream,
2467
- SVELTE_PAGE_ROOT_ID: () => SVELTE_PAGE_ROOT_ID
2472
+ SVELTE_PAGE_ROOT_ID: () => SVELTE_PAGE_ROOT_ID,
2473
+ renderToReadableStream: () => renderToReadableStream
2468
2474
  });
2469
2475
  var SVELTE_PAGE_ROOT_ID = "__absolute_svelte_root__", renderToReadableStream = async (component, props, {
2470
2476
  bootstrapScriptContent,
@@ -2938,10 +2944,10 @@ var init_ssrRender = __esm(() => {
2938
2944
  // src/angular/islands.ts
2939
2945
  var exports_islands = {};
2940
2946
  __export(exports_islands, {
2941
- renderAngularIslandToHtml: () => renderAngularIslandToHtml,
2942
- mountAngularIsland: () => mountAngularIsland,
2947
+ getAngularIslandSelector: () => getAngularIslandSelector,
2943
2948
  isAngularComponent: () => isAngularComponent,
2944
- getAngularIslandSelector: () => getAngularIslandSelector
2949
+ mountAngularIsland: () => mountAngularIsland,
2950
+ renderAngularIslandToHtml: () => renderAngularIslandToHtml
2945
2951
  });
2946
2952
  var angularIslandSelector = "abs-angular-island", getAngularIslandSelector = (_islandId) => angularIslandSelector, isAngularComponent = (value) => typeof value === "function", getSelectorFromRenderedIsland = (rootElement) => {
2947
2953
  const firstChild = rootElement.firstElementChild;
@@ -3003,8 +3009,10 @@ var angularIslandSelector = "abs-angular-island", getAngularIslandSelector = (_i
3003
3009
  const propsToken = new InjectionToken(`${wrapperKey}:props`);
3004
3010
 
3005
3011
  class AngularIslandWrapperComponent {
3006
- component = component;
3007
- props = inject(propsToken);
3012
+ constructor() {
3013
+ this.component = component;
3014
+ this.props = inject(propsToken);
3015
+ }
3008
3016
  }
3009
3017
  return {
3010
3018
  deps,
@@ -3453,13 +3461,13 @@ var init_nativeRewrite = __esm(() => {
3453
3461
  // src/build/rewriteImportsPlugin.ts
3454
3462
  var exports_rewriteImportsPlugin = {};
3455
3463
  __export(exports_rewriteImportsPlugin, {
3456
- rewriteVendorDirectories: () => rewriteVendorDirectories,
3457
- rewriteImportsInContent: () => rewriteImportsInContent,
3458
- rewriteBuildOutputsWith: () => rewriteBuildOutputsWith,
3459
- rewriteBuildOutputs: () => rewriteBuildOutputs,
3460
- jsRewriteImports: () => jsRewriteImports,
3464
+ buildWithImportRewrite: () => buildWithImportRewrite,
3461
3465
  fixMissingReExportNamespacesInContent: () => fixMissingReExportNamespacesInContent,
3462
- buildWithImportRewrite: () => buildWithImportRewrite
3466
+ jsRewriteImports: () => jsRewriteImports,
3467
+ rewriteBuildOutputs: () => rewriteBuildOutputs,
3468
+ rewriteBuildOutputsWith: () => rewriteBuildOutputsWith,
3469
+ rewriteImportsInContent: () => rewriteImportsInContent,
3470
+ rewriteVendorDirectories: () => rewriteVendorDirectories
3463
3471
  });
3464
3472
  import { readdir as readdir2 } from "fs/promises";
3465
3473
  import { join as join5 } from "path";
@@ -4417,6 +4425,7 @@ var getCurrentAbsoluteMobileProducerContext = () => {
4417
4425
  // src/mobile/pageProtocol.ts
4418
4426
  var ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE = "application/vnd.absolute.page+json";
4419
4427
  var ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION = 1;
4428
+ var ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE = "application/vnd.absolute.native-route+json";
4420
4429
  var BAD_REQUEST_STATUS = 400;
4421
4430
  var OK_STATUS = 200;
4422
4431
  var SERVER_ERROR_STATUS = 500;
@@ -4435,6 +4444,11 @@ var acceptsAbsoluteMobilePage = (request) => {
4435
4444
  return false;
4436
4445
  return (request.headers.get("accept") ?? "").split(",").some((value) => parseMediaType(value) === ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE);
4437
4446
  };
4447
+ var acceptsAbsoluteNativeRouteData = (request) => {
4448
+ if (!request)
4449
+ return false;
4450
+ return (request.headers.get("accept") ?? "").split(",").some((value) => parseMediaType(value) === ABSOLUTE_NATIVE_ROUTE_DATA_MEDIA_TYPE);
4451
+ };
4438
4452
  var readRequiredHeader = (request, name) => {
4439
4453
  const value = request.headers.get(name)?.trim();
4440
4454
  return value ? value : undefined;
@@ -4565,6 +4579,32 @@ var finalizeArchivedMobilePage = (context, input) => {
4565
4579
  return createAbsoluteMobilePageErrorResponse(page.pageId);
4566
4580
  }
4567
4581
  };
4582
+ var finalizeAbsoluteNativeRouteDevelopmentPage = (input) => {
4583
+ if (false) {}
4584
+ if (input.request?.method !== "GET") {
4585
+ return createAbsoluteMobileInvalidRequestResponse("Native-route data requests must use GET.");
4586
+ }
4587
+ if (input.request.headers.get(MOBILE_PAGE_REQUEST_HEADERS.protocol) !== String(ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION)) {
4588
+ return createAbsoluteMobileInvalidRequestResponse(`Native-route data requires protocol ${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}.`);
4589
+ }
4590
+ const [representation] = input.compatibility.representations;
4591
+ if (!representation) {
4592
+ return createAbsoluteMobilePageErrorResponse(input.compatibility.pageId);
4593
+ }
4594
+ try {
4595
+ return envelopeResponse({
4596
+ contract: representation.contract,
4597
+ framework: input.compatibility.framework,
4598
+ kind: "page",
4599
+ pageId: input.compatibility.pageId,
4600
+ props: normalizeJsonValue(representation.mapProps(input.props)),
4601
+ status: input.status ?? OK_STATUS
4602
+ }, input.status ?? OK_STATUS);
4603
+ } catch (error) {
4604
+ console.error(`[Mobile] Failed to produce development native route ${input.compatibility.pageId}:`, error);
4605
+ return createAbsoluteMobilePageErrorResponse(input.compatibility.pageId);
4606
+ }
4607
+ };
4568
4608
  var createAbsoluteMobileInvalidRequestResponse = (message) => envelopeResponse({ kind: "invalid-request", message }, BAD_REQUEST_STATUS);
4569
4609
  var createAbsoluteMobilePageErrorResponse = (pageId) => envelopeResponse({
4570
4610
  code: "representation-failed",
@@ -4574,6 +4614,9 @@ var createAbsoluteMobilePageErrorResponse = (pageId) => envelopeResponse({
4574
4614
  }, SERVER_ERROR_STATUS);
4575
4615
  var createAbsoluteMobileUpgradeResponse = (result) => envelopeResponse(result, UPGRADE_REQUIRED_STATUS);
4576
4616
  var finalizeAbsoluteMobilePage = (input) => {
4617
+ if (acceptsAbsoluteNativeRouteData(input.request)) {
4618
+ return finalizeAbsoluteNativeRouteDevelopmentPage(input);
4619
+ }
4577
4620
  const parsed = parseAbsoluteMobilePageRequest(input.request);
4578
4621
  if (parsed.kind === "not-mobile")
4579
4622
  return;
@@ -5020,13 +5063,13 @@ var resolveIslandHtml = (_slotId, props) => renderIslandMarkup(requireCurrentIsl
5020
5063
  // src/svelte/index.ts
5021
5064
  init_renderToReadableStream();
5022
5065
  export {
5023
- useIslandStore,
5024
- resolveIslandHtml,
5025
- renderToReadableStream,
5026
- renderIsland,
5066
+ createTypedIsland,
5027
5067
  handleSveltePageRequest,
5028
- createTypedIsland
5068
+ renderIsland,
5069
+ renderToReadableStream,
5070
+ resolveIslandHtml,
5071
+ useIslandStore
5029
5072
  };
5030
5073
 
5031
- //# debugId=505E54839FC4D87364756E2164756E21
5074
+ //# debugId=7A8AED3F56517C4464756E2164756E21
5032
5075
  //# sourceMappingURL=index.js.map