@epistola.app/epistola-catalog

中文文档
2.0.0发布于 2026/11/12TypeScriptES Module零依赖构建来源已验证近 30 天下载 2285

该目录合同界定了Epistola Suite、Exchange和其他消费者之间移动的便携式内容。 它是编目线条格式、模板模型、注册、符合性装置、验证、犬科化、偏头痛的真相来源

中文使用文档
文档目录3 节
  1. 权威来源
  2. 构建
  3. 文档

Epistola目录合同

该目录合同定义了在Epistola之间移动的可移植内容 套房 交易所 以及其他消费者 它是目录的真相来源 电线格式、模板模型、登记册、符合装置、验证、, 移民 和档案处理.

权威来源

关切来源
模板和主题形状schemas/
组件和样式词汇registry/
便携式相容性示例fixtures/
语义验证和归档行为src/main/kotlin/
类型脚本公用外观ts/ 并生成源 generated/

该目录目前写有线 schemaVersion: 8,移动版本 4 到 7,并使用 模板 modelVersion: 1已出版的Maven和npm的文物在 仓库协调放行列车.

版本为v5通过v8显示并被资源解析的图案保存了每个被接受的线形. 其未转录的对应方指向 v8, Npm 包根输出类型Script 声明 由当前计划生成. template-document.schema.json 是当前(v8)模板 文档; 有线 v5 至 v7 解析它们的 template-document-v7.schema.json,保留 主题参考文件 themeId。 。 。 .

Wire v8用三个独立的部分识别一个目录, 登记, (中文(简体) ), 命名空间 和钥匙,以及 版本目录整体 :

  • catalog.registry 财务报告和审定财务报表 catalog.namespace 两者都需要。 登记处是交易所 (单位:千美元)exchange.epistola.app)或发布自己目录的域名(acme.com),总是 完全写入:一个归档没有默认的注册,这是安装配置. 这个 命名空间是该登记簿中的弹片 (acme-corp);两个登记册中的同名是两个 名称空间。 (这个注册是目录的一部分,与组件和样式无关) (a) 登记册(见下文)
  • catalogDependencies 声明每个目录, 该目录取决于一次 : 别名 (单位:千美元)alias,目录密钥规则,在列表中独一无二,从不包含目录自己的密钥,默认情况下 该目录本身的密钥),以其名称命名(registry, (中文(简体) ), namespace 财务报告和审定财务报表 catalogKey,哪个 发现它释放的较新, 并且随着释放的开始 releaseFingerprint,从中复制 释放的 release.fingerprint 用于命名算法的窗体(v6:<hex>,所以一个副本 可从任何登记册或镜像中取出 releaseVersion,其数字(即: 编目与该发布并被剪接;声明名称无范围)。 两者都是 只对从线 v7 迁移的目录无效 .
  • 内容用此命名另一个目录 别名,从未按登记或命名空间(合同ADR) 0003):一个主题覆盖,一个stencil或图像节点,一个字体引用和代码列表 绑定 catalogKey,模板的 themeCatalogKey,目录的 defaultTheme.catalogKey, (中文(简体) ), 变量属性密钥的修饰符( q)system.locale)和每个资源依赖 catalogKey。必须宣布每个别名;不命名别名的参考物,或目录本身的 键,是目录本身。 将依赖性移到另一个发布会更改一个声明, 并重新命名或镜像它不会改变任何内容(CatalogAliases, (中文(简体) ), CATALOG_ALIAS_PATTERN) (中文(简体) ).
  • 一个发布是编号的 MAJOR.MINOR.PATCH 由目录名称空间的持有人 只发布贴有命名空间标签的补丁释放, 1.3.1-gemeente-x.1,哪种类型 低于持有者的下一个编号(CatalogReleaseVersions, (中文(简体) ), CATALOG_RELEASE_VERSION_PATTERN页:1 大部分128个字符,这样每个命名空间都可以标出一个. 格式检查形状,而不是谁 拥有一个命名空间.
  • 发布内容为: release.fingerprint 为 V6 (v6:<hex>),涵盖 资源,内容设置(defaultTheme, (中文(简体) ), presets, (中文(简体) ), license),由 化名和被钉住的花草 compatibility,但目录的名称, 释放块,它的 列报(name, (中文(简体) ), description, (中文(简体) ), keywords, (中文(简体) ), presentation, (中文(简体) ), attributes, (中文(简体) ), publisher, (中文(简体) ), includes),或电线版本(schemaVersion),所以只有重新编码内容的有线版本 保持每个 V6 值。 演示是名称信息:可以更改 并且最近获得的胜利 这个名字, release.version 财务报告和审定财务报表 release.fingerprint 是一个名称和数字对散列的归档;见 强化 财务报告和审定财务报表 存档格式。 。 。 .
  • Stencils 无版本 : StencilResource.version 一个尖端节点没有 version 或者说 draftVersion。一个表解 通过其目录的依赖.
  • 资源的公共地址是: key; 一个 id 仅是一个生成的标识符 不是一个地址。 因此,电线v8说 key v7说 slug (目录,资源条目, 资源依赖性,每个资源,变体,代码列表绑定), themeKey 页:1 themeId, (中文(简体) ), 在内容上, stencilKey 财务报告和审定财务报表 imageKey 用于刻度或图像节点的 stencilId 财务报告和审定财务报表 assetId, (中文(简体) ), key (单位:千美元) fontFamily 字体参考 slug, (中文(简体) ), iconImageKey 财务报告和审定财务报表 imageKeys 页:1 介绍 iconAssetSlug 财务报告和审定财务报表 imageAssetSlugs,以及 catalogKey 属性 任务 catalog。迁移重新命名它们 沉默;拒绝使用旧名的v8文档. 克特林模型仍然把旧的捆绑起来 名称,使保存在先前版本下的文档继续加载.
  • 每个资源键都遵循一个规则, ^[a-z0-9]+(-[a-z0-9]+)*$ 有3到50个字符(a) 每种类型允许的主位数字:模板、变体、stencils、主题、, 属性、代码列表、字体、图像和数据示例,以及命名一个的每个位置 (内容引用、资源依赖、代码列表绑定、属性任务、a) 变体的属性密钥,演示文稿的图像密钥). 该目录自己的钥匙 保持它的规则 (一首领信,3-50). v7到v8的迁移垫 右侧有一个更短的 v7 键 0 (单位:千美元)nl 变成 nl0并切出一个到50个字符, 重写每一个引用它 同一方式,每个密钥有一个通知(CATALOG_RESOURCE_KEY_PADDED, (中文(简体) ), CATALOG_RESOURCE_KEY_TRUNCATED) (中文(简体) ). 重写只取决于密钥, 所以目录迁移 两者之间仍然一致; 重写后键与 其范围的另一部分被拒绝(CATALOG_RESOURCE_KEY_PADDING_COLLISION, (中文(简体) ), CATALOG_RESOURCE_KEY_TRUNCATION_COLLISION而不是给一个不同的钥匙.
  • 一个模板的数据示例各有一个 key,在模板中的地址,旁边 显示 namev7到v8的迁移来源于名称,并附有通知 (单位:千美元)CATALOG_DATA_EXAMPLE_KEY_ASSIGNED) (中文(简体) ). 模板可能带有纯文本 description (最多为 2000 个字符),其表列条目的来源 description。 。 。 .
  • 每个资源都可以携带 metadata: 由反向 DNS 键入的生产者专用 JSON 对象 制作人拥有的命名空间( n){"com.example.authoring": {"reviewedBy": "design"}}),该词 合同不提供口译,每个读者都保留。 没有指纹.
  • 一个清单 detailUrl,二进制已贬值 contentUrl,是位于 显示目录( e)./resources/template/letter.json, (中文(简体) ), bin/<sha256>)),解决 归档根或列表的 URL; 参见 存档格式。 。 。 .

V7 归档名称没有注册或命名空间, 因此需要同时从进口商移出: pass CatalogMigrationOptions(namespace, registry) 改为 CatalogSchemaMigrator.migrateManifest, (中文(简体) ), CatalogArchiveReader.read,或 CatalogValidationPolicy(migration = ...). 没有他们,移徙 失败 CATALOG_REGISTRY_MISSING 或者说 CATALOG_NAMESPACE_MISSING。其他目录 a v7 归档名称,在其资源依赖性或(读取全)其内容中,在其中宣告 它的密钥下作为别名的注册和命名空间,所以它的引用保留它们的值.

目录关键词规则定义一次: CatalogKeywords 以克特林计算(限制、图案和 和(或) MAX_CATALOG_KEYWORD_LENGTH, (中文(简体) ), MAX_CATALOG_KEYWORDS,以及 CATALOG_KEYWORD_PATTERN 在 TypeScript 中,全部被绑入当前方案。 书记官处和命名空间 规则的定义相同: CatalogNamespaces 在克特林,和 CATALOG_REGISTRY_PATTERN, (中文(简体) ), MAX_CATALOG_REGISTRY_LENGTH, (中文(简体) ), CATALOG_NAMESPACE_PATTERN, (中文(简体) ), MIN_CATALOG_NAMESPACE_LENGTH, (中文(简体) ), 财务报告和审定财务报表 MAX_CATALOG_NAMESPACE_LENGTH 在类型脚本中;和别名规则, CatalogAliases 财务报告和审定财务报表 CATALOG_ALIAS_PATTERN, (中文(简体) ), MIN_CATALOG_ALIAS_LENGTH 财务报告和审定财务报表 MAX_CATALOG_ALIAS_LENGTH。 。 。 . 输入目录的路径是 CatalogArchivePaths 财务报告和审定财务报表 CATALOG_ARCHIVE_PATH_PATTERN; 资源 并发布元数据 CatalogMetadata 编辑 …CATALOG_METADATA… 常数; 释放 id 是 CatalogReleaseIds 财务报告和审定财务报表 CATALOG_RELEASE_ID_PATTERN, (中文(简体) ), MIN_CATALOG_RELEASE_ID_LENGTH 财务报告和审定财务报表 MAX_CATALOG_RELEASE_ID_LENGTH页:1 释放基数( e)ReleaseBase)遵循发行号码和指纹规则 (单位:千美元)ReleaseBase.FINGERPRINT_PATTERN 财务报告和审定财务报表 isValidFingerprint; 资源密钥、数据 其中的示例键为 CatalogKeys (单位:千美元)PATTERN, (中文(简体) ), MIN_LENGTH, (中文(简体) ), MAX_LENGTH, (中文(简体) ), RESOURCE, (中文(简体) ), isValid迁移 migrate,以及 deriveDataExampleKey和 CATALOG_RESOURCE_KEY_PATTERN, (中文(简体) ), MIN_CATALOG_RESOURCE_KEY_LENGTH 财务报告和审定财务报表 MAX_CATALOG_RESOURCE_KEY_LENGTH;模板描述限制为 TemplateResource.MAX_DESCRIPTION_LENGTH 财务报告和审定财务报表 MAX_TEMPLATE_DESCRIPTION_LENGTH; 档案 带一个释放它针是 CatalogDependencyArchivePaths 财务报告和审定财务报表 CATALOG_DEPENDENCY_ARCHIVE_PATH_PATTERN, (中文(简体) ), parseCatalogDependencyArchivePath 财务报告和审定财务报表 catalogDependencyArchivePath。 。 。 . 制作人应使用这些拷贝,而不是自己的拷贝.

构建

./gradlew build sourcesJar dokkaJavadocJar
pnpm install --frozen-lockfile
pnpm generate:types
pnpm build
npm pack --dry-run

从寄存器根运行相同的检查 :

make build-epistola-catalog

文档

版本与发布记录

@epistola.app/epistola-catalog 共发布 23 个版本,首次发布于 2026/07/29;过去 12 个月发布了 23 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.0latest2026/11/121 天前
2.0.0-rc.2next2026/11/103 天前
2.0.0-rc.12026/11/094 天前
2.0.0-beta.42026/11/077 天前
2.0.0-beta.32026/11/049 天前
2.0.0-beta.22026/11/0410 天前

关于 @epistola.app/epistola-catalog 的常见问题

@epistola.app/epistola-catalog 是什么?

该目录合同界定了Epistola Suite、Exchange和其他消费者之间移动的便携式内容。 它是编目线条格式、模板模型、注册、符合性装置、验证、犬科化、偏头痛的真相来源

如何安装 @epistola.app/epistola-catalog?

在项目目录运行 npm install @epistola.app/epistola-catalog,或使用 pnpm add / yarn add / bun add。

@epistola.app/epistola-catalog 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@epistola.app/epistola-catalog 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@epistola.app/epistola-catalog 可以商用吗?

@epistola.app/epistola-catalog 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@epistola.app/epistola-catalog 的下载量有多少?

根据 npm 官方下载统计,@epistola.app/epistola-catalog 在 2026/10/14 – 2026/11/12 这 30 天内被下载 2,285 次,日均约 76 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@epistola.app/epistola-catalog 还在维护吗?

最新版本 2.0.0 发布于 2026/11/12(1 天前);至今共发布 23 个版本,其中过去 12 个月发布了 23 个;首次发布于 2026/07/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。