pluginsdk/abi/v1/render.pb.go

2288 lines
72 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// render.proto — block/template render payloads and the explicit
// render-context envelope (WO-WZ-001).
//
// RenderContext serializes every value blocks currently read from ctx via
// core/blocks/context.go. Function-valued context entries (SlotRenderer,
// MediaResolver, EmbedResolver, the generic Queries value) cannot cross the
// wire; see core/docs/wasm-abi.md for how each one maps.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.11
// protoc (unknown)
// source: v1/render.proto
package abiv1
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
unsafe "unsafe"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// RenderBlockRequest renders one block (blocks.BlockFunc).
type RenderBlockRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
BlockKey string `protobuf:"bytes,1,opt,name=block_key,json=blockKey,proto3" json:"block_key,omitempty"`
// JSON encoding of the block's content map.
ContentJson []byte `protobuf:"bytes,2,opt,name=content_json,json=contentJson,proto3" json:"content_json,omitempty"`
RenderContext *RenderContext `protobuf:"bytes,3,opt,name=render_context,json=renderContext,proto3" json:"render_context,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RenderBlockRequest) Reset() {
*x = RenderBlockRequest{}
mi := &file_v1_render_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RenderBlockRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RenderBlockRequest) ProtoMessage() {}
func (x *RenderBlockRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[0]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RenderBlockRequest.ProtoReflect.Descriptor instead.
func (*RenderBlockRequest) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{0}
}
func (x *RenderBlockRequest) GetBlockKey() string {
if x != nil {
return x.BlockKey
}
return ""
}
func (x *RenderBlockRequest) GetContentJson() []byte {
if x != nil {
return x.ContentJson
}
return nil
}
func (x *RenderBlockRequest) GetRenderContext() *RenderContext {
if x != nil {
return x.RenderContext
}
return nil
}
type RenderBlockResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Final rendered HTML for a plain (non-template) block. Ignored when
// `powered` is set.
Html string `protobuf:"bytes,1,opt,name=html,proto3" json:"html,omitempty"`
// Set when the block is "powered": instead of final HTML, the block hands
// back a template string + data map (blocks.PoweredBlock) and the HOST
// renders it (pongo2/ninjatpl, host-side) AFTER this RENDER_BLOCK call has
// returned. Because the block-invoke has already returned, the guest
// instance is free, so any plugin tag/filter the template hits (RENDER_TAG /
// APPLY_FILTER) is a fresh invoke — no re-entrancy. A singular message field
// has explicit presence: nil (GetPowered() == nil) means a plain HTML block.
Powered *PoweredBlock `protobuf:"bytes,2,opt,name=powered,proto3" json:"powered,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RenderBlockResponse) Reset() {
*x = RenderBlockResponse{}
mi := &file_v1_render_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RenderBlockResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RenderBlockResponse) ProtoMessage() {}
func (x *RenderBlockResponse) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RenderBlockResponse.ProtoReflect.Descriptor instead.
func (*RenderBlockResponse) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{1}
}
func (x *RenderBlockResponse) GetHtml() string {
if x != nil {
return x.Html
}
return ""
}
func (x *RenderBlockResponse) GetPowered() *PoweredBlock {
if x != nil {
return x.Powered
}
return nil
}
// PoweredBlock is a template-backed block result. The host renders `template`
// with `data_json` as the pongo2 data map. See core/docs/wasm-abi.md
// §"Powered blocks (render as a host capability)".
type PoweredBlock struct {
state protoimpl.MessageState `protogen:"open.v1"`
// ninjatpl/pongo2 template source the host renders host-side.
Template string `protobuf:"bytes,1,opt,name=template,proto3" json:"template,omitempty"`
// JSON encoding of the template data map (map[string]any).
DataJson []byte `protobuf:"bytes,2,opt,name=data_json,json=dataJson,proto3" json:"data_json,omitempty"`
// Requested HTTP response status. Before writing headers, the host accepts
// only 200599, uses the highest status class, and keeps the first result
// encountered within that class.
StatusCode int32 `protobuf:"varint,3,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"`
// Structured document metadata merged by the host into the page head. The
// first non-empty value for each field wins in deterministic render order.
Metadata *DocumentMetadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PoweredBlock) Reset() {
*x = PoweredBlock{}
mi := &file_v1_render_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PoweredBlock) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PoweredBlock) ProtoMessage() {}
func (x *PoweredBlock) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PoweredBlock.ProtoReflect.Descriptor instead.
func (*PoweredBlock) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{2}
}
func (x *PoweredBlock) GetTemplate() string {
if x != nil {
return x.Template
}
return ""
}
func (x *PoweredBlock) GetDataJson() []byte {
if x != nil {
return x.DataJson
}
return nil
}
func (x *PoweredBlock) GetStatusCode() int32 {
if x != nil {
return x.StatusCode
}
return 0
}
func (x *PoweredBlock) GetMetadata() *DocumentMetadata {
if x != nil {
return x.Metadata
}
return nil
}
// DocumentMetadata is the safe, shared subset of document head data a plugin
// may provide. The host validates and escapes every value before rendering.
type DocumentMetadata struct {
state protoimpl.MessageState `protogen:"open.v1"`
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
CanonicalUrl string `protobuf:"bytes,3,opt,name=canonical_url,json=canonicalUrl,proto3" json:"canonical_url,omitempty"`
ImageUrl string `protobuf:"bytes,4,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"`
Robots string `protobuf:"bytes,5,opt,name=robots,proto3" json:"robots,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DocumentMetadata) Reset() {
*x = DocumentMetadata{}
mi := &file_v1_render_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DocumentMetadata) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DocumentMetadata) ProtoMessage() {}
func (x *DocumentMetadata) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DocumentMetadata.ProtoReflect.Descriptor instead.
func (*DocumentMetadata) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{3}
}
func (x *DocumentMetadata) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *DocumentMetadata) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *DocumentMetadata) GetCanonicalUrl() string {
if x != nil {
return x.CanonicalUrl
}
return ""
}
func (x *DocumentMetadata) GetImageUrl() string {
if x != nil {
return x.ImageUrl
}
return ""
}
func (x *DocumentMetadata) GetRobots() string {
if x != nil {
return x.Robots
}
return ""
}
// RenderTemplateRequest renders one template (templates.TemplateFunc).
type RenderTemplateRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
TemplateKey string `protobuf:"bytes,1,opt,name=template_key,json=templateKey,proto3" json:"template_key,omitempty"`
// JSON encoding of the template's doc map (the page document).
DocJson []byte `protobuf:"bytes,2,opt,name=doc_json,json=docJson,proto3" json:"doc_json,omitempty"`
RenderContext *RenderContext `protobuf:"bytes,3,opt,name=render_context,json=renderContext,proto3" json:"render_context,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RenderTemplateRequest) Reset() {
*x = RenderTemplateRequest{}
mi := &file_v1_render_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RenderTemplateRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RenderTemplateRequest) ProtoMessage() {}
func (x *RenderTemplateRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RenderTemplateRequest.ProtoReflect.Descriptor instead.
func (*RenderTemplateRequest) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{4}
}
func (x *RenderTemplateRequest) GetTemplateKey() string {
if x != nil {
return x.TemplateKey
}
return ""
}
func (x *RenderTemplateRequest) GetDocJson() []byte {
if x != nil {
return x.DocJson
}
return nil
}
func (x *RenderTemplateRequest) GetRenderContext() *RenderContext {
if x != nil {
return x.RenderContext
}
return nil
}
type RenderTemplateResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Document *TemplateDocument `protobuf:"bytes,2,opt,name=document,proto3" json:"document,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RenderTemplateResponse) Reset() {
*x = RenderTemplateResponse{}
mi := &file_v1_render_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RenderTemplateResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RenderTemplateResponse) ProtoMessage() {}
func (x *RenderTemplateResponse) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RenderTemplateResponse.ProtoReflect.Descriptor instead.
func (*RenderTemplateResponse) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{5}
}
func (x *RenderTemplateResponse) GetDocument() *TemplateDocument {
if x != nil {
return x.Document
}
return nil
}
// TemplateDocument is a guest template's contribution to a page. The HOST
// owns the document envelope: it composes doctype/<html>/<head>/<body> with
// the cms-authored bn chrome, built from the same doc map it sent the guest
// as doc_json (see cms docs/superpowers/specs/2026-07-07-host-chrome-injection-design.md).
type TemplateDocument struct {
state protoimpl.MessageState `protogen:"open.v1"`
BodyHtml []byte `protobuf:"bytes,1,opt,name=body_html,json=bodyHtml,proto3" json:"body_html,omitempty"` // inner <body> content
BodyClass string `protobuf:"bytes,2,opt,name=body_class,json=bodyClass,proto3" json:"body_class,omitempty"` // <body class="...">
Lang string `protobuf:"bytes,3,opt,name=lang,proto3" json:"lang,omitempty"` // <html lang>; empty means host default "en"
HeadExtraHtml []byte `protobuf:"bytes,4,opt,name=head_extra_html,json=headExtraHtml,proto3" json:"head_extra_html,omitempty"` // appended inside <head>, after bn.Head
BodyEndExtraHtml []byte `protobuf:"bytes,5,opt,name=body_end_extra_html,json=bodyEndExtraHtml,proto3" json:"body_end_extra_html,omitempty"` // appended before </body>, after bn.BodyEnd
// Extra <html>-element attributes (e.g. data-theme). A "lang" key here is
// ignored — the lang field wins.
HtmlAttrs map[string]string `protobuf:"bytes,6,rep,name=html_attrs,json=htmlAttrs,proto3" json:"html_attrs,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// Requested HTTP response status. The host applies the same validation and
// precedence rules as PoweredBlock.status_code.
StatusCode int32 `protobuf:"varint,7,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"`
// Structured document metadata merged by the host into the page head.
Metadata *DocumentMetadata `protobuf:"bytes,8,opt,name=metadata,proto3" json:"metadata,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TemplateDocument) Reset() {
*x = TemplateDocument{}
mi := &file_v1_render_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *TemplateDocument) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TemplateDocument) ProtoMessage() {}
func (x *TemplateDocument) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TemplateDocument.ProtoReflect.Descriptor instead.
func (*TemplateDocument) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{6}
}
func (x *TemplateDocument) GetBodyHtml() []byte {
if x != nil {
return x.BodyHtml
}
return nil
}
func (x *TemplateDocument) GetBodyClass() string {
if x != nil {
return x.BodyClass
}
return ""
}
func (x *TemplateDocument) GetLang() string {
if x != nil {
return x.Lang
}
return ""
}
func (x *TemplateDocument) GetHeadExtraHtml() []byte {
if x != nil {
return x.HeadExtraHtml
}
return nil
}
func (x *TemplateDocument) GetBodyEndExtraHtml() []byte {
if x != nil {
return x.BodyEndExtraHtml
}
return nil
}
func (x *TemplateDocument) GetHtmlAttrs() map[string]string {
if x != nil {
return x.HtmlAttrs
}
return nil
}
func (x *TemplateDocument) GetStatusCode() int32 {
if x != nil {
return x.StatusCode
}
return 0
}
func (x *TemplateDocument) GetMetadata() *DocumentMetadata {
if x != nil {
return x.Metadata
}
return nil
}
// RenderTagRequest invokes a plugin-declared template tag (HOOK_RENDER_TAG).
// The host wires one pongo2 tag per manifest.declared_tags name; when its
// engine hits that tag while rendering a powered block, it calls back here.
// Re-entrancy-free: the originating RENDER_BLOCK has already returned.
type RenderTagRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
TagName string `protobuf:"bytes,1,opt,name=tag_name,json=tagName,proto3" json:"tag_name,omitempty"`
// JSON encoding of the tag's parsed arguments (map[string]any).
ArgsJson []byte `protobuf:"bytes,2,opt,name=args_json,json=argsJson,proto3" json:"args_json,omitempty"`
// The active render context (same envelope RENDER_BLOCK carries), so the
// tag fn can read page/post/request state via blocks.Get*.
RenderContext *RenderContext `protobuf:"bytes,3,opt,name=render_context,json=renderContext,proto3" json:"render_context,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RenderTagRequest) Reset() {
*x = RenderTagRequest{}
mi := &file_v1_render_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RenderTagRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RenderTagRequest) ProtoMessage() {}
func (x *RenderTagRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RenderTagRequest.ProtoReflect.Descriptor instead.
func (*RenderTagRequest) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{7}
}
func (x *RenderTagRequest) GetTagName() string {
if x != nil {
return x.TagName
}
return ""
}
func (x *RenderTagRequest) GetArgsJson() []byte {
if x != nil {
return x.ArgsJson
}
return nil
}
func (x *RenderTagRequest) GetRenderContext() *RenderContext {
if x != nil {
return x.RenderContext
}
return nil
}
// RenderTagResponse returns the tag's rendered HTML. A non-empty `error`
// carries the tag fn's returned error (distinct from an AbiError, which is
// reserved for transport/dispatch/panic failures).
type RenderTagResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Html string `protobuf:"bytes,1,opt,name=html,proto3" json:"html,omitempty"`
Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RenderTagResponse) Reset() {
*x = RenderTagResponse{}
mi := &file_v1_render_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RenderTagResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RenderTagResponse) ProtoMessage() {}
func (x *RenderTagResponse) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RenderTagResponse.ProtoReflect.Descriptor instead.
func (*RenderTagResponse) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{8}
}
func (x *RenderTagResponse) GetHtml() string {
if x != nil {
return x.Html
}
return ""
}
func (x *RenderTagResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
// ApplyFilterRequest invokes a plugin-declared template filter
// (HOOK_APPLY_FILTER). The host wires one pongo2 filter per
// manifest.declared_filters name.
type ApplyFilterRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
FilterName string `protobuf:"bytes,1,opt,name=filter_name,json=filterName,proto3" json:"filter_name,omitempty"`
// The value the filter is applied to (pongo2 passes strings).
Input string `protobuf:"bytes,2,opt,name=input,proto3" json:"input,omitempty"`
// JSON encoding of the filter's arguments (map[string]any).
ArgsJson []byte `protobuf:"bytes,3,opt,name=args_json,json=argsJson,proto3" json:"args_json,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ApplyFilterRequest) Reset() {
*x = ApplyFilterRequest{}
mi := &file_v1_render_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ApplyFilterRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ApplyFilterRequest) ProtoMessage() {}
func (x *ApplyFilterRequest) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ApplyFilterRequest.ProtoReflect.Descriptor instead.
func (*ApplyFilterRequest) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{9}
}
func (x *ApplyFilterRequest) GetFilterName() string {
if x != nil {
return x.FilterName
}
return ""
}
func (x *ApplyFilterRequest) GetInput() string {
if x != nil {
return x.Input
}
return ""
}
func (x *ApplyFilterRequest) GetArgsJson() []byte {
if x != nil {
return x.ArgsJson
}
return nil
}
// ApplyFilterResponse returns the filtered output. A non-empty `error`
// carries the filter fn's returned error.
type ApplyFilterResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Output string `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"`
Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ApplyFilterResponse) Reset() {
*x = ApplyFilterResponse{}
mi := &file_v1_render_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ApplyFilterResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ApplyFilterResponse) ProtoMessage() {}
func (x *ApplyFilterResponse) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[10]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ApplyFilterResponse.ProtoReflect.Descriptor instead.
func (*ApplyFilterResponse) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{10}
}
func (x *ApplyFilterResponse) GetOutput() string {
if x != nil {
return x.Output
}
return ""
}
func (x *ApplyFilterResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
// RenderContext is the explicit envelope of the context values enumerated
// from core/blocks/context.go. Absent sub-messages mean the corresponding
// ctx value was not set (the getters return nil / zero values).
type RenderContext struct {
state protoimpl.MessageState `protogen:"open.v1"`
// blocks.GetRequest — subset of *http.Request that render code reads.
Request *RequestInfo `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
// blocks.GetBlockContext — the pongo2 template data struct.
BlockContext *BlockContext `protobuf:"bytes,2,opt,name=block_context,json=blockContext,proto3" json:"block_context,omitempty"`
// blocks.GetTemplateKey.
TemplateKey string `protobuf:"bytes,3,opt,name=template_key,json=templateKey,proto3" json:"template_key,omitempty"`
// blocks.GetCurrentPage.
Page *PageContext `protobuf:"bytes,4,opt,name=page,proto3" json:"page,omitempty"`
// blocks.GetCurrentBlogPost.
Post *PostContext `protobuf:"bytes,5,opt,name=post,proto3" json:"post,omitempty"`
// blocks.GetCurrentAuthor.
Author *AuthorContext `protobuf:"bytes,6,opt,name=author,proto3" json:"author,omitempty"`
// blocks.GetCurrentCategory.
Category *CategoryContext `protobuf:"bytes,7,opt,name=category,proto3" json:"category,omitempty"`
// blocks.GetMasterPage; presence doubles as IsMasterPageContext.
MasterPage *MasterPageContext `protobuf:"bytes,8,opt,name=master_page,json=masterPage,proto3" json:"master_page,omitempty"`
// blocks.GetRequestedPath (404 pages).
RequestedPath string `protobuf:"bytes,9,opt,name=requested_path,json=requestedPath,proto3" json:"requested_path,omitempty"`
// blocks.GetInjectedSlots (master page rendering).
InjectedSlots map[string]string `protobuf:"bytes,10,rep,name=injected_slots,json=injectedSlots,proto3" json:"injected_slots,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// blocks.IsEditor.
IsEditor bool `protobuf:"varint,11,opt,name=is_editor,json=isEditor,proto3" json:"is_editor,omitempty"`
// blocks.GetExpectedSlots.
ExpectedSlots []string `protobuf:"bytes,12,rep,name=expected_slots,json=expectedSlots,proto3" json:"expected_slots,omitempty"`
// blocks.GetBlockID (UUID; empty for uuid.Nil).
BlockId string `protobuf:"bytes,13,opt,name=block_id,json=blockId,proto3" json:"block_id,omitempty"`
// blocks.GetCurrentPageID (UUID; empty for uuid.Nil).
CurrentPageId string `protobuf:"bytes,14,opt,name=current_page_id,json=currentPageId,proto3" json:"current_page_id,omitempty"`
// blocks.GetHumanProofBanner.
HumanProofBanner *HumanProofBanner `protobuf:"bytes,15,opt,name=human_proof_banner,json=humanProofBanner,proto3" json:"human_proof_banner,omitempty"`
// blocks.GetDetailRow.
DetailRow *DetailRow `protobuf:"bytes,16,opt,name=detail_row,json=detailRow,proto3" json:"detail_row,omitempty"`
// Active theme variables, JSON-encoded.
ThemeJson []byte `protobuf:"bytes,17,opt,name=theme_json,json=themeJson,proto3" json:"theme_json,omitempty"`
// Site locale (BCP 47).
Locale string `protobuf:"bytes,18,opt,name=locale,proto3" json:"locale,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RenderContext) Reset() {
*x = RenderContext{}
mi := &file_v1_render_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RenderContext) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RenderContext) ProtoMessage() {}
func (x *RenderContext) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RenderContext.ProtoReflect.Descriptor instead.
func (*RenderContext) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{11}
}
func (x *RenderContext) GetRequest() *RequestInfo {
if x != nil {
return x.Request
}
return nil
}
func (x *RenderContext) GetBlockContext() *BlockContext {
if x != nil {
return x.BlockContext
}
return nil
}
func (x *RenderContext) GetTemplateKey() string {
if x != nil {
return x.TemplateKey
}
return ""
}
func (x *RenderContext) GetPage() *PageContext {
if x != nil {
return x.Page
}
return nil
}
func (x *RenderContext) GetPost() *PostContext {
if x != nil {
return x.Post
}
return nil
}
func (x *RenderContext) GetAuthor() *AuthorContext {
if x != nil {
return x.Author
}
return nil
}
func (x *RenderContext) GetCategory() *CategoryContext {
if x != nil {
return x.Category
}
return nil
}
func (x *RenderContext) GetMasterPage() *MasterPageContext {
if x != nil {
return x.MasterPage
}
return nil
}
func (x *RenderContext) GetRequestedPath() string {
if x != nil {
return x.RequestedPath
}
return ""
}
func (x *RenderContext) GetInjectedSlots() map[string]string {
if x != nil {
return x.InjectedSlots
}
return nil
}
func (x *RenderContext) GetIsEditor() bool {
if x != nil {
return x.IsEditor
}
return false
}
func (x *RenderContext) GetExpectedSlots() []string {
if x != nil {
return x.ExpectedSlots
}
return nil
}
func (x *RenderContext) GetBlockId() string {
if x != nil {
return x.BlockId
}
return ""
}
func (x *RenderContext) GetCurrentPageId() string {
if x != nil {
return x.CurrentPageId
}
return ""
}
func (x *RenderContext) GetHumanProofBanner() *HumanProofBanner {
if x != nil {
return x.HumanProofBanner
}
return nil
}
func (x *RenderContext) GetDetailRow() *DetailRow {
if x != nil {
return x.DetailRow
}
return nil
}
func (x *RenderContext) GetThemeJson() []byte {
if x != nil {
return x.ThemeJson
}
return nil
}
func (x *RenderContext) GetLocale() string {
if x != nil {
return x.Locale
}
return ""
}
// RequestInfo carries the request subset render code reads from
// blocks.GetRequest (single-valued header map, matching BlockContext).
type RequestInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"`
Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
Host string `protobuf:"bytes,4,opt,name=host,proto3" json:"host,omitempty"`
RawQuery string `protobuf:"bytes,5,opt,name=raw_query,json=rawQuery,proto3" json:"raw_query,omitempty"`
Headers map[string]string `protobuf:"bytes,6,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
Cookies map[string]string `protobuf:"bytes,7,rep,name=cookies,proto3" json:"cookies,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
RemoteIp string `protobuf:"bytes,8,opt,name=remote_ip,json=remoteIp,proto3" json:"remote_ip,omitempty"`
Referrer string `protobuf:"bytes,9,opt,name=referrer,proto3" json:"referrer,omitempty"`
UserAgent string `protobuf:"bytes,10,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RequestInfo) Reset() {
*x = RequestInfo{}
mi := &file_v1_render_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RequestInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RequestInfo) ProtoMessage() {}
func (x *RequestInfo) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[12]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RequestInfo.ProtoReflect.Descriptor instead.
func (*RequestInfo) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{12}
}
func (x *RequestInfo) GetMethod() string {
if x != nil {
return x.Method
}
return ""
}
func (x *RequestInfo) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *RequestInfo) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *RequestInfo) GetHost() string {
if x != nil {
return x.Host
}
return ""
}
func (x *RequestInfo) GetRawQuery() string {
if x != nil {
return x.RawQuery
}
return ""
}
func (x *RequestInfo) GetHeaders() map[string]string {
if x != nil {
return x.Headers
}
return nil
}
func (x *RequestInfo) GetCookies() map[string]string {
if x != nil {
return x.Cookies
}
return nil
}
func (x *RequestInfo) GetRemoteIp() string {
if x != nil {
return x.RemoteIp
}
return ""
}
func (x *RequestInfo) GetReferrer() string {
if x != nil {
return x.Referrer
}
return ""
}
func (x *RequestInfo) GetUserAgent() string {
if x != nil {
return x.UserAgent
}
return ""
}
// PageContext mirrors blocks.PageContext.
type PageContext struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
Slug string `protobuf:"bytes,2,opt,name=slug,proto3" json:"slug,omitempty"`
Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
PostType string `protobuf:"bytes,4,opt,name=post_type,json=postType,proto3" json:"post_type,omitempty"` // "page", "post", "master", "system"
Status string `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` // "published", "draft", "scheduled"
// Slug derived from the resolved page hierarchy.
DerivedSlug string `protobuf:"bytes,6,opt,name=derived_slug,json=derivedSlug,proto3" json:"derived_slug,omitempty"`
// Effective mount path after host inheritance and normalization.
MountPath string `protobuf:"bytes,7,opt,name=mount_path,json=mountPath,proto3" json:"mount_path,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PageContext) Reset() {
*x = PageContext{}
mi := &file_v1_render_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PageContext) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PageContext) ProtoMessage() {}
func (x *PageContext) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[13]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PageContext.ProtoReflect.Descriptor instead.
func (*PageContext) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{13}
}
func (x *PageContext) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *PageContext) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *PageContext) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *PageContext) GetPostType() string {
if x != nil {
return x.PostType
}
return ""
}
func (x *PageContext) GetStatus() string {
if x != nil {
return x.Status
}
return ""
}
func (x *PageContext) GetDerivedSlug() string {
if x != nil {
return x.DerivedSlug
}
return ""
}
func (x *PageContext) GetMountPath() string {
if x != nil {
return x.MountPath
}
return ""
}
// PostContext mirrors blocks.PostContext.
type PostContext struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
Slug string `protobuf:"bytes,2,opt,name=slug,proto3" json:"slug,omitempty"`
Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
Excerpt string `protobuf:"bytes,4,opt,name=excerpt,proto3" json:"excerpt,omitempty"`
FeaturedImageUrl string `protobuf:"bytes,5,opt,name=featured_image_url,json=featuredImageUrl,proto3" json:"featured_image_url,omitempty"`
AuthorId string `protobuf:"bytes,6,opt,name=author_id,json=authorId,proto3" json:"author_id,omitempty"` // UUID
PublishedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=published_at,json=publishedAt,proto3" json:"published_at,omitempty"`
ReadingTime int32 `protobuf:"varint,8,opt,name=reading_time,json=readingTime,proto3" json:"reading_time,omitempty"`
IsFeatured bool `protobuf:"varint,9,opt,name=is_featured,json=isFeatured,proto3" json:"is_featured,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PostContext) Reset() {
*x = PostContext{}
mi := &file_v1_render_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PostContext) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PostContext) ProtoMessage() {}
func (x *PostContext) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PostContext.ProtoReflect.Descriptor instead.
func (*PostContext) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{14}
}
func (x *PostContext) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *PostContext) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *PostContext) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *PostContext) GetExcerpt() string {
if x != nil {
return x.Excerpt
}
return ""
}
func (x *PostContext) GetFeaturedImageUrl() string {
if x != nil {
return x.FeaturedImageUrl
}
return ""
}
func (x *PostContext) GetAuthorId() string {
if x != nil {
return x.AuthorId
}
return ""
}
func (x *PostContext) GetPublishedAt() *timestamppb.Timestamp {
if x != nil {
return x.PublishedAt
}
return nil
}
func (x *PostContext) GetReadingTime() int32 {
if x != nil {
return x.ReadingTime
}
return 0
}
func (x *PostContext) GetIsFeatured() bool {
if x != nil {
return x.IsFeatured
}
return false
}
// AuthorContext mirrors blocks.AuthorContext.
type AuthorContext struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
Slug string `protobuf:"bytes,3,opt,name=slug,proto3" json:"slug,omitempty"`
Bio string `protobuf:"bytes,4,opt,name=bio,proto3" json:"bio,omitempty"`
AvatarUrl string `protobuf:"bytes,5,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AuthorContext) Reset() {
*x = AuthorContext{}
mi := &file_v1_render_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AuthorContext) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AuthorContext) ProtoMessage() {}
func (x *AuthorContext) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AuthorContext.ProtoReflect.Descriptor instead.
func (*AuthorContext) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{15}
}
func (x *AuthorContext) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *AuthorContext) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *AuthorContext) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *AuthorContext) GetBio() string {
if x != nil {
return x.Bio
}
return ""
}
func (x *AuthorContext) GetAvatarUrl() string {
if x != nil {
return x.AvatarUrl
}
return ""
}
// CategoryContext mirrors blocks.CategoryContext.
type CategoryContext struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
Slug string `protobuf:"bytes,3,opt,name=slug,proto3" json:"slug,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CategoryContext) Reset() {
*x = CategoryContext{}
mi := &file_v1_render_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CategoryContext) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CategoryContext) ProtoMessage() {}
func (x *CategoryContext) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[16]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CategoryContext.ProtoReflect.Descriptor instead.
func (*CategoryContext) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{16}
}
func (x *CategoryContext) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *CategoryContext) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *CategoryContext) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
// MasterPageContext mirrors blocks.MasterPageContext.
type MasterPageContext struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
Slug string `protobuf:"bytes,2,opt,name=slug,proto3" json:"slug,omitempty"`
Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *MasterPageContext) Reset() {
*x = MasterPageContext{}
mi := &file_v1_render_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *MasterPageContext) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MasterPageContext) ProtoMessage() {}
func (x *MasterPageContext) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MasterPageContext.ProtoReflect.Descriptor instead.
func (*MasterPageContext) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{17}
}
func (x *MasterPageContext) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *MasterPageContext) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *MasterPageContext) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
// HumanProofBanner mirrors blocks.HumanProofBannerData.
type HumanProofBanner struct {
state protoimpl.MessageState `protogen:"open.v1"`
ActiveTimeMinutes int32 `protobuf:"varint,1,opt,name=active_time_minutes,json=activeTimeMinutes,proto3" json:"active_time_minutes,omitempty"`
KeystrokeCount int32 `protobuf:"varint,2,opt,name=keystroke_count,json=keystrokeCount,proto3" json:"keystroke_count,omitempty"`
SessionCount int32 `protobuf:"varint,3,opt,name=session_count,json=sessionCount,proto3" json:"session_count,omitempty"`
PostSlug string `protobuf:"bytes,4,opt,name=post_slug,json=postSlug,proto3" json:"post_slug,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *HumanProofBanner) Reset() {
*x = HumanProofBanner{}
mi := &file_v1_render_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *HumanProofBanner) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HumanProofBanner) ProtoMessage() {}
func (x *HumanProofBanner) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HumanProofBanner.ProtoReflect.Descriptor instead.
func (*HumanProofBanner) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{18}
}
func (x *HumanProofBanner) GetActiveTimeMinutes() int32 {
if x != nil {
return x.ActiveTimeMinutes
}
return 0
}
func (x *HumanProofBanner) GetKeystrokeCount() int32 {
if x != nil {
return x.KeystrokeCount
}
return 0
}
func (x *HumanProofBanner) GetSessionCount() int32 {
if x != nil {
return x.SessionCount
}
return 0
}
func (x *HumanProofBanner) GetPostSlug() string {
if x != nil {
return x.PostSlug
}
return ""
}
// DetailRow mirrors blocks.DetailRowInfo.
type DetailRow struct {
state protoimpl.MessageState `protogen:"open.v1"`
TableId string `protobuf:"bytes,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
RowId string `protobuf:"bytes,2,opt,name=row_id,json=rowId,proto3" json:"row_id,omitempty"`
// JSON encoding of the row data map.
DataJson []byte `protobuf:"bytes,3,opt,name=data_json,json=dataJson,proto3" json:"data_json,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DetailRow) Reset() {
*x = DetailRow{}
mi := &file_v1_render_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DetailRow) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DetailRow) ProtoMessage() {}
func (x *DetailRow) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DetailRow.ProtoReflect.Descriptor instead.
func (*DetailRow) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{19}
}
func (x *DetailRow) GetTableId() string {
if x != nil {
return x.TableId
}
return ""
}
func (x *DetailRow) GetRowId() string {
if x != nil {
return x.RowId
}
return ""
}
func (x *DetailRow) GetDataJson() []byte {
if x != nil {
return x.DataJson
}
return nil
}
// BlockContext mirrors blocks.BlockContext (the pongo2 data struct) 1:1.
// map[string]any fields travel as JSON bytes.
type BlockContext struct {
state protoimpl.MessageState `protogen:"open.v1"`
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
Slug string `protobuf:"bytes,3,opt,name=slug,proto3" json:"slug,omitempty"`
PageId string `protobuf:"bytes,4,opt,name=page_id,json=pageId,proto3" json:"page_id,omitempty"`
PageTitle string `protobuf:"bytes,5,opt,name=page_title,json=pageTitle,proto3" json:"page_title,omitempty"`
TemplateKey string `protobuf:"bytes,6,opt,name=template_key,json=templateKey,proto3" json:"template_key,omitempty"`
IsEditor bool `protobuf:"varint,7,opt,name=is_editor,json=isEditor,proto3" json:"is_editor,omitempty"`
Timestamp int64 `protobuf:"varint,8,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
Now *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=now,proto3" json:"now,omitempty"`
IsLoggedIn bool `protobuf:"varint,10,opt,name=is_logged_in,json=isLoggedIn,proto3" json:"is_logged_in,omitempty"`
UserId string `protobuf:"bytes,11,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
UserEmail string `protobuf:"bytes,12,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"`
UserRole string `protobuf:"bytes,13,opt,name=user_role,json=userRole,proto3" json:"user_role,omitempty"`
Method string `protobuf:"bytes,14,opt,name=method,proto3" json:"method,omitempty"`
Host string `protobuf:"bytes,15,opt,name=host,proto3" json:"host,omitempty"`
Query map[string]string `protobuf:"bytes,16,rep,name=query,proto3" json:"query,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
Referrer string `protobuf:"bytes,17,opt,name=referrer,proto3" json:"referrer,omitempty"`
UserAgent string `protobuf:"bytes,18,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
Ip string `protobuf:"bytes,19,opt,name=ip,proto3" json:"ip,omitempty"`
Cookies map[string]string `protobuf:"bytes,20,rep,name=cookies,proto3" json:"cookies,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
Headers map[string]string `protobuf:"bytes,21,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
Country string `protobuf:"bytes,22,opt,name=country,proto3" json:"country,omitempty"`
City string `protobuf:"bytes,23,opt,name=city,proto3" json:"city,omitempty"`
Timezone string `protobuf:"bytes,24,opt,name=timezone,proto3" json:"timezone,omitempty"`
CurrentAuthorJson []byte `protobuf:"bytes,25,opt,name=current_author_json,json=currentAuthorJson,proto3" json:"current_author_json,omitempty"`
CurrentPostJson []byte `protobuf:"bytes,26,opt,name=current_post_json,json=currentPostJson,proto3" json:"current_post_json,omitempty"`
CurrentCategoryJson []byte `protobuf:"bytes,27,opt,name=current_category_json,json=currentCategoryJson,proto3" json:"current_category_json,omitempty"`
SiteJson []byte `protobuf:"bytes,28,opt,name=site_json,json=siteJson,proto3" json:"site_json,omitempty"`
IsPublicLoggedIn bool `protobuf:"varint,29,opt,name=is_public_logged_in,json=isPublicLoggedIn,proto3" json:"is_public_logged_in,omitempty"`
PublicUserId string `protobuf:"bytes,30,opt,name=public_user_id,json=publicUserId,proto3" json:"public_user_id,omitempty"`
PublicUsername string `protobuf:"bytes,31,opt,name=public_username,json=publicUsername,proto3" json:"public_username,omitempty"`
PublicDisplayName string `protobuf:"bytes,32,opt,name=public_display_name,json=publicDisplayName,proto3" json:"public_display_name,omitempty"`
PublicEmailVerified bool `protobuf:"varint,33,opt,name=public_email_verified,json=publicEmailVerified,proto3" json:"public_email_verified,omitempty"`
DetailRowId string `protobuf:"bytes,34,opt,name=detail_row_id,json=detailRowId,proto3" json:"detail_row_id,omitempty"`
DetailTableId string `protobuf:"bytes,35,opt,name=detail_table_id,json=detailTableId,proto3" json:"detail_table_id,omitempty"`
DetailRowDataJson []byte `protobuf:"bytes,36,opt,name=detail_row_data_json,json=detailRowDataJson,proto3" json:"detail_row_data_json,omitempty"`
BlogIndexUrl string `protobuf:"bytes,37,opt,name=blog_index_url,json=blogIndexUrl,proto3" json:"blog_index_url,omitempty"`
CategoryPageUrl string `protobuf:"bytes,38,opt,name=category_page_url,json=categoryPageUrl,proto3" json:"category_page_url,omitempty"`
// Slug derived from the resolved page hierarchy.
DerivedSlug string `protobuf:"bytes,39,opt,name=derived_slug,json=derivedSlug,proto3" json:"derived_slug,omitempty"`
// Effective mount path after host inheritance and normalization.
MountPath string `protobuf:"bytes,40,opt,name=mount_path,json=mountPath,proto3" json:"mount_path,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *BlockContext) Reset() {
*x = BlockContext{}
mi := &file_v1_render_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *BlockContext) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BlockContext) ProtoMessage() {}
func (x *BlockContext) ProtoReflect() protoreflect.Message {
mi := &file_v1_render_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BlockContext.ProtoReflect.Descriptor instead.
func (*BlockContext) Descriptor() ([]byte, []int) {
return file_v1_render_proto_rawDescGZIP(), []int{20}
}
func (x *BlockContext) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *BlockContext) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *BlockContext) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *BlockContext) GetPageId() string {
if x != nil {
return x.PageId
}
return ""
}
func (x *BlockContext) GetPageTitle() string {
if x != nil {
return x.PageTitle
}
return ""
}
func (x *BlockContext) GetTemplateKey() string {
if x != nil {
return x.TemplateKey
}
return ""
}
func (x *BlockContext) GetIsEditor() bool {
if x != nil {
return x.IsEditor
}
return false
}
func (x *BlockContext) GetTimestamp() int64 {
if x != nil {
return x.Timestamp
}
return 0
}
func (x *BlockContext) GetNow() *timestamppb.Timestamp {
if x != nil {
return x.Now
}
return nil
}
func (x *BlockContext) GetIsLoggedIn() bool {
if x != nil {
return x.IsLoggedIn
}
return false
}
func (x *BlockContext) GetUserId() string {
if x != nil {
return x.UserId
}
return ""
}
func (x *BlockContext) GetUserEmail() string {
if x != nil {
return x.UserEmail
}
return ""
}
func (x *BlockContext) GetUserRole() string {
if x != nil {
return x.UserRole
}
return ""
}
func (x *BlockContext) GetMethod() string {
if x != nil {
return x.Method
}
return ""
}
func (x *BlockContext) GetHost() string {
if x != nil {
return x.Host
}
return ""
}
func (x *BlockContext) GetQuery() map[string]string {
if x != nil {
return x.Query
}
return nil
}
func (x *BlockContext) GetReferrer() string {
if x != nil {
return x.Referrer
}
return ""
}
func (x *BlockContext) GetUserAgent() string {
if x != nil {
return x.UserAgent
}
return ""
}
func (x *BlockContext) GetIp() string {
if x != nil {
return x.Ip
}
return ""
}
func (x *BlockContext) GetCookies() map[string]string {
if x != nil {
return x.Cookies
}
return nil
}
func (x *BlockContext) GetHeaders() map[string]string {
if x != nil {
return x.Headers
}
return nil
}
func (x *BlockContext) GetCountry() string {
if x != nil {
return x.Country
}
return ""
}
func (x *BlockContext) GetCity() string {
if x != nil {
return x.City
}
return ""
}
func (x *BlockContext) GetTimezone() string {
if x != nil {
return x.Timezone
}
return ""
}
func (x *BlockContext) GetCurrentAuthorJson() []byte {
if x != nil {
return x.CurrentAuthorJson
}
return nil
}
func (x *BlockContext) GetCurrentPostJson() []byte {
if x != nil {
return x.CurrentPostJson
}
return nil
}
func (x *BlockContext) GetCurrentCategoryJson() []byte {
if x != nil {
return x.CurrentCategoryJson
}
return nil
}
func (x *BlockContext) GetSiteJson() []byte {
if x != nil {
return x.SiteJson
}
return nil
}
func (x *BlockContext) GetIsPublicLoggedIn() bool {
if x != nil {
return x.IsPublicLoggedIn
}
return false
}
func (x *BlockContext) GetPublicUserId() string {
if x != nil {
return x.PublicUserId
}
return ""
}
func (x *BlockContext) GetPublicUsername() string {
if x != nil {
return x.PublicUsername
}
return ""
}
func (x *BlockContext) GetPublicDisplayName() string {
if x != nil {
return x.PublicDisplayName
}
return ""
}
func (x *BlockContext) GetPublicEmailVerified() bool {
if x != nil {
return x.PublicEmailVerified
}
return false
}
func (x *BlockContext) GetDetailRowId() string {
if x != nil {
return x.DetailRowId
}
return ""
}
func (x *BlockContext) GetDetailTableId() string {
if x != nil {
return x.DetailTableId
}
return ""
}
func (x *BlockContext) GetDetailRowDataJson() []byte {
if x != nil {
return x.DetailRowDataJson
}
return nil
}
func (x *BlockContext) GetBlogIndexUrl() string {
if x != nil {
return x.BlogIndexUrl
}
return ""
}
func (x *BlockContext) GetCategoryPageUrl() string {
if x != nil {
return x.CategoryPageUrl
}
return ""
}
func (x *BlockContext) GetDerivedSlug() string {
if x != nil {
return x.DerivedSlug
}
return ""
}
func (x *BlockContext) GetMountPath() string {
if x != nil {
return x.MountPath
}
return ""
}
var File_v1_render_proto protoreflect.FileDescriptor
const file_v1_render_proto_rawDesc = "" +
"\n" +
"\x0fv1/render.proto\x12\x06abi.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x92\x01\n" +
"\x12RenderBlockRequest\x12\x1b\n" +
"\tblock_key\x18\x01 \x01(\tR\bblockKey\x12!\n" +
"\fcontent_json\x18\x02 \x01(\fR\vcontentJson\x12<\n" +
"\x0erender_context\x18\x03 \x01(\v2\x15.abi.v1.RenderContextR\rrenderContext\"Y\n" +
"\x13RenderBlockResponse\x12\x12\n" +
"\x04html\x18\x01 \x01(\tR\x04html\x12.\n" +
"\apowered\x18\x02 \x01(\v2\x14.abi.v1.PoweredBlockR\apowered\"\x9e\x01\n" +
"\fPoweredBlock\x12\x1a\n" +
"\btemplate\x18\x01 \x01(\tR\btemplate\x12\x1b\n" +
"\tdata_json\x18\x02 \x01(\fR\bdataJson\x12\x1f\n" +
"\vstatus_code\x18\x03 \x01(\x05R\n" +
"statusCode\x124\n" +
"\bmetadata\x18\x04 \x01(\v2\x18.abi.v1.DocumentMetadataR\bmetadata\"\xa4\x01\n" +
"\x10DocumentMetadata\x12\x14\n" +
"\x05title\x18\x01 \x01(\tR\x05title\x12 \n" +
"\vdescription\x18\x02 \x01(\tR\vdescription\x12#\n" +
"\rcanonical_url\x18\x03 \x01(\tR\fcanonicalUrl\x12\x1b\n" +
"\timage_url\x18\x04 \x01(\tR\bimageUrl\x12\x16\n" +
"\x06robots\x18\x05 \x01(\tR\x06robots\"\x93\x01\n" +
"\x15RenderTemplateRequest\x12!\n" +
"\ftemplate_key\x18\x01 \x01(\tR\vtemplateKey\x12\x19\n" +
"\bdoc_json\x18\x02 \x01(\fR\adocJson\x12<\n" +
"\x0erender_context\x18\x03 \x01(\v2\x15.abi.v1.RenderContextR\rrenderContext\"T\n" +
"\x16RenderTemplateResponse\x124\n" +
"\bdocument\x18\x02 \x01(\v2\x18.abi.v1.TemplateDocumentR\bdocumentJ\x04\b\x01\x10\x02\"\x96\x03\n" +
"\x10TemplateDocument\x12\x1b\n" +
"\tbody_html\x18\x01 \x01(\fR\bbodyHtml\x12\x1d\n" +
"\n" +
"body_class\x18\x02 \x01(\tR\tbodyClass\x12\x12\n" +
"\x04lang\x18\x03 \x01(\tR\x04lang\x12&\n" +
"\x0fhead_extra_html\x18\x04 \x01(\fR\rheadExtraHtml\x12-\n" +
"\x13body_end_extra_html\x18\x05 \x01(\fR\x10bodyEndExtraHtml\x12F\n" +
"\n" +
"html_attrs\x18\x06 \x03(\v2'.abi.v1.TemplateDocument.HtmlAttrsEntryR\thtmlAttrs\x12\x1f\n" +
"\vstatus_code\x18\a \x01(\x05R\n" +
"statusCode\x124\n" +
"\bmetadata\x18\b \x01(\v2\x18.abi.v1.DocumentMetadataR\bmetadata\x1a<\n" +
"\x0eHtmlAttrsEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x88\x01\n" +
"\x10RenderTagRequest\x12\x19\n" +
"\btag_name\x18\x01 \x01(\tR\atagName\x12\x1b\n" +
"\targs_json\x18\x02 \x01(\fR\bargsJson\x12<\n" +
"\x0erender_context\x18\x03 \x01(\v2\x15.abi.v1.RenderContextR\rrenderContext\"=\n" +
"\x11RenderTagResponse\x12\x12\n" +
"\x04html\x18\x01 \x01(\tR\x04html\x12\x14\n" +
"\x05error\x18\x02 \x01(\tR\x05error\"h\n" +
"\x12ApplyFilterRequest\x12\x1f\n" +
"\vfilter_name\x18\x01 \x01(\tR\n" +
"filterName\x12\x14\n" +
"\x05input\x18\x02 \x01(\tR\x05input\x12\x1b\n" +
"\targs_json\x18\x03 \x01(\fR\bargsJson\"C\n" +
"\x13ApplyFilterResponse\x12\x16\n" +
"\x06output\x18\x01 \x01(\tR\x06output\x12\x14\n" +
"\x05error\x18\x02 \x01(\tR\x05error\"\x80\a\n" +
"\rRenderContext\x12-\n" +
"\arequest\x18\x01 \x01(\v2\x13.abi.v1.RequestInfoR\arequest\x129\n" +
"\rblock_context\x18\x02 \x01(\v2\x14.abi.v1.BlockContextR\fblockContext\x12!\n" +
"\ftemplate_key\x18\x03 \x01(\tR\vtemplateKey\x12'\n" +
"\x04page\x18\x04 \x01(\v2\x13.abi.v1.PageContextR\x04page\x12'\n" +
"\x04post\x18\x05 \x01(\v2\x13.abi.v1.PostContextR\x04post\x12-\n" +
"\x06author\x18\x06 \x01(\v2\x15.abi.v1.AuthorContextR\x06author\x123\n" +
"\bcategory\x18\a \x01(\v2\x17.abi.v1.CategoryContextR\bcategory\x12:\n" +
"\vmaster_page\x18\b \x01(\v2\x19.abi.v1.MasterPageContextR\n" +
"masterPage\x12%\n" +
"\x0erequested_path\x18\t \x01(\tR\rrequestedPath\x12O\n" +
"\x0einjected_slots\x18\n" +
" \x03(\v2(.abi.v1.RenderContext.InjectedSlotsEntryR\rinjectedSlots\x12\x1b\n" +
"\tis_editor\x18\v \x01(\bR\bisEditor\x12%\n" +
"\x0eexpected_slots\x18\f \x03(\tR\rexpectedSlots\x12\x19\n" +
"\bblock_id\x18\r \x01(\tR\ablockId\x12&\n" +
"\x0fcurrent_page_id\x18\x0e \x01(\tR\rcurrentPageId\x12F\n" +
"\x12human_proof_banner\x18\x0f \x01(\v2\x18.abi.v1.HumanProofBannerR\x10humanProofBanner\x120\n" +
"\n" +
"detail_row\x18\x10 \x01(\v2\x11.abi.v1.DetailRowR\tdetailRow\x12\x1d\n" +
"\n" +
"theme_json\x18\x11 \x01(\fR\tthemeJson\x12\x16\n" +
"\x06locale\x18\x12 \x01(\tR\x06locale\x1a@\n" +
"\x12InjectedSlotsEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xc4\x03\n" +
"\vRequestInfo\x12\x16\n" +
"\x06method\x18\x01 \x01(\tR\x06method\x12\x10\n" +
"\x03url\x18\x02 \x01(\tR\x03url\x12\x12\n" +
"\x04path\x18\x03 \x01(\tR\x04path\x12\x12\n" +
"\x04host\x18\x04 \x01(\tR\x04host\x12\x1b\n" +
"\traw_query\x18\x05 \x01(\tR\brawQuery\x12:\n" +
"\aheaders\x18\x06 \x03(\v2 .abi.v1.RequestInfo.HeadersEntryR\aheaders\x12:\n" +
"\acookies\x18\a \x03(\v2 .abi.v1.RequestInfo.CookiesEntryR\acookies\x12\x1b\n" +
"\tremote_ip\x18\b \x01(\tR\bremoteIp\x12\x1a\n" +
"\breferrer\x18\t \x01(\tR\breferrer\x12\x1d\n" +
"\n" +
"user_agent\x18\n" +
" \x01(\tR\tuserAgent\x1a:\n" +
"\fHeadersEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1a:\n" +
"\fCookiesEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xbe\x01\n" +
"\vPageContext\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
"\x04slug\x18\x02 \x01(\tR\x04slug\x12\x14\n" +
"\x05title\x18\x03 \x01(\tR\x05title\x12\x1b\n" +
"\tpost_type\x18\x04 \x01(\tR\bpostType\x12\x16\n" +
"\x06status\x18\x05 \x01(\tR\x06status\x12!\n" +
"\fderived_slug\x18\x06 \x01(\tR\vderivedSlug\x12\x1d\n" +
"\n" +
"mount_path\x18\a \x01(\tR\tmountPath\"\xaf\x02\n" +
"\vPostContext\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
"\x04slug\x18\x02 \x01(\tR\x04slug\x12\x14\n" +
"\x05title\x18\x03 \x01(\tR\x05title\x12\x18\n" +
"\aexcerpt\x18\x04 \x01(\tR\aexcerpt\x12,\n" +
"\x12featured_image_url\x18\x05 \x01(\tR\x10featuredImageUrl\x12\x1b\n" +
"\tauthor_id\x18\x06 \x01(\tR\bauthorId\x12=\n" +
"\fpublished_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\vpublishedAt\x12!\n" +
"\freading_time\x18\b \x01(\x05R\vreadingTime\x12\x1f\n" +
"\vis_featured\x18\t \x01(\bR\n" +
"isFeatured\"x\n" +
"\rAuthorContext\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
"\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" +
"\x04slug\x18\x03 \x01(\tR\x04slug\x12\x10\n" +
"\x03bio\x18\x04 \x01(\tR\x03bio\x12\x1d\n" +
"\n" +
"avatar_url\x18\x05 \x01(\tR\tavatarUrl\"I\n" +
"\x0fCategoryContext\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
"\x04name\x18\x02 \x01(\tR\x04name\x12\x12\n" +
"\x04slug\x18\x03 \x01(\tR\x04slug\"M\n" +
"\x11MasterPageContext\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
"\x04slug\x18\x02 \x01(\tR\x04slug\x12\x14\n" +
"\x05title\x18\x03 \x01(\tR\x05title\"\xad\x01\n" +
"\x10HumanProofBanner\x12.\n" +
"\x13active_time_minutes\x18\x01 \x01(\x05R\x11activeTimeMinutes\x12'\n" +
"\x0fkeystroke_count\x18\x02 \x01(\x05R\x0ekeystrokeCount\x12#\n" +
"\rsession_count\x18\x03 \x01(\x05R\fsessionCount\x12\x1b\n" +
"\tpost_slug\x18\x04 \x01(\tR\bpostSlug\"Z\n" +
"\tDetailRow\x12\x19\n" +
"\btable_id\x18\x01 \x01(\tR\atableId\x12\x15\n" +
"\x06row_id\x18\x02 \x01(\tR\x05rowId\x12\x1b\n" +
"\tdata_json\x18\x03 \x01(\fR\bdataJson\"\xc7\f\n" +
"\fBlockContext\x12\x10\n" +
"\x03url\x18\x01 \x01(\tR\x03url\x12\x12\n" +
"\x04path\x18\x02 \x01(\tR\x04path\x12\x12\n" +
"\x04slug\x18\x03 \x01(\tR\x04slug\x12\x17\n" +
"\apage_id\x18\x04 \x01(\tR\x06pageId\x12\x1d\n" +
"\n" +
"page_title\x18\x05 \x01(\tR\tpageTitle\x12!\n" +
"\ftemplate_key\x18\x06 \x01(\tR\vtemplateKey\x12\x1b\n" +
"\tis_editor\x18\a \x01(\bR\bisEditor\x12\x1c\n" +
"\ttimestamp\x18\b \x01(\x03R\ttimestamp\x12,\n" +
"\x03now\x18\t \x01(\v2\x1a.google.protobuf.TimestampR\x03now\x12 \n" +
"\fis_logged_in\x18\n" +
" \x01(\bR\n" +
"isLoggedIn\x12\x17\n" +
"\auser_id\x18\v \x01(\tR\x06userId\x12\x1d\n" +
"\n" +
"user_email\x18\f \x01(\tR\tuserEmail\x12\x1b\n" +
"\tuser_role\x18\r \x01(\tR\buserRole\x12\x16\n" +
"\x06method\x18\x0e \x01(\tR\x06method\x12\x12\n" +
"\x04host\x18\x0f \x01(\tR\x04host\x125\n" +
"\x05query\x18\x10 \x03(\v2\x1f.abi.v1.BlockContext.QueryEntryR\x05query\x12\x1a\n" +
"\breferrer\x18\x11 \x01(\tR\breferrer\x12\x1d\n" +
"\n" +
"user_agent\x18\x12 \x01(\tR\tuserAgent\x12\x0e\n" +
"\x02ip\x18\x13 \x01(\tR\x02ip\x12;\n" +
"\acookies\x18\x14 \x03(\v2!.abi.v1.BlockContext.CookiesEntryR\acookies\x12;\n" +
"\aheaders\x18\x15 \x03(\v2!.abi.v1.BlockContext.HeadersEntryR\aheaders\x12\x18\n" +
"\acountry\x18\x16 \x01(\tR\acountry\x12\x12\n" +
"\x04city\x18\x17 \x01(\tR\x04city\x12\x1a\n" +
"\btimezone\x18\x18 \x01(\tR\btimezone\x12.\n" +
"\x13current_author_json\x18\x19 \x01(\fR\x11currentAuthorJson\x12*\n" +
"\x11current_post_json\x18\x1a \x01(\fR\x0fcurrentPostJson\x122\n" +
"\x15current_category_json\x18\x1b \x01(\fR\x13currentCategoryJson\x12\x1b\n" +
"\tsite_json\x18\x1c \x01(\fR\bsiteJson\x12-\n" +
"\x13is_public_logged_in\x18\x1d \x01(\bR\x10isPublicLoggedIn\x12$\n" +
"\x0epublic_user_id\x18\x1e \x01(\tR\fpublicUserId\x12'\n" +
"\x0fpublic_username\x18\x1f \x01(\tR\x0epublicUsername\x12.\n" +
"\x13public_display_name\x18 \x01(\tR\x11publicDisplayName\x122\n" +
"\x15public_email_verified\x18! \x01(\bR\x13publicEmailVerified\x12\"\n" +
"\rdetail_row_id\x18\" \x01(\tR\vdetailRowId\x12&\n" +
"\x0fdetail_table_id\x18# \x01(\tR\rdetailTableId\x12/\n" +
"\x14detail_row_data_json\x18$ \x01(\fR\x11detailRowDataJson\x12$\n" +
"\x0eblog_index_url\x18% \x01(\tR\fblogIndexUrl\x12*\n" +
"\x11category_page_url\x18& \x01(\tR\x0fcategoryPageUrl\x12!\n" +
"\fderived_slug\x18' \x01(\tR\vderivedSlug\x12\x1d\n" +
"\n" +
"mount_path\x18( \x01(\tR\tmountPath\x1a8\n" +
"\n" +
"QueryEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1a:\n" +
"\fCookiesEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1a:\n" +
"\fHeadersEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B5Z3git.dev.alexdunmow.com/block/pluginsdk/abi/v1;abiv1b\x06proto3"
var (
file_v1_render_proto_rawDescOnce sync.Once
file_v1_render_proto_rawDescData []byte
)
func file_v1_render_proto_rawDescGZIP() []byte {
file_v1_render_proto_rawDescOnce.Do(func() {
file_v1_render_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_v1_render_proto_rawDesc), len(file_v1_render_proto_rawDesc)))
})
return file_v1_render_proto_rawDescData
}
var file_v1_render_proto_msgTypes = make([]protoimpl.MessageInfo, 28)
var file_v1_render_proto_goTypes = []any{
(*RenderBlockRequest)(nil), // 0: abi.v1.RenderBlockRequest
(*RenderBlockResponse)(nil), // 1: abi.v1.RenderBlockResponse
(*PoweredBlock)(nil), // 2: abi.v1.PoweredBlock
(*DocumentMetadata)(nil), // 3: abi.v1.DocumentMetadata
(*RenderTemplateRequest)(nil), // 4: abi.v1.RenderTemplateRequest
(*RenderTemplateResponse)(nil), // 5: abi.v1.RenderTemplateResponse
(*TemplateDocument)(nil), // 6: abi.v1.TemplateDocument
(*RenderTagRequest)(nil), // 7: abi.v1.RenderTagRequest
(*RenderTagResponse)(nil), // 8: abi.v1.RenderTagResponse
(*ApplyFilterRequest)(nil), // 9: abi.v1.ApplyFilterRequest
(*ApplyFilterResponse)(nil), // 10: abi.v1.ApplyFilterResponse
(*RenderContext)(nil), // 11: abi.v1.RenderContext
(*RequestInfo)(nil), // 12: abi.v1.RequestInfo
(*PageContext)(nil), // 13: abi.v1.PageContext
(*PostContext)(nil), // 14: abi.v1.PostContext
(*AuthorContext)(nil), // 15: abi.v1.AuthorContext
(*CategoryContext)(nil), // 16: abi.v1.CategoryContext
(*MasterPageContext)(nil), // 17: abi.v1.MasterPageContext
(*HumanProofBanner)(nil), // 18: abi.v1.HumanProofBanner
(*DetailRow)(nil), // 19: abi.v1.DetailRow
(*BlockContext)(nil), // 20: abi.v1.BlockContext
nil, // 21: abi.v1.TemplateDocument.HtmlAttrsEntry
nil, // 22: abi.v1.RenderContext.InjectedSlotsEntry
nil, // 23: abi.v1.RequestInfo.HeadersEntry
nil, // 24: abi.v1.RequestInfo.CookiesEntry
nil, // 25: abi.v1.BlockContext.QueryEntry
nil, // 26: abi.v1.BlockContext.CookiesEntry
nil, // 27: abi.v1.BlockContext.HeadersEntry
(*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp
}
var file_v1_render_proto_depIdxs = []int32{
11, // 0: abi.v1.RenderBlockRequest.render_context:type_name -> abi.v1.RenderContext
2, // 1: abi.v1.RenderBlockResponse.powered:type_name -> abi.v1.PoweredBlock
3, // 2: abi.v1.PoweredBlock.metadata:type_name -> abi.v1.DocumentMetadata
11, // 3: abi.v1.RenderTemplateRequest.render_context:type_name -> abi.v1.RenderContext
6, // 4: abi.v1.RenderTemplateResponse.document:type_name -> abi.v1.TemplateDocument
21, // 5: abi.v1.TemplateDocument.html_attrs:type_name -> abi.v1.TemplateDocument.HtmlAttrsEntry
3, // 6: abi.v1.TemplateDocument.metadata:type_name -> abi.v1.DocumentMetadata
11, // 7: abi.v1.RenderTagRequest.render_context:type_name -> abi.v1.RenderContext
12, // 8: abi.v1.RenderContext.request:type_name -> abi.v1.RequestInfo
20, // 9: abi.v1.RenderContext.block_context:type_name -> abi.v1.BlockContext
13, // 10: abi.v1.RenderContext.page:type_name -> abi.v1.PageContext
14, // 11: abi.v1.RenderContext.post:type_name -> abi.v1.PostContext
15, // 12: abi.v1.RenderContext.author:type_name -> abi.v1.AuthorContext
16, // 13: abi.v1.RenderContext.category:type_name -> abi.v1.CategoryContext
17, // 14: abi.v1.RenderContext.master_page:type_name -> abi.v1.MasterPageContext
22, // 15: abi.v1.RenderContext.injected_slots:type_name -> abi.v1.RenderContext.InjectedSlotsEntry
18, // 16: abi.v1.RenderContext.human_proof_banner:type_name -> abi.v1.HumanProofBanner
19, // 17: abi.v1.RenderContext.detail_row:type_name -> abi.v1.DetailRow
23, // 18: abi.v1.RequestInfo.headers:type_name -> abi.v1.RequestInfo.HeadersEntry
24, // 19: abi.v1.RequestInfo.cookies:type_name -> abi.v1.RequestInfo.CookiesEntry
28, // 20: abi.v1.PostContext.published_at:type_name -> google.protobuf.Timestamp
28, // 21: abi.v1.BlockContext.now:type_name -> google.protobuf.Timestamp
25, // 22: abi.v1.BlockContext.query:type_name -> abi.v1.BlockContext.QueryEntry
26, // 23: abi.v1.BlockContext.cookies:type_name -> abi.v1.BlockContext.CookiesEntry
27, // 24: abi.v1.BlockContext.headers:type_name -> abi.v1.BlockContext.HeadersEntry
25, // [25:25] is the sub-list for method output_type
25, // [25:25] is the sub-list for method input_type
25, // [25:25] is the sub-list for extension type_name
25, // [25:25] is the sub-list for extension extendee
0, // [0:25] is the sub-list for field type_name
}
func init() { file_v1_render_proto_init() }
func file_v1_render_proto_init() {
if File_v1_render_proto != nil {
return
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_v1_render_proto_rawDesc), len(file_v1_render_proto_rawDesc)),
NumEnums: 0,
NumMessages: 28,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_v1_render_proto_goTypes,
DependencyIndexes: file_v1_render_proto_depIdxs,
MessageInfos: file_v1_render_proto_msgTypes,
}.Build()
File_v1_render_proto = out.File
file_v1_render_proto_goTypes = nil
file_v1_render_proto_depIdxs = nil
}