Register Heimdall access discovery documents

This commit is contained in:
Meta Vens 2026-08-22 03:53:10 +02:00
commit 255394f28a
2 changed files with 56 additions and 0 deletions

View file

@ -6,6 +6,9 @@ function defineOdinDocuments(defineDocumentType) {
if (!defineDocumentType) {
return {
interfaceBindingDefinition: null,
evePluginAdvertisementDefinition: null,
heimdallCommandBoundaryDefinition: null,
heimdallTransportProfileDefinition: null,
idunnCommandBoundaryDefinition: null,
idunnDaemonHealthDefinition: null,
idunnTransportProfileDefinition: null,
@ -83,6 +86,33 @@ function defineOdinDocuments(defineDocumentType) {
name: (value) => value?.providerId || value?.provider?.id || "provider",
schema: parseObjectDocument("Eve provider advertisement"),
});
const evePluginAdvertisementDefinition = defineDocumentType({
type: "gamecult.eve.plugin_advertisement",
schemaName: "gamecult.eve.plugin_advertisement",
schemaId: "gamecult.eve.plugin_advertisement.v1",
schemaVersion: "gamecult.eve.plugin_advertisement.v1",
global: false,
name: (value) => value?.pluginId || value?.plugin?.id || "plugin",
schema: parseObjectDocument("Eve plugin advertisement"),
});
const heimdallCommandBoundaryDefinition = defineDocumentType({
type: "heimdall.command_boundary",
schemaName: "heimdall.command_boundary",
schemaId: "heimdall.command_boundary.v1",
schemaVersion: "heimdall.command_boundary.v1",
global: false,
name: (value) => value?.boundaryId || value?.daemonId || "heimdall",
schema: parseObjectDocument("Heimdall command boundary"),
});
const heimdallTransportProfileDefinition = defineDocumentType({
type: "heimdall.transport_profile",
schemaName: "heimdall.transport_profile",
schemaId: "heimdall.transport_profile.v1",
schemaVersion: "heimdall.transport_profile.v1",
global: false,
name: (value) => value?.profileId || value?.daemonId || "heimdall",
schema: parseObjectDocument("Heimdall transport profile"),
});
const interfaceLayoutDefinition = defineDocumentType({
type: "odin.interface_layout",
schemaName: "odin.interface_layout",
@ -446,6 +476,9 @@ function defineOdinDocuments(defineDocumentType) {
return {
interfaceBindingDefinition,
evePluginAdvertisementDefinition,
heimdallCommandBoundaryDefinition,
heimdallTransportProfileDefinition,
interfaceLayoutDefinition,
idunnCommandBoundaryDefinition,
idunnDaemonHealthDefinition,

View file

@ -0,0 +1,23 @@
"use strict";
const assert = require("node:assert/strict");
const test = require("node:test");
const { defineOdinDocuments } = require("../src/odin/documents.cjs");
test("Odin registers the typed Heimdall access discovery documents", () => {
const documents = defineOdinDocuments((definition) => definition);
assert.equal(
documents.evePluginAdvertisementDefinition.schemaId,
"gamecult.eve.plugin_advertisement.v1",
);
assert.equal(
documents.heimdallCommandBoundaryDefinition.schemaId,
"heimdall.command_boundary.v1",
);
assert.equal(
documents.heimdallTransportProfileDefinition.schemaId,
"heimdall.transport_profile.v1",
);
});