@xyo-network/service-kit-xl1 0.2.2 → 0.3.0

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 (66) hide show
  1. package/README.md +64 -0
  2. package/dist/browser/createFleetAuthority.d.ts +11 -1
  3. package/dist/browser/createFleetAuthority.d.ts.map +1 -1
  4. package/dist/browser/fleetForeign.d.ts +5 -0
  5. package/dist/browser/fleetForeign.d.ts.map +1 -0
  6. package/dist/browser/fleetHistory.d.ts +37 -0
  7. package/dist/browser/fleetHistory.d.ts.map +1 -0
  8. package/dist/browser/fleetHistoryCache.d.ts +22 -0
  9. package/dist/browser/fleetHistoryCache.d.ts.map +1 -0
  10. package/dist/browser/fleetMeter.d.ts +26 -0
  11. package/dist/browser/fleetMeter.d.ts.map +1 -0
  12. package/dist/browser/fleetPage.d.ts +5 -0
  13. package/dist/browser/fleetPage.d.ts.map +1 -0
  14. package/dist/browser/fleetProfile.d.ts +13 -0
  15. package/dist/browser/fleetProfile.d.ts.map +1 -0
  16. package/dist/browser/fleetProjection.d.ts +1 -0
  17. package/dist/browser/fleetProjection.d.ts.map +1 -1
  18. package/dist/browser/fleetQuery.d.ts +8 -0
  19. package/dist/browser/fleetQuery.d.ts.map +1 -0
  20. package/dist/browser/fleetQuerySelection.d.ts +3 -0
  21. package/dist/browser/fleetQuerySelection.d.ts.map +1 -0
  22. package/dist/browser/fleetReaders.d.ts +10 -0
  23. package/dist/browser/fleetReaders.d.ts.map +1 -0
  24. package/dist/browser/fleetRequests.d.ts +3 -0
  25. package/dist/browser/fleetRequests.d.ts.map +1 -0
  26. package/dist/browser/fleetScope.d.ts +4 -0
  27. package/dist/browser/fleetScope.d.ts.map +1 -0
  28. package/dist/browser/fleetSelectedPayloadSource.d.ts +4 -0
  29. package/dist/browser/fleetSelectedPayloadSource.d.ts.map +1 -0
  30. package/dist/browser/index.d.ts +5 -0
  31. package/dist/browser/index.d.ts.map +1 -1
  32. package/dist/browser/index.mjs +769 -92
  33. package/dist/browser/index.mjs.map +4 -4
  34. package/dist/node/createFleetAuthority.d.ts +11 -1
  35. package/dist/node/createFleetAuthority.d.ts.map +1 -1
  36. package/dist/node/fleetForeign.d.ts +5 -0
  37. package/dist/node/fleetForeign.d.ts.map +1 -0
  38. package/dist/node/fleetHistory.d.ts +37 -0
  39. package/dist/node/fleetHistory.d.ts.map +1 -0
  40. package/dist/node/fleetHistoryCache.d.ts +22 -0
  41. package/dist/node/fleetHistoryCache.d.ts.map +1 -0
  42. package/dist/node/fleetMeter.d.ts +26 -0
  43. package/dist/node/fleetMeter.d.ts.map +1 -0
  44. package/dist/node/fleetPage.d.ts +5 -0
  45. package/dist/node/fleetPage.d.ts.map +1 -0
  46. package/dist/node/fleetProfile.d.ts +13 -0
  47. package/dist/node/fleetProfile.d.ts.map +1 -0
  48. package/dist/node/fleetProjection.d.ts +1 -0
  49. package/dist/node/fleetProjection.d.ts.map +1 -1
  50. package/dist/node/fleetQuery.d.ts +8 -0
  51. package/dist/node/fleetQuery.d.ts.map +1 -0
  52. package/dist/node/fleetQuerySelection.d.ts +3 -0
  53. package/dist/node/fleetQuerySelection.d.ts.map +1 -0
  54. package/dist/node/fleetReaders.d.ts +10 -0
  55. package/dist/node/fleetReaders.d.ts.map +1 -0
  56. package/dist/node/fleetRequests.d.ts +3 -0
  57. package/dist/node/fleetRequests.d.ts.map +1 -0
  58. package/dist/node/fleetScope.d.ts +4 -0
  59. package/dist/node/fleetScope.d.ts.map +1 -0
  60. package/dist/node/fleetSelectedPayloadSource.d.ts +4 -0
  61. package/dist/node/fleetSelectedPayloadSource.d.ts.map +1 -0
  62. package/dist/node/index.d.ts +5 -0
  63. package/dist/node/index.d.ts.map +1 -1
  64. package/dist/node/index.mjs +769 -92
  65. package/dist/node/index.mjs.map +4 -4
  66. package/package.json +12 -12
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/createFleetAuthority.ts", "../../src/fleetControl.ts", "../../src/fleetProjection.ts", "../../src/createXl1DataLakeSeed.ts", "../../src/configuration.ts"],
4
- "sourcesContent": ["import type {\n ConfiguredSeed, FleetControlFact, FleetDeclarationFact, FleetFoldLimits, FoldedFleetView, ResolutionLimits,\n} from '@xyo-network/service-kit-protocol'\nimport {\n foldFleetControls, resolveFleetPayload, verifyFleetPayload,\n} from '@xyo-network/service-kit-protocol'\nimport type {\n FleetControl, FleetPayload, FleetPayloadFamily,\n} from '@xyo-network/service-kit-schemas'\nimport {\n AddressZod, FleetControlSchema, FleetMemberSchema, FleetPublicationScopeSchema, FleetPublicationScopeZod, FleetSchema, FleetZod, HashZod,\n} from '@xyo-network/service-kit-schemas'\nimport {\n createXl1FinalizedPublicationEvidence,\n type Xl1FinalizedPublicationAnchor,\n type Xl1FinalizedPublicationOccurrence,\n type Xl1FinalizedPublicationProfile,\n type Xl1FinalizedPublicationScan,\n type Xl1ScopedFinalizedPublicationScan,\n} from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\nimport {\n captureSignal, FleetAuthorityError, fleetNow, operationControl,\n} from './fleetControl.js'\nimport {\n type FleetPublisherProjectionRequest, type FleetPublisherProjectionResult, nextPublisherProjection,\n} from './fleetProjection.js'\n\nexport interface FleetAuthorityLimits {\n readonly maxBlocks: number\n readonly maxConcurrentCalls: number\n readonly maxConcurrentReads: number\n readonly maxFleets: number\n readonly maxOccurrences: number\n readonly maxPages: number\n readonly maxRootReads: number\n readonly totalTimeoutMs: number\n}\n/** Explicit single-ChainId local composition; no caller scan interface or imported control arrays. */\nexport interface FleetAuthorityProfile {\n readonly evidence: Xl1FinalizedPublicationProfile\n readonly foldLimits: FleetFoldLimits\n readonly limits: FleetAuthorityLimits\n readonly resolutionLimits: ResolutionLimits\n readonly seeds: readonly ConfiguredSeed[]\n}\nexport interface FleetAuthorityRequest {\n readonly anchor: Xl1FinalizedPublicationAnchor\n readonly fleetRoot?: string\n readonly owner: string\n readonly publicationBlock: number\n readonly signal?: AbortSignal\n}\nexport interface FleetPublisherAuthorityRequest extends Omit<FleetAuthorityRequest, 'fleetRoot'> {\n readonly publisherAddress: string\n readonly scopeRoot: string\n}\nexport interface AuthenticatedFleetView extends Omit<FoldedFleetView, 'assurance' | 'status'> {\n readonly assurance: 'source-trusted-finalized-replay'\n readonly status: 'complete'\n}\nexport interface FleetAuthorityContext {\n readonly anchor: Xl1FinalizedPublicationAnchor\n readonly assurance: 'source-trusted-finalized-replay'\n readonly chainId: string\n readonly genesisRoot: string\n readonly historyScope: 'verified-native-owner-and-B4-families'\n readonly network: string\n readonly owner: string\n readonly publicationBlock: number\n}\nexport interface CompleteFleetAuthority extends FleetAuthorityContext {\n readonly correspondence: 'native-sdk-verified'\n readonly coveredRange: { readonly fromBlockNumber: 0; readonly toBlockNumber: number }\n readonly history: 'complete-genesis-to-anchor'\n readonly status: 'complete'\n readonly views: readonly AuthenticatedFleetView[]\n}\nexport interface FleetAuthorityFailure extends FleetAuthorityContext {\n readonly code: string\n readonly status: 'incomplete' | 'unsupported' | 'conflict' | 'resource-limit' | 'cancelled' | 'deadline'\n}\nexport type FleetAuthorityResult = CompleteFleetAuthority | FleetAuthorityFailure\nexport interface ResolvedFleetPublisher extends FleetAuthorityContext {\n readonly controlRoot: string\n readonly correspondence: 'native-sdk-verified'\n readonly fleetRoot: string\n readonly history: 'complete-genesis-to-anchor'\n readonly memberRoot: string\n readonly publisherAddress: string\n readonly scopeRoot: string\n readonly status: 'authorized'\n}\nexport interface AbsentFleetPublisher extends FleetAuthorityContext {\n readonly correspondence: 'native-sdk-verified'\n readonly history: 'complete-genesis-to-anchor'\n readonly publisherAddress: string\n readonly scopeRoot: string\n readonly status: 'absent'\n}\nexport type FleetPublisherAuthorityResult = ResolvedFleetPublisher | AbsentFleetPublisher | FleetAuthorityFailure\nexport interface FleetAuthority {\n enumerate(request: FleetAuthorityRequest): Promise<FleetAuthorityResult>\n projectNextPublisher(request: FleetPublisherProjectionRequest): Promise<FleetPublisherProjectionResult>\n resolvePublisher(request: FleetPublisherAuthorityRequest): Promise<FleetPublisherAuthorityResult>\n}\n\nconst b4Families = Object.freeze([FleetSchema, FleetMemberSchema, FleetPublicationScopeSchema, FleetControlSchema])\n\ntype Control = ReturnType<typeof operationControl>\ninterface Work {\n readonly capacity: { limited: boolean }\n readonly control: Control\n readonly declarations: Map<string, FleetDeclarationFact>\n readonly roots: Map<string, Readonly<FleetPayload>>\n readonly seeds: readonly ConfiguredSeed[]\n}\n\nfunction ownRecord(input: unknown, required: readonly string[], optional: readonly string[] = []): Record<string, unknown> {\n if (input === null || typeof input !== 'object' || Object.getPrototypeOf(input) !== Object.prototype) throw new TypeError('Use a strict own-data profile/request')\n const keys = Reflect.ownKeys(input)\n if (keys.some(key => typeof key !== 'string'\n || ![...required, ...optional].includes(key))\n || required.some(key => !keys.includes(key))) throw new TypeError('Unexpected or missing profile/request fields')\n return Object.fromEntries(keys.map((key) => {\n const descriptor = Object.getOwnPropertyDescriptor(input, key)\n if (descriptor?.enumerable !== true || !('value' in descriptor)) throw new TypeError('Profile/request accessors are unsupported')\n return [key, descriptor.value as unknown]\n }))\n}\nfunction finiteProfile<T>(input: T, keys: readonly string[]): T {\n const values = ownRecord(input, keys)\n if (Object.values(values).some(value => typeof value !== 'number'\n || !Number.isSafeInteger(value)\n || value <= 0\n || value > 2_147_483_647)) throw new RangeError('Every finite positive bound is required')\n return Object.freeze(values) as T\n}\nfunction pinProfile(input: FleetAuthorityProfile) {\n const profile = ownRecord(input, ['evidence', 'foldLimits', 'limits', 'resolutionLimits', 'seeds'])\n const evidence = ownRecord(profile.evidence, ['assurance', 'chainId', 'genesisRoot', 'limits', 'network', 'source'])\n const source = ownRecord(evidence.source, ['bodyBaseUrl', 'finalizedBaseUrl', 'headUrl'], ['fetch'])\n const evidenceLimits = finiteProfile(evidence.limits, ['maxAggregateBytes',\n 'maxBlocks',\n 'maxBodies',\n 'maxConcurrentReads',\n 'maxDecodedDepth',\n 'maxDecodedNodes',\n 'maxLineageBlocks',\n 'maxResponseBytes',\n 'maxRoots',\n 'maxSourceUrlBytes',\n 'perCallTimeoutMs',\n 'totalTimeoutMs'])\n const fixedEvidence = Object.freeze({\n ...evidence, limits: evidenceLimits, source: Object.freeze(source),\n }) as unknown as Xl1FinalizedPublicationProfile\n const limits = finiteProfile(profile.limits, ['maxBlocks',\n 'maxConcurrentCalls',\n 'maxConcurrentReads',\n 'maxFleets',\n 'maxOccurrences',\n 'maxPages',\n 'maxRootReads',\n 'totalTimeoutMs']) as FleetAuthorityLimits\n const foldLimits = finiteProfile(profile.foldLimits, ['maxBodyBytes', 'maxControls', 'maxDeclarations', 'maxDepth', 'maxGrants', 'maxMembers', 'maxNodes']) as FleetFoldLimits\n const resolutionLimits = finiteProfile(profile.resolutionLimits, ['attemptTimeoutMs',\n 'maxBodyBytes',\n 'maxCandidatesPerSeed',\n 'maxDepth',\n 'maxNodes',\n 'maxSeeds',\n 'totalTimeoutMs']) as ResolutionLimits\n return {\n evidence: fixedEvidence, limits, foldLimits, resolutionLimits, seeds: profile.seeds as readonly ConfiguredSeed[],\n }\n}\nfunction pinRequest(input: FleetAuthorityRequest, next = false): FleetAuthorityRequest {\n const values = ownRecord(input, ['anchor', 'owner', 'publicationBlock'], ['fleetRoot', 'signal'])\n const anchor = ownRecord(values.anchor, ['blockNumber', 'blockRoot']) as unknown as Xl1FinalizedPublicationAnchor\n HashZod.parse(anchor.blockRoot)\n AddressZod.parse(values.owner)\n if (values.fleetRoot !== undefined) HashZod.parse(values.fleetRoot)\n if (!Number.isSafeInteger(anchor.blockNumber) || anchor.blockNumber < 0 || anchor.blockNumber >= Number.MAX_SAFE_INTEGER\n\n || typeof values.publicationBlock !== 'number'\n || !Number.isSafeInteger(values.publicationBlock)\n || values.publicationBlock < 0\n || (next ? values.publicationBlock !== anchor.blockNumber + 1 : values.publicationBlock > anchor.blockNumber)) throw new RangeError('Select an exact publication height within the anchor')\n return Object.freeze({\n ...values, anchor: Object.freeze(anchor), signal: captureSignal(values.signal),\n }) as unknown as FleetAuthorityRequest\n}\nfunction pinReaders(seeds: readonly ConfiguredSeed[], profile: ReturnType<typeof pinProfile>): readonly ConfiguredSeed[] {\n if (!Array.isArray(seeds) || seeds.length === 0 || seeds.length > profile.resolutionLimits.maxSeeds) throw new RangeError('Explicit bounded root readers required')\n const ids = new Set<string>()\n return Object.freeze(Array.from({ length: seeds.length }, (_, index) => {\n const slot = Object.getOwnPropertyDescriptor(seeds, String(index))\n if (slot?.enumerable !== true || !('value' in slot)) throw new TypeError('Readers require dense own data slots')\n const seed = ownRecord(slot.value, ['id', 'reader'])\n if (typeof seed.id !== 'string' || seed.id.length === 0 || seed.id.length > 128 || seed.id.trim() !== seed.id || ids.has(seed.id)) throw new TypeError('Readers require unique bounded IDs')\n ids.add(seed.id)\n const reader = ownRecord(seed.reader, ['get'])\n if (typeof reader.get !== 'function') throw new TypeError('Readers require an own get method')\n const get = reader.get.bind(seed.reader) as ConfiguredSeed['reader']['get']\n return Object.freeze({ id: seed.id, reader: Object.freeze({ get }) })\n }))\n}\nfunction capacityReaders(seeds: readonly ConfiguredSeed[], state: { active: number }, maximum: number, capacity: { limited: boolean }): readonly ConfiguredSeed[] {\n return Object.freeze(seeds.map(seed => Object.freeze({\n id: seed.id,\n reader: Object.freeze({\n get: async (...args: Parameters<ConfiguredSeed['reader']['get']>) => {\n if (state.active >= maximum) {\n capacity.limited = true\n throw new FleetAuthorityError('resource-limit', 'reader-capacity')\n }\n state.active++\n try {\n return await seed.reader.get(...args)\n } finally {\n state.active--\n }\n },\n }),\n })))\n}\nfunction context(profile: ReturnType<typeof pinProfile>, request: FleetAuthorityRequest): FleetAuthorityContext {\n return Object.freeze({\n assurance: 'source-trusted-finalized-replay',\n historyScope: 'verified-native-owner-and-B4-families',\n network: profile.evidence.network,\n chainId: profile.evidence.chainId,\n genesisRoot: profile.evidence.genesisRoot,\n anchor: request.anchor,\n owner: request.owner,\n publicationBlock: request.publicationBlock,\n })\n}\nfunction positionAfter(left: Xl1FinalizedPublicationOccurrence, right: Xl1FinalizedPublicationOccurrence) {\n return left.blockNumber > right.blockNumber || (left.blockNumber === right.blockNumber && (left.transactionIndex > right.transactionIndex\n || (left.transactionIndex === right.transactionIndex && left.payloadOrdinal > right.payloadOrdinal)))\n}\nfunction nativeFailure(page: Xl1FinalizedPublicationScan) {\n const statuses: readonly string[] = ['cancelled', 'deadline', 'conflict', 'unsupported', 'resource-limit']\n const status = statuses.includes(page.status) ? page.status as FleetAuthorityError['status'] : 'incomplete'\n return new FleetAuthorityError(status, `native-${page.issues[0]?.code ?? page.status}`)\n}\nfunction validatePage(page: Xl1ScopedFinalizedPublicationScan, profile: ReturnType<typeof pinProfile>, request: FleetAuthorityRequest, from: number, to: number) {\n const actual = [page.network,\n page.chainId,\n page.genesisRoot,\n page.anchor.blockNumber,\n page.anchor.blockRoot,\n page.assurance,\n page.requestedRange.fromBlockNumber,\n page.requestedRange.toBlockNumber]\n const expected = [profile.evidence.network,\n profile.evidence.chainId,\n profile.evidence.genesisRoot,\n request.anchor.blockNumber,\n request.anchor.blockRoot,\n 'source-trusted-finalized-replay',\n from,\n to]\n if (actual.some((value, index) => value !== expected[index])) throw new FleetAuthorityError('conflict', 'scan-binding')\n if (page.scopeCompleteness !== 'verified-native-header-selection'\n || page.scope.authorizers?.length !== 1 || page.scope.authorizers[0] !== request.owner\n || page.scope.schemas?.length !== b4Families.length\n || page.scope.schemas.some((family, index) => family !== b4Families[index])) throw new FleetAuthorityError('conflict', 'scan-scope')\n if (page.status !== 'complete') throw nativeFailure(page)\n if (page.coveredRange?.fromBlockNumber !== from || page.coveredRange.toBlockNumber !== to || page.continuation !== undefined || page.issues.length > 0) {\n throw new FleetAuthorityError('incomplete', 'scan-coverage')\n }\n}\n\n/** Source-trusted complete B4 composition using the owning native evidence provider, never imported arrays. */\nexport function createFleetAuthority(input: FleetAuthorityProfile): FleetAuthority {\n const profile = pinProfile(input)\n const evidence = createXl1FinalizedPublicationEvidence(profile.evidence)\n const readState = { active: 0 }\n const seeds = pinReaders(profile.seeds, profile)\n let activeCalls = 0\n\n async function resolved(root: string, family: FleetPayloadFamily, work: Work): Promise<Readonly<FleetPayload>> {\n work.control.assertActive()\n const cached = work.roots.get(root)\n if (cached !== undefined) {\n if (cached.schema !== family) throw new FleetAuthorityError('unsupported', 'declaration-family')\n return cached\n }\n if (work.roots.size >= profile.limits.maxRootReads) throw new FleetAuthorityError('resource-limit', 'root-reads')\n const result = await resolveFleetPayload(root, family, {\n seeds: work.seeds,\n signal: work.control.signal,\n limits: { ...profile.resolutionLimits, totalTimeoutMs: Math.min(profile.resolutionLimits.totalTimeoutMs, work.control.remainingMs()) },\n })\n work.control.assertActive()\n if (work.capacity.limited) throw new FleetAuthorityError('resource-limit', 'reader-capacity')\n if (result.status !== 'verified') {\n if (result.status === 'aborted') throw new FleetAuthorityError('cancelled', 'root-cancelled')\n if (result.reason === 'resource-limit') throw new FleetAuthorityError('resource-limit', 'root-resource-limit')\n if (result.reason === 'deadline') throw new FleetAuthorityError('deadline', 'root-deadline')\n if (result.attempts.some(attempt => attempt.status === 'unsupported')) throw new FleetAuthorityError('unsupported', 'root-definition')\n throw new FleetAuthorityError('incomplete', 'root-unavailable')\n }\n work.roots.set(root, result.payload)\n if (family !== FleetControlSchema) work.declarations.set(root, Object.freeze({ root, payload: result.payload }))\n return result.payload\n }\n async function scan(request: FleetAuthorityRequest, control: Control) {\n if (request.anchor.blockNumber + 1 > profile.limits.maxBlocks) throw new FleetAuthorityError('resource-limit', 'history-blocks')\n const occurrences: Xl1FinalizedPublicationOccurrence[] = []\n let pages = 0\n for (let from = 0; from <= request.anchor.blockNumber;) {\n control.assertActive()\n if (++pages > profile.limits.maxPages) throw new FleetAuthorityError('resource-limit', 'scan-pages')\n const to = Math.min(request.anchor.blockNumber, from + profile.evidence.limits.maxBlocks - 1)\n const page = await evidence.scanScoped({\n anchor: request.anchor,\n fromBlockNumber: from,\n toBlockNumber: to,\n signal: control.signal,\n scope: { authorizers: [request.owner], schemas: b4Families },\n })\n control.assertActive()\n validatePage(page, profile, request, from, to)\n for (const fact of page.occurrences) {\n const previous = occurrences.at(-1)\n if (fact.network !== profile.evidence.network || fact.chainId !== profile.evidence.chainId || fact.genesisRoot !== profile.evidence.genesisRoot\n || fact.signer !== request.owner || !b4Families.includes(fact.schema as FleetPayloadFamily)\n || fact.blockNumber < from || fact.blockNumber > to || (previous !== undefined && !positionAfter(fact, previous))) throw new FleetAuthorityError('conflict', 'occurrence-binding-order')\n if (occurrences.length >= profile.limits.maxOccurrences) throw new FleetAuthorityError('resource-limit', 'occurrences')\n occurrences.push(fact)\n }\n from = to + 1\n }\n return occurrences\n }\n async function original(fact: Xl1FinalizedPublicationOccurrence, family: FleetPayloadFamily, control: Control) {\n const checked = await verifyFleetPayload(fact.payloadRoot, family, fact.body, profile.foldLimits)\n control.assertActive()\n if (checked.status !== 'verified') throw new FleetAuthorityError(checked.status === 'unsupported' ? 'unsupported' : 'incomplete', 'owner-definition')\n return checked.payload\n }\n async function discoverFleet(fact: Xl1FinalizedPublicationOccurrence, request: FleetAuthorityRequest, work: Work, roots: Set<string>) {\n if (fact.schema !== FleetSchema || request.fleetRoot !== undefined) return\n const checked = await verifyFleetPayload(fact.payloadRoot, FleetSchema, fact.body, profile.foldLimits)\n work.control.assertActive()\n if (checked.status !== 'verified') {\n if (fact.signer === request.owner) throw new FleetAuthorityError(checked.status === 'unsupported' ? 'unsupported' : 'incomplete', 'owner-declaration')\n return\n }\n if (FleetZod.parse(checked.payload).owner === request.owner) roots.add(fact.payloadRoot)\n }\n async function collect(request: FleetAuthorityRequest, work: Work, occurrences: readonly Xl1FinalizedPublicationOccurrence[]) {\n const roots = new Set<string>(request.fleetRoot === undefined ? [] : [request.fleetRoot])\n const controls: FleetControlFact[] = []\n for (const fact of occurrences) {\n work.control.assertActive()\n if (fact.blockNumber > request.publicationBlock) continue\n await discoverFleet(fact, request, work, roots)\n if (fact.schema !== FleetControlSchema || fact.signer !== request.owner || fact.blockNumber === request.publicationBlock) continue\n const payload = await original(fact, FleetControlSchema, work.control) as Readonly<FleetControl>\n if (request.fleetRoot !== undefined && payload.fleetRoot !== request.fleetRoot) continue\n // A verified immutable different owner makes this otherwise native-valid assertion\n // provably ineligible under B4's no-delegation contract. Unknown roots stay required.\n const fleet = FleetZod.parse(await resolved(payload.fleetRoot, FleetSchema, work))\n if (fleet.owner !== request.owner) continue\n roots.add(payload.fleetRoot)\n await resolved(fact.payloadRoot, FleetControlSchema, work)\n controls.push(Object.freeze({\n root: fact.payloadRoot,\n payload,\n authorizer: fact.signer,\n block: fact.blockNumber,\n chainId: fact.chainId,\n transactionIndex: fact.transactionIndex,\n payloadIndex: fact.payloadOrdinal,\n }))\n if ('memberRoot' in payload) await resolved(payload.memberRoot, FleetMemberSchema, work)\n if ('scopeRoot' in payload) await resolved(payload.scopeRoot, FleetPublicationScopeSchema, work)\n if (roots.size > profile.limits.maxFleets) throw new FleetAuthorityError('resource-limit', 'fleets')\n }\n if (roots.size > profile.limits.maxFleets) throw new FleetAuthorityError('resource-limit', 'fleets')\n return { roots, controls }\n }\n async function enumerateWork(request: FleetAuthorityRequest, work: Work): Promise<CompleteFleetAuthority> {\n const occurrences = await scan(request, work.control)\n const { roots, controls } = await collect(request, work, occurrences)\n const views: AuthenticatedFleetView[] = []\n for (const root of roots) {\n await resolved(root, FleetSchema, work)\n const selected = controls.filter(fact => fact.payload.fleetRoot === root)\n const needed = new Set<string>([root])\n for (const fact of selected) {\n if ('memberRoot' in fact.payload) needed.add(fact.payload.memberRoot)\n if ('scopeRoot' in fact.payload) needed.add(fact.payload.scopeRoot)\n }\n const folded = foldFleetControls({\n owner: request.owner,\n fleetRoot: root,\n chainId: profile.evidence.chainId,\n genesisRoot: profile.evidence.genesisRoot,\n publicationBlock: request.publicationBlock,\n controls: selected,\n declarations: [...needed].map((key) => {\n const declaration = work.declarations.get(key)\n if (declaration === undefined) throw new FleetAuthorityError('incomplete', 'missing-declaration')\n return declaration\n }),\n limits: profile.foldLimits,\n signal: work.control.signal,\n })\n work.control.assertActive()\n if (folded.status !== 'folded') {\n const status = folded.status === 'aborted' ? 'cancelled' : folded.reason === 'resource-limit' ? 'resource-limit' : folded.status\n throw new FleetAuthorityError(status, `fold-${folded.reason}`)\n }\n views.push(Object.freeze({\n ...folded, status: 'complete', assurance: 'source-trusted-finalized-replay',\n }))\n }\n return Object.freeze({\n ...context(profile, request),\n status: 'complete',\n correspondence: 'native-sdk-verified',\n history: 'complete-genesis-to-anchor',\n coveredRange: Object.freeze({ fromBlockNumber: 0, toBlockNumber: request.anchor.blockNumber }),\n views: Object.freeze(views),\n })\n }\n async function execute<T>(request: FleetAuthorityRequest, startedAt: number, operation: (work: Work) => Promise<T>): Promise<T | FleetAuthorityFailure> {\n const control = operationControl(request.signal, profile.limits.totalTimeoutMs, startedAt)\n let admitted = false\n try {\n control.assertActive()\n if (activeCalls >= profile.limits.maxConcurrentCalls) throw new FleetAuthorityError('resource-limit', 'composition-capacity')\n activeCalls++\n admitted = true\n const capacity = { limited: false }\n return await operation({\n control,\n roots: new Map(),\n declarations: new Map(),\n capacity,\n seeds: capacityReaders(seeds, readState, profile.limits.maxConcurrentReads, capacity),\n })\n } catch (error) {\n const failure = error instanceof FleetAuthorityError ? error : new FleetAuthorityError('incomplete', 'composition-source')\n return Object.freeze({\n ...context(profile, request), status: failure.status, code: failure.code,\n })\n } finally {\n if (admitted) activeCalls--\n control.dispose()\n }\n }\n async function publisherWork(request: FleetAuthorityRequest, scopeRoot: string, publisherAddress: string, work: Work): Promise<ResolvedFleetPublisher | AbsentFleetPublisher> {\n const scope = FleetPublicationScopeZod.parse(await resolved(scopeRoot, FleetPublicationScopeSchema, work))\n const result = await enumerateWork({ ...request, fleetRoot: scope.fleetRoot }, work)\n const view = result.views[0]\n const matches = view?.fleetActive ? view.grants.filter(grant => grant.scopeRoot === scopeRoot && grant.publisherAddress === publisherAddress) : []\n if (matches.length > 1) throw new FleetAuthorityError('conflict', 'publisher-ambiguity')\n const grant = matches[0]\n return grant === undefined\n ? Object.freeze({\n ...context(profile, request), status: 'absent', correspondence: 'native-sdk-verified', history: 'complete-genesis-to-anchor', scopeRoot, publisherAddress,\n })\n : Object.freeze({\n ...context(profile, request),\n status: 'authorized',\n correspondence: 'native-sdk-verified',\n history: 'complete-genesis-to-anchor',\n fleetRoot: scope.fleetRoot,\n memberRoot: grant.memberRoot,\n controlRoot: grant.controlRoot,\n scopeRoot,\n publisherAddress,\n })\n }\n return Object.freeze({\n async enumerate(inputRequest: FleetAuthorityRequest): Promise<FleetAuthorityResult> {\n const startedAt = fleetNow()\n const request = pinRequest(inputRequest)\n return await execute(request, startedAt, work => enumerateWork(request, work))\n },\n async resolvePublisher(inputRequest: FleetPublisherAuthorityRequest): Promise<FleetPublisherAuthorityResult> {\n const startedAt = fleetNow()\n const values = ownRecord(inputRequest, ['anchor', 'owner', 'publicationBlock', 'publisherAddress', 'scopeRoot'], ['signal'])\n const publisherAddress = AddressZod.parse(values.publisherAddress)\n const scopeRoot = HashZod.parse(values.scopeRoot)\n const request = pinRequest({\n anchor: values.anchor as Xl1FinalizedPublicationAnchor,\n owner: values.owner as string,\n publicationBlock: values.publicationBlock as number,\n ...(values.signal !== undefined && { signal: values.signal as AbortSignal }),\n })\n return await execute(request, startedAt, work => publisherWork(request, scopeRoot, publisherAddress, work))\n },\n async projectNextPublisher(inputRequest: FleetPublisherProjectionRequest): Promise<FleetPublisherProjectionResult> {\n const startedAt = fleetNow()\n const values = ownRecord(inputRequest, ['anchor', 'owner', 'publisherAddress', 'scopeRoot'], ['signal'])\n const anchor = ownRecord(values.anchor, ['blockNumber', 'blockRoot']) as unknown as Xl1FinalizedPublicationAnchor\n const publisherAddress = AddressZod.parse(values.publisherAddress)\n const scopeRoot = HashZod.parse(values.scopeRoot)\n const request = pinRequest({\n anchor,\n owner: values.owner as string,\n publicationBlock: anchor.blockNumber + 1,\n ...(values.signal !== undefined && { signal: values.signal as AbortSignal }),\n }, true)\n const result = await execute(request, startedAt, work => publisherWork(request, scopeRoot, publisherAddress, work))\n return nextPublisherProjection(result)\n },\n })\n}\n", "const abortedDescriptor = Object.getOwnPropertyDescriptor(AbortSignal.prototype, 'aborted')\nconst abortedGetter: unknown = Reflect.get(abortedDescriptor ?? {}, 'get')\nconst nativeEvents = EventTarget.prototype as unknown as { addEventListener: (this: void, ...args: unknown[]) => void; removeEventListener: (this: void, ...args: unknown[]) => void }\nconst addListener = nativeEvents.addEventListener\nconst removeListener = nativeEvents.removeEventListener\nconst apply = Reflect.apply\nconst now = performance.now.bind(performance)\n\nexport function captureSignal(value: unknown): AbortSignal | undefined {\n if (value === undefined) return\n if (typeof abortedGetter !== 'function') throw new TypeError('Native AbortSignal is required')\n apply(abortedGetter, value, [])\n return value as AbortSignal\n}\nexport function aborted(signal: AbortSignal): boolean {\n if (typeof abortedGetter !== 'function') throw new TypeError('Native AbortSignal is required')\n return apply(abortedGetter, signal, []) as boolean\n}\nexport function listenAbort(signal: AbortSignal | undefined, listener: () => void): () => void {\n if (signal === undefined) return () => { /* No caller cancellation. */ }\n apply(addListener, signal, ['abort', listener, { once: true }])\n return () => {\n apply(removeListener, signal, ['abort', listener])\n }\n}\nexport class FleetAuthorityError extends Error {\n readonly code: string\n readonly status: 'incomplete' | 'unsupported' | 'conflict' | 'resource-limit' | 'cancelled' | 'deadline'\n constructor(status: FleetAuthorityError['status'], code: string) {\n super(code)\n this.name = 'FleetAuthorityError'\n this.status = status\n this.code = code\n }\n}\nexport function operationControl(signal: AbortSignal | undefined, timeoutMs: number, startedAt: number) {\n const controller = new AbortController()\n const deadline = startedAt + timeoutMs\n let terminal: FleetAuthorityError | undefined\n const stop = (status: 'cancelled' | 'deadline') => {\n terminal ??= new FleetAuthorityError(status, status)\n controller.abort()\n }\n const unlisten = listenAbort(signal, () => stop('cancelled'))\n if (signal !== undefined && aborted(signal)) stop('cancelled')\n const timer = setTimeout(() => stop('deadline'), Math.max(1, Math.ceil(deadline - now())))\n return {\n signal: controller.signal,\n assertActive() {\n if (now() >= deadline) stop('deadline')\n if (terminal !== undefined) throw terminal\n },\n remainingMs: () => Math.max(1, Math.ceil(deadline - now())),\n dispose() {\n clearTimeout(timer)\n unlisten()\n controller.abort()\n },\n }\n}\nexport const fleetNow = now\n", "import type {\n FleetAuthorityContext, FleetAuthorityFailure, FleetPublisherAuthorityRequest, FleetPublisherAuthorityResult,\n} from './createFleetAuthority.js'\n\n/** Fixed pending N+1 projection; callers cannot name an arbitrary future publication height. */\nexport type FleetPublisherProjectionRequest = Omit<FleetPublisherAuthorityRequest, 'publicationBlock'>\nexport interface FleetPublisherProjectionContext extends Omit<FleetAuthorityContext, 'publicationBlock'> {\n readonly projection: 'pending-N+1'\n readonly projectionBlock: number\n}\ninterface CompleteProjection extends FleetPublisherProjectionContext {\n readonly correspondence: 'native-sdk-verified'\n readonly coveredRange: { readonly fromBlockNumber: 0; readonly toBlockNumber: number }\n readonly history: 'complete-genesis-to-anchor'\n readonly publisherAddress: string\n readonly scopeRoot: string\n}\nexport interface ProjectedFleetPublisher extends CompleteProjection {\n readonly controlRoot: string\n readonly fleetRoot: string\n readonly memberRoot: string\n readonly status: 'projected-granted'\n}\nexport interface AbsentProjectedFleetPublisher extends CompleteProjection {\n readonly status: 'projected-absent'\n}\nexport interface FleetPublisherProjectionFailure extends FleetPublisherProjectionContext {\n readonly code: FleetAuthorityFailure['code']\n readonly status: FleetAuthorityFailure['status']\n}\nexport type FleetPublisherProjectionResult = ProjectedFleetPublisher | AbsentProjectedFleetPublisher | FleetPublisherProjectionFailure\n\n/** A verified prefix's pending control view supplies no future carrying occurrence, Time or admission. */\nexport function nextPublisherProjection(result: FleetPublisherAuthorityResult): FleetPublisherProjectionResult {\n const { publicationBlock: projectionBlock, ...original } = result\n const context = {\n ...original, projection: 'pending-N+1' as const, projectionBlock,\n }\n if (result.status === 'authorized' || result.status === 'absent') {\n return Object.freeze({\n ...context,\n status: result.status === 'authorized' ? 'projected-granted' : 'projected-absent',\n coveredRange: Object.freeze({ fromBlockNumber: 0 as const, toBlockNumber: result.anchor.blockNumber }),\n }) as ProjectedFleetPublisher | AbsentProjectedFleetPublisher\n }\n return Object.freeze(context) as FleetPublisherProjectionFailure\n}\n", "import type { Hash } from '@ariestools/sdk'\nimport type { ConfiguredSeed } from '@xyo-network/service-kit-protocol'\nimport { createRestDataLakeViewer } from '@xyo-network/xl1-sdk/providers'\n\nimport {\n configuredSeed, type DataLakeSeedOptions, pinDataLakeSeedOptions, pinRead,\n} from './configuration.js'\n\nexport interface Xl1DataLakeSeedOptions extends DataLakeSeedOptions {}\n\n/** Create one explicitly configured public XL1 REST datalake seed. */\nexport async function createXl1DataLakeSeed(options: Xl1DataLakeSeedOptions): Promise<ConfiguredSeed> {\n const pinned = pinDataLakeSeedOptions(options)\n const native = await createRestDataLakeViewer(pinned.endpoint)\n return configuredSeed(pinned.id, async (hashes, readOptions) => {\n const read = pinRead(hashes, readOptions)\n return await native.get([read.hash as Hash], {\n credentials: 'omit',\n maxResponseBytes: read.maxResponseBytes,\n redirect: 'error',\n ...(pinned.fetcher !== undefined && { fetcher: pinned.fetcher }),\n ...(read.signal !== undefined && { signal: read.signal }),\n })\n })\n}\n", "import type {\n ConfiguredSeed, PublicObjectReader, PublicObjectReadOptions,\n} from '@xyo-network/service-kit-protocol'\nimport { DEFAULT_VERIFICATION_LIMITS } from '@xyo-network/service-kit-protocol'\n\nexport type DataLakeEndpointPolicy = 'explicit-local' | 'public-https'\n\nexport interface DataLakeSeedOptions {\n readonly endpoint: string\n readonly endpointPolicy: DataLakeEndpointPolicy\n readonly fetcher?: typeof fetch\n readonly id: string\n}\n\nexport interface PinnedDataLakeSeedOptions {\n readonly endpoint: string\n readonly fetcher?: typeof fetch\n readonly id: string\n}\n\ninterface PinnedRead {\n readonly hash: string\n readonly maxResponseBytes: number\n readonly signal?: AbortSignal\n}\n\nconst CONFIG_FIELDS = new Set(['endpoint', 'endpointPolicy', 'fetcher', 'id'])\nconst READ_FIELDS = new Set(['maxBodyBytes', 'signal'])\nconst HASH_PATTERN = /^[0-9a-f]{64}$/u\n\nfunction strictFields(value: unknown, fields: ReadonlySet<string>, required: readonly string[], label: string) {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new TypeError(label + ' must be a plain object')\n }\n const prototype: unknown = Object.getPrototypeOf(value)\n if (prototype !== null && prototype !== Object.prototype) {\n throw new TypeError(label + ' must be a plain object')\n }\n const descriptors = Object.getOwnPropertyDescriptors(value)\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key !== 'string' || !fields.has(key)) throw new TypeError(label + ' contains an unknown field')\n const descriptor = descriptors[key]\n if (descriptor?.enumerable !== true || !('value' in descriptor)) {\n throw new TypeError(label + ' fields must be enumerable own data properties')\n }\n }\n for (const key of required) {\n if (!Object.hasOwn(descriptors, key)) throw new TypeError(label + ' requires ' + key)\n }\n return descriptors\n}\n\nfunction seedId(value: unknown) {\n if (typeof value !== 'string' || value.length === 0 || value.length > 128 || value.trim() !== value) {\n throw new TypeError('Seed IDs must be nonempty trimmed strings of at most 128 characters')\n }\n return value\n}\n\nfunction hasDisallowedEndpointCharacter(value: string) {\n return [...value].some((character) => {\n const codePoint = character.codePointAt(0)\n return codePoint !== undefined && (codePoint <= 0x1F || codePoint === 0x7F\n || character === '\\\\' || character.trim() === '')\n })\n}\n\nfunction endpointText(value: unknown) {\n if (typeof value !== 'string' || value.length === 0 || value.length > 2048 || value.trim() !== value\n || hasDisallowedEndpointCharacter(value) || value.includes('?') || value.includes('#')) {\n throw new TypeError('endpoint must be an unambiguous absolute HTTP(S) URL')\n }\n return value\n}\n\nfunction endpointPolicy(value: unknown): DataLakeEndpointPolicy {\n if (value !== 'public-https' && value !== 'explicit-local') {\n throw new TypeError('endpointPolicy must be public-https or explicit-local')\n }\n return value\n}\n\nfunction parsedEndpoint(value: unknown, policyValue: unknown) {\n const text = endpointText(value)\n const policy = endpointPolicy(policyValue)\n let parsed: URL\n try {\n parsed = new URL(text)\n } catch {\n throw new TypeError('endpoint must be an unambiguous absolute HTTP(S) URL')\n }\n if ((parsed.protocol !== 'http:' && parsed.protocol !== 'https:') || parsed.hostname === ''\n || parsed.username !== '' || parsed.password !== '') {\n throw new TypeError('endpoint must be an unambiguous absolute HTTP(S) URL')\n }\n const inputWithoutTrailingSlashes = text.replace(/\\/+$/u, '')\n const parsedWithoutTrailingSlashes = parsed.href.replace(/\\/+$/u, '')\n if (parsedWithoutTrailingSlashes !== inputWithoutTrailingSlashes) {\n throw new TypeError('endpoint must not require URL normalization')\n }\n if (policy === 'public-https' && parsed.protocol !== 'https:') {\n throw new TypeError('public-https endpoints must use HTTPS')\n }\n parsed.pathname = parsed.pathname.replace(/\\/+$/u, '') || '/'\n return parsed\n}\n\nexport function pinDataLakeSeedOptions(options: DataLakeSeedOptions): PinnedDataLakeSeedOptions {\n const descriptors = strictFields(options, CONFIG_FIELDS, ['endpoint', 'endpointPolicy', 'id'], 'options')\n const fetcher: unknown = descriptors.fetcher?.value\n if (fetcher !== undefined && typeof fetcher !== 'function') throw new TypeError('fetcher must be a function')\n const endpoint = parsedEndpoint(descriptors.endpoint?.value as unknown, descriptors.endpointPolicy?.value as unknown)\n return Object.freeze({\n endpoint: endpoint.href.replace(/\\/+$/u, ''),\n id: seedId(descriptors.id?.value as unknown),\n ...(fetcher !== undefined && { fetcher: fetcher as typeof fetch }),\n })\n}\n\nfunction exactHash(hashes: string[]) {\n if (!Array.isArray(hashes) || hashes.length !== 1) throw new TypeError('Reader requires exactly one hash')\n const keys = Reflect.ownKeys(hashes)\n if (keys.some(key => typeof key !== 'string' || (key !== '0' && key !== 'length'))) {\n throw new TypeError('Hash input must be a dense one-element array')\n }\n const descriptor = Object.getOwnPropertyDescriptor(hashes, '0')\n const value: unknown = descriptor?.value\n if (typeof value !== 'string' || descriptor?.enumerable !== true || !('value' in descriptor)\n || !HASH_PATTERN.test(value)) {\n throw new TypeError('Hash must be canonical 64-character lowercase hexadecimal')\n }\n return value\n}\n\nfunction readPolicy(options: PublicObjectReadOptions | undefined) {\n if (options === undefined) return { maxResponseBytes: DEFAULT_VERIFICATION_LIMITS.maxBodyBytes }\n const descriptors = strictFields(options, READ_FIELDS, ['maxBodyBytes', 'signal'], 'read options')\n const maxResponseBytes: unknown = descriptors.maxBodyBytes?.value\n if (!Number.isSafeInteger(maxResponseBytes) || (maxResponseBytes as number) <= 0) {\n throw new RangeError('maxBodyBytes must be a positive safe integer')\n }\n const signal: unknown = descriptors.signal?.value\n if (typeof signal !== 'object' || signal === null || typeof (signal as AbortSignal).aborted !== 'boolean'\n || typeof (signal as AbortSignal).addEventListener !== 'function'\n || typeof (signal as AbortSignal).removeEventListener !== 'function'\n || typeof (signal as AbortSignal).throwIfAborted !== 'function') {\n throw new TypeError('signal must implement AbortSignal')\n }\n return { maxResponseBytes: maxResponseBytes as number, signal: signal as AbortSignal }\n}\n\nexport function pinRead(hashes: string[], options?: PublicObjectReadOptions): PinnedRead {\n return Object.freeze({ hash: exactHash(hashes), ...readPolicy(options) })\n}\n\nexport function configuredSeed(id: string, get: PublicObjectReader['get']): ConfiguredSeed {\n return Object.freeze({ id, reader: Object.freeze({ get }) })\n}\n"],
5
- "mappings": "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",
6
- "names": ["context", "grant"]
3
+ "sources": ["../../src/createFleetAuthority.ts", "../../src/fleetControl.ts", "../../src/fleetHistory.ts", "../../src/fleetMeter.ts", "../../src/fleetHistoryCache.ts", "../../src/fleetScope.ts", "../../src/fleetForeign.ts", "../../src/fleetProfile.ts", "../../src/fleetQuerySelection.ts", "../../src/fleetSelectedPayloadSource.ts", "../../src/fleetQuery.ts", "../../src/fleetPage.ts", "../../src/fleetProjection.ts", "../../src/fleetReaders.ts", "../../src/fleetRequests.ts", "../../src/createXl1DataLakeSeed.ts", "../../src/configuration.ts"],
4
+ "sourcesContent": ["import type {\n ConfiguredSeed, FleetControlFact, FleetDeclarationFact, FleetFoldLimits, FoldedFleetView, ResolutionLimits,\n} from '@xyo-network/service-kit-protocol'\nimport {\n foldFleetControls, resolveFleetPayload, verifyFleetPayload,\n} from '@xyo-network/service-kit-protocol'\nimport type {\n FleetControl, FleetPayload, FleetPayloadFamily,\n} from '@xyo-network/service-kit-schemas'\nimport {\n AddressZod, FleetControlSchema, FleetMemberSchema, FleetPublicationScopeSchema, FleetPublicationScopeZod, FleetSchema, FleetZod, HashZod,\n} from '@xyo-network/service-kit-schemas'\nimport {\n createXl1FinalizedPublicationEvidence,\n type Xl1FinalizedPublicationAnchor,\n type Xl1FinalizedPublicationOccurrence,\n type Xl1FinalizedPublicationProfile,\n type Xl1FinalizedPublicationScope,\n} from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\nimport {\n FleetAuthorityError, fleetNow, operationControl,\n} from './fleetControl.js'\nimport {\n type FleetHistoricalPublisherRequest, type FleetHistoricalPublisherResult, historicalPublisherResult,\n} from './fleetHistory.js'\nimport {\n type FleetVerifiedHistory, VerifiedFleetHistory, type VerifiedOwnerHistory,\n} from './fleetHistoryCache.js'\nimport {\n chargeNativeResources, type FleetAuthorityResources, FleetMeter,\n} from './fleetMeter.js'\nimport { validateFleetPage } from './fleetPage.js'\nimport { ownRecord, pinProfile } from './fleetProfile.js'\nimport {\n type FleetPublisherProjectionRequest, type FleetPublisherProjectionResult, nextPublisherProjection,\n} from './fleetProjection.js'\nimport { capacityReaders, pinReaders } from './fleetReaders.js'\nimport { pinRequest } from './fleetRequests.js'\n\nexport interface FleetAuthorityLimits {\n readonly maxBlocks: number\n readonly maxConcurrentCalls: number\n readonly maxConcurrentReads: number\n readonly maxFleets: number\n readonly maxOccurrences: number\n readonly maxPages: number\n readonly maxRootReads: number\n readonly totalTimeoutMs: number\n}\n/** Explicit native evidence profile; optional pinned fork ancestry never imports parent authority or controls. */\nexport interface FleetAuthorityProfile {\n readonly evidence: Xl1FinalizedPublicationProfile\n readonly foldLimits: FleetFoldLimits\n readonly limits: FleetAuthorityLimits\n readonly resolutionLimits: ResolutionLimits\n readonly seeds: readonly ConfiguredSeed[]\n readonly verifiedHistory?: FleetVerifiedHistory\n}\nexport interface FleetAuthorityRequest {\n readonly anchor: Xl1FinalizedPublicationAnchor\n readonly fleetRoot?: string\n readonly maxAggregateBytes?: number\n readonly owner: string\n readonly publicationBlock: number\n readonly signal?: AbortSignal\n}\nexport interface FleetPublisherAuthorityRequest extends Omit<FleetAuthorityRequest, 'fleetRoot'> {\n readonly publisherAddress: string\n readonly scopeRoot: string\n}\nexport interface AuthenticatedFleetView extends Omit<FoldedFleetView, 'assurance' | 'status'> {\n readonly assurance: 'source-trusted-finalized-replay'\n readonly status: 'complete'\n}\nexport interface FleetAuthorityContext {\n readonly anchor: Xl1FinalizedPublicationAnchor\n readonly assurance: 'source-trusted-finalized-replay'\n readonly chainId: string\n readonly genesisRoot: string\n readonly historyScope: 'verified-native-owner-and-B4-families'\n readonly network: string\n readonly owner: string\n readonly publicationBlock: number\n readonly resources?: FleetAuthorityResources\n}\nexport interface CompleteFleetAuthority extends FleetAuthorityContext {\n readonly correspondence: 'native-sdk-verified'\n readonly coveredRange: { readonly fromBlockNumber: 0; readonly toBlockNumber: number }\n readonly history: 'complete-genesis-to-anchor'\n readonly scopeCompleteness?: 'verified-block-committed-query-selection'\n readonly status: 'complete'\n readonly views: readonly AuthenticatedFleetView[]\n}\nexport interface FleetAuthorityFailure extends FleetAuthorityContext {\n readonly code: string\n readonly status: 'incomplete' | 'unsupported' | 'conflict' | 'resource-limit' | 'cancelled' | 'deadline'\n}\nexport type FleetAuthorityResult = CompleteFleetAuthority | FleetAuthorityFailure\nexport interface ResolvedFleetPublisher extends FleetAuthorityContext {\n readonly controlRoot: string\n readonly correspondence: 'native-sdk-verified'\n readonly fleetRoot: string\n readonly history: 'complete-genesis-to-anchor'\n readonly memberRoot: string\n readonly publisherAddress: string\n readonly scopeCompleteness?: 'verified-block-committed-query-selection'\n readonly scopeRoot: string\n readonly status: 'authorized'\n}\nexport interface AbsentFleetPublisher extends FleetAuthorityContext {\n readonly correspondence: 'native-sdk-verified'\n readonly history: 'complete-genesis-to-anchor'\n readonly publisherAddress: string\n readonly scopeCompleteness?: 'verified-block-committed-query-selection'\n readonly scopeRoot: string\n readonly status: 'absent'\n}\nexport type FleetPublisherAuthorityResult = ResolvedFleetPublisher | AbsentFleetPublisher | FleetAuthorityFailure\nexport interface FleetAuthority {\n enumerate(request: FleetAuthorityRequest): Promise<FleetAuthorityResult>\n enumerateHistoricalPublishers(request: FleetHistoricalPublisherRequest): Promise<FleetHistoricalPublisherResult>\n projectNextPublisher(request: FleetPublisherProjectionRequest): Promise<FleetPublisherProjectionResult>\n resolvePublisher(request: FleetPublisherAuthorityRequest): Promise<FleetPublisherAuthorityResult>\n}\n\nconst b4Families = Object.freeze([FleetSchema, FleetMemberSchema, FleetPublicationScopeSchema, FleetControlSchema])\n\ntype Control = ReturnType<typeof operationControl>\ninterface Work {\n readonly capacity: { limited: boolean }\n readonly control: Control\n readonly declarations: Map<string, FleetDeclarationFact>\n readonly meter?: FleetMeter\n readonly pages: { count: number }\n readonly queryBasis: { scopeCompleteness?: 'verified-block-committed-query-selection' }\n readonly roots: Map<string, Readonly<FleetPayload>>\n readonly seeds: readonly ConfiguredSeed[]\n}\n\nfunction context(profile: ReturnType<typeof pinProfile>, request: FleetAuthorityRequest): FleetAuthorityContext {\n return Object.freeze({\n assurance: 'source-trusted-finalized-replay',\n historyScope: 'verified-native-owner-and-B4-families',\n network: profile.evidence.network,\n chainId: profile.evidence.chainId,\n genesisRoot: profile.evidence.genesisRoot,\n anchor: request.anchor,\n owner: request.owner,\n publicationBlock: request.publicationBlock,\n })\n}\nfunction positionAfter(left: Xl1FinalizedPublicationOccurrence, right: Xl1FinalizedPublicationOccurrence) {\n return left.blockNumber > right.blockNumber || (left.blockNumber === right.blockNumber && (left.transactionIndex > right.transactionIndex\n || (left.transactionIndex === right.transactionIndex && left.payloadOrdinal > right.payloadOrdinal)))\n}\nfunction scanCeiling(meter: FleetMeter | undefined, maximum: number): { maxAggregateBytes?: number } {\n return meter === undefined ? {} : { maxAggregateBytes: Math.min(maximum, meter.remaining()) }\n}\n\n/** Source-trusted complete B4 composition using the owning native evidence provider, never imported arrays. */\nexport function createFleetAuthority(input: FleetAuthorityProfile): FleetAuthority {\n const profile = pinProfile(input)\n const evidence = createXl1FinalizedPublicationEvidence(profile.evidence)\n const readState = { active: 0 }\n const seeds = pinReaders(profile.seeds, profile)\n let activeCalls = 0\n const historyDepth = Math.min(2_147_483_647, Math.max(profile.evidence.limits.maxDecodedDepth, profile.resolutionLimits.maxDepth) + 8)\n const history = profile.verifiedHistory === undefined ? undefined : new VerifiedFleetHistory(profile.verifiedHistory, historyDepth)\n\n async function resolved(root: string, family: FleetPayloadFamily, work: Work): Promise<Readonly<FleetPayload>> {\n work.control.assertActive()\n const cached = work.roots.get(root)\n if (cached !== undefined) {\n if (cached.schema !== family) throw new FleetAuthorityError('unsupported', 'declaration-family')\n return cached\n }\n if (work.roots.size >= profile.limits.maxRootReads) throw new FleetAuthorityError('resource-limit', 'root-reads')\n const result = await resolveFleetPayload(root, family, {\n seeds: work.seeds,\n signal: work.control.signal,\n limits: { ...profile.resolutionLimits, totalTimeoutMs: Math.min(profile.resolutionLimits.totalTimeoutMs, work.control.remainingMs()) },\n })\n work.control.assertActive()\n if (work.capacity.limited) throw new FleetAuthorityError('resource-limit', 'reader-capacity')\n if (result.status !== 'verified') {\n if (result.status === 'aborted') throw new FleetAuthorityError('cancelled', 'root-cancelled')\n if (result.reason === 'resource-limit') throw new FleetAuthorityError('resource-limit', 'root-resource-limit')\n if (result.reason === 'deadline') throw new FleetAuthorityError('deadline', 'root-deadline')\n if (result.attempts.some(attempt => attempt.status === 'unsupported')) throw new FleetAuthorityError('unsupported', 'root-definition')\n throw new FleetAuthorityError('incomplete', 'root-unavailable')\n }\n work.roots.set(root, result.payload)\n if (family !== FleetControlSchema) work.declarations.set(root, Object.freeze({ root, payload: result.payload }))\n return result.payload\n }\n async function scan(request: FleetAuthorityRequest, work: Work, fromBlockNumber = 0) {\n const { control, meter } = work\n if (request.anchor.blockNumber + 1 > profile.limits.maxBlocks) throw new FleetAuthorityError('resource-limit', 'history-blocks')\n const occurrences: Xl1FinalizedPublicationOccurrence[] = []\n for (let from = fromBlockNumber; from <= request.anchor.blockNumber;) {\n control.assertActive()\n if (++work.pages.count > profile.limits.maxPages) throw new FleetAuthorityError('resource-limit', 'scan-pages')\n const to = Math.min(request.anchor.blockNumber, from + profile.evidence.limits.maxBlocks - 1)\n const scope: Xl1FinalizedPublicationScope = Object.freeze({\n authorizers: Object.freeze([request.owner]),\n schemas: b4Families,\n ...(profile.evidence.forkLineage !== undefined && { chainIds: Object.freeze([profile.evidence.chainId]) }),\n })\n const page = await evidence.scanScoped({\n anchor: request.anchor,\n fromBlockNumber: from,\n toBlockNumber: to,\n signal: control.signal,\n ...scanCeiling(meter, profile.evidence.limits.maxAggregateBytes),\n scope,\n })\n chargeNativeResources(meter, page.resources)\n control.assertActive()\n const basis = validateFleetPage(page, profile, request, from, to, scope)\n if (basis !== undefined) work.queryBasis.scopeCompleteness = basis\n for (const fact of page.occurrences) {\n const previous = occurrences.at(-1)\n if (fact.network !== profile.evidence.network || fact.chainId !== profile.evidence.chainId || fact.genesisRoot !== profile.evidence.genesisRoot\n || fact.signer !== request.owner || !b4Families.includes(fact.schema as FleetPayloadFamily)\n || fact.blockNumber < from || fact.blockNumber > to || (previous !== undefined && !positionAfter(fact, previous))) throw new FleetAuthorityError('conflict', 'occurrence-binding-order')\n if (occurrences.length >= profile.limits.maxOccurrences) throw new FleetAuthorityError('resource-limit', 'occurrences')\n occurrences.push(fact)\n }\n from = to + 1\n }\n return occurrences\n }\n async function original(fact: Xl1FinalizedPublicationOccurrence, family: FleetPayloadFamily, control: Control) {\n const checked = await verifyFleetPayload(fact.payloadRoot, family, fact.body, profile.foldLimits)\n control.assertActive()\n if (checked.status !== 'verified') throw new FleetAuthorityError(checked.status === 'unsupported' ? 'unsupported' : 'incomplete', 'owner-definition')\n return checked.payload\n }\n async function discoverFleet(fact: Xl1FinalizedPublicationOccurrence, request: FleetAuthorityRequest, work: Work, roots: Set<string>) {\n if (fact.schema !== FleetSchema || request.fleetRoot !== undefined) return\n const checked = await verifyFleetPayload(fact.payloadRoot, FleetSchema, fact.body, profile.foldLimits)\n work.control.assertActive()\n if (checked.status !== 'verified') {\n if (fact.signer === request.owner) throw new FleetAuthorityError(checked.status === 'unsupported' ? 'unsupported' : 'incomplete', 'owner-declaration')\n return\n }\n if (FleetZod.parse(checked.payload).owner === request.owner) roots.add(fact.payloadRoot)\n }\n async function collect(request: FleetAuthorityRequest, work: Work, occurrences: readonly Xl1FinalizedPublicationOccurrence[]) {\n const roots = new Set<string>(request.fleetRoot === undefined ? [] : [request.fleetRoot])\n const controls: FleetControlFact[] = []\n for (const fact of occurrences) {\n work.control.assertActive()\n if (fact.blockNumber > request.publicationBlock) continue\n await discoverFleet(fact, request, work, roots)\n if (fact.schema !== FleetControlSchema || fact.signer !== request.owner || fact.blockNumber === request.publicationBlock) continue\n const payload = await original(fact, FleetControlSchema, work.control) as Readonly<FleetControl>\n if (request.fleetRoot !== undefined && payload.fleetRoot !== request.fleetRoot) continue\n // A verified immutable different owner makes this otherwise native-valid assertion\n // provably ineligible under B4's no-delegation contract. Unknown roots stay required.\n const fleet = FleetZod.parse(await resolved(payload.fleetRoot, FleetSchema, work))\n if (fleet.owner !== request.owner) continue\n roots.add(payload.fleetRoot)\n await resolved(fact.payloadRoot, FleetControlSchema, work)\n controls.push(Object.freeze({\n root: fact.payloadRoot,\n payload,\n authorizer: fact.signer,\n block: fact.blockNumber,\n chainId: fact.chainId,\n transactionIndex: fact.transactionIndex,\n payloadIndex: fact.payloadOrdinal,\n }))\n if ('memberRoot' in payload) await resolved(payload.memberRoot, FleetMemberSchema, work)\n if ('scopeRoot' in payload) await resolved(payload.scopeRoot, FleetPublicationScopeSchema, work)\n if (roots.size > profile.limits.maxFleets) throw new FleetAuthorityError('resource-limit', 'fleets')\n }\n if (roots.size > profile.limits.maxFleets) throw new FleetAuthorityError('resource-limit', 'fleets')\n return { roots, controls }\n }\n async function foldWork(request: FleetAuthorityRequest, work: Work, occurrences: readonly Xl1FinalizedPublicationOccurrence[]) {\n const { roots, controls } = await collect(request, work, occurrences)\n const views: AuthenticatedFleetView[] = []\n for (const root of roots) {\n await resolved(root, FleetSchema, work)\n const selected = controls.filter(fact => fact.payload.fleetRoot === root)\n const needed = new Set<string>([root])\n for (const fact of selected) {\n if ('memberRoot' in fact.payload) needed.add(fact.payload.memberRoot)\n if ('scopeRoot' in fact.payload) needed.add(fact.payload.scopeRoot)\n }\n const folded = foldFleetControls({\n owner: request.owner,\n fleetRoot: root,\n chainId: profile.evidence.chainId,\n genesisRoot: profile.evidence.genesisRoot,\n publicationBlock: request.publicationBlock,\n controls: selected,\n declarations: [...needed].map((key) => {\n const declaration = work.declarations.get(key)\n if (declaration === undefined) throw new FleetAuthorityError('incomplete', 'missing-declaration')\n return declaration\n }),\n limits: profile.foldLimits,\n signal: work.control.signal,\n })\n work.control.assertActive()\n if (folded.status !== 'folded') {\n const status = folded.status === 'aborted' ? 'cancelled' : folded.reason === 'resource-limit' ? 'resource-limit' : folded.status\n throw new FleetAuthorityError(status, `fold-${folded.reason}`)\n }\n views.push(Object.freeze({\n ...folded, status: 'complete', assurance: 'source-trusted-finalized-replay',\n }))\n }\n const basis = work.queryBasis.scopeCompleteness\n if ((profile.evidence.querySelection === undefined) !== (basis === undefined)) throw new FleetAuthorityError('conflict', 'history-query-basis')\n const result: CompleteFleetAuthority = Object.freeze({\n ...(basis !== undefined && { scopeCompleteness: basis }),\n ...context(profile, request),\n status: 'complete',\n correspondence: 'native-sdk-verified',\n history: 'complete-genesis-to-anchor',\n coveredRange: Object.freeze({ fromBlockNumber: 0, toBlockNumber: request.anchor.blockNumber }),\n views: Object.freeze(views),\n })\n return { result, controls }\n }\n function restore(entry: VerifiedOwnerHistory, work: Work): void {\n const expected = profile.evidence.querySelection === undefined ? undefined : 'verified-block-committed-query-selection'\n if (entry.scopeCompleteness !== expected) throw new FleetAuthorityError('conflict', 'history-query-policy')\n if (entry.scopeCompleteness !== undefined) work.queryBasis.scopeCompleteness = entry.scopeCompleteness\n for (const [root, payload] of entry.roots) {\n if (!work.roots.has(root) && work.roots.size >= profile.limits.maxRootReads) throw new FleetAuthorityError('resource-limit', 'root-reads')\n work.roots.set(root, payload)\n if (payload.schema !== FleetControlSchema) work.declarations.set(root, Object.freeze({ root, payload }))\n }\n }\n async function replayWork(request: FleetAuthorityRequest, work: Work) {\n const prior = history?.get(request.owner)\n let occurrences: readonly Xl1FinalizedPublicationOccurrence[]\n if (prior === undefined) occurrences = await scan(request, work)\n else {\n restore(prior, work)\n const sameHeight = request.anchor.blockNumber === prior.anchor.blockNumber\n if (sameHeight && request.anchor.blockRoot !== prior.anchor.blockRoot) throw new FleetAuthorityError('conflict', 'history-anchor')\n if (sameHeight) occurrences = prior.occurrences\n else if (request.anchor.blockNumber < prior.anchor.blockNumber) {\n await scan(request, work, request.anchor.blockNumber)\n occurrences = prior.occurrences.filter(fact => fact.blockNumber <= request.anchor.blockNumber)\n } else {\n await scan({ ...request, anchor: prior.anchor }, work, prior.anchor.blockNumber)\n occurrences = [...prior.occurrences, ...await scan(request, work, prior.anchor.blockNumber + 1)]\n }\n }\n if (occurrences.length > profile.limits.maxOccurrences) throw new FleetAuthorityError('resource-limit', 'occurrences')\n if (history !== undefined && (prior === undefined || request.anchor.blockNumber > prior.anchor.blockNumber)) {\n const completeRequest = {\n ...request, fleetRoot: undefined, publicationBlock: request.anchor.blockNumber + 1,\n }\n const complete = await foldWork(completeRequest, work, occurrences)\n work.control.assertActive()\n history.publish({\n owner: request.owner,\n anchor: request.anchor,\n occurrences,\n roots: work.roots.entries().toArray(),\n ...(complete.result.scopeCompleteness !== undefined && { scopeCompleteness: complete.result.scopeCompleteness }),\n })\n if (request.fleetRoot === undefined && request.publicationBlock === completeRequest.publicationBlock) return complete\n }\n return await foldWork(request, work, occurrences)\n }\n async function enumerateWork(request: FleetAuthorityRequest, work: Work): Promise<CompleteFleetAuthority> {\n const replay = await replayWork(request, work)\n return replay.result\n }\n async function execute<T>(request: FleetAuthorityRequest, startedAt: number, operation: (work: Work) => Promise<T>): Promise<T | FleetAuthorityFailure> {\n const control = operationControl(request.signal, profile.limits.totalTimeoutMs, startedAt)\n let admitted = false\n let meter: FleetMeter | undefined\n try {\n const bound = BigInt(profile.limits.maxPages) * BigInt(profile.evidence.limits.maxAggregateBytes)\n + BigInt(profile.limits.maxRootReads) * BigInt(profile.resolutionLimits.maxSeeds) * BigInt(profile.resolutionLimits.maxBodyBytes)\n if (request.maxAggregateBytes !== undefined || profile.evidence.verifiedPrefix !== undefined) {\n meter = new FleetMeter(request.maxAggregateBytes ?? Number(bound > BigInt(Number.MAX_SAFE_INTEGER) ? BigInt(Number.MAX_SAFE_INTEGER) : bound), profile.resolutionLimits)\n }\n if (request.maxAggregateBytes !== undefined && BigInt(request.maxAggregateBytes) > bound) throw new FleetAuthorityError('resource-limit', 'aggregate-ceiling')\n control.assertActive()\n if (activeCalls >= profile.limits.maxConcurrentCalls) throw new FleetAuthorityError('resource-limit', 'composition-capacity')\n activeCalls++\n admitted = true\n const capacity = { limited: false }\n const result = await operation({\n control,\n ...(meter !== undefined && { meter }),\n roots: new Map(),\n pages: { count: 0 },\n queryBasis: {},\n declarations: new Map(),\n capacity,\n seeds: capacityReaders(seeds, readState, profile.limits.maxConcurrentReads, capacity, meter),\n })\n return meter === undefined ? result : Object.freeze({ ...result, resources: meter.resources() })\n } catch (error) {\n const failure = error instanceof FleetAuthorityError ? error : new FleetAuthorityError('incomplete', 'composition-source')\n return Object.freeze({\n ...context(profile, request),\n status: failure.status,\n code: failure.code,\n ...(meter !== undefined && { resources: meter.resources() }),\n })\n } finally {\n if (admitted) activeCalls--\n meter?.close()\n control.dispose()\n }\n }\n async function publisherWork(request: FleetAuthorityRequest, scopeRoot: string, publisherAddress: string, work: Work): Promise<ResolvedFleetPublisher | AbsentFleetPublisher> {\n const retained = history?.get(request.owner)\n if (retained !== undefined) restore(retained, work)\n const scope = FleetPublicationScopeZod.parse(await resolved(scopeRoot, FleetPublicationScopeSchema, work))\n const result = await enumerateWork({ ...request, fleetRoot: scope.fleetRoot }, work)\n const basis = result.scopeCompleteness === undefined ? {} : { scopeCompleteness: result.scopeCompleteness }\n const view = result.views[0]\n const matches = view?.fleetActive ? view.grants.filter(grant => grant.scopeRoot === scopeRoot && grant.publisherAddress === publisherAddress) : []\n if (matches.length > 1) throw new FleetAuthorityError('conflict', 'publisher-ambiguity')\n const grant = matches[0]\n return grant === undefined\n ? Object.freeze({\n ...context(profile, request), ...basis, status: 'absent', correspondence: 'native-sdk-verified', history: 'complete-genesis-to-anchor', scopeRoot, publisherAddress,\n })\n : Object.freeze({\n ...context(profile, request),\n ...basis,\n status: 'authorized',\n correspondence: 'native-sdk-verified',\n history: 'complete-genesis-to-anchor',\n fleetRoot: scope.fleetRoot,\n memberRoot: grant.memberRoot,\n controlRoot: grant.controlRoot,\n scopeRoot,\n publisherAddress,\n })\n }\n return Object.freeze({\n async enumerate(inputRequest: FleetAuthorityRequest): Promise<FleetAuthorityResult> {\n const startedAt = fleetNow()\n const request = pinRequest(inputRequest)\n return await execute(request, startedAt, work => enumerateWork(request, work))\n },\n async enumerateHistoricalPublishers(inputRequest: FleetHistoricalPublisherRequest): Promise<FleetHistoricalPublisherResult> {\n const startedAt = fleetNow()\n const values = ownRecord(inputRequest, ['anchor', 'owner'], ['fleetRoot', 'signal', 'maxAggregateBytes'])\n const anchor = ownRecord(values.anchor, ['blockNumber', 'blockRoot']) as unknown as Xl1FinalizedPublicationAnchor\n const request = pinRequest({\n ...values, anchor, publicationBlock: anchor.blockNumber + 1,\n } as FleetAuthorityRequest, true)\n let controls: readonly FleetControlFact[] = []\n const result = await execute(request, startedAt, async (work) => {\n const replay = await replayWork(request, work)\n controls = replay.controls\n return replay.result\n })\n return historicalPublisherResult(result, controls, request.fleetRoot)\n },\n async resolvePublisher(inputRequest: FleetPublisherAuthorityRequest): Promise<FleetPublisherAuthorityResult> {\n const startedAt = fleetNow()\n const values = ownRecord(inputRequest, ['anchor', 'owner', 'publicationBlock', 'publisherAddress', 'scopeRoot'], ['signal', 'maxAggregateBytes'])\n const publisherAddress = AddressZod.parse(values.publisherAddress)\n const scopeRoot = HashZod.parse(values.scopeRoot)\n const request = pinRequest({\n anchor: values.anchor as Xl1FinalizedPublicationAnchor,\n owner: values.owner as string,\n publicationBlock: values.publicationBlock as number,\n ...(values.signal !== undefined && { signal: values.signal as AbortSignal }),\n ...(values.maxAggregateBytes !== undefined && { maxAggregateBytes: values.maxAggregateBytes as number }),\n })\n return await execute(request, startedAt, work => publisherWork(request, scopeRoot, publisherAddress, work))\n },\n async projectNextPublisher(inputRequest: FleetPublisherProjectionRequest): Promise<FleetPublisherProjectionResult> {\n const startedAt = fleetNow()\n const values = ownRecord(inputRequest, ['anchor', 'owner', 'publisherAddress', 'scopeRoot'], ['signal', 'maxAggregateBytes'])\n const anchor = ownRecord(values.anchor, ['blockNumber', 'blockRoot']) as unknown as Xl1FinalizedPublicationAnchor\n const publisherAddress = AddressZod.parse(values.publisherAddress)\n const scopeRoot = HashZod.parse(values.scopeRoot)\n const request = pinRequest({\n anchor,\n owner: values.owner as string,\n publicationBlock: anchor.blockNumber + 1,\n ...(values.signal !== undefined && { signal: values.signal as AbortSignal }),\n ...(values.maxAggregateBytes !== undefined && { maxAggregateBytes: values.maxAggregateBytes as number }),\n }, true)\n const result = await execute(request, startedAt, work => publisherWork(request, scopeRoot, publisherAddress, work))\n return nextPublisherProjection(result)\n },\n })\n}\n", "const abortedDescriptor = Object.getOwnPropertyDescriptor(AbortSignal.prototype, 'aborted')\nconst abortedGetter: unknown = Reflect.get(abortedDescriptor ?? {}, 'get')\nconst nativeEvents = EventTarget.prototype as unknown as { addEventListener: (this: void, ...args: unknown[]) => void; removeEventListener: (this: void, ...args: unknown[]) => void }\nconst addListener = nativeEvents.addEventListener\nconst removeListener = nativeEvents.removeEventListener\nconst apply = Reflect.apply\nconst now = performance.now.bind(performance)\n\nexport function captureSignal(value: unknown): AbortSignal | undefined {\n if (value === undefined) return\n if (typeof abortedGetter !== 'function') throw new TypeError('Native AbortSignal is required')\n apply(abortedGetter, value, [])\n return value as AbortSignal\n}\nexport function aborted(signal: AbortSignal): boolean {\n if (typeof abortedGetter !== 'function') throw new TypeError('Native AbortSignal is required')\n return apply(abortedGetter, signal, []) as boolean\n}\nexport function listenAbort(signal: AbortSignal | undefined, listener: () => void): () => void {\n if (signal === undefined) return () => { /* No caller cancellation. */ }\n apply(addListener, signal, ['abort', listener, { once: true }])\n return () => {\n apply(removeListener, signal, ['abort', listener])\n }\n}\nexport class FleetAuthorityError extends Error {\n readonly code: string\n readonly status: 'incomplete' | 'unsupported' | 'conflict' | 'resource-limit' | 'cancelled' | 'deadline'\n constructor(status: FleetAuthorityError['status'], code: string) {\n super(code)\n this.name = 'FleetAuthorityError'\n this.status = status\n this.code = code\n }\n}\nexport function operationControl(signal: AbortSignal | undefined, timeoutMs: number, startedAt: number) {\n const controller = new AbortController()\n const deadline = startedAt + timeoutMs\n let terminal: FleetAuthorityError | undefined\n const stop = (status: 'cancelled' | 'deadline') => {\n terminal ??= new FleetAuthorityError(status, status)\n controller.abort()\n }\n const unlisten = listenAbort(signal, () => stop('cancelled'))\n if (signal !== undefined && aborted(signal)) stop('cancelled')\n const timer = setTimeout(() => stop('deadline'), Math.max(1, Math.ceil(deadline - now())))\n return {\n signal: controller.signal,\n assertActive() {\n if (now() >= deadline) stop('deadline')\n if (terminal !== undefined) throw terminal\n },\n remainingMs: () => Math.max(1, Math.ceil(deadline - now())),\n dispose() {\n clearTimeout(timer)\n unlisten()\n controller.abort()\n },\n }\n}\nexport const fleetNow = now\n", "import type { FleetControlFact } from '@xyo-network/service-kit-protocol'\n\nimport type {\n CompleteFleetAuthority, FleetAuthorityContext, FleetAuthorityFailure, FleetAuthorityRequest,\n} from './createFleetAuthority.js'\n\n/** Candidate selection verifies history; it does not authorize any product occurrence. */\nexport type FleetHistoricalPublisherRequest = Omit<FleetAuthorityRequest, 'publicationBlock'>\nexport interface FleetHistoricalPublisherContext extends Omit<FleetAuthorityContext, 'publicationBlock'> {\n readonly fleetRoot?: string\n readonly selection: 'historical-ever-granted-discovery-only'\n}\nexport interface FleetHistoricalPublisherCandidate {\n readonly controlBlock: number\n readonly controlRoot: string\n readonly expiresAtBlock?: number\n readonly fleetRoot: string\n readonly memberRoot: string\n readonly publisherAddress: string\n readonly scopeRoot: string\n}\nexport interface CompleteFleetHistoricalPublishers extends FleetHistoricalPublisherContext {\n readonly candidates: readonly FleetHistoricalPublisherCandidate[]\n readonly correspondence: 'native-sdk-verified'\n readonly coveredRange: { readonly fromBlockNumber: 0; readonly toBlockNumber: number }\n readonly history: 'complete-genesis-to-anchor'\n readonly scopeCompleteness?: 'verified-block-committed-query-selection'\n readonly status: 'complete'\n}\nexport interface FleetHistoricalPublisherFailure extends FleetHistoricalPublisherContext {\n readonly code: FleetAuthorityFailure['code']\n readonly status: FleetAuthorityFailure['status']\n}\nexport type FleetHistoricalPublisherResult = CompleteFleetHistoricalPublishers | FleetHistoricalPublisherFailure\n\n/** Call only after every selected fleet's complete canonical N+1 fold succeeds. */\nexport function historicalPublisherCandidates(controls: readonly FleetControlFact[]): readonly FleetHistoricalPublisherCandidate[] {\n const candidates = new Map<string, FleetHistoricalPublisherCandidate>()\n for (const fact of controls) {\n const payload = fact.payload\n if (payload.operation !== 'grant-publisher' || candidates.has(fact.root)) continue\n candidates.set(fact.root, Object.freeze({\n controlRoot: fact.root,\n controlBlock: fact.block,\n fleetRoot: payload.fleetRoot,\n memberRoot: payload.memberRoot,\n scopeRoot: payload.scopeRoot,\n publisherAddress: payload.publisherAddress,\n ...(payload.expiresAtBlock !== undefined && { expiresAtBlock: payload.expiresAtBlock }),\n }))\n }\n return Object.freeze(candidates.values().toArray())\n}\n\nexport function historicalPublisherResult(result: CompleteFleetAuthority | FleetAuthorityFailure, controls: readonly FleetControlFact[], fleetRoot?: string): FleetHistoricalPublisherResult {\n const context: FleetHistoricalPublisherContext = {\n anchor: result.anchor,\n assurance: result.assurance,\n chainId: result.chainId,\n genesisRoot: result.genesisRoot,\n historyScope: result.historyScope,\n network: result.network,\n owner: result.owner,\n selection: 'historical-ever-granted-discovery-only',\n ...(result.resources !== undefined && { resources: result.resources }),\n ...(fleetRoot !== undefined && { fleetRoot }),\n }\n return result.status === 'complete'\n ? Object.freeze({\n ...context,\n ...(result.scopeCompleteness !== undefined && { scopeCompleteness: result.scopeCompleteness }),\n status: 'complete',\n correspondence: result.correspondence,\n coveredRange: result.coveredRange,\n history: result.history,\n candidates: historicalPublisherCandidates(controls),\n })\n : Object.freeze({\n ...context, status: result.status, code: result.code,\n })\n}\n", "import type { ConfiguredSeed, ResolutionLimits } from '@xyo-network/service-kit-protocol'\n\nimport { aborted, FleetAuthorityError } from './fleetControl.js'\n\nexport interface FleetAuthorityResources {\n readonly chargedBytes: number\n readonly declarationDecodedBytes: number\n readonly declarationReservedBytes: number\n readonly decodedBytes: number\n readonly nativeDecodedBytes: number\n}\ninterface JsonBudget {\n readonly ancestors: WeakSet<object>\n bytes: number\n readonly limits: Pick<ResolutionLimits, 'maxDepth' | 'maxNodes'>\n readonly maximum: number\n nodes: number\n}\nconst encoder = new TextEncoder()\nfunction spend(budget: JsonBudget, bytes: number): void {\n budget.bytes += bytes\n if (budget.bytes > budget.maximum) throw new RangeError('Declaration response exceeds its reserved allowance')\n}\nfunction text(budget: JsonBudget, value: string): void {\n if (value.length > budget.maximum - budget.bytes) throw new RangeError('Declaration text exceeds its reserved allowance')\n spend(budget, encoder.encode(JSON.stringify(value)).byteLength)\n}\nfunction compositeSnapshot(value: object, budget: JsonBudget, depth: number): unknown {\n const array = Array.isArray(value)\n if (Object.getPrototypeOf(value) !== (array ? Array.prototype : Object.prototype)) throw new TypeError('Declaration response requires plain JSON')\n if (array && value.length > budget.limits.maxNodes - budget.nodes) throw new RangeError('Declaration response exceeds node bounds')\n const keys = Reflect.ownKeys(value)\n const expected = array ? Array.from({ length: value.length }, (_, index) => String(index)) : keys\n if (array && (keys.length !== value.length + 1 || keys.at(-1) !== 'length')) throw new TypeError('Declaration arrays require dense own slots')\n if (expected.length > budget.limits.maxNodes - budget.nodes) throw new RangeError('Declaration response exceeds node bounds')\n spend(budget, 2)\n const entries = expected.map((key, index) => {\n if (typeof key !== 'string' || key === '__proto__') throw new TypeError('Declaration keys require plain strings')\n const descriptor = Object.getOwnPropertyDescriptor(value, key)\n if (descriptor?.enumerable !== true || !('value' in descriptor)) throw new TypeError('Declaration accessors are unsupported')\n if (index > 0) spend(budget, 1)\n if (!array) {\n text(budget, key)\n spend(budget, 1)\n }\n return [key, jsonSnapshot(descriptor.value, budget, depth + 1)] as const\n })\n return Object.freeze(array ? entries.map(([, item]) => item) : Object.fromEntries(entries))\n}\nfunction jsonSnapshot(value: unknown, budget: JsonBudget, depth = 0): unknown {\n if (++budget.nodes > budget.limits.maxNodes || depth > budget.limits.maxDepth) throw new RangeError('Declaration response exceeds structure bounds')\n if (value === null || typeof value === 'boolean' || typeof value === 'number') {\n if (typeof value === 'number' && !Number.isFinite(value)) throw new TypeError('Declaration response requires finite JSON')\n spend(budget, JSON.stringify(value).length)\n return value\n }\n if (typeof value === 'string') {\n text(budget, value)\n return value\n }\n if (typeof value !== 'object' || budget.ancestors.has(value)) throw new TypeError('Declaration response requires acyclic own-data JSON')\n budget.ancestors.add(value)\n try {\n return compositeSnapshot(value, budget, depth)\n } finally {\n budget.ancestors.delete(value)\n }\n}\n\nexport function logicalJsonSnapshot(value: unknown, maximum: number, limits: Pick<ResolutionLimits, 'maxDepth' | 'maxNodes'>): { bytes: number; value: unknown } {\n const budget: JsonBudget = {\n bytes: 0, nodes: 0, maximum, limits, ancestors: new WeakSet(),\n }\n const snapshot = jsonSnapshot(value, budget)\n return { value: snapshot, bytes: budget.bytes }\n}\n\n/** Logical returned JSON bytes, with conservative reservations for unknown declaration reads. */\nexport class FleetMeter {\n readonly #ceiling: number\n #closed = false\n #declarations = 0\n readonly #limits: ResolutionLimits\n #native = 0\n #reserved = 0\n constructor(ceiling: number, limits: ResolutionLimits) {\n this.#ceiling = ceiling\n this.#limits = limits\n }\n\n close(): void { this.#closed = true }\n native(bytes: number | undefined): void {\n if (bytes === undefined || !Number.isSafeInteger(bytes) || bytes < 0) throw new FleetAuthorityError('conflict', 'native-resources')\n this.#native += bytes\n if (this.#native + this.#declarations + this.#reserved > this.#ceiling) throw new FleetAuthorityError('resource-limit', 'aggregate-bytes')\n }\n\n async read(get: ConfiguredSeed['reader']['get'], roots: string[], options: Parameters<ConfiguredSeed['reader']['get']>[1]): Promise<unknown[]> {\n const allowance = Math.min(options?.maxBodyBytes ?? this.#limits.maxBodyBytes, this.remaining())\n this.#reserved += allowance\n const response = await get(roots, {\n ...options, signal: options?.signal ?? new AbortController().signal, maxBodyBytes: allowance,\n })\n if (this.#closed || (options?.signal !== undefined && aborted(options.signal))) throw new FleetAuthorityError('incomplete', 'declaration-late')\n if (!Array.isArray(response) || response.length > this.#limits.maxCandidatesPerSeed) throw new FleetAuthorityError('resource-limit', 'declaration-response')\n const budget: JsonBudget = {\n bytes: 0, nodes: 0, maximum: allowance, limits: this.#limits, ancestors: new WeakSet(),\n }\n const snapshot = jsonSnapshot(response, budget) as unknown[]\n this.#reserved -= allowance\n this.#declarations += budget.bytes\n return snapshot\n }\n\n remaining(): number {\n const remaining = this.#ceiling - this.#native - this.#declarations - this.#reserved\n if (this.#closed || remaining <= 0) throw new FleetAuthorityError('resource-limit', 'aggregate-bytes')\n return remaining\n }\n\n resources(): FleetAuthorityResources {\n const decodedBytes = this.#native + this.#declarations\n return Object.freeze({\n decodedBytes,\n chargedBytes: decodedBytes + this.#reserved,\n nativeDecodedBytes: this.#native,\n declarationDecodedBytes: this.#declarations,\n declarationReservedBytes: this.#reserved,\n })\n }\n}\n\nexport function chargeNativeResources(meter: FleetMeter | undefined, resources: { decodedBytes: number } | undefined): void {\n meter?.native(resources?.decodedBytes)\n}\n", "import type { FleetPayload } from '@xyo-network/service-kit-schemas'\nimport type { Xl1FinalizedPublicationAnchor, Xl1FinalizedPublicationOccurrence } from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\nimport { FleetAuthorityError } from './fleetControl.js'\nimport { logicalJsonSnapshot } from './fleetMeter.js'\n\nexport interface FleetVerifiedHistory {\n readonly maxBytes: number\n readonly maxOwners: number\n}\nexport function snapshotFleetVerifiedHistory(input: unknown): Readonly<FleetVerifiedHistory> | undefined {\n if (input === undefined) return\n if (input === null || typeof input !== 'object' || Object.getPrototypeOf(input) !== Object.prototype\n || Reflect.ownKeys(input).length !== 2) throw new TypeError('Select strict verified owner-history bounds')\n const values = Object.fromEntries(['maxBytes', 'maxOwners'].map((key) => {\n const slot = Object.getOwnPropertyDescriptor(input, key)\n if (slot?.enumerable !== true || !('value' in slot) || typeof slot.value !== 'number'\n || !Number.isSafeInteger(slot.value) || slot.value <= 0) throw new TypeError('Select positive own-data history bounds')\n return [key, slot.value]\n }))\n if (values.maxOwners > 16 || values.maxBytes > 128 * 1024 * 1024) throw new RangeError('Verified history storage exceeds its bounded profile')\n return Object.freeze(values) as unknown as Readonly<FleetVerifiedHistory>\n}\nexport interface VerifiedOwnerHistory {\n readonly anchor: Xl1FinalizedPublicationAnchor\n readonly occurrences: readonly Xl1FinalizedPublicationOccurrence[]\n readonly owner: string\n readonly roots: readonly (readonly [string, Readonly<FleetPayload>])[]\n readonly scopeCompleteness?: 'verified-block-committed-query-selection'\n}\ninterface StoredHistory {\n readonly anchor: Xl1FinalizedPublicationAnchor\n readonly data: Uint8Array\n}\nconst encoder = new TextEncoder()\nconst decoder = new TextDecoder('utf-8', { fatal: true })\n\n/** Private serialized positive proofs; there is no import/checkpoint API. */\nexport class VerifiedFleetHistory {\n #bytes = 0\n readonly #entries = new Map<string, StoredHistory>()\n readonly #limits: Readonly<FleetVerifiedHistory>\n readonly #maxDepth: number\n constructor(limits: Readonly<FleetVerifiedHistory>, maxDepth: number) {\n this.#limits = limits\n this.#maxDepth = maxDepth\n }\n\n get(owner: string): VerifiedOwnerHistory | undefined {\n const entry = this.#entries.get(owner)\n if (entry === undefined) return\n this.#entries.delete(owner)\n this.#entries.set(owner, entry)\n const decoded: unknown = JSON.parse(decoder.decode(entry.data))\n return logicalJsonSnapshot(decoded, this.#limits.maxBytes, { maxDepth: this.#maxDepth, maxNodes: this.#limits.maxBytes }).value as VerifiedOwnerHistory\n }\n\n publish(input: VerifiedOwnerHistory): void {\n const prior = this.#entries.get(input.owner)\n if (prior !== undefined) {\n if (prior.anchor.blockNumber > input.anchor.blockNumber) return\n if (prior.anchor.blockNumber === input.anchor.blockNumber && prior.anchor.blockRoot !== input.anchor.blockRoot) throw new FleetAuthorityError('conflict', 'history-anchor')\n }\n let snapshot: ReturnType<typeof logicalJsonSnapshot>\n try {\n snapshot = logicalJsonSnapshot(input, this.#limits.maxBytes, { maxDepth: this.#maxDepth, maxNodes: this.#limits.maxBytes })\n } catch {\n throw new FleetAuthorityError('resource-limit', 'history-bytes')\n }\n // Free retained slots before allocating the staged encoded proof. Decoded operation\n // inputs remain separately bounded; failed operations never install a partial proof.\n while (this.#bytes + snapshot.bytes > this.#limits.maxBytes || this.#entries.size >= this.#limits.maxOwners) {\n const oldest = this.#entries.keys().next().value\n if (oldest === undefined) throw new FleetAuthorityError('resource-limit', 'history-bytes')\n this.#bytes -= this.#entries.get(oldest)!.data.byteLength\n this.#entries.delete(oldest)\n }\n const data = encoder.encode(JSON.stringify(snapshot.value))\n if (data.byteLength !== snapshot.bytes) throw new FleetAuthorityError('conflict', 'history-size')\n const replacing = this.#entries.get(input.owner)\n if (replacing !== undefined) this.#bytes -= replacing.data.byteLength\n this.#entries.set(input.owner, { anchor: input.anchor, data })\n this.#bytes += data.byteLength\n }\n}\n", "import { HashZod } from '@xyo-network/service-kit-schemas'\nimport type { Xl1FinalizedPublicationScope, Xl1ScopedFinalizedPublicationScan } from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\nimport { FleetAuthorityError } from './fleetControl.js'\nimport { validateForeignHeaders } from './fleetForeign.js'\nimport { ownRecord, type pinProfile } from './fleetProfile.js'\nimport { validateQueryExclusions } from './fleetQuery.js'\n\ninterface ExpectedRange {\n readonly edge: { readonly forkedAtBlockNumber: number; readonly forkedAtBlockRoot: string; readonly parentChainId: string }\n readonly first: number\n readonly last: number\n}\nfunction validateRange(input: unknown, expected: ExpectedRange, profile: ReturnType<typeof pinProfile>): void {\n const range = ownRecord(input, ['chainId', 'fromBlockNumber', 'fromBlockRoot', 'toBlockNumber', 'toBlockRoot'])\n const {\n edge, first, last,\n } = expected\n if (range.chainId !== edge.parentChainId || range.chainId === profile.evidence.chainId\n || range.fromBlockNumber !== first || range.toBlockNumber !== last\n || !HashZod.safeParse(range.fromBlockRoot).success || !HashZod.safeParse(range.toBlockRoot).success\n || (first === 0 && range.fromBlockRoot !== profile.evidence.genesisRoot)\n || (last === edge.forkedAtBlockNumber && range.toBlockRoot !== edge.forkedAtBlockRoot)\n || (first === last && range.fromBlockRoot !== range.toBlockRoot)) throw new FleetAuthorityError('conflict', 'scan-exclusions')\n}\nfunction validateGrade(actual: string, query: string | undefined, foreign: number): void {\n if (query !== undefined) return\n if (actual !== 'verified-native-header-selection-with-domain-exclusions' && foreign > 0) throw new FleetAuthorityError('conflict', 'scan-foreign-grade')\n const legacy = ['verified-native-header-selection', 'verified-native-header-selection-with-chain-exclusions', 'verified-native-header-selection-with-domain-exclusions']\n if (!legacy.includes(actual)) throw new FleetAuthorityError('conflict', 'scan-scope-mode')\n}\nexport function validateScopeMode(\n page: Xl1ScopedFinalizedPublicationScan,\n profile: ReturnType<typeof pinProfile>,\n from: number,\n to: number,\n expectedScope?: Xl1FinalizedPublicationScope,\n): 'verified-block-committed-query-selection' | undefined {\n const query = validateQueryExclusions(page, profile, from, to, expectedScope)\n const foreign = validateForeignHeaders(page, profile, from, to)\n const result = page as unknown as { excludedChainRanges?: readonly unknown[]; scopeCompleteness: string }\n validateGrade(result.scopeCompleteness, query, foreign)\n if (result.scopeCompleteness === 'verified-native-header-selection'\n || (query !== undefined && (profile.evidence.forkLineage === undefined || profile.evidence.verifiedPrefix === undefined))) {\n if (result.excludedChainRanges !== undefined && result.excludedChainRanges.length > 0) throw new FleetAuthorityError('conflict', 'scan-exclusions')\n return query\n }\n const lineage = profile.evidence.forkLineage\n if (lineage === undefined || profile.evidence.verifiedPrefix === undefined\n || !Array.isArray(result.excludedChainRanges)) throw new FleetAuthorityError('conflict', 'scan-scope-mode')\n const expected = lineage.map((edge, index) => ({\n edge,\n first: Math.max(from, (lineage[index + 1]?.forkedAtBlockNumber ?? -1) + 1),\n last: Math.min(to, edge.forkedAtBlockNumber),\n })).filter(({ first, last }) => first <= last).toReversed()\n if ((query === undefined && (result.scopeCompleteness === 'verified-native-header-selection-with-domain-exclusions' ? foreign : expected.length) === 0)\n || result.excludedChainRanges.length !== expected.length) throw new FleetAuthorityError('conflict', 'scan-exclusion-coverage')\n for (const [index, range] of result.excludedChainRanges.entries()) validateRange(range, expected[index], profile)\n return query\n}\n", "import { AddressZod, HashZod } from '@xyo-network/service-kit-schemas'\nimport type { Xl1ScopedFinalizedPublicationScan } from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\nimport { FleetAuthorityError } from './fleetControl.js'\nimport { ownRecord, type pinProfile } from './fleetProfile.js'\n\nfunction field(input: unknown, key: string): unknown {\n if (input === null || typeof input !== 'object') throw new FleetAuthorityError('conflict', 'scan-foreign-header')\n const slot = Object.getOwnPropertyDescriptor(input, key)\n if (slot?.enumerable !== true || !('value' in slot)) throw new FleetAuthorityError('conflict', 'scan-foreign-header')\n return slot.value as unknown\n}\nfunction position(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0\n}\nfunction validateSlots(header: Record<string, unknown>): void {\n const hashes = field(header.transaction, 'payload_hashes')\n const schemas = field(header.transaction, 'payload_schemas')\n if (!Array.isArray(hashes) || !Array.isArray(schemas) || !Array.isArray(header.payloads)\n || hashes.length !== schemas.length || hashes.length !== header.payloads.length) throw new FleetAuthorityError('conflict', 'scan-foreign-slots')\n for (let index = 0; index < hashes.length; index++) {\n const hash = field(hashes, String(index))\n const schema = field(schemas, String(index))\n const slot = ownRecord(field(header.payloads, String(index)), ['payloadOrdinal', 'payloadRoot', 'schema', 'selected'])\n if (typeof schema !== 'string' || schema.length === 0 || !HashZod.safeParse(hash).success\n || slot.payloadOrdinal !== index || slot.payloadRoot !== hash || slot.schema !== schema || slot.selected !== false) throw new FleetAuthorityError('conflict', 'scan-foreign-slots')\n }\n}\nfunction validateDomain(header: Record<string, unknown>, profile: ReturnType<typeof pinProfile>): void {\n const ancestors = profile.evidence.forkLineage?.map(edge => edge.parentChainId) ?? []\n if (header.network !== profile.evidence.network || header.genesisRoot !== profile.evidence.genesisRoot\n || header.carryingChainId !== profile.evidence.chainId || header.chainId === profile.evidence.chainId\n || !ancestors.includes(header.chainId as string) || header.reason !== 'verified-ancestor-domain-not-authority'\n || field(header.transaction, 'chain') !== header.chainId || field(header.transaction, 'from') !== header.signer\n || !AddressZod.safeParse(header.signer).success || !HashZod.safeParse(header.blockRoot).success\n || !HashZod.safeParse(header.transactionRoot).success) throw new FleetAuthorityError('conflict', 'scan-foreign-domain')\n}\nfunction validateHeader(input: unknown, page: Xl1ScopedFinalizedPublicationScan, profile: ReturnType<typeof pinProfile>, from: number, to: number) {\n const header = ownRecord(input, [\n 'network',\n 'chainId',\n 'genesisRoot',\n 'blockNumber',\n 'blockRoot',\n 'transactionRoot',\n 'transactionIndex',\n 'transactionPayloadOrdinal',\n 'signer',\n 'transaction',\n 'payloads',\n 'carryingChainId',\n 'reason',\n ])\n validateDomain(header, profile)\n if (!position(header.blockNumber) || header.blockNumber < from || header.blockNumber > to\n || !position(header.transactionIndex) || !position(header.transactionPayloadOrdinal)\n || header.transactionPayloadOrdinal < header.transactionIndex) throw new FleetAuthorityError('conflict', 'scan-foreign-position')\n if (page.blockClocks.every(clock => !(clock.blockNumber === header.blockNumber && clock.blockRoot === header.blockRoot && clock.chainId === header.carryingChainId))\n || page.headers.some(ordinary => ordinary.blockNumber === header.blockNumber && ordinary.transactionIndex === header.transactionIndex)) {\n throw new FleetAuthorityError('conflict', 'scan-foreign-correspondence')\n }\n validateSlots(header)\n return {\n block: header.blockNumber, index: header.transactionIndex, ordinal: header.transactionPayloadOrdinal,\n }\n}\n\n/** SDK-verified foreign originals are disclosed, never folded as current-chain authority. */\nexport function validateForeignHeaders(page: Xl1ScopedFinalizedPublicationScan, profile: ReturnType<typeof pinProfile>, from: number, to: number): number {\n const result = page as unknown as { foreignTransactionHeaders?: readonly unknown[] }\n if (profile.evidence.foreignTransactions === undefined) {\n if (result.foreignTransactionHeaders !== undefined) throw new FleetAuthorityError('conflict', 'scan-foreign-profile')\n return 0\n }\n if (!Array.isArray(result.foreignTransactionHeaders) || result.foreignTransactionHeaders.length > profile.evidence.limits.maxRoots) throw new FleetAuthorityError('conflict', 'scan-foreign-headers')\n let previous: ReturnType<typeof validateHeader> | undefined\n for (let index = 0; index < result.foreignTransactionHeaders.length; index++) {\n const header = validateHeader(field(result.foreignTransactionHeaders, String(index)), page, profile, from, to)\n if (previous !== undefined && (header.block < previous.block || (header.block === previous.block\n && (header.index <= previous.index || header.ordinal <= previous.ordinal)))) throw new FleetAuthorityError('conflict', 'scan-foreign-order')\n previous = header\n }\n return result.foreignTransactionHeaders.length\n}\n", "import type {\n ConfiguredSeed, FleetFoldLimits, ResolutionLimits,\n} from '@xyo-network/service-kit-protocol'\nimport {\n snapshotFinalizedForeignTransactions, snapshotFinalizedForkLineage, snapshotFinalizedVerifiedPrefix, type Xl1FinalizedPublicationProfile,\n} from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\nimport type { FleetAuthorityLimits, FleetAuthorityProfile } from './createFleetAuthority.js'\nimport { snapshotFleetVerifiedHistory } from './fleetHistoryCache.js'\nimport { snapshotFleetQuerySelection } from './fleetQuerySelection.js'\nimport { snapshotFleetSelectedPayloadSource } from './fleetSelectedPayloadSource.js'\n\nexport function ownRecord(input: unknown, required: readonly string[], optional: readonly string[] = []): Record<string, unknown> {\n if (input === null || typeof input !== 'object' || Object.getPrototypeOf(input) !== Object.prototype) throw new TypeError('Use a strict own-data profile/request')\n const keys = Reflect.ownKeys(input)\n if (keys.some(key => typeof key !== 'string'\n || ![...required, ...optional].includes(key))\n || required.some(key => !keys.includes(key))) throw new TypeError('Unexpected or missing profile/request fields')\n return Object.fromEntries(keys.map((key) => {\n const descriptor = Object.getOwnPropertyDescriptor(input, key)\n if (descriptor?.enumerable !== true || !('value' in descriptor)) throw new TypeError('Profile/request accessors are unsupported')\n return [key, descriptor.value as unknown]\n }))\n}\nfunction finiteProfile<T>(input: T, keys: readonly string[], largeBytes = false): T {\n const values = ownRecord(input, keys)\n if (Object.entries(values).some(([key, value]) => typeof value !== 'number'\n || !Number.isSafeInteger(value)\n || value <= 0\n || (value > 2_147_483_647 && !(largeBytes && key === 'maxAggregateBytes')))) throw new RangeError('Every finite positive bound is required')\n return Object.freeze(values) as T\n}\nexport function pinProfile(input: FleetAuthorityProfile) {\n const profile = ownRecord(input, ['evidence', 'foldLimits', 'limits', 'resolutionLimits', 'seeds'], ['verifiedHistory'])\n const evidence = ownRecord(profile.evidence, ['assurance', 'chainId', 'genesisRoot', 'limits', 'network', 'source'], ['forkLineage', 'verifiedPrefix', 'foreignTransactions', 'querySelection'])\n const source = ownRecord(evidence.source, ['bodyBaseUrl', 'finalizedBaseUrl', 'headUrl'], ['fetch', 'blockFrames', 'selectedPayloadSource'])\n const forkLineage = snapshotFinalizedForkLineage(evidence.forkLineage, evidence.chainId as string)\n const blockFrames = source.blockFrames === undefined ? undefined : pinBlockFrames(source.blockFrames)\n const verifiedPrefix = pinVerifiedPrefix(evidence.verifiedPrefix)\n const foreignTransactions = snapshotFinalizedForeignTransactions(evidence.foreignTransactions)\n if (foreignTransactions !== undefined && (forkLineage === undefined || blockFrames === undefined || verifiedPrefix === undefined)) {\n throw new TypeError('Foreign transaction exclusion requires explicit fork, frame and verified-prefix profiles')\n }\n if (verifiedPrefix !== undefined && (forkLineage === undefined || blockFrames === undefined)) throw new TypeError('Verified native prefix requires explicit fork and original-block frame profiles')\n const querySelection = snapshotFleetQuerySelection(evidence.querySelection)\n const verifiedHistory = snapshotFleetVerifiedHistory(profile.verifiedHistory)\n if (verifiedHistory !== undefined && verifiedPrefix === undefined) throw new TypeError('Verified owner history requires native verified-prefix support')\n const evidenceLimits = finiteProfile(evidence.limits, ['maxAggregateBytes',\n 'maxBlocks',\n 'maxBodies',\n 'maxConcurrentReads',\n 'maxDecodedDepth',\n 'maxDecodedNodes',\n 'maxLineageBlocks',\n 'maxResponseBytes',\n 'maxRoots',\n 'maxSourceUrlBytes',\n 'perCallTimeoutMs',\n 'totalTimeoutMs'], verifiedPrefix !== undefined) as Xl1FinalizedPublicationProfile['limits']\n const selectedPayloadSource = snapshotFleetSelectedPayloadSource(source.selectedPayloadSource, evidenceLimits.maxSourceUrlBytes)\n const fixedEvidence = Object.freeze({\n ...evidence,\n limits: evidenceLimits,\n ...(forkLineage !== undefined && { forkLineage }),\n ...(verifiedPrefix !== undefined && { verifiedPrefix }),\n ...(foreignTransactions !== undefined && { foreignTransactions }),\n ...(querySelection !== undefined && { querySelection }),\n source: Object.freeze({\n ...source,\n ...(blockFrames !== undefined && { blockFrames }),\n ...(selectedPayloadSource !== undefined && { selectedPayloadSource }),\n }),\n }) as unknown as Xl1FinalizedPublicationProfile\n const limits = finiteProfile(profile.limits, ['maxBlocks',\n 'maxConcurrentCalls',\n 'maxConcurrentReads',\n 'maxFleets',\n 'maxOccurrences',\n 'maxPages',\n 'maxRootReads',\n 'totalTimeoutMs']) as FleetAuthorityLimits\n const foldLimits = finiteProfile(profile.foldLimits, ['maxBodyBytes', 'maxControls', 'maxDeclarations', 'maxDepth', 'maxGrants', 'maxMembers', 'maxNodes']) as FleetFoldLimits\n const resolutionLimits = finiteProfile(profile.resolutionLimits, ['attemptTimeoutMs',\n 'maxBodyBytes',\n 'maxCandidatesPerSeed',\n 'maxDepth',\n 'maxNodes',\n 'maxSeeds',\n 'totalTimeoutMs']) as ResolutionLimits\n return {\n evidence: fixedEvidence, limits, foldLimits, resolutionLimits, verifiedHistory, seeds: profile.seeds as readonly ConfiguredSeed[],\n }\n}\nfunction pinBlockFrames(input: unknown): Readonly<{ indexBaseUrl: string; maxStep: number }> {\n const frames = ownRecord(input, ['indexBaseUrl', 'maxStep'])\n if (typeof frames.indexBaseUrl !== 'string' || frames.indexBaseUrl.length === 0\n || typeof frames.maxStep !== 'number' || !Number.isSafeInteger(frames.maxStep) || frames.maxStep < 0 || frames.maxStep > 3) throw new TypeError('Select a bounded original-block frame source')\n return Object.freeze({ indexBaseUrl: frames.indexBaseUrl, maxStep: frames.maxStep })\n}\n\n/** A selected sharing key must not disappear through an older or incompatible public helper. */\nfunction pinVerifiedPrefix(input: unknown) {\n if (input === undefined) return snapshotFinalizedVerifiedPrefix(input)\n const fields = ownRecord(input, ['maxEntries', 'maxBytes'], ['shareKey'])\n const captured = snapshotFinalizedVerifiedPrefix(fields)\n if (captured === undefined || captured.maxEntries !== fields.maxEntries || captured.maxBytes !== fields.maxBytes\n || Reflect.get(captured, 'shareKey') !== fields.shareKey) throw new TypeError('Native verified-prefix snapshot must preserve its exact selection')\n return captured\n}\n", "import { snapshotFinalizedQuerySelection } from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\n/** Owning capability guard: a new SDK alone cannot qualify an older fleet adapter. */\nexport function snapshotFleetQuerySelection(input: unknown): 'block-committed-nonmatches-v1' | undefined {\n const selection = snapshotFinalizedQuerySelection(input)\n if (selection !== input) throw new TypeError('Native query selection snapshot must preserve the exact policy')\n return selection\n}\n", "import { snapshotFinalizedSelectedPayloadSource, type Xl1FinalizedPublicationSelectedPayloadSource } from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\n/** Owning pure capability: capture only the exact bounded public SDK source descriptor. */\nexport function snapshotFleetSelectedPayloadSource(\n input: unknown,\n maxSourceUrlBytes: number,\n): Readonly<Xl1FinalizedPublicationSelectedPayloadSource> | undefined {\n const captured = snapshotFinalizedSelectedPayloadSource(input, maxSourceUrlBytes)\n if (input !== undefined && captured === undefined) throw new TypeError('Selected payload source snapshot must preserve the requested selection')\n return captured\n}\n", "import { AddressZod, HashZod } from '@xyo-network/service-kit-schemas'\nimport type { Xl1FinalizedPublicationScope, Xl1ScopedFinalizedPublicationScan } from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\nimport { FleetAuthorityError } from './fleetControl.js'\nimport { ownRecord, type pinProfile } from './fleetProfile.js'\n\nconst grade = 'verified-block-committed-query-selection'\nconst encoder = new TextEncoder()\ntype Profile = ReturnType<typeof pinProfile>\ninterface Budget { bytes: number; nodes: number; readonly profile: Profile }\nfunction fail(code = 'scan-query-exclusion'): never {\n throw new FleetAuthorityError('conflict', code)\n}\nfunction spend(budget: Budget, nodes: number, bytes = 0): void {\n budget.nodes += nodes\n budget.bytes += bytes\n if (budget.nodes > budget.profile.evidence.limits.maxDecodedNodes || budget.bytes > budget.profile.evidence.limits.maxAggregateBytes) {\n throw new FleetAuthorityError('resource-limit', 'scan-query-metadata')\n }\n}\nfunction field(input: unknown, key: string): unknown {\n const slot = input !== null && typeof input === 'object' ? Object.getOwnPropertyDescriptor(input, key) : undefined\n return slot?.enumerable === true && 'value' in slot ? slot.value as unknown : fail()\n}\nfunction position(input: unknown): input is number {\n return typeof input === 'number' && Number.isSafeInteger(input) && input >= 0\n}\nfunction dense(input: unknown, maximum: number, budget: Budget): readonly unknown[] {\n if (!Array.isArray(input) || input.length > maximum || Reflect.ownKeys(input).length !== input.length + 1) return fail()\n spend(budget, input.length + 1)\n for (let i = 0; i < input.length; i++) field(input, String(i))\n return input as readonly unknown[]\n}\nfunction strings(input: unknown, budget: Budget, address = false): readonly string[] {\n const values = dense(input, budget.profile.evidence.limits.maxRoots, budget)\n for (const value of values) {\n if (typeof value !== 'string' || value.length === 0 || value.length > budget.profile.evidence.limits.maxResponseBytes\n || (address && !AddressZod.safeParse(value).success)) return fail()\n spend(budget, 0, encoder.encode(value).byteLength)\n }\n return values as readonly string[]\n}\nfunction scopeMatches(input: unknown, expected: Xl1FinalizedPublicationScope, budget: Budget): void {\n const keys = (['authorizers', 'chainIds', 'schemas'] as const).filter(key => expected[key] !== undefined)\n const snapshot = ownRecord(input, keys)\n for (const key of keys) {\n const selected = snapshot[key]\n if (!Array.isArray(selected) || selected.length !== expected[key]!.length) fail('scan-query-request')\n const values = strings(selected, budget, key !== 'schemas')\n if (values.some((value, index) => value !== expected[key]![index])) fail('scan-query-request')\n }\n}\nfunction chainAt(profile: Profile, block: number): string {\n let chain = profile.evidence.chainId\n const lineage = profile.evidence.forkLineage ?? []\n for (const edge of lineage) {\n if (block > edge.forkedAtBlockNumber) break\n chain = edge.parentChainId\n }\n return chain\n}\nfunction occupiedPositions(page: Xl1ScopedFinalizedPublicationScan, budget: Budget): Set<string> {\n const occupied = new Set<string>()\n for (const rows of [page.headers, page.occurrences, page.foreignTransactionHeaders ?? []]) {\n for (const row of dense(rows, budget.profile.evidence.limits.maxRoots, budget)) {\n const block = field(row, 'blockNumber')\n const index = field(row, 'transactionIndex')\n const ordinal = field(row, 'transactionPayloadOrdinal')\n if (!position(block) || !position(index) || !position(ordinal)) fail()\n occupied.add(`${block}:index:${index}`)\n occupied.add(`${block}:ordinal:${ordinal}`)\n }\n }\n return occupied\n}\nfunction clockRows(page: Xl1ScopedFinalizedPublicationScan, budget: Budget): Map<number, unknown> {\n const clocks = new Map<number, unknown>()\n for (const row of dense(page.blockClocks, budget.profile.evidence.limits.maxBlocks, budget)) {\n const block = field(row, 'blockNumber')\n if (!position(block) || clocks.has(block)) fail('scan-query-clock')\n clocks.set(block, row)\n }\n return clocks\n}\nfunction validateClock(row: Record<string, unknown>, clocks: Map<number, unknown>, profile: Profile): void {\n const clock = clocks.get(row.blockNumber as number)\n if (clock === undefined || field(clock, 'network') !== profile.evidence.network || field(clock, 'genesisRoot') !== profile.evidence.genesisRoot\n || field(clock, 'blockRoot') !== row.blockRoot || field(clock, 'chainId') !== row.carryingChainId) fail('scan-query-clock')\n const time = field(clock, 'time')\n if (field(time, 'status') === 'authenticated'\n && (field(time, 'payloadOrdinal') === row.transactionPayloadOrdinal || field(time, 'payloadRoot') === row.transactionRoot)) fail('scan-query-time')\n}\ninterface QueryPosition extends Record<string, unknown> {\n blockNumber: number\n transactionIndex: number\n transactionPayloadOrdinal: number\n}\nfunction validatePosition(row: Record<string, unknown>, profile: Profile, from: number, to: number): asserts row is QueryPosition {\n if (!position(row.blockNumber) || row.blockNumber < from || row.blockNumber > to\n || !position(row.transactionIndex) || !position(row.transactionPayloadOrdinal) || row.transactionPayloadOrdinal < row.transactionIndex\n || row.carryingChainId !== chainAt(profile, row.blockNumber) || !AddressZod.safeParse(row.declaredChainId).success\n || !AddressZod.safeParse(row.declaredFrom).success || !HashZod.safeParse(row.blockRoot).success || !HashZod.safeParse(row.transactionRoot).success) fail()\n}\nfunction validateRecord(\n input: unknown,\n expected: Xl1FinalizedPublicationScope,\n profile: Profile,\n from: number,\n to: number,\n clocks: Map<number, unknown>,\n occupied: Set<string>,\n budget: Budget,\n) {\n const row = ownRecord(input, ['blockNumber',\n 'blockRoot',\n 'carryingChainId',\n 'transactionIndex',\n 'transactionPayloadOrdinal',\n 'transactionRoot',\n 'declaredChainId',\n 'declaredFrom',\n 'declaredAddresses',\n 'declaredPayloadSchemas',\n 'reason',\n 'requestSnapshot'])\n spend(budget, 12)\n validatePosition(row, profile, from, to)\n const addresses = strings(row.declaredAddresses, budget, true)\n const schemas = strings(row.declaredPayloadSchemas, budget)\n if (addresses.length === 0 || new Set(addresses).size !== addresses.length) fail()\n scopeMatches(row.requestSnapshot, expected, budget)\n const claimed = new Set([row.declaredFrom as string, ...addresses])\n const noAuthorizer = expected.authorizers?.every(value => !claimed.has(value)) === true\n const noSchema = expected.schemas?.every(value => !schemas.includes(value)) === true\n const reason = noAuthorizer ? 'no-requested-authorizer' : noSchema ? 'no-requested-schema' : undefined\n if (reason === undefined || row.reason !== reason) fail('scan-query-reason')\n const indexKey = `${row.blockNumber}:index:${row.transactionIndex}`\n const ordinalKey = `${row.blockNumber}:ordinal:${row.transactionPayloadOrdinal}`\n if (occupied.has(indexKey) || occupied.has(ordinalKey)) fail('scan-query-overlap')\n occupied.add(indexKey)\n occupied.add(ordinalKey)\n if (pageExcluded(profile, row.blockNumber, from, to)) fail('scan-query-excluded-chain')\n validateClock(row, clocks, profile)\n return {\n block: row.blockNumber, index: row.transactionIndex, ordinal: row.transactionPayloadOrdinal,\n }\n}\nfunction pageExcluded(profile: Profile, block: number, from: number, to: number): boolean {\n return profile.evidence.verifiedPrefix !== undefined && profile.evidence.forkLineage?.some(edge => block >= from && block <= to && block <= edge.forkedAtBlockNumber) === true\n}\n\n/** Validate the SDK-owned diagnostic metadata; excluded rows never enter control/fold/cache inputs. */\nexport function validateQueryExclusions(\n page: Xl1ScopedFinalizedPublicationScan,\n profile: Profile,\n from: number,\n to: number,\n expectedScope?: Xl1FinalizedPublicationScope,\n): typeof grade | undefined {\n const result = page as unknown as { blockCommittedQueryExclusions?: unknown; scopeCompleteness: string }\n if (profile.evidence.querySelection === undefined) {\n if (result.blockCommittedQueryExclusions !== undefined || result.scopeCompleteness === grade) fail('scan-query-profile')\n return\n }\n try {\n if (expectedScope === undefined || expectedScope.headersOnly !== undefined\n || (expectedScope.authorizers === undefined && expectedScope.schemas === undefined)\n || [expectedScope.authorizers, expectedScope.chainIds, expectedScope.schemas].some(values => values?.length === 0)\n || result.scopeCompleteness !== grade) fail('scan-query-grade')\n const budget: Budget = {\n nodes: 0, bytes: 0, profile,\n }\n scopeMatches(page.scope, expectedScope, budget)\n const rows = dense(result.blockCommittedQueryExclusions, profile.evidence.limits.maxRoots, budget)\n const occupied = occupiedPositions(page, budget)\n const clocks = clockRows(page, budget)\n let previous: ReturnType<typeof validateRecord> | undefined\n for (const row of rows) {\n const current = validateRecord(row, expectedScope, profile, from, to, clocks, occupied, budget)\n if (previous !== undefined && (current.block < previous.block || (current.block === previous.block\n && (current.index <= previous.index || current.ordinal <= previous.ordinal)))) fail('scan-query-order')\n previous = current\n }\n return grade\n } catch (error) {\n if (error instanceof FleetAuthorityError) throw error\n return fail()\n }\n}\n", "import type {\n Xl1FinalizedPublicationScan, Xl1FinalizedPublicationScope, Xl1ScopedFinalizedPublicationScan,\n} from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\nimport type { FleetAuthorityRequest } from './createFleetAuthority.js'\nimport { FleetAuthorityError } from './fleetControl.js'\nimport type { pinProfile } from './fleetProfile.js'\nimport { validateScopeMode } from './fleetScope.js'\n\nfunction nativeFailure(page: Xl1FinalizedPublicationScan) {\n const statuses: readonly string[] = ['cancelled', 'deadline', 'conflict', 'unsupported', 'resource-limit']\n const status = statuses.includes(page.status) ? page.status as FleetAuthorityError['status'] : 'incomplete'\n return new FleetAuthorityError(status, `native-${page.issues[0]?.code ?? page.status}`)\n}\nfunction validateForkPage(page: Xl1ScopedFinalizedPublicationScan, profile: ReturnType<typeof pinProfile>, request: FleetAuthorityRequest): void {\n const clock = page.anchorClock\n if (page.scope.chainIds?.length !== 1 || page.scope.chainIds[0] !== profile.evidence.chainId\n || clock?.chainId !== profile.evidence.chainId || clock.network !== profile.evidence.network\n || clock.genesisRoot !== profile.evidence.genesisRoot || clock.blockNumber !== request.anchor.blockNumber\n || clock.blockRoot !== request.anchor.blockRoot) throw new FleetAuthorityError('conflict', 'scan-current-chain')\n}\n\nexport function validateFleetPage(\n page: Xl1ScopedFinalizedPublicationScan,\n profile: ReturnType<typeof pinProfile>,\n request: FleetAuthorityRequest,\n from: number,\n to: number,\n scope: Xl1FinalizedPublicationScope,\n) {\n const actual = [page.network,\n page.chainId,\n page.genesisRoot,\n page.anchor.blockNumber,\n page.anchor.blockRoot,\n page.assurance,\n page.requestedRange.fromBlockNumber,\n page.requestedRange.toBlockNumber]\n const expected = [profile.evidence.network,\n profile.evidence.chainId,\n profile.evidence.genesisRoot,\n request.anchor.blockNumber,\n request.anchor.blockRoot,\n 'source-trusted-finalized-replay',\n from,\n to]\n if (actual.some((value, index) => value !== expected[index])) throw new FleetAuthorityError('conflict', 'scan-binding')\n if (profile.evidence.querySelection !== undefined && page.status !== 'complete') throw nativeFailure(page)\n const basis = validateScopeMode(page, profile, from, to, scope)\n if (page.scope.authorizers?.length !== 1 || page.scope.authorizers[0] !== request.owner\n || page.scope.schemas?.length !== scope.schemas!.length\n || page.scope.schemas.some((family, index) => family !== scope.schemas![index])) throw new FleetAuthorityError('conflict', 'scan-scope')\n if (page.status !== 'complete') throw nativeFailure(page)\n if (profile.evidence.forkLineage !== undefined) validateForkPage(page, profile, request)\n if (page.coveredRange?.fromBlockNumber !== from || page.coveredRange.toBlockNumber !== to || page.continuation !== undefined || page.issues.length > 0) {\n throw new FleetAuthorityError('incomplete', 'scan-coverage')\n }\n return basis\n}\n", "import type {\n FleetAuthorityContext, FleetAuthorityFailure, FleetPublisherAuthorityRequest, FleetPublisherAuthorityResult,\n} from './createFleetAuthority.js'\n\n/** Fixed pending N+1 projection; callers cannot name an arbitrary future publication height. */\nexport type FleetPublisherProjectionRequest = Omit<FleetPublisherAuthorityRequest, 'publicationBlock'>\nexport interface FleetPublisherProjectionContext extends Omit<FleetAuthorityContext, 'publicationBlock'> {\n readonly projection: 'pending-N+1'\n readonly projectionBlock: number\n}\ninterface CompleteProjection extends FleetPublisherProjectionContext {\n readonly correspondence: 'native-sdk-verified'\n readonly coveredRange: { readonly fromBlockNumber: 0; readonly toBlockNumber: number }\n readonly history: 'complete-genesis-to-anchor'\n readonly publisherAddress: string\n readonly scopeCompleteness?: 'verified-block-committed-query-selection'\n readonly scopeRoot: string\n}\nexport interface ProjectedFleetPublisher extends CompleteProjection {\n readonly controlRoot: string\n readonly fleetRoot: string\n readonly memberRoot: string\n readonly status: 'projected-granted'\n}\nexport interface AbsentProjectedFleetPublisher extends CompleteProjection {\n readonly status: 'projected-absent'\n}\nexport interface FleetPublisherProjectionFailure extends FleetPublisherProjectionContext {\n readonly code: FleetAuthorityFailure['code']\n readonly status: FleetAuthorityFailure['status']\n}\nexport type FleetPublisherProjectionResult = ProjectedFleetPublisher | AbsentProjectedFleetPublisher | FleetPublisherProjectionFailure\n\n/** A verified prefix's pending control view supplies no future carrying occurrence, Time or admission. */\nexport function nextPublisherProjection(result: FleetPublisherAuthorityResult): FleetPublisherProjectionResult {\n const { publicationBlock: projectionBlock, ...original } = result\n const context = {\n ...original, projection: 'pending-N+1' as const, projectionBlock,\n }\n if (result.status === 'authorized' || result.status === 'absent') {\n return Object.freeze({\n ...context,\n status: result.status === 'authorized' ? 'projected-granted' : 'projected-absent',\n coveredRange: Object.freeze({ fromBlockNumber: 0 as const, toBlockNumber: result.anchor.blockNumber }),\n }) as ProjectedFleetPublisher | AbsentProjectedFleetPublisher\n }\n return Object.freeze(context) as FleetPublisherProjectionFailure\n}\n", "import type { ConfiguredSeed } from '@xyo-network/service-kit-protocol'\n\nimport { FleetAuthorityError } from './fleetControl.js'\nimport type { FleetMeter } from './fleetMeter.js'\nimport { ownRecord, type pinProfile } from './fleetProfile.js'\n\nexport function pinReaders(seeds: readonly ConfiguredSeed[], profile: ReturnType<typeof pinProfile>): readonly ConfiguredSeed[] {\n if (!Array.isArray(seeds) || seeds.length === 0 || seeds.length > profile.resolutionLimits.maxSeeds) throw new RangeError('Explicit bounded root readers required')\n const ids = new Set<string>()\n return Object.freeze(Array.from({ length: seeds.length }, (_, index) => {\n const slot = Object.getOwnPropertyDescriptor(seeds, String(index))\n if (slot?.enumerable !== true || !('value' in slot)) throw new TypeError('Readers require dense own data slots')\n const seed = ownRecord(slot.value, ['id', 'reader'])\n if (typeof seed.id !== 'string' || seed.id.length === 0 || seed.id.length > 128 || seed.id.trim() !== seed.id || ids.has(seed.id)) throw new TypeError('Readers require unique bounded IDs')\n ids.add(seed.id)\n const reader = ownRecord(seed.reader, ['get'])\n if (typeof reader.get !== 'function') throw new TypeError('Readers require an own get method')\n const get = reader.get.bind(seed.reader) as ConfiguredSeed['reader']['get']\n return Object.freeze({ id: seed.id, reader: Object.freeze({ get }) })\n }))\n}\nexport function capacityReaders(seeds: readonly ConfiguredSeed[], state: { active: number }, maximum: number, capacity: { limited: boolean }, meter?: FleetMeter): readonly ConfiguredSeed[] {\n return Object.freeze(seeds.map(seed => Object.freeze({\n id: seed.id,\n reader: Object.freeze({\n get: async (...args: Parameters<ConfiguredSeed['reader']['get']>) => {\n if (state.active >= maximum) {\n capacity.limited = true\n throw new FleetAuthorityError('resource-limit', 'reader-capacity')\n }\n state.active++\n try {\n return await (meter === undefined ? seed.reader.get(...args) : meter.read(seed.reader.get.bind(seed.reader), ...args))\n } finally {\n state.active--\n }\n },\n }),\n })))\n}\n", "import { AddressZod, HashZod } from '@xyo-network/service-kit-schemas'\nimport type { Xl1FinalizedPublicationAnchor } from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication'\n\nimport type { FleetAuthorityRequest } from './createFleetAuthority.js'\nimport { captureSignal } from './fleetControl.js'\nimport { ownRecord } from './fleetProfile.js'\n\nexport function pinRequest(input: FleetAuthorityRequest, next = false): FleetAuthorityRequest {\n const values = ownRecord(input, ['anchor', 'owner', 'publicationBlock'], ['fleetRoot', 'signal', 'maxAggregateBytes'])\n const anchor = ownRecord(values.anchor, ['blockNumber', 'blockRoot']) as unknown as Xl1FinalizedPublicationAnchor\n HashZod.parse(anchor.blockRoot)\n AddressZod.parse(values.owner)\n if (values.maxAggregateBytes !== undefined && (typeof values.maxAggregateBytes !== 'number'\n || !Number.isSafeInteger(values.maxAggregateBytes) || values.maxAggregateBytes <= 0)) throw new RangeError('Select a finite positive aggregate request ceiling')\n if (values.fleetRoot !== undefined) HashZod.parse(values.fleetRoot)\n if (!Number.isSafeInteger(anchor.blockNumber) || anchor.blockNumber < 0 || anchor.blockNumber >= Number.MAX_SAFE_INTEGER\n\n || typeof values.publicationBlock !== 'number'\n || !Number.isSafeInteger(values.publicationBlock)\n || values.publicationBlock < 0\n || (next ? values.publicationBlock !== anchor.blockNumber + 1 : values.publicationBlock > anchor.blockNumber)) throw new RangeError('Select an exact publication height within the anchor')\n return Object.freeze({\n ...values, anchor: Object.freeze(anchor), signal: captureSignal(values.signal),\n }) as unknown as FleetAuthorityRequest\n}\n", "import type { Hash } from '@ariestools/sdk'\nimport type { ConfiguredSeed } from '@xyo-network/service-kit-protocol'\nimport { createRestDataLakeViewer } from '@xyo-network/xl1-sdk/providers'\n\nimport {\n configuredSeed, type DataLakeSeedOptions, pinDataLakeSeedOptions, pinRead,\n} from './configuration.js'\n\nexport interface Xl1DataLakeSeedOptions extends DataLakeSeedOptions {}\n\n/** Create one explicitly configured public XL1 REST datalake seed. */\nexport async function createXl1DataLakeSeed(options: Xl1DataLakeSeedOptions): Promise<ConfiguredSeed> {\n const pinned = pinDataLakeSeedOptions(options)\n const native = await createRestDataLakeViewer(pinned.endpoint)\n return configuredSeed(pinned.id, async (hashes, readOptions) => {\n const read = pinRead(hashes, readOptions)\n return await native.get([read.hash as Hash], {\n credentials: 'omit',\n maxResponseBytes: read.maxResponseBytes,\n redirect: 'error',\n ...(pinned.fetcher !== undefined && { fetcher: pinned.fetcher }),\n ...(read.signal !== undefined && { signal: read.signal }),\n })\n })\n}\n", "import type {\n ConfiguredSeed, PublicObjectReader, PublicObjectReadOptions,\n} from '@xyo-network/service-kit-protocol'\nimport { DEFAULT_VERIFICATION_LIMITS } from '@xyo-network/service-kit-protocol'\n\nexport type DataLakeEndpointPolicy = 'explicit-local' | 'public-https'\n\nexport interface DataLakeSeedOptions {\n readonly endpoint: string\n readonly endpointPolicy: DataLakeEndpointPolicy\n readonly fetcher?: typeof fetch\n readonly id: string\n}\n\nexport interface PinnedDataLakeSeedOptions {\n readonly endpoint: string\n readonly fetcher?: typeof fetch\n readonly id: string\n}\n\ninterface PinnedRead {\n readonly hash: string\n readonly maxResponseBytes: number\n readonly signal?: AbortSignal\n}\n\nconst CONFIG_FIELDS = new Set(['endpoint', 'endpointPolicy', 'fetcher', 'id'])\nconst READ_FIELDS = new Set(['maxBodyBytes', 'signal'])\nconst HASH_PATTERN = /^[0-9a-f]{64}$/u\n\nfunction strictFields(value: unknown, fields: ReadonlySet<string>, required: readonly string[], label: string) {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new TypeError(label + ' must be a plain object')\n }\n const prototype: unknown = Object.getPrototypeOf(value)\n if (prototype !== null && prototype !== Object.prototype) {\n throw new TypeError(label + ' must be a plain object')\n }\n const descriptors = Object.getOwnPropertyDescriptors(value)\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key !== 'string' || !fields.has(key)) throw new TypeError(label + ' contains an unknown field')\n const descriptor = descriptors[key]\n if (descriptor?.enumerable !== true || !('value' in descriptor)) {\n throw new TypeError(label + ' fields must be enumerable own data properties')\n }\n }\n for (const key of required) {\n if (!Object.hasOwn(descriptors, key)) throw new TypeError(label + ' requires ' + key)\n }\n return descriptors\n}\n\nfunction seedId(value: unknown) {\n if (typeof value !== 'string' || value.length === 0 || value.length > 128 || value.trim() !== value) {\n throw new TypeError('Seed IDs must be nonempty trimmed strings of at most 128 characters')\n }\n return value\n}\n\nfunction hasDisallowedEndpointCharacter(value: string) {\n return [...value].some((character) => {\n const codePoint = character.codePointAt(0)\n return codePoint !== undefined && (codePoint <= 0x1F || codePoint === 0x7F\n || character === '\\\\' || character.trim() === '')\n })\n}\n\nfunction endpointText(value: unknown) {\n if (typeof value !== 'string' || value.length === 0 || value.length > 2048 || value.trim() !== value\n || hasDisallowedEndpointCharacter(value) || value.includes('?') || value.includes('#')) {\n throw new TypeError('endpoint must be an unambiguous absolute HTTP(S) URL')\n }\n return value\n}\n\nfunction endpointPolicy(value: unknown): DataLakeEndpointPolicy {\n if (value !== 'public-https' && value !== 'explicit-local') {\n throw new TypeError('endpointPolicy must be public-https or explicit-local')\n }\n return value\n}\n\nfunction parsedEndpoint(value: unknown, policyValue: unknown) {\n const text = endpointText(value)\n const policy = endpointPolicy(policyValue)\n let parsed: URL\n try {\n parsed = new URL(text)\n } catch {\n throw new TypeError('endpoint must be an unambiguous absolute HTTP(S) URL')\n }\n if ((parsed.protocol !== 'http:' && parsed.protocol !== 'https:') || parsed.hostname === ''\n || parsed.username !== '' || parsed.password !== '') {\n throw new TypeError('endpoint must be an unambiguous absolute HTTP(S) URL')\n }\n const inputWithoutTrailingSlashes = text.replace(/\\/+$/u, '')\n const parsedWithoutTrailingSlashes = parsed.href.replace(/\\/+$/u, '')\n if (parsedWithoutTrailingSlashes !== inputWithoutTrailingSlashes) {\n throw new TypeError('endpoint must not require URL normalization')\n }\n if (policy === 'public-https' && parsed.protocol !== 'https:') {\n throw new TypeError('public-https endpoints must use HTTPS')\n }\n parsed.pathname = parsed.pathname.replace(/\\/+$/u, '') || '/'\n return parsed\n}\n\nexport function pinDataLakeSeedOptions(options: DataLakeSeedOptions): PinnedDataLakeSeedOptions {\n const descriptors = strictFields(options, CONFIG_FIELDS, ['endpoint', 'endpointPolicy', 'id'], 'options')\n const fetcher: unknown = descriptors.fetcher?.value\n if (fetcher !== undefined && typeof fetcher !== 'function') throw new TypeError('fetcher must be a function')\n const endpoint = parsedEndpoint(descriptors.endpoint?.value as unknown, descriptors.endpointPolicy?.value as unknown)\n return Object.freeze({\n endpoint: endpoint.href.replace(/\\/+$/u, ''),\n id: seedId(descriptors.id?.value as unknown),\n ...(fetcher !== undefined && { fetcher: fetcher as typeof fetch }),\n })\n}\n\nfunction exactHash(hashes: string[]) {\n if (!Array.isArray(hashes) || hashes.length !== 1) throw new TypeError('Reader requires exactly one hash')\n const keys = Reflect.ownKeys(hashes)\n if (keys.some(key => typeof key !== 'string' || (key !== '0' && key !== 'length'))) {\n throw new TypeError('Hash input must be a dense one-element array')\n }\n const descriptor = Object.getOwnPropertyDescriptor(hashes, '0')\n const value: unknown = descriptor?.value\n if (typeof value !== 'string' || descriptor?.enumerable !== true || !('value' in descriptor)\n || !HASH_PATTERN.test(value)) {\n throw new TypeError('Hash must be canonical 64-character lowercase hexadecimal')\n }\n return value\n}\n\nfunction readPolicy(options: PublicObjectReadOptions | undefined) {\n if (options === undefined) return { maxResponseBytes: DEFAULT_VERIFICATION_LIMITS.maxBodyBytes }\n const descriptors = strictFields(options, READ_FIELDS, ['maxBodyBytes', 'signal'], 'read options')\n const maxResponseBytes: unknown = descriptors.maxBodyBytes?.value\n if (!Number.isSafeInteger(maxResponseBytes) || (maxResponseBytes as number) <= 0) {\n throw new RangeError('maxBodyBytes must be a positive safe integer')\n }\n const signal: unknown = descriptors.signal?.value\n if (typeof signal !== 'object' || signal === null || typeof (signal as AbortSignal).aborted !== 'boolean'\n || typeof (signal as AbortSignal).addEventListener !== 'function'\n || typeof (signal as AbortSignal).removeEventListener !== 'function'\n || typeof (signal as AbortSignal).throwIfAborted !== 'function') {\n throw new TypeError('signal must implement AbortSignal')\n }\n return { maxResponseBytes: maxResponseBytes as number, signal: signal as AbortSignal }\n}\n\nexport function pinRead(hashes: string[], options?: PublicObjectReadOptions): PinnedRead {\n return Object.freeze({ hash: exactHash(hashes), ...readPolicy(options) })\n}\n\nexport function configuredSeed(id: string, get: PublicObjectReader['get']): ConfiguredSeed {\n return Object.freeze({ id, reader: Object.freeze({ get }) })\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["AddressZod", "HashZod", "context", "encoder", "HashZod", "AddressZod", "HashZod", "encoder", "spend", "field", "position", "AddressZod", "HashZod", "HashZod", "context", "AddressZod", "HashZod", "HashZod", "AddressZod", "grant", "AddressZod", "HashZod", "text"]
7
7
  }
@@ -1,5 +1,8 @@
1
1
  import type { ConfiguredSeed, FleetFoldLimits, FoldedFleetView, ResolutionLimits } from '@xyo-network/service-kit-protocol';
2
2
  import { type Xl1FinalizedPublicationAnchor, type Xl1FinalizedPublicationProfile } from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication';
3
+ import { type FleetHistoricalPublisherRequest, type FleetHistoricalPublisherResult } from './fleetHistory.js';
4
+ import { type FleetVerifiedHistory } from './fleetHistoryCache.js';
5
+ import { type FleetAuthorityResources } from './fleetMeter.js';
3
6
  import { type FleetPublisherProjectionRequest, type FleetPublisherProjectionResult } from './fleetProjection.js';
4
7
  export interface FleetAuthorityLimits {
5
8
  readonly maxBlocks: number;
@@ -11,17 +14,19 @@ export interface FleetAuthorityLimits {
11
14
  readonly maxRootReads: number;
12
15
  readonly totalTimeoutMs: number;
13
16
  }
14
- /** Explicit single-ChainId local composition; no caller scan interface or imported control arrays. */
17
+ /** Explicit native evidence profile; optional pinned fork ancestry never imports parent authority or controls. */
15
18
  export interface FleetAuthorityProfile {
16
19
  readonly evidence: Xl1FinalizedPublicationProfile;
17
20
  readonly foldLimits: FleetFoldLimits;
18
21
  readonly limits: FleetAuthorityLimits;
19
22
  readonly resolutionLimits: ResolutionLimits;
20
23
  readonly seeds: readonly ConfiguredSeed[];
24
+ readonly verifiedHistory?: FleetVerifiedHistory;
21
25
  }
22
26
  export interface FleetAuthorityRequest {
23
27
  readonly anchor: Xl1FinalizedPublicationAnchor;
24
28
  readonly fleetRoot?: string;
29
+ readonly maxAggregateBytes?: number;
25
30
  readonly owner: string;
26
31
  readonly publicationBlock: number;
27
32
  readonly signal?: AbortSignal;
@@ -43,6 +48,7 @@ export interface FleetAuthorityContext {
43
48
  readonly network: string;
44
49
  readonly owner: string;
45
50
  readonly publicationBlock: number;
51
+ readonly resources?: FleetAuthorityResources;
46
52
  }
47
53
  export interface CompleteFleetAuthority extends FleetAuthorityContext {
48
54
  readonly correspondence: 'native-sdk-verified';
@@ -51,6 +57,7 @@ export interface CompleteFleetAuthority extends FleetAuthorityContext {
51
57
  readonly toBlockNumber: number;
52
58
  };
53
59
  readonly history: 'complete-genesis-to-anchor';
60
+ readonly scopeCompleteness?: 'verified-block-committed-query-selection';
54
61
  readonly status: 'complete';
55
62
  readonly views: readonly AuthenticatedFleetView[];
56
63
  }
@@ -66,6 +73,7 @@ export interface ResolvedFleetPublisher extends FleetAuthorityContext {
66
73
  readonly history: 'complete-genesis-to-anchor';
67
74
  readonly memberRoot: string;
68
75
  readonly publisherAddress: string;
76
+ readonly scopeCompleteness?: 'verified-block-committed-query-selection';
69
77
  readonly scopeRoot: string;
70
78
  readonly status: 'authorized';
71
79
  }
@@ -73,12 +81,14 @@ export interface AbsentFleetPublisher extends FleetAuthorityContext {
73
81
  readonly correspondence: 'native-sdk-verified';
74
82
  readonly history: 'complete-genesis-to-anchor';
75
83
  readonly publisherAddress: string;
84
+ readonly scopeCompleteness?: 'verified-block-committed-query-selection';
76
85
  readonly scopeRoot: string;
77
86
  readonly status: 'absent';
78
87
  }
79
88
  export type FleetPublisherAuthorityResult = ResolvedFleetPublisher | AbsentFleetPublisher | FleetAuthorityFailure;
80
89
  export interface FleetAuthority {
81
90
  enumerate(request: FleetAuthorityRequest): Promise<FleetAuthorityResult>;
91
+ enumerateHistoricalPublishers(request: FleetHistoricalPublisherRequest): Promise<FleetHistoricalPublisherResult>;
82
92
  projectNextPublisher(request: FleetPublisherProjectionRequest): Promise<FleetPublisherProjectionResult>;
83
93
  resolvePublisher(request: FleetPublisherAuthorityRequest): Promise<FleetPublisherAuthorityResult>;
84
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createFleetAuthority.d.ts","sourceRoot":"","sources":["../../src/createFleetAuthority.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createFleetAuthority.d.ts","sourceRoot":"","sources":["../../src/createFleetAuthority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAA0C,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAC3G,MAAM,mCAAmC,CAAA;AAU1C,OAAO,EAEL,KAAK,6BAA6B,EAElC,KAAK,8BAA8B,EAEpC,MAAM,yDAAyD,CAAA;AAKhE,OAAO,EACL,KAAK,+BAA+B,EAAE,KAAK,8BAA8B,EAC1E,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACkB,KAAK,uBAAuB,EACpD,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,KAAK,+BAA+B,EAAE,KAAK,8BAA8B,EAC1E,MAAM,sBAAsB,CAAA;AAI7B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC;AACD,kHAAkH;AAClH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAA;IACjD,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACrC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAA;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,oBAAoB,CAAA;CAChD;AACD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAA;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AACD,MAAM,WAAW,8BAA+B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC;IAC9F,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AACD,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC3F,QAAQ,CAAC,SAAS,EAAE,iCAAiC,CAAA;IACrD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAC5B;AACD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAA;IAC9C,QAAQ,CAAC,SAAS,EAAE,iCAAiC,CAAA;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,uCAAuC,CAAA;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAA;CAC7C;AACD,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACnE,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAA;IAC9C,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAA;IACtF,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAA;IAC9C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,0CAA0C,CAAA;IACvE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAA;CAClD;AACD,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,GAAG,UAAU,GAAG,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAAA;CACzG;AACD,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AACjF,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAA;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,0CAA0C,CAAA;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC9B;AACD,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAA;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,0CAA0C,CAAA;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAC1B;AACD,MAAM,MAAM,6BAA6B,GAAG,sBAAsB,GAAG,oBAAoB,GAAG,qBAAqB,CAAA;AACjH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACxE,6BAA6B,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAA;IAChH,oBAAoB,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAA;IACvG,gBAAgB,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAA;CAClG;AAoCD,+GAA+G;AAC/G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,cAAc,CAiVjF"}
@@ -0,0 +1,5 @@
1
+ import type { Xl1ScopedFinalizedPublicationScan } from '@xyo-network/xl1-sdk/protocol-sdk/finalized-publication';
2
+ import { type pinProfile } from './fleetProfile.js';
3
+ /** SDK-verified foreign originals are disclosed, never folded as current-chain authority. */
4
+ export declare function validateForeignHeaders(page: Xl1ScopedFinalizedPublicationScan, profile: ReturnType<typeof pinProfile>, from: number, to: number): number;
5
+ //# sourceMappingURL=fleetForeign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleetForeign.d.ts","sourceRoot":"","sources":["../../src/fleetForeign.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,yDAAyD,CAAA;AAGhH,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AA+D9D,6FAA6F;AAC7F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAexJ"}