API reference@effx/ir
migrate
API reference for @effx/ir/migrate
migrate.ts overview
Exports Grouped by Category
utils
ApplicationIRV1
Read-only compatibility boundary, never the shape produced by IR builders or encoders.
Signature
declare const ApplicationIRV1: Schema.Struct<{
readonly format: Schema.Literal<"effx-ir">
readonly version: Schema.Literal<1>
readonly nodes: Schema.$Array<
Schema.Union<
readonly [
Schema.TaggedStruct<
"Schema",
{
readonly id: Schema.brand<Schema.String, "effx/StableId">
readonly ref: Schema.Struct<{
readonly module: Schema.String
readonly export: Schema.String
readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
}>
}
>,
Schema.TaggedStruct<
"Model",
{
readonly id: Schema.brand<Schema.String, "effx/StableId">
readonly name: Schema.String
readonly schema: Schema.Struct<{
readonly module: Schema.String
readonly export: Schema.String
readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
}>
readonly table: Schema.optionalKey<Schema.String>
readonly views: Schema.$Array<
Schema.Struct<{
readonly name: Schema.String
readonly schema: Schema.Struct<{
readonly module: Schema.String
readonly export: Schema.String
readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
}>
}>
>
}
>,
Schema.TaggedStruct<
"Service",
{
readonly id: Schema.brand<Schema.String, "effx/StableId">
readonly name: Schema.String
readonly symbol: Schema.Struct<{
readonly module: Schema.String
readonly export: Schema.String
readonly member: Schema.optionalKey<Schema.String>
}>
}
>,
Schema.TaggedStruct<
"Operation",
{
readonly id: Schema.brand<Schema.String, "effx/StableId">
readonly name: Schema.String
readonly kind: Schema.Literals<readonly ["Query", "Command"]>
readonly input: Schema.Struct<{
readonly module: Schema.String
readonly export: Schema.String
readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
}>
readonly success: Schema.Struct<{
readonly module: Schema.String
readonly export: Schema.String
readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
}>
readonly errors: Schema.Struct<{
readonly values: Schema.$Array<
Schema.Struct<{
readonly module: Schema.String
readonly export: Schema.String
readonly symbolId: Schema.brand<Schema.String, "effx/StableId">
}>
>
readonly inferred: Schema.Boolean
}>
readonly requirements: Schema.Struct<{
readonly values: Schema.$Array<Schema.brand<Schema.String, "effx/StableId">>
readonly inferred: Schema.Boolean
}>
readonly handler: Schema.Struct<{
readonly module: Schema.String
readonly export: Schema.String
readonly member: Schema.optionalKey<Schema.String>
}>
}
>,
Schema.TaggedStruct<
"Capability",
{
readonly id: Schema.brand<Schema.String, "effx/StableId">
readonly name: Schema.String
readonly resource: Schema.brand<Schema.String, "effx/StableId">
readonly focus: Schema.optionalKey<Schema.brand<Schema.String, "effx/StableId">>
}
>,
Schema.TaggedStruct<
"Focus",
{
readonly id: Schema.brand<Schema.String, "effx/StableId">
readonly root: Schema.brand<Schema.String, "effx/StableId">
readonly path: Schema.$Array<Schema.String>
}
>,
Schema.TaggedStruct<
"Exposure",
{
readonly id: Schema.brand<Schema.String, "effx/StableId">
readonly operation: Schema.brand<Schema.String, "effx/StableId">
readonly transport: Schema.Union<
readonly [
Schema.TaggedStruct<
"http",
{
readonly method: Schema.Literals<readonly ["GET", "POST", "PUT", "PATCH", "DELETE"]>
readonly path: Schema.String
}
>,
Schema.TaggedStruct<"rpc", { readonly name: Schema.String }>,
Schema.TaggedStruct<"cli", { readonly command: Schema.$Array<Schema.String> }>
]
>
}
>,
Schema.TaggedStruct<
"Extension",
{
readonly id: Schema.brand<Schema.String, "effx/StableId">
readonly extension: Schema.String
readonly tag: Schema.String
readonly data: Schema.Codec<Schema.Json, Schema.Json, never, never>
}
>
]
>
>
readonly edges: Schema.$Array<
Schema.Struct<{
readonly kind: Schema.Literals<
readonly [
"InputOf",
"SuccessOf",
"ErrorOf",
"Requires",
"AuthorizedBy",
"Focuses",
"ExposedAs",
"PersistsAs",
"ViewOf"
]
>
readonly from: Schema.brand<Schema.String, "effx/StableId">
readonly to: Schema.brand<Schema.String, "effx/StableId">
readonly qualifier: Schema.optionalKey<Schema.String>
}>
>
}>ApplicationIRV1 (type alias)
Signature
type ApplicationIRV1 = typeof ApplicationIRV1.TypeEdgeKindV1
The persisted v1 input vocabulary. Do not add v2 edges to this schema.
Signature
declare const EdgeKindV1: Schema.Literals<
readonly [
"InputOf",
"SuccessOf",
"ErrorOf",
"Requires",
"AuthorizedBy",
"Focuses",
"ExposedAs",
"PersistsAs",
"ViewOf"
]
>EdgeV1
Signature
declare const EdgeV1: Schema.Struct<{
readonly kind: Schema.Literals<
readonly [
"InputOf",
"SuccessOf",
"ErrorOf",
"Requires",
"AuthorizedBy",
"Focuses",
"ExposedAs",
"PersistsAs",
"ViewOf"
]
>
readonly from: Schema.brand<Schema.String, "effx/StableId">
readonly to: Schema.brand<Schema.String, "effx/StableId">
readonly qualifier: Schema.optionalKey<Schema.String>
}>migrate
Pure version upgrade: no normalization, no dropped or rewritten nodes/edges.
Signature
declare const migrate: (ir: ApplicationIRV1 | ApplicationIR) => ApplicationIR