@balena/pinejs

中文文档
25.0.8发布于 2026/11/11Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 3.5万


中文使用文档


npm version

Pine.js是一个由规则驱动的精密API引擎,它使您能够在结构化的英语子集中定义规则. 使用这些规则是为了让Pine.js生成一个数据库计划以及相关的 OData 数据 API (英语). 这使得快速地创建,更新和维护后端非常容易,同时将逻辑保持为易于理解的形式,同时提供更新和维护这种逻辑向前发展的能力.

《规则》在下文中作了说明 SBVR 软件 格式,代表"商业词汇和商业规则的语义". SBVR提供了一种在自然语言中捕捉规格并用形式逻辑来代表它们的方法,因此它们可以被机器处理.

SBVR的基本成分如下:

  • 术语 - 这些是您数据模型的原子元素,通过 Term: [Term Name]。一般而言,这些映射到关系数据库中的表格,或者其他表格的属性.
  • 事实类型 - 这些定义 关系 在不同术语之间和这些术语的属性之间,例如:. Fact type: pilot can fly plane 或者说 Fact type: pilot is experienced - 这些 有点 映射到关系数据库中的字段和外键.
  • 规则 - 这些定义 逻辑限制 sBVR和Pine.js本身最强大的方面。 规则对关系数据库的制约进行松散的映射,但将其延伸至能够穿行表格的制约,一般比数据库的制约强得多. 举个例子. Rule: It is obligatory that each pilot can fly at least 1 plane. SBVR规则的表达能力远远超过了简单的SQL DDL,并具有"一阶逻辑"的全能.

为了了解SBVR是如何工作的,访问 sbvr 实验室,详细情况请查看 SBVR 光谱。 。 。 .

作为@balena/pinejs包的一部分,安装了下列工具:

  • sbvr-编译器:可以通过SBVR链将SBVR编译为SQL, eg npx sbvr-compiler test.sbvr
  • odata-编译器:可用于通过从OData链到SQL的OData URL编译, eg npx odata-compiler test.sbvr /test

两个工具都使用Pine.js的一些主要依赖:

  • 抽象 sql 编译器
  • lf-to-abstract-sql 函数
  • sbvr-parser 软件
  • 数据参数
  • odata-to-abstract-sql 数据转换

上面的软件包是用 OMeta 并被编入Javascript. 下列资源为人们更好地了解OMeta和上述依赖性奠定了良好的起点:

下列论文也有助于理解Pine.js的主要概念:

/docs文件夹内的文件还提供了Pine.js主要概念的大致概况,特别是:

一个可以用Pine.js,其主要依赖和上述工具在balena的开发环境内进行实验.

从何而去

首先用 Pine.js 创建您的第一个应用程序 。 跳转到 获得开始的引导。 。 。 .

存储文件和其他大对象

应用程序可以在两种类型中选择保存文件内容或另一个大对象: File 或者说 WebResource当使用时 File,PineJS使用类似二进制数据类型保存数据库中的内容 BYTEA 或者说 BLOB当使用时 WebResource,PineJS将二进制内容保存在外部存储服务上,然后将元数据,包括内容公开URL写入数据库. 客户端应用程序使用 WebResource href 获取内容.

请注意: WebResource 这项工作仍在进行中,因此有一些局限性。 例如(但不限于):

  • 过滤特定文件名或大小
  • 删除文件可能失败, 需要手动删除文件的存储

版本与发布记录

@balena/pinejs 共发布 2,585 个版本,首次发布于 2020/06/05;过去 12 个月发布了 566 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
25.0.8latest2026/11/11今天
25.0.8-build-begin-upload-zod-745e521cc8871a615841a159246a2abfb23114df-12026/11/11今天
25.0.8-build-fix-default-mysql-database-url-31777b8e2231692b0ef633ad7bdb390ba351e328-12026/11/11今天
25.0.8-build-renovate-patch-minio-d38e53cf37e84715e9851a15af4bf3cc08e138b5-12026/11/11今天
25.0.8-build-renovate-node-24-x-f12f4daa5b053fcb1cb2f3d792802bd301345d71-12026/11/11今天
25.0.8-build-renovate-pinejs-client-supertest-4-x-7801c355841f88976d3ede0526b0b7bb9dd950f2-12026/11/11今天

其他发布通道:build-compile-auth-29ad1af97ec6474f6930c928317468d7bf8b2905 → 19.1.0-build-compile-auth-29ad1af97ec6474f6930c928317468d7bf8b2905-1,build-compile-auth-05e7d20d315e0152fb83620384f8b01f7dae644d → 19.1.0-build-compile-auth-05e7d20d315e0152fb83620384f8b01f7dae644d-1,build-compile-auth → 19.1.0-build-compile-auth-b1f5bf70c598872417ff46c160c9efcb11f24828-1,build-add-tasks-worker-stop → 19.2.0-build-add-tasks-worker-stop-f9a85d7b6325c1d29750acb35a8eceb3861e9d3d-1,build-TEST-MOCK-ONLY-DEBUG → 19.3.0-build-TEST-MOCK-ONLY-DEBUG-6b7781dc03c946faa1095def2bc44dcad588bce9-1,build-expose-check-api-key → 19.4.0-build-expose-check-api-key-28be0bbd4d3b1c7e5bc13b3ee8daeac1787cb816-2。

关于 @balena/pinejs 的常见问题

如何安装 @balena/pinejs?

在项目目录运行 npm install @balena/pinejs,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 sbvr-compiler、odata-compiler、abstract-sql-compiler,可以用 npx sbvr-compiler 直接运行。

@balena/pinejs 支持 TypeScript 吗?

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

@balena/pinejs 支持 ESM 还是 CommonJS?

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

@balena/pinejs 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^24.22.1 || ^26.12.1。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@balena/pinejs 可以商用吗?

@balena/pinejs 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@balena/pinejs 的下载量有多少?

根据 npm 官方下载统计,@balena/pinejs 在 2026/10/08 – 2026/11/06 这 30 天内被下载 35,455 次,日均约 1,182 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@balena/pinejs 还在维护吗?

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