@absolutejs/absolute 0.20.0-beta.3 → 0.20.0-beta.30
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 +167 -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 +341 -22
- package/dist/angular/index.js.map +8 -5
- package/dist/angular/server.js +341 -22
- package/dist/angular/server.js.map +8 -5
- package/dist/build.js +2058 -1105
- package/dist/build.js.map +17 -13
- package/dist/cli/index.js +4077 -1139
- package/dist/dev/client/cssUtils.ts +16 -2
- package/dist/dev/client/handlers/rebuild.ts +11 -1
- package/dist/dev/client/hmrClient.ts +32 -3
- package/dist/dev/client/hmrTiming.ts +14 -7
- package/dist/dev/client/syncDevtools.ts +237 -0
- package/dist/index.js +2483 -1367
- package/dist/index.js.map +27 -22
- package/dist/mobile/browser.js +123 -1
- package/dist/mobile/browser.js.map +6 -4
- package/dist/mobile/index.js +2663 -247
- package/dist/mobile/index.js.map +25 -13
- package/dist/mobile/remoteMacAgentEntry.js +29 -0
- package/dist/mobile/shellAuth.js +36 -0
- package/dist/mobile/shellBootstrap.js +601 -0
- package/dist/mobile/shellSync.js +173 -0
- 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/core/devBuild.d.ts +1 -0
- package/dist/src/core/pageHandlers.d.ts +11 -2
- package/dist/src/core/prepare.d.ts +24 -0
- package/dist/src/mobile/androidEmulatorController.d.ts +6 -1
- 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/client.d.ts +4 -0
- package/dist/src/mobile/config.d.ts +1 -0
- package/dist/src/mobile/devDeviceAdapter.d.ts +3 -0
- package/dist/src/mobile/deviceCapabilities.d.ts +46 -0
- package/dist/src/mobile/index.d.ts +7 -0
- package/dist/src/mobile/iosTestReport.d.ts +23 -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 +85 -0
- package/dist/src/mobile/releaseArtifact.d.ts +2 -0
- package/dist/src/mobile/remoteMacAgent.d.ts +2 -0
- package/dist/src/mobile/remoteMacAgentEntry.d.ts +1 -0
- package/dist/src/mobile/remoteMacProtocol.d.ts +114 -0
- package/dist/src/mobile/remoteMacWire.d.ts +2 -0
- package/dist/src/mobile/shellAuth.d.ts +15 -0
- package/dist/src/mobile/shellBootstrap.d.ts +22 -1
- 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/imageOptimizer.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/vue/pageHandler.d.ts +3 -0
- package/dist/svelte/index.js +312 -23
- package/dist/svelte/index.js.map +7 -4
- package/dist/svelte/server.js +307 -18
- package/dist/svelte/server.js.map +7 -4
- package/dist/types/build.d.ts +29 -0
- package/dist/vue/index.js +312 -23
- package/dist/vue/index.js.map +7 -4
- package/dist/vue/server.js +307 -18
- package/dist/vue/server.js.map +7 -4
- package/package.json +37 -10
package/dist/mobile/browser.js
CHANGED
|
@@ -314,6 +314,13 @@ class AbsoluteMobilePageProtocolError extends Error {
|
|
|
314
314
|
this.code = code;
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
|
+
var disposeAbsoluteMobilePage = async (target = window) => {
|
|
318
|
+
const dispose = target.__ABSOLUTE_PAGE_DISPOSE__;
|
|
319
|
+
target.__ABSOLUTE_PAGE_DISPOSE__ = undefined;
|
|
320
|
+
target.__ABSOLUTE_PAGE_READY__ = undefined;
|
|
321
|
+
if (dispose)
|
|
322
|
+
await dispose();
|
|
323
|
+
};
|
|
317
324
|
var frameworks2 = new Set([
|
|
318
325
|
"angular",
|
|
319
326
|
"ember",
|
|
@@ -369,12 +376,17 @@ var activateAbsoluteMobilePage = async (value, options) => {
|
|
|
369
376
|
throw new AbsoluteMobilePageProtocolError("invalid-envelope", "Expected a renderable mobile page response.");
|
|
370
377
|
}
|
|
371
378
|
const target = options.target ?? window;
|
|
379
|
+
await disposeAbsoluteMobilePage(target);
|
|
372
380
|
target.__INITIAL_PROPS__ = envelope.response.props;
|
|
381
|
+
target.__ABS_ANGULAR_REQUEST_CONTEXT__ = envelope.response.props;
|
|
373
382
|
target.__ABSOLUTE_PAGE_RENDER_MODE__ = "client";
|
|
374
383
|
await options.loadPage({
|
|
375
384
|
contract: envelope.response.contract,
|
|
376
385
|
pageId: envelope.response.pageId
|
|
377
386
|
});
|
|
387
|
+
if (target.__ABSOLUTE_PAGE_READY__) {
|
|
388
|
+
await target.__ABSOLUTE_PAGE_READY__;
|
|
389
|
+
}
|
|
378
390
|
return {
|
|
379
391
|
contract: envelope.response.contract,
|
|
380
392
|
kind: "rendered",
|
|
@@ -409,10 +421,120 @@ var parseAbsoluteMobilePageEnvelope = (value) => {
|
|
|
409
421
|
}
|
|
410
422
|
throw new AbsoluteMobilePageProtocolError("invalid-envelope", `Unknown mobile page response kind ${String(kind)}.`);
|
|
411
423
|
};
|
|
424
|
+
// node_modules/@absolutejs/sync/dist/client/runtimeTransport.js
|
|
425
|
+
var RUNTIME_TRANSPORT = Symbol.for("@absolutejs/sync/client-runtime-transport");
|
|
426
|
+
var host = globalThis;
|
|
427
|
+
var isRegistry = (value) => typeof value === "object" && value !== null && Array.isArray(Reflect.get(value, "installations")) && Array.isArray(Reflect.get(value, "clients"));
|
|
428
|
+
var registry = (() => {
|
|
429
|
+
const existing = host[RUNTIME_TRANSPORT];
|
|
430
|
+
if (isRegistry(existing))
|
|
431
|
+
return existing;
|
|
432
|
+
if (typeof existing === "object" && existing !== null && Array.isArray(Reflect.get(existing, "installations"))) {
|
|
433
|
+
Reflect.set(existing, "clients", []);
|
|
434
|
+
return existing;
|
|
435
|
+
}
|
|
436
|
+
const created = { clients: [], installations: [] };
|
|
437
|
+
Object.defineProperty(host, RUNTIME_TRANSPORT, {
|
|
438
|
+
configurable: false,
|
|
439
|
+
enumerable: false,
|
|
440
|
+
value: created,
|
|
441
|
+
writable: false
|
|
442
|
+
});
|
|
443
|
+
return created;
|
|
444
|
+
})();
|
|
445
|
+
var maximum = (values) => {
|
|
446
|
+
const present = values.filter((value) => value !== undefined);
|
|
447
|
+
return present.length === 0 ? undefined : Math.max(...present);
|
|
448
|
+
};
|
|
449
|
+
var minimum = (values) => {
|
|
450
|
+
const present = values.filter((value) => value !== undefined);
|
|
451
|
+
return present.length === 0 ? undefined : Math.min(...present);
|
|
452
|
+
};
|
|
453
|
+
var inspectSyncRuntime = async () => {
|
|
454
|
+
const clients = [...registry.clients];
|
|
455
|
+
const statuses = clients.map((client) => client.status());
|
|
456
|
+
const deadLetters = (await Promise.all(clients.map((client) => client.listDeadLetters()))).flat().map((record) => ({
|
|
457
|
+
attempts: record.attempts,
|
|
458
|
+
...record.rejection?.code ? { code: record.rejection.code } : {},
|
|
459
|
+
createdAt: record.createdAt,
|
|
460
|
+
...record.deadLetteredAt === undefined ? {} : { deadLetteredAt: record.deadLetteredAt },
|
|
461
|
+
...record.rejection?.kind ? { kind: record.rejection.kind } : {},
|
|
462
|
+
...record.rejection?.message ? { message: record.rejection.message } : {},
|
|
463
|
+
name: record.name,
|
|
464
|
+
operationId: record.operationId
|
|
465
|
+
})).sort((left, right) => (left.deadLetteredAt ?? left.createdAt) - (right.deadLetteredAt ?? right.createdAt) || left.operationId.localeCompare(right.operationId));
|
|
466
|
+
const lastError = statuses.findLast((status) => status.lastError)?.lastError;
|
|
467
|
+
return {
|
|
468
|
+
automaticResolutions: statuses.reduce((total, status) => total + status.automaticResolutions, 0),
|
|
469
|
+
clients: clients.length,
|
|
470
|
+
conflicts: deadLetters.filter((record) => record.kind === "conflict").length,
|
|
471
|
+
deadLetters,
|
|
472
|
+
...lastError ? { lastError } : {},
|
|
473
|
+
...maximum(statuses.map((status) => status.lastSuccessfulPullAt)) === undefined ? {} : {
|
|
474
|
+
lastSuccessfulPullAt: maximum(statuses.map((status) => status.lastSuccessfulPullAt))
|
|
475
|
+
},
|
|
476
|
+
...maximum(statuses.map((status) => status.lastSuccessfulPushAt)) === undefined ? {} : {
|
|
477
|
+
lastSuccessfulPushAt: maximum(statuses.map((status) => status.lastSuccessfulPushAt))
|
|
478
|
+
},
|
|
479
|
+
...minimum(statuses.map((status) => status.oldestDeadLetterAt)) === undefined ? {} : {
|
|
480
|
+
oldestDeadLetterAt: minimum(statuses.map((status) => status.oldestDeadLetterAt))
|
|
481
|
+
},
|
|
482
|
+
...minimum(statuses.map((status) => status.oldestPendingAt)) === undefined ? {} : {
|
|
483
|
+
oldestPendingAt: minimum(statuses.map((status) => status.oldestPendingAt))
|
|
484
|
+
},
|
|
485
|
+
pending: statuses.reduce((total, status) => total + status.pending, 0)
|
|
486
|
+
};
|
|
487
|
+
};
|
|
488
|
+
var clientWithDeadLetter = async (operationId) => {
|
|
489
|
+
for (const client of registry.clients)
|
|
490
|
+
if ((await client.listDeadLetters()).some((record) => record.operationId === operationId))
|
|
491
|
+
return client;
|
|
492
|
+
throw new Error(`Unknown Sync dead letter "${operationId}"`);
|
|
493
|
+
};
|
|
494
|
+
var retrySyncRuntimeDeadLetter = async (operationId) => (await clientWithDeadLetter(operationId)).retryDeadLetter(operationId);
|
|
495
|
+
var discardSyncRuntimeDeadLetter = async (operationId) => (await clientWithDeadLetter(operationId)).discardDeadLetter(operationId);
|
|
496
|
+
var rebaseSyncRuntimeDeadLetter = async (operationId, args) => (await clientWithDeadLetter(operationId)).rebaseDeadLetter(operationId, args);
|
|
497
|
+
|
|
498
|
+
// src/mobile/syncRemediation.ts
|
|
499
|
+
var REMEDIATION_REGISTRY = Symbol.for("@absolutejs/mobile-sync-remediation");
|
|
500
|
+
var LAST_INSTALLATION_OFFSET = -1;
|
|
501
|
+
var isRegistry2 = (value) => typeof value === "object" && value !== null && Array.isArray(Reflect.get(value, "installations"));
|
|
502
|
+
var resolveRegistry = () => {
|
|
503
|
+
const existing = Reflect.get(globalThis, REMEDIATION_REGISTRY);
|
|
504
|
+
if (isRegistry2(existing))
|
|
505
|
+
return existing;
|
|
506
|
+
const created = { installations: [] };
|
|
507
|
+
Object.defineProperty(globalThis, REMEDIATION_REGISTRY, {
|
|
508
|
+
configurable: false,
|
|
509
|
+
enumerable: false,
|
|
510
|
+
value: created,
|
|
511
|
+
writable: false
|
|
512
|
+
});
|
|
513
|
+
return created;
|
|
514
|
+
};
|
|
515
|
+
var registry2 = resolveRegistry();
|
|
516
|
+
var getAbsoluteMobileSyncRemediation = () => registry2.installations.at(LAST_INSTALLATION_OFFSET)?.bridge;
|
|
517
|
+
var installAbsoluteMobileSyncRemediation = (bridge = {
|
|
518
|
+
discard: discardSyncRuntimeDeadLetter,
|
|
519
|
+
inspect: inspectSyncRuntime,
|
|
520
|
+
rebase: rebaseSyncRuntimeDeadLetter,
|
|
521
|
+
retry: retrySyncRuntimeDeadLetter
|
|
522
|
+
}) => {
|
|
523
|
+
const installation = { bridge };
|
|
524
|
+
registry2.installations.push(installation);
|
|
525
|
+
return () => {
|
|
526
|
+
const index = registry2.installations.indexOf(installation);
|
|
527
|
+
if (index >= 0)
|
|
528
|
+
registry2.installations.splice(index, 1);
|
|
529
|
+
};
|
|
530
|
+
};
|
|
412
531
|
export {
|
|
413
532
|
parseAbsoluteMobilePageRequest,
|
|
414
533
|
parseAbsoluteMobilePageEnvelope,
|
|
534
|
+
installAbsoluteMobileSyncRemediation,
|
|
535
|
+
getAbsoluteMobileSyncRemediation,
|
|
415
536
|
finalizeAbsoluteMobilePage,
|
|
537
|
+
disposeAbsoluteMobilePage,
|
|
416
538
|
createAbsoluteMobileUpgradeResponse,
|
|
417
539
|
createAbsoluteMobilePageErrorResponse,
|
|
418
540
|
createAbsoluteMobileInvalidRequestResponse,
|
|
@@ -424,5 +546,5 @@ export {
|
|
|
424
546
|
ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE
|
|
425
547
|
};
|
|
426
548
|
|
|
427
|
-
//# debugId=
|
|
549
|
+
//# debugId=82927F1F53FC383664756E2164756E21
|
|
428
550
|
//# sourceMappingURL=browser.js.map
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/mobile/producerContextState.ts", "../src/mobile/pageProtocol.ts", "../src/mobile/client.ts"],
|
|
3
|
+
"sources": ["../src/mobile/producerContextState.ts", "../src/mobile/pageProtocol.ts", "../src/mobile/client.ts", "../node_modules/@absolutejs/sync/dist/client/runtimeTransport.js", "../src/mobile/syncRemediation.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { AbsoluteMobileCompatibilityPage } from './releaseArtifact';\n\nexport type AbsoluteMobileProducerContext = {\n\tpage: AbsoluteMobileCompatibilityPage;\n\treleaseId: string;\n};\n\nexport const ABSOLUTE_MOBILE_PRODUCER_STORAGE_KEY = Symbol.for(\n\t'absolutejs.mobileProducerAsyncLocalStorage'\n);\n\nconst frameworks = new Set<string>([\n\t'angular',\n\t'ember',\n\t'html',\n\t'htmx',\n\t'react',\n\t'svelte',\n\t'vue'\n]);\n\nconst isCompatibilityPage = (\n\tvalue: unknown\n): value is AbsoluteMobileCompatibilityPage =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t'bundleHash' in value &&\n\ttypeof value.bundleHash === 'string' &&\n\t'contract' in value &&\n\ttypeof value.contract === 'string' &&\n\t'framework' in value &&\n\ttypeof value.framework === 'string' &&\n\tframeworks.has(value.framework) &&\n\t'pageId' in value &&\n\ttypeof value.pageId === 'string' &&\n\t'propsSchemaHash' in value &&\n\ttypeof value.propsSchemaHash === 'string';\n\nexport const getCurrentAbsoluteMobileProducerContext = () => {\n\tconst value: unknown = Reflect.get(\n\t\tglobalThis,\n\t\tABSOLUTE_MOBILE_PRODUCER_STORAGE_KEY\n\t);\n\tif (\n\t\ttypeof value !== 'object' ||\n\t\tvalue === null ||\n\t\t!('getStore' in value) ||\n\t\ttypeof value.getStore !== 'function'\n\t) {\n\t\treturn undefined;\n\t}\n\tconst context: unknown = value.getStore();\n\tif (\n\t\ttypeof context !== 'object' ||\n\t\tcontext === null ||\n\t\t!('page' in context) ||\n\t\t!isCompatibilityPage(context.page) ||\n\t\t!('releaseId' in context) ||\n\t\ttypeof context.releaseId !== 'string'\n\t) {\n\t\treturn undefined;\n\t}\n\n\treturn { page: context.page, releaseId: context.releaseId };\n};\n",
|
|
6
6
|
"import {\n\tgetCurrentAbsoluteMobileProducerContext,\n\ttype AbsoluteMobileProducerContext\n} from './producerContextState';\n\nexport const ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE =\n\t'application/vnd.absolute.page+json';\nexport const ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION = 1 as const;\nconst BAD_REQUEST_STATUS = 400;\nconst OK_STATUS = 200;\nconst SERVER_ERROR_STATUS = 500;\nconst UPGRADE_REQUIRED_STATUS = 426;\n\nexport const MOBILE_PAGE_REQUEST_HEADERS = {\n\tappBuild: 'x-absolute-mobile-app-build',\n\tpageBundle: 'x-absolute-mobile-page-bundle',\n\tpageContracts: 'x-absolute-mobile-page-contracts',\n\tpageId: 'x-absolute-mobile-page-id',\n\tprotocol: 'x-absolute-mobile-protocol',\n\truntime: 'x-absolute-mobile-runtime'\n} as const;\n\nexport type AbsoluteMobilePageFramework =\n\t| 'angular'\n\t| 'ember'\n\t| 'html'\n\t| 'htmx'\n\t| 'react'\n\t| 'svelte'\n\t| 'vue';\n\nexport type AbsoluteMobilePageClient = {\n\tappBuild: string;\n\tpageBundle: string;\n\tpageContracts: string[];\n\tpageId: string;\n\tprotocol: number;\n\truntime: string;\n};\n\nexport type AbsoluteMobilePageRepresentation<Props> = {\n\t/** Stable data contract understood by an embedded page bundle. */\n\tcontract: string;\n\t/**\n\t * Adapts the current route props to an older compatible contract. The\n\t * current representation normally uses the identity function.\n\t */\n\tmapProps: (props: Props) => Record<string, unknown>;\n};\n\nexport type AbsoluteMobilePageCompatibility<Props> = {\n\tframework: AbsoluteMobilePageFramework;\n\tpageId: string;\n\t/** Newest representation first, followed by retained compatibility forms. */\n\trepresentations: readonly AbsoluteMobilePageRepresentation<Props>[];\n\t/** Current runtime plus every retained compatible runtime generation. */\n\truntimes: readonly string[];\n};\n\nexport type AbsoluteMobilePageResult = {\n\tkind: 'page';\n\tcontract: string;\n\tframework: AbsoluteMobilePageFramework;\n\tpageId: string;\n\tprops: Record<string, unknown>;\n\tstatus: number;\n};\n\nexport type AbsoluteMobileUpgradeReason =\n\t| 'app-release'\n\t| 'page-contract'\n\t| 'protocol'\n\t| 'runtime';\n\nexport type AbsoluteMobileUpgradeRequiredResult = {\n\tkind: 'upgrade-required';\n\treason: AbsoluteMobileUpgradeReason;\n\tpageId: string;\n\tsupportedContracts?: string[];\n\tsupportedRuntimes?: string[];\n};\n\nexport type AbsoluteMobileInvalidRequestResult = {\n\tkind: 'invalid-request';\n\tmessage: string;\n};\n\nexport type AbsoluteMobilePageErrorResult = {\n\tcode: 'representation-failed';\n\tkind: 'error';\n\tpageId: string;\n\tstatus: typeof SERVER_ERROR_STATUS;\n};\n\nexport type AbsoluteMobilePageEnvelope = {\n\tprotocol: typeof ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION;\n\tresponse:\n\t\t| AbsoluteMobilePageErrorResult\n\t\t| AbsoluteMobileInvalidRequestResult\n\t\t| AbsoluteMobilePageResult\n\t\t| AbsoluteMobileUpgradeRequiredResult;\n};\n\ntype ParsedMobilePageRequest =\n\t| { kind: 'not-mobile' }\n\t| { kind: 'invalid'; message: string }\n\t| { kind: 'mobile'; client: AbsoluteMobilePageClient };\n\ntype FinalizeAbsoluteMobilePageInput<Props> = {\n\tcompatibility: AbsoluteMobilePageCompatibility<Props>;\n\tprops: Props;\n\trequest: Request | undefined;\n\tstatus?: number;\n};\n\nconst parseMediaType = (value: string) =>\n\tvalue.split(';', 1)[0]?.trim().toLowerCase();\n\nexport const acceptsAbsoluteMobilePage = (request: Request | undefined) => {\n\tif (!request) return false;\n\n\treturn (request.headers.get('accept') ?? '')\n\t\t.split(',')\n\t\t.some(\n\t\t\t(value) => parseMediaType(value) === ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE\n\t\t);\n};\n\nconst readRequiredHeader = (request: Request, name: string) => {\n\tconst value = request.headers.get(name)?.trim();\n\n\treturn value ? value : undefined;\n};\n\nexport const parseAbsoluteMobilePageRequest = (\n\trequest: Request | undefined\n): ParsedMobilePageRequest => {\n\tif (!request || !acceptsAbsoluteMobilePage(request)) {\n\t\treturn { kind: 'not-mobile' };\n\t}\n\n\tconst protocolValue = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.protocol\n\t);\n\tconst runtime = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.runtime\n\t);\n\tconst appBuild = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.appBuild\n\t);\n\tconst pageBundle = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.pageBundle\n\t);\n\tconst pageContractsValue = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.pageContracts\n\t);\n\tconst pageId = readRequiredHeader(\n\t\trequest,\n\t\tMOBILE_PAGE_REQUEST_HEADERS.pageId\n\t);\n\n\tif (!protocolValue || !/^\\d+$/.test(protocolValue)) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing or invalid ${MOBILE_PAGE_REQUEST_HEADERS.protocol} header.`\n\t\t};\n\t}\n\tif (!runtime) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.runtime} header.`\n\t\t};\n\t}\n\tif (!appBuild) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.appBuild} header.`\n\t\t};\n\t}\n\tif (!pageBundle) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.pageBundle} header.`\n\t\t};\n\t}\n\tif (!pageContractsValue) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.pageContracts} header.`\n\t\t};\n\t}\n\tif (!pageId) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `Missing ${MOBILE_PAGE_REQUEST_HEADERS.pageId} header.`\n\t\t};\n\t}\n\n\tconst pageContracts = [\n\t\t...new Set(\n\t\t\tpageContractsValue\n\t\t\t\t.split(',')\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter(Boolean)\n\t\t)\n\t];\n\tif (pageContracts.length === 0) {\n\t\treturn {\n\t\t\tkind: 'invalid',\n\t\t\tmessage: `${MOBILE_PAGE_REQUEST_HEADERS.pageContracts} must contain at least one contract.`\n\t\t};\n\t}\n\n\treturn {\n\t\tclient: {\n\t\t\tappBuild,\n\t\t\tpageBundle,\n\t\t\tpageContracts,\n\t\t\tpageId,\n\t\t\tprotocol: Number(protocolValue),\n\t\t\truntime\n\t\t},\n\t\tkind: 'mobile'\n\t};\n};\n\nconst responseHeaders = () => {\n\tconst headers = new Headers({\n\t\t'cache-control': 'no-store',\n\t\t'content-type': `${ABSOLUTE_MOBILE_PAGE_MEDIA_TYPE}; version=${ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION}`\n\t});\n\theaderVaryValues.forEach((value) => headers.append('vary', value));\n\n\treturn headers;\n};\n\nconst headerVaryValues = [\n\t'Accept',\n\tMOBILE_PAGE_REQUEST_HEADERS.protocol,\n\tMOBILE_PAGE_REQUEST_HEADERS.runtime,\n\tMOBILE_PAGE_REQUEST_HEADERS.appBuild,\n\tMOBILE_PAGE_REQUEST_HEADERS.pageBundle,\n\tMOBILE_PAGE_REQUEST_HEADERS.pageContracts,\n\tMOBILE_PAGE_REQUEST_HEADERS.pageId\n];\n\nconst envelopeResponse = (\n\tresponse: AbsoluteMobilePageEnvelope['response'],\n\tstatus: number\n) =>\n\tnew Response(\n\t\tJSON.stringify({\n\t\t\tprotocol: ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\t\t\tresponse\n\t\t} satisfies AbsoluteMobilePageEnvelope),\n\t\t{ headers: responseHeaders(), status }\n\t);\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst normalizeJsonValue = (value: Record<string, unknown>) => {\n\tconst serialized = JSON.stringify(value);\n\tif (serialized === undefined) {\n\t\tthrow new TypeError('Mobile page props must be JSON-serializable.');\n\t}\n\n\tconst parsed: unknown = JSON.parse(serialized);\n\tif (!isRecord(parsed)) {\n\t\tthrow new TypeError('Mobile page props must serialize to an object.');\n\t}\n\n\treturn parsed;\n};\n\nconst finalizeArchivedMobilePage = <Props>(\n\tcontext: AbsoluteMobileProducerContext,\n\tinput: FinalizeAbsoluteMobilePageInput<Props>\n) => {\n\tconst { page } = context;\n\tif (\n\t\tpage.pageId !== input.compatibility.pageId ||\n\t\tpage.framework !== input.compatibility.framework\n\t) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'invalid-request',\n\t\t\t\tmessage:\n\t\t\t\t\t'Archived producer page identity does not match its release artifact.'\n\t\t\t},\n\t\t\tBAD_REQUEST_STATUS\n\t\t);\n\t}\n\n\ttry {\n\t\tconst [currentRepresentation] = input.compatibility.representations;\n\t\tif (!currentRepresentation) {\n\t\t\tthrow new TypeError('Mobile page has no current representation.');\n\t\t}\n\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tcontract: page.contract,\n\t\t\t\tframework: page.framework,\n\t\t\t\tkind: 'page',\n\t\t\t\tpageId: page.pageId,\n\t\t\t\tprops: normalizeJsonValue(\n\t\t\t\t\tcurrentRepresentation.mapProps(input.props)\n\t\t\t\t),\n\t\t\t\tstatus: input.status ?? OK_STATUS\n\t\t\t},\n\t\t\tinput.status ?? OK_STATUS\n\t\t);\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[Mobile] Archived producer ${context.releaseId} failed for ${page.pageId}:`,\n\t\t\terror\n\t\t);\n\n\t\treturn createAbsoluteMobilePageErrorResponse(page.pageId);\n\t}\n};\n\nexport const createAbsoluteMobileInvalidRequestResponse = (message: string) =>\n\tenvelopeResponse({ kind: 'invalid-request', message }, BAD_REQUEST_STATUS);\n\nexport const createAbsoluteMobilePageErrorResponse = (pageId: string) =>\n\tenvelopeResponse(\n\t\t{\n\t\t\tcode: 'representation-failed',\n\t\t\tkind: 'error',\n\t\t\tpageId,\n\t\t\tstatus: SERVER_ERROR_STATUS\n\t\t},\n\t\tSERVER_ERROR_STATUS\n\t);\n\nexport const createAbsoluteMobileUpgradeResponse = (\n\tresult: AbsoluteMobileUpgradeRequiredResult\n) => envelopeResponse(result, UPGRADE_REQUIRED_STATUS);\n\nexport const finalizeAbsoluteMobilePage = <Props>(\n\tinput: FinalizeAbsoluteMobilePageInput<Props>\n) => {\n\tconst parsed = parseAbsoluteMobilePageRequest(input.request);\n\tif (parsed.kind === 'not-mobile') return undefined;\n\tif (parsed.kind === 'invalid') {\n\t\treturn envelopeResponse(\n\t\t\t{ kind: 'invalid-request', message: parsed.message },\n\t\t\tBAD_REQUEST_STATUS\n\t\t);\n\t}\n\n\tconst { client } = parsed;\n\tif (client.pageId !== input.compatibility.pageId) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'invalid-request',\n\t\t\t\tmessage: `Requested mobile page ${client.pageId} does not match ${input.compatibility.pageId}.`\n\t\t\t},\n\t\t\tBAD_REQUEST_STATUS\n\t\t);\n\t}\n\tconst producerContext = getCurrentAbsoluteMobileProducerContext();\n\tif (producerContext)\n\t\treturn finalizeArchivedMobilePage(producerContext, input);\n\tif (client.protocol !== ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\treason: 'protocol'\n\t\t\t},\n\t\t\tUPGRADE_REQUIRED_STATUS\n\t\t);\n\t}\n\tif (!input.compatibility.runtimes.includes(client.runtime)) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\treason: 'runtime',\n\t\t\t\tsupportedRuntimes: [...input.compatibility.runtimes]\n\t\t\t},\n\t\t\tUPGRADE_REQUIRED_STATUS\n\t\t);\n\t}\n\n\tconst clientContracts = new Set(client.pageContracts);\n\tconst representation = input.compatibility.representations.find(\n\t\t({ contract }) => clientContracts.has(contract)\n\t);\n\tif (!representation) {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tkind: 'upgrade-required',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\treason: 'page-contract',\n\t\t\t\tsupportedContracts: input.compatibility.representations.map(\n\t\t\t\t\t({ contract }) => contract\n\t\t\t\t)\n\t\t\t},\n\t\t\tUPGRADE_REQUIRED_STATUS\n\t\t);\n\t}\n\n\ttry {\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tcontract: representation.contract,\n\t\t\t\tframework: input.compatibility.framework,\n\t\t\t\tkind: 'page',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\tprops: normalizeJsonValue(representation.mapProps(input.props)),\n\t\t\t\tstatus: input.status ?? OK_STATUS\n\t\t\t},\n\t\t\tinput.status ?? OK_STATUS\n\t\t);\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[Mobile] Failed to produce ${input.compatibility.pageId} representation ${representation.contract}:`,\n\t\t\terror\n\t\t);\n\n\t\treturn envelopeResponse(\n\t\t\t{\n\t\t\t\tcode: 'representation-failed',\n\t\t\t\tkind: 'error',\n\t\t\t\tpageId: input.compatibility.pageId,\n\t\t\t\tstatus: SERVER_ERROR_STATUS\n\t\t\t},\n\t\t\tSERVER_ERROR_STATUS\n\t\t);\n\t}\n};\n",
|
|
7
|
-
"import {\n\tABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\ttype AbsoluteMobilePageEnvelope,\n\ttype AbsoluteMobilePageFramework,\n\ttype AbsoluteMobilePageResult,\n\ttype AbsoluteMobileUpgradeReason,\n\ttype AbsoluteMobileUpgradeRequiredResult\n} from './pageProtocol';\n\ntype AbsoluteMobileClientTarget = {\n\t__ABSOLUTE_PAGE_RENDER_MODE__?: 'client' | 'hydrate';\n\t__INITIAL_PROPS__?: Record<string, unknown>;\n};\n\nexport type AbsoluteMobilePageLoader = (input: {\n\tcontract: string;\n\tpageId: string;\n}) => Promise<unknown>;\n\nexport type AbsoluteMobilePageActivation =\n\t| {\n\t\t\tkind: 'rendered';\n\t\t\tcontract: string;\n\t\t\tpageId: string;\n\t }\n\t| AbsoluteMobileUpgradeRequiredResult;\n\nexport type AbsoluteMobilePageActivationOptions = {\n\tloadPage: AbsoluteMobilePageLoader;\n\ttarget?: AbsoluteMobileClientTarget;\n};\n\nexport class AbsoluteMobilePageProtocolError extends Error {\n\treadonly code:\n\t\t| 'invalid-envelope'\n\t\t| 'invalid-props'\n\t\t| 'server-error'\n\t\t| 'server-rejected-request';\n\n\tconstructor(\n\t\tcode: AbsoluteMobilePageProtocolError['code'],\n\t\tmessage: string\n\t) {\n\t\tsuper(message);\n\t\tthis.name = 'AbsoluteMobilePageProtocolError';\n\t\tthis.code = code;\n\t}\n}\n\nconst frameworks = new Set<string>([\n\t'angular',\n\t'ember',\n\t'html',\n\t'htmx',\n\t'react',\n\t'svelte',\n\t'vue'\n]);\nconst upgradeReasons = new Set<string>([\n\t'app-release',\n\t'page-contract',\n\t'protocol',\n\t'runtime'\n]);\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst isFramework = (value: unknown): value is AbsoluteMobilePageFramework =>\n\ttypeof value === 'string' && frameworks.has(value);\n\nconst isUpgradeReason = (\n\tvalue: unknown\n): value is AbsoluteMobileUpgradeReason =>\n\ttypeof value === 'string' && upgradeReasons.has(value);\n\nconst parsePageResult = (\n\tvalue: Record<string, unknown>\n): AbsoluteMobilePageResult => {\n\tif (\n\t\ttypeof value.contract !== 'string' ||\n\t\t!isFramework(value.framework) ||\n\t\ttypeof value.pageId !== 'string' ||\n\t\ttypeof value.status !== 'number'\n\t) {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-envelope',\n\t\t\t'The mobile page response is missing required page metadata.'\n\t\t);\n\t}\n\tif (!isRecord(value.props)) {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-props',\n\t\t\t'The mobile page response must contain an object props value.'\n\t\t);\n\t}\n\n\treturn {\n\t\tcontract: value.contract,\n\t\tframework: value.framework,\n\t\tkind: 'page',\n\t\tpageId: value.pageId,\n\t\tprops: value.props,\n\t\tstatus: value.status\n\t};\n};\n\nconst parseUpgradeResult = (\n\tvalue: Record<string, unknown>\n): AbsoluteMobileUpgradeRequiredResult => {\n\tif (typeof value.pageId !== 'string' || !isUpgradeReason(value.reason)) {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-envelope',\n\t\t\t'The update response is missing its page or reason.'\n\t\t);\n\t}\n\n\treturn {\n\t\tkind: 'upgrade-required',\n\t\tpageId: value.pageId,\n\t\treason: value.reason,\n\t\tsupportedContracts: Array.isArray(value.supportedContracts)\n\t\t\t? value.supportedContracts.filter(\n\t\t\t\t\t(contract): contract is string =>\n\t\t\t\t\t\ttypeof contract === 'string'\n\t\t\t\t)\n\t\t\t: undefined,\n\t\tsupportedRuntimes: Array.isArray(value.supportedRuntimes)\n\t\t\t? value.supportedRuntimes.filter(\n\t\t\t\t\t(runtime): runtime is string => typeof runtime === 'string'\n\t\t\t\t)\n\t\t\t: undefined\n\t};\n};\n\nexport const activateAbsoluteMobilePage = async (\n\tvalue: unknown,\n\toptions: AbsoluteMobilePageActivationOptions\n) => {\n\tconst envelope = parseAbsoluteMobilePageEnvelope(value);\n\tif (envelope.response.kind === 'upgrade-required') {\n\t\treturn envelope.response;\n\t}\n\tif (envelope.response.kind !== 'page') {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-envelope',\n\t\t\t'Expected a renderable mobile page response.'\n\t\t);\n\t}\n\n\tconst target = options.target ?? window;\n\ttarget.__INITIAL_PROPS__ = envelope.response.props;\n\ttarget.__ABSOLUTE_PAGE_RENDER_MODE__ = 'client';\n\tawait options.loadPage({\n\t\tcontract: envelope.response.contract,\n\t\tpageId: envelope.response.pageId\n\t});\n\n\treturn {\n\t\tcontract: envelope.response.contract,\n\t\tkind: 'rendered',\n\t\tpageId: envelope.response.pageId\n\t} satisfies AbsoluteMobilePageActivation;\n};\n\nexport const parseAbsoluteMobilePageEnvelope = (value: unknown) => {\n\tif (!isRecord(value) || !isRecord(value.response)) {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-envelope',\n\t\t\t'The server did not return an AbsoluteJS mobile page envelope.'\n\t\t);\n\t}\n\tif (value.protocol !== ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION) {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-envelope',\n\t\t\t`Unsupported mobile page protocol ${String(value.protocol)}.`\n\t\t);\n\t}\n\n\tconst { kind } = value.response;\n\tif (kind === 'page') {\n\t\treturn {\n\t\t\tprotocol: ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\t\t\tresponse: parsePageResult(value.response)\n\t\t} satisfies AbsoluteMobilePageEnvelope;\n\t}\n\tif (kind === 'upgrade-required') {\n\t\treturn {\n\t\t\tprotocol: ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\t\t\tresponse: parseUpgradeResult(value.response)\n\t\t} satisfies AbsoluteMobilePageEnvelope;\n\t}\n\tif (kind === 'invalid-request') {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'server-rejected-request',\n\t\t\ttypeof value.response.message === 'string'\n\t\t\t\t? value.response.message\n\t\t\t\t: 'The server rejected the mobile page request.'\n\t\t);\n\t}\n\tif (kind === 'error') {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'server-error',\n\t\t\t'The server could not create a compatible mobile page representation.'\n\t\t);\n\t}\n\n\tthrow new AbsoluteMobilePageProtocolError(\n\t\t'invalid-envelope',\n\t\t`Unknown mobile page response kind ${String(kind)}.`\n\t);\n};\n"
|
|
7
|
+
"import {\n\tABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\ttype AbsoluteMobilePageEnvelope,\n\ttype AbsoluteMobilePageFramework,\n\ttype AbsoluteMobilePageResult,\n\ttype AbsoluteMobileUpgradeReason,\n\ttype AbsoluteMobileUpgradeRequiredResult\n} from './pageProtocol';\n\ntype AbsoluteMobileClientTarget = {\n\t__ABSOLUTE_PAGE_DISPOSE__?: () => Promise<void> | void;\n\t__ABSOLUTE_PAGE_READY__?: Promise<unknown>;\n\t__ABSOLUTE_PAGE_RENDER_MODE__?: 'client' | 'hydrate';\n\t__ABS_ANGULAR_REQUEST_CONTEXT__?: Record<string, unknown>;\n\t__INITIAL_PROPS__?: Record<string, unknown>;\n};\n\nexport type AbsoluteMobilePageLoader = (input: {\n\tcontract: string;\n\tpageId: string;\n}) => Promise<unknown>;\n\nexport type AbsoluteMobilePageActivation =\n\t| {\n\t\t\tkind: 'rendered';\n\t\t\tcontract: string;\n\t\t\tpageId: string;\n\t }\n\t| AbsoluteMobileUpgradeRequiredResult;\n\nexport type AbsoluteMobilePageActivationOptions = {\n\tloadPage: AbsoluteMobilePageLoader;\n\ttarget?: AbsoluteMobileClientTarget;\n};\n\nexport class AbsoluteMobilePageProtocolError extends Error {\n\treadonly code:\n\t\t| 'invalid-envelope'\n\t\t| 'invalid-props'\n\t\t| 'server-error'\n\t\t| 'server-rejected-request';\n\n\tconstructor(\n\t\tcode: AbsoluteMobilePageProtocolError['code'],\n\t\tmessage: string\n\t) {\n\t\tsuper(message);\n\t\tthis.name = 'AbsoluteMobilePageProtocolError';\n\t\tthis.code = code;\n\t}\n}\n\nexport const disposeAbsoluteMobilePage = async (\n\ttarget: AbsoluteMobileClientTarget = window\n) => {\n\tconst dispose = target.__ABSOLUTE_PAGE_DISPOSE__;\n\ttarget.__ABSOLUTE_PAGE_DISPOSE__ = undefined;\n\ttarget.__ABSOLUTE_PAGE_READY__ = undefined;\n\tif (dispose) await dispose();\n};\n\nconst frameworks = new Set<string>([\n\t'angular',\n\t'ember',\n\t'html',\n\t'htmx',\n\t'react',\n\t'svelte',\n\t'vue'\n]);\nconst upgradeReasons = new Set<string>([\n\t'app-release',\n\t'page-contract',\n\t'protocol',\n\t'runtime'\n]);\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst isFramework = (value: unknown): value is AbsoluteMobilePageFramework =>\n\ttypeof value === 'string' && frameworks.has(value);\n\nconst isUpgradeReason = (\n\tvalue: unknown\n): value is AbsoluteMobileUpgradeReason =>\n\ttypeof value === 'string' && upgradeReasons.has(value);\n\nconst parsePageResult = (\n\tvalue: Record<string, unknown>\n): AbsoluteMobilePageResult => {\n\tif (\n\t\ttypeof value.contract !== 'string' ||\n\t\t!isFramework(value.framework) ||\n\t\ttypeof value.pageId !== 'string' ||\n\t\ttypeof value.status !== 'number'\n\t) {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-envelope',\n\t\t\t'The mobile page response is missing required page metadata.'\n\t\t);\n\t}\n\tif (!isRecord(value.props)) {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-props',\n\t\t\t'The mobile page response must contain an object props value.'\n\t\t);\n\t}\n\n\treturn {\n\t\tcontract: value.contract,\n\t\tframework: value.framework,\n\t\tkind: 'page',\n\t\tpageId: value.pageId,\n\t\tprops: value.props,\n\t\tstatus: value.status\n\t};\n};\n\nconst parseUpgradeResult = (\n\tvalue: Record<string, unknown>\n): AbsoluteMobileUpgradeRequiredResult => {\n\tif (typeof value.pageId !== 'string' || !isUpgradeReason(value.reason)) {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-envelope',\n\t\t\t'The update response is missing its page or reason.'\n\t\t);\n\t}\n\n\treturn {\n\t\tkind: 'upgrade-required',\n\t\tpageId: value.pageId,\n\t\treason: value.reason,\n\t\tsupportedContracts: Array.isArray(value.supportedContracts)\n\t\t\t? value.supportedContracts.filter(\n\t\t\t\t\t(contract): contract is string =>\n\t\t\t\t\t\ttypeof contract === 'string'\n\t\t\t\t)\n\t\t\t: undefined,\n\t\tsupportedRuntimes: Array.isArray(value.supportedRuntimes)\n\t\t\t? value.supportedRuntimes.filter(\n\t\t\t\t\t(runtime): runtime is string => typeof runtime === 'string'\n\t\t\t\t)\n\t\t\t: undefined\n\t};\n};\n\nexport const activateAbsoluteMobilePage = async (\n\tvalue: unknown,\n\toptions: AbsoluteMobilePageActivationOptions\n) => {\n\tconst envelope = parseAbsoluteMobilePageEnvelope(value);\n\tif (envelope.response.kind === 'upgrade-required') {\n\t\treturn envelope.response;\n\t}\n\tif (envelope.response.kind !== 'page') {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-envelope',\n\t\t\t'Expected a renderable mobile page response.'\n\t\t);\n\t}\n\n\tconst target: AbsoluteMobileClientTarget = options.target ?? window;\n\tawait disposeAbsoluteMobilePage(target);\n\ttarget.__INITIAL_PROPS__ = envelope.response.props;\n\ttarget.__ABS_ANGULAR_REQUEST_CONTEXT__ = envelope.response.props;\n\ttarget.__ABSOLUTE_PAGE_RENDER_MODE__ = 'client';\n\tawait options.loadPage({\n\t\tcontract: envelope.response.contract,\n\t\tpageId: envelope.response.pageId\n\t});\n\tif (target.__ABSOLUTE_PAGE_READY__) {\n\t\tawait target.__ABSOLUTE_PAGE_READY__;\n\t}\n\n\treturn {\n\t\tcontract: envelope.response.contract,\n\t\tkind: 'rendered',\n\t\tpageId: envelope.response.pageId\n\t} satisfies AbsoluteMobilePageActivation;\n};\n\nexport const parseAbsoluteMobilePageEnvelope = (value: unknown) => {\n\tif (!isRecord(value) || !isRecord(value.response)) {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-envelope',\n\t\t\t'The server did not return an AbsoluteJS mobile page envelope.'\n\t\t);\n\t}\n\tif (value.protocol !== ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION) {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'invalid-envelope',\n\t\t\t`Unsupported mobile page protocol ${String(value.protocol)}.`\n\t\t);\n\t}\n\n\tconst { kind } = value.response;\n\tif (kind === 'page') {\n\t\treturn {\n\t\t\tprotocol: ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\t\t\tresponse: parsePageResult(value.response)\n\t\t} satisfies AbsoluteMobilePageEnvelope;\n\t}\n\tif (kind === 'upgrade-required') {\n\t\treturn {\n\t\t\tprotocol: ABSOLUTE_MOBILE_PAGE_PROTOCOL_VERSION,\n\t\t\tresponse: parseUpgradeResult(value.response)\n\t\t} satisfies AbsoluteMobilePageEnvelope;\n\t}\n\tif (kind === 'invalid-request') {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'server-rejected-request',\n\t\t\ttypeof value.response.message === 'string'\n\t\t\t\t? value.response.message\n\t\t\t\t: 'The server rejected the mobile page request.'\n\t\t);\n\t}\n\tif (kind === 'error') {\n\t\tthrow new AbsoluteMobilePageProtocolError(\n\t\t\t'server-error',\n\t\t\t'The server could not create a compatible mobile page representation.'\n\t\t);\n\t}\n\n\tthrow new AbsoluteMobilePageProtocolError(\n\t\t'invalid-envelope',\n\t\t`Unknown mobile page response kind ${String(kind)}.`\n\t);\n};\n",
|
|
8
|
+
"var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __name = (target, name) => {\n Object.defineProperty(target, \"name\", {\n value: name,\n enumerable: false,\n configurable: true\n });\n return target;\n};\nvar __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => (key in obj) ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the \"in\" operator on this value') : member.has(obj);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method);\nvar __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol(\"metadata\")] ?? null)];\nvar __decoratorStrings = [\"class\", \"method\", \"getter\", \"setter\", \"accessor\", \"field\", \"value\", \"get\", \"set\"];\nvar __expectFn = (fn) => fn !== undefined && typeof fn !== \"function\" ? __typeError(\"Function expected\") : fn;\nvar __decoratorContext = (kind, name, done, metadata, fns) => ({\n kind: __decoratorStrings[kind],\n name,\n metadata,\n addInitializer: (fn) => done._ ? __typeError(\"Already initialized\") : fns.push(__expectFn(fn || null))\n});\nvar __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol(\"metadata\"), array[3]);\nvar __runInitializers = (array, flags, self, value) => {\n for (var i = 0, fns = array[flags >> 1], n = fns && fns.length;i < n; i++)\n flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);\n return value;\n};\nvar __decorateElement = (array, flags, name, decorators, target, extra) => {\n var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);\n var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];\n var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);\n var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : {\n get [name]() {\n return __privateGet(this, extra);\n },\n set [name](x) {\n __privateSet(this, extra, x);\n }\n }, name));\n k ? p && k < 4 && __name(extra, (k > 2 ? \"set \" : k > 1 ? \"get \" : \"\") + name) : __name(target, name);\n for (var i = decorators.length - 1;i >= 0; i--) {\n ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);\n if (k) {\n ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => (name in x) };\n if (k ^ 3)\n access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];\n if (k > 2)\n access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;\n }\n it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? undefined : { get: desc.get, set: desc.set } : target, ctx);\n done._ = 1;\n if (k ^ 4 || it === undefined)\n __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);\n else if (typeof it !== \"object\" || it === null)\n __typeError(\"Object expected\");\n else\n __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);\n }\n return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;\n};\n\n// src/client/runtimeTransport.ts\nvar RUNTIME_TRANSPORT = Symbol.for(\"@absolutejs/sync/client-runtime-transport\");\nvar host = globalThis;\nvar isRegistry = (value) => typeof value === \"object\" && value !== null && Array.isArray(Reflect.get(value, \"installations\")) && Array.isArray(Reflect.get(value, \"clients\"));\nvar registry = (() => {\n const existing = host[RUNTIME_TRANSPORT];\n if (isRegistry(existing))\n return existing;\n if (typeof existing === \"object\" && existing !== null && Array.isArray(Reflect.get(existing, \"installations\"))) {\n Reflect.set(existing, \"clients\", []);\n return existing;\n }\n const created = { clients: [], installations: [] };\n Object.defineProperty(host, RUNTIME_TRANSPORT, {\n configurable: false,\n enumerable: false,\n value: created,\n writable: false\n });\n return created;\n})();\nvar getSyncClientRuntimeTransport = () => registry.installations.at(-1)?.transport;\nvar installSyncClientRuntimeTransport = (transport) => {\n const installation = { transport };\n registry.installations.push(installation);\n return () => {\n const index = registry.installations.indexOf(installation);\n if (index >= 0)\n registry.installations.splice(index, 1);\n };\n};\nvar registerSyncRuntimeClient = (client) => {\n registry.clients.push(client);\n return () => {\n const index = registry.clients.indexOf(client);\n if (index >= 0)\n registry.clients.splice(index, 1);\n };\n};\nvar maximum = (values) => {\n const present = values.filter((value) => value !== undefined);\n return present.length === 0 ? undefined : Math.max(...present);\n};\nvar minimum = (values) => {\n const present = values.filter((value) => value !== undefined);\n return present.length === 0 ? undefined : Math.min(...present);\n};\nvar inspectSyncRuntime = async () => {\n const clients = [...registry.clients];\n const statuses = clients.map((client) => client.status());\n const deadLetters = (await Promise.all(clients.map((client) => client.listDeadLetters()))).flat().map((record) => ({\n attempts: record.attempts,\n ...record.rejection?.code ? { code: record.rejection.code } : {},\n createdAt: record.createdAt,\n ...record.deadLetteredAt === undefined ? {} : { deadLetteredAt: record.deadLetteredAt },\n ...record.rejection?.kind ? { kind: record.rejection.kind } : {},\n ...record.rejection?.message ? { message: record.rejection.message } : {},\n name: record.name,\n operationId: record.operationId\n })).sort((left, right) => (left.deadLetteredAt ?? left.createdAt) - (right.deadLetteredAt ?? right.createdAt) || left.operationId.localeCompare(right.operationId));\n const lastError = statuses.findLast((status) => status.lastError)?.lastError;\n return {\n automaticResolutions: statuses.reduce((total, status) => total + status.automaticResolutions, 0),\n clients: clients.length,\n conflicts: deadLetters.filter((record) => record.kind === \"conflict\").length,\n deadLetters,\n ...lastError ? { lastError } : {},\n ...maximum(statuses.map((status) => status.lastSuccessfulPullAt)) === undefined ? {} : {\n lastSuccessfulPullAt: maximum(statuses.map((status) => status.lastSuccessfulPullAt))\n },\n ...maximum(statuses.map((status) => status.lastSuccessfulPushAt)) === undefined ? {} : {\n lastSuccessfulPushAt: maximum(statuses.map((status) => status.lastSuccessfulPushAt))\n },\n ...minimum(statuses.map((status) => status.oldestDeadLetterAt)) === undefined ? {} : {\n oldestDeadLetterAt: minimum(statuses.map((status) => status.oldestDeadLetterAt))\n },\n ...minimum(statuses.map((status) => status.oldestPendingAt)) === undefined ? {} : {\n oldestPendingAt: minimum(statuses.map((status) => status.oldestPendingAt))\n },\n pending: statuses.reduce((total, status) => total + status.pending, 0)\n };\n};\nvar clientWithDeadLetter = async (operationId) => {\n for (const client of registry.clients)\n if ((await client.listDeadLetters()).some((record) => record.operationId === operationId))\n return client;\n throw new Error(`Unknown Sync dead letter \"${operationId}\"`);\n};\nvar retrySyncRuntimeDeadLetter = async (operationId) => (await clientWithDeadLetter(operationId)).retryDeadLetter(operationId);\nvar discardSyncRuntimeDeadLetter = async (operationId) => (await clientWithDeadLetter(operationId)).discardDeadLetter(operationId);\nvar rebaseSyncRuntimeDeadLetter = async (operationId, args) => (await clientWithDeadLetter(operationId)).rebaseDeadLetter(operationId, args);\nexport {\n retrySyncRuntimeDeadLetter,\n registerSyncRuntimeClient,\n rebaseSyncRuntimeDeadLetter,\n installSyncClientRuntimeTransport,\n inspectSyncRuntime,\n getSyncClientRuntimeTransport,\n discardSyncRuntimeDeadLetter\n};\n\n//# debugId=52912A34E403B16964756E2164756E21\n//# sourceMappingURL=runtimeTransport.js.map\n",
|
|
9
|
+
"import {\n\tdiscardSyncRuntimeDeadLetter,\n\tinspectSyncRuntime,\n\trebaseSyncRuntimeDeadLetter,\n\tretrySyncRuntimeDeadLetter,\n\ttype SyncRuntimeInspection\n} from '@absolutejs/sync/client/runtime';\n\nexport type AbsoluteMobileSyncRemediation = {\n\tdiscard: (operationId: string) => Promise<void>;\n\tinspect: () => Promise<SyncRuntimeInspection>;\n\trebase: (operationId: string, args: unknown) => Promise<string>;\n\tretry: (operationId: string) => Promise<void>;\n};\n\ntype Installation = { bridge: AbsoluteMobileSyncRemediation };\ntype Registry = { installations: Installation[] };\nconst REMEDIATION_REGISTRY = Symbol.for('@absolutejs/mobile-sync-remediation');\nconst LAST_INSTALLATION_OFFSET = -1;\nconst isRegistry = (value: unknown): value is Registry =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\tArray.isArray(Reflect.get(value, 'installations'));\nconst resolveRegistry = () => {\n\tconst existing: unknown = Reflect.get(globalThis, REMEDIATION_REGISTRY);\n\tif (isRegistry(existing)) return existing;\n\tconst created: Registry = { installations: [] };\n\tObject.defineProperty(globalThis, REMEDIATION_REGISTRY, {\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t\tvalue: created,\n\t\twritable: false\n\t});\n\n\treturn created;\n};\nconst registry = resolveRegistry();\n\n/** Install the native shell's framework-neutral, redacted remediation bridge. */\nexport const getAbsoluteMobileSyncRemediation = () =>\n\tregistry.installations.at(LAST_INSTALLATION_OFFSET)?.bridge;\nexport const installAbsoluteMobileSyncRemediation = (\n\tbridge: AbsoluteMobileSyncRemediation = {\n\t\tdiscard: discardSyncRuntimeDeadLetter,\n\t\tinspect: inspectSyncRuntime,\n\t\trebase: rebaseSyncRuntimeDeadLetter,\n\t\tretry: retrySyncRuntimeDeadLetter\n\t}\n) => {\n\tconst installation: Installation = { bridge };\n\tregistry.installations.push(installation);\n\n\treturn () => {\n\t\tconst index = registry.installations.indexOf(installation);\n\t\tif (index >= 0) registry.installations.splice(index, 1);\n\t};\n};\n"
|
|
8
10
|
],
|
|
9
|
-
"mappings": "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",
|
|
10
|
-
"debugId": "
|
|
11
|
+
"mappings": "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",
|
|
12
|
+
"debugId": "82927F1F53FC383664756E2164756E21",
|
|
11
13
|
"names": []
|
|
12
14
|
}
|