API reference@effx/compiler
surface
API reference for @effx/compiler/surface
surface.ts overview
Exports Grouped by Category
utils
LOCAL_WIRING
The one local-wiring export (generate/http.ts AppRoutes): it mounts every local root, group and /rpc.
Signature
declare const LOCAL_WIRING: "AppRoutes"Surface
Signature
declare const Surface: Schema.Struct<{
readonly format: Schema.Literal<"effx-surface">
readonly version: Schema.Literal<1>
readonly semanticHash: Schema.String
readonly operations: Schema.$Array<
Schema.Struct<{
readonly name: Schema.String
readonly kind: Schema.Literals<readonly ["Query", "Command"]>
readonly binding: Schema.Literals<readonly ["local", "external"]>
}>
>
readonly http: Schema.$Array<
Schema.Struct<{
readonly root: Schema.String
readonly group: Schema.String
readonly title: Schema.optionalKey<Schema.String>
readonly binding: Schema.Literals<readonly ["local", "external"]>
readonly wiring: Schema.String
readonly endpoints: Schema.$Array<
Schema.Struct<{
readonly operation: Schema.String
readonly endpoint: Schema.String
readonly operationId: Schema.String
readonly method: Schema.Literals<readonly ["GET", "POST", "PUT", "PATCH", "DELETE"]>
readonly path: Schema.String
readonly status: Schema.optionalKey<Schema.Int>
readonly conditional: Schema.Boolean
readonly middleware: Schema.$Array<Schema.String>
readonly security: Schema.$Array<Schema.String>
readonly access: Schema.optionalKey<
Schema.Struct<{
readonly exposure: Schema.Literals<readonly ["External", "Internal"]>
readonly acceptedCredentials: Schema.UniqueArray<Schema.NonEmptyString>
readonly principalKinds: Schema.UniqueArray<
Schema.Literals<readonly ["Anonymous", "Person", "ServicePrincipal", "CapabilityHolder"]>
>
readonly decisionTime: Schema.Literals<readonly ["SnapshotRead", "Transaction"]>
readonly capabilities: Schema.TaggedUnion<{
readonly Any: Schema.TaggedStruct<
"Any",
{ readonly capabilities: Schema.UniqueArray<Schema.NonEmptyString> }
>
readonly None: Schema.TaggedStruct<"None", {}>
readonly One: Schema.TaggedStruct<"One", { readonly capability: Schema.NonEmptyString }>
readonly All: Schema.TaggedStruct<
"All",
{ readonly capabilities: Schema.UniqueArray<Schema.NonEmptyString> }
>
}>
readonly concealment: Schema.TaggedUnion<{
readonly Reveal: Schema.TaggedStruct<"Reveal", {}>
readonly NotFound: Schema.TaggedStruct<
"NotFound",
{ readonly stages: Schema.UniqueArray<Schema.NonEmptyString> }
>
}>
}>
>
}>
>
}>
>
readonly rpc: Schema.$Array<
Schema.Struct<{ readonly name: Schema.String; readonly operation: Schema.String; readonly wiring: Schema.String }>
>
readonly cli: Schema.$Array<
Schema.Struct<{ readonly command: Schema.$Array<Schema.String>; readonly operation: Schema.String }>
>
readonly foldkit: Schema.$Array<Schema.Struct<{ readonly operation: Schema.String }>>
}>Surface (type alias)
Signature
type Surface = typeof Surface.TypeSurfaceJson
The wire shape is the Schema's Type (as for the IR), so encoding to canonical JSON is the identity.
Signature
declare const SurfaceJson: Schema.fromJsonString<
Schema.Struct<{
readonly format: Schema.Literal<"effx-surface">
readonly version: Schema.Literal<1>
readonly semanticHash: Schema.String
readonly operations: Schema.$Array<
Schema.Struct<{
readonly name: Schema.String
readonly kind: Schema.Literals<readonly ["Query", "Command"]>
readonly binding: Schema.Literals<readonly ["local", "external"]>
}>
>
readonly http: Schema.$Array<
Schema.Struct<{
readonly root: Schema.String
readonly group: Schema.String
readonly title: Schema.optionalKey<Schema.String>
readonly binding: Schema.Literals<readonly ["local", "external"]>
readonly wiring: Schema.String
readonly endpoints: Schema.$Array<
Schema.Struct<{
readonly operation: Schema.String
readonly endpoint: Schema.String
readonly operationId: Schema.String
readonly method: Schema.Literals<readonly ["GET", "POST", "PUT", "PATCH", "DELETE"]>
readonly path: Schema.String
readonly status: Schema.optionalKey<Schema.Int>
readonly conditional: Schema.Boolean
readonly middleware: Schema.$Array<Schema.String>
readonly security: Schema.$Array<Schema.String>
readonly access: Schema.optionalKey<
Schema.Struct<{
readonly exposure: Schema.Literals<readonly ["External", "Internal"]>
readonly acceptedCredentials: Schema.UniqueArray<Schema.NonEmptyString>
readonly principalKinds: Schema.UniqueArray<
Schema.Literals<readonly ["Anonymous", "Person", "ServicePrincipal", "CapabilityHolder"]>
>
readonly decisionTime: Schema.Literals<readonly ["SnapshotRead", "Transaction"]>
readonly capabilities: Schema.TaggedUnion<{
readonly Any: Schema.TaggedStruct<
"Any",
{ readonly capabilities: Schema.UniqueArray<Schema.NonEmptyString> }
>
readonly None: Schema.TaggedStruct<"None", {}>
readonly One: Schema.TaggedStruct<"One", { readonly capability: Schema.NonEmptyString }>
readonly All: Schema.TaggedStruct<
"All",
{ readonly capabilities: Schema.UniqueArray<Schema.NonEmptyString> }
>
}>
readonly concealment: Schema.TaggedUnion<{
readonly Reveal: Schema.TaggedStruct<"Reveal", {}>
readonly NotFound: Schema.TaggedStruct<
"NotFound",
{ readonly stages: Schema.UniqueArray<Schema.NonEmptyString> }
>
}>
}>
>
}>
>
}>
>
readonly rpc: Schema.$Array<
Schema.Struct<{ readonly name: Schema.String; readonly operation: Schema.String; readonly wiring: Schema.String }>
>
readonly cli: Schema.$Array<
Schema.Struct<{ readonly command: Schema.$Array<Schema.String>; readonly operation: Schema.String }>
>
readonly foldkit: Schema.$Array<Schema.Struct<{ readonly operation: Schema.String }>>
}>
>decodeSurfaceUnknown
Signature
declare const decodeSurfaceUnknown: (
input: unknown,
options?: ParseOptions
) => Effect.Effect<
{
readonly format: "effx-surface"
readonly version: 1
readonly semanticHash: string
readonly operations: ReadonlyArray<{
readonly name: string
readonly kind: "Query" | "Command"
readonly binding: "local" | "external"
}>
readonly http: ReadonlyArray<{
readonly binding: "local" | "external"
readonly endpoints: ReadonlyArray<{
readonly method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"
readonly middleware: ReadonlyArray<string>
readonly security: ReadonlyArray<string>
readonly operation: string
readonly endpoint: string
readonly operationId: string
readonly path: string
readonly conditional: boolean
readonly status?: number | undefined
readonly access?:
| {
readonly exposure: "External" | "Internal"
readonly acceptedCredentials: ReadonlyArray<string>
readonly principalKinds: ReadonlyArray<"Anonymous" | "Person" | "ServicePrincipal" | "CapabilityHolder">
readonly decisionTime: "SnapshotRead" | "Transaction"
readonly capabilities:
| { readonly _tag: "Any"; readonly capabilities: ReadonlyArray<string> }
| { readonly _tag: "None" }
| { readonly _tag: "One"; readonly capability: string }
| { readonly _tag: "All"; readonly capabilities: ReadonlyArray<string> }
readonly concealment:
{ readonly _tag: "Reveal" } | { readonly _tag: "NotFound"; readonly stages: ReadonlyArray<string> }
}
| undefined
}>
readonly root: string
readonly group: string
readonly wiring: string
readonly title?: string | undefined
}>
readonly rpc: ReadonlyArray<{ readonly name: string; readonly operation: string; readonly wiring: string }>
readonly cli: ReadonlyArray<{ readonly command: ReadonlyArray<string>; readonly operation: string }>
readonly foldkit: ReadonlyArray<{ readonly operation: string }>
},
Schema.SchemaError,
never
>surfaceOf
Signature
declare const surfaceOf: (
ir: ApplicationIR,
index: GraphIndex,
semanticHash: string
) => Effect.Effect<Surface, CompilerFault>surfaceText
Canonical JSON text (RFC 8785) plus a trailing newline, like ir.json.
Signature
declare const surfaceText: (surface: Surface) => string