@bearei/contracts 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,15 @@ All notable changes to this project are documented in this file. The format is b
4
4
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to
5
5
  [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## 3.2.0 — 2026-10-30
8
+
9
+ ### Added
10
+
11
+ - `PAYMENT_CHANNEL`, `PaymentChannel`, `PAYMENT_ENVIRONMENT`, `PaymentEnvironment`,
12
+ `PAYMENT_EVENT_TYPE` and `PaymentEventType`: the channel, environment and event vocabulary of the
13
+ frozen payment event contract between `bearei-pay` and `bearei-subscription`. Values match the
14
+ existing service enums; the release is additive and no existing export changed.
15
+
7
16
  ## 3.1.0 — 2026-10-30
8
17
 
9
18
  ### Added
package/README.md CHANGED
@@ -5,18 +5,19 @@ runtime dependencies and ships both ESM and CommonJS builds.
5
5
 
6
6
  English | [中文](./README.zh-CN.md)
7
7
 
8
- | Export | Kind | Purpose |
9
- | ------------------------------------------------------ | ----- | --------------------------------------------------- |
10
- | `HTTP_EXCEPTION_CODE`, `HttpExceptionCode` | value | Numeric error codes shared by services and clients |
11
- | `ApiErrorBody` | type | Business error body `{code, message, statusCode}` |
12
- | `DEFAULT_PAGE_SIZE`, `MAX_PAGE_SIZE` | value | Paging limits used by every list endpoint |
13
- | `PaginationQuery`, `PaginatedResult<T>` | type | Paging request fields and page envelope |
14
- | `RESERVED_REQUEST_HEADER`, `ReservedRequestHeaderName` | value | Headers set by the gateway or authentication layer |
15
- | `LANGUAGE`, `Language` | value | Locale values |
16
- | `EMAIL_TEMPLATE`, `EmailTemplate` | value | Email template values used by services and clients |
17
- | `ORDER`, `Order` | value | Sort order values |
18
- | `PERMISSION`, `Permission` | value | Permission values used by services and clients |
19
- | `SUBSCRIPTION_FEATURE`, `SubscriptionFeature` | value | Subscription feature values scoped like permissions |
8
+ | Export | Kind | Purpose |
9
+ | -------------------------------------------------------------- | ----- | --------------------------------------------------- |
10
+ | `HTTP_EXCEPTION_CODE`, `HttpExceptionCode` | value | Numeric error codes shared by services and clients |
11
+ | `ApiErrorBody` | type | Business error body `{code, message, statusCode}` |
12
+ | `DEFAULT_PAGE_SIZE`, `MAX_PAGE_SIZE` | value | Paging limits used by every list endpoint |
13
+ | `PaginationQuery`, `PaginatedResult<T>` | type | Paging request fields and page envelope |
14
+ | `RESERVED_REQUEST_HEADER`, `ReservedRequestHeaderName` | value | Headers set by the gateway or authentication layer |
15
+ | `LANGUAGE`, `Language` | value | Locale values |
16
+ | `EMAIL_TEMPLATE`, `EmailTemplate` | value | Email template values used by services and clients |
17
+ | `ORDER`, `Order` | value | Sort order values |
18
+ | `PAYMENT_CHANNEL`, `PAYMENT_ENVIRONMENT`, `PAYMENT_EVENT_TYPE` | value | Payment contract vocabulary shared by services |
19
+ | `PERMISSION`, `Permission` | value | Permission values used by services and clients |
20
+ | `SUBSCRIPTION_FEATURE`, `SubscriptionFeature` | value | Subscription feature values scoped like permissions |
20
21
 
21
22
  ## Install
22
23
 
@@ -68,7 +69,8 @@ Only values and types that both ends of a wire boundary must agree on belong her
68
69
  - numeric error codes and error response bodies
69
70
  - query and response shapes shared by API clients and services
70
71
  - reserved request header names
71
- - cross-project enums such as language, sort order, permissions and subscription features
72
+ - cross-project enums such as language, sort order, permissions, subscription features and payment
73
+ contract values
72
74
 
73
75
  Framework-specific code does not belong here: NestJS decorators, guards and interceptors,
74
76
  TypeORM entities, HTTP clients, persistence, and service-only DTOs stay in their own libraries.
package/README.zh-CN.md CHANGED
@@ -5,18 +5,19 @@ ESM 与 CommonJS 两种产物。
5
5
 
6
6
  [English](./README.md) | 中文
7
7
 
8
- | 导出 | 类型 | 用途 |
9
- | ------------------------------------------------------ | ---- | ---------------------------------------- |
10
- | `HTTP_EXCEPTION_CODE`、`HttpExceptionCode` | 值 | 服务与客户端共享的数字错误码 |
11
- | `ApiErrorBody` | 类型 | 业务错误体 `{code, message, statusCode}` |
12
- | `DEFAULT_PAGE_SIZE`、`MAX_PAGE_SIZE` | 值 | 所有列表接口使用的分页上限 |
13
- | `PaginationQuery`、`PaginatedResult<T>` | 类型 | 分页请求字段与分页响应信封 |
14
- | `RESERVED_REQUEST_HEADER`、`ReservedRequestHeaderName` | 值 | 由网关或认证层写入的保留请求头 |
15
- | `LANGUAGE`、`Language` | 值 | 语言值 |
16
- | `EMAIL_TEMPLATE`、`EmailTemplate` | 值 | 服务与客户端共用的邮件模板值 |
17
- | `ORDER`、`Order` | 值 | 排序值 |
18
- | `PERMISSION`、`Permission` | 值 | 服务与客户端共用的权限值 |
19
- | `SUBSCRIPTION_FEATURE`、`SubscriptionFeature` | 值 | 订阅特性值,与权限使用相同的区域写法 |
8
+ | 导出 | 类型 | 用途 |
9
+ | -------------------------------------------------------------- | ---- | ---------------------------------------- |
10
+ | `HTTP_EXCEPTION_CODE`、`HttpExceptionCode` | 值 | 服务与客户端共享的数字错误码 |
11
+ | `ApiErrorBody` | 类型 | 业务错误体 `{code, message, statusCode}` |
12
+ | `DEFAULT_PAGE_SIZE`、`MAX_PAGE_SIZE` | 值 | 所有列表接口使用的分页上限 |
13
+ | `PaginationQuery`、`PaginatedResult<T>` | 类型 | 分页请求字段与分页响应信封 |
14
+ | `RESERVED_REQUEST_HEADER`、`ReservedRequestHeaderName` | 值 | 由网关或认证层写入的保留请求头 |
15
+ | `LANGUAGE`、`Language` | 值 | 语言值 |
16
+ | `EMAIL_TEMPLATE`、`EmailTemplate` | 值 | 服务与客户端共用的邮件模板值 |
17
+ | `ORDER`、`Order` | 值 | 排序值 |
18
+ | `PAYMENT_CHANNEL`、`PAYMENT_ENVIRONMENT`、`PAYMENT_EVENT_TYPE` | 值 | 支付服务与订阅服务共用的支付契约词表 |
19
+ | `PERMISSION`、`Permission` | 值 | 服务与客户端共用的权限值 |
20
+ | `SUBSCRIPTION_FEATURE`、`SubscriptionFeature` | 值 | 订阅特性值,与权限使用相同的区域写法 |
20
21
 
21
22
  ## 安装
22
23
 
@@ -66,7 +67,7 @@ const page: PaginatedResult<{id: string}> = {
66
67
  - 数字错误码与错误响应体
67
68
  - API 客户端与服务共享的查询、响应结构
68
69
  - 保留请求头名称
69
- - 语言、排序、权限、订阅特性等跨项目枚举
70
+ - 语言、排序、权限、订阅特性、支付契约值等跨项目枚举
70
71
 
71
72
  框架相关代码不放进这里:NestJS 装饰器、守卫、拦截器,TypeORM 实体,HTTP 客户端,持久化,
72
73
  以及仅服务端使用的 DTO 都留在各自的库中。
package/dist/index.d.mts CHANGED
@@ -93,6 +93,27 @@ interface PaginatedResult<T> {
93
93
  total?: number;
94
94
  }
95
95
 
96
+ declare const PAYMENT_CHANNEL: {
97
+ readonly APPLE_IAP: "APPLE_IAP";
98
+ };
99
+ type PaymentChannel = (typeof PAYMENT_CHANNEL)[keyof typeof PAYMENT_CHANNEL];
100
+ declare const PAYMENT_ENVIRONMENT: {
101
+ readonly PRODUCTION: "PRODUCTION";
102
+ readonly SANDBOX: "SANDBOX";
103
+ };
104
+ type PaymentEnvironment = (typeof PAYMENT_ENVIRONMENT)[keyof typeof PAYMENT_ENVIRONMENT];
105
+ declare const PAYMENT_EVENT_TYPE: {
106
+ readonly ENTERED_GRACE_PERIOD: "ENTERED_GRACE_PERIOD";
107
+ readonly EXPIRED: "EXPIRED";
108
+ readonly PLAN_CHANGED: "PLAN_CHANGED";
109
+ readonly REFUNDED: "REFUNDED";
110
+ readonly REINSTATED: "REINSTATED";
111
+ readonly RENEWED: "RENEWED";
112
+ readonly REVOKED: "REVOKED";
113
+ readonly SUBSCRIBED: "SUBSCRIBED";
114
+ };
115
+ type PaymentEventType = (typeof PAYMENT_EVENT_TYPE)[keyof typeof PAYMENT_EVENT_TYPE];
116
+
96
117
  declare const PERMISSION: {
97
118
  readonly ACTION_LOG_CREATE: "action-log:create";
98
119
  readonly ACTION_LOG_DELETE: "action-log:delete";
@@ -172,5 +193,5 @@ declare const SUBSCRIPTION_FEATURE: {
172
193
  };
173
194
  type SubscriptionFeature = (typeof SUBSCRIPTION_FEATURE)[keyof typeof SUBSCRIPTION_FEATURE];
174
195
 
175
- export { DEFAULT_PAGE_SIZE, EMAIL_TEMPLATE, HTTP_EXCEPTION_CODE, LANGUAGE, MAX_PAGE_SIZE, ORDER, PERMISSION, RESERVED_REQUEST_HEADER, SUBSCRIPTION_FEATURE };
176
- export type { ApiErrorBody, EmailTemplate, HttpExceptionCode, Language, Order, PaginatedResult, PaginationQuery, Permission, ReservedRequestHeaderName, SubscriptionFeature };
196
+ export { DEFAULT_PAGE_SIZE, EMAIL_TEMPLATE, HTTP_EXCEPTION_CODE, LANGUAGE, MAX_PAGE_SIZE, ORDER, PAYMENT_CHANNEL, PAYMENT_ENVIRONMENT, PAYMENT_EVENT_TYPE, PERMISSION, RESERVED_REQUEST_HEADER, SUBSCRIPTION_FEATURE };
197
+ export type { ApiErrorBody, EmailTemplate, HttpExceptionCode, Language, Order, PaginatedResult, PaginationQuery, PaymentChannel, PaymentEnvironment, PaymentEventType, Permission, ReservedRequestHeaderName, SubscriptionFeature };
package/dist/index.d.ts CHANGED
@@ -93,6 +93,27 @@ interface PaginatedResult<T> {
93
93
  total?: number;
94
94
  }
95
95
 
96
+ declare const PAYMENT_CHANNEL: {
97
+ readonly APPLE_IAP: "APPLE_IAP";
98
+ };
99
+ type PaymentChannel = (typeof PAYMENT_CHANNEL)[keyof typeof PAYMENT_CHANNEL];
100
+ declare const PAYMENT_ENVIRONMENT: {
101
+ readonly PRODUCTION: "PRODUCTION";
102
+ readonly SANDBOX: "SANDBOX";
103
+ };
104
+ type PaymentEnvironment = (typeof PAYMENT_ENVIRONMENT)[keyof typeof PAYMENT_ENVIRONMENT];
105
+ declare const PAYMENT_EVENT_TYPE: {
106
+ readonly ENTERED_GRACE_PERIOD: "ENTERED_GRACE_PERIOD";
107
+ readonly EXPIRED: "EXPIRED";
108
+ readonly PLAN_CHANGED: "PLAN_CHANGED";
109
+ readonly REFUNDED: "REFUNDED";
110
+ readonly REINSTATED: "REINSTATED";
111
+ readonly RENEWED: "RENEWED";
112
+ readonly REVOKED: "REVOKED";
113
+ readonly SUBSCRIBED: "SUBSCRIBED";
114
+ };
115
+ type PaymentEventType = (typeof PAYMENT_EVENT_TYPE)[keyof typeof PAYMENT_EVENT_TYPE];
116
+
96
117
  declare const PERMISSION: {
97
118
  readonly ACTION_LOG_CREATE: "action-log:create";
98
119
  readonly ACTION_LOG_DELETE: "action-log:delete";
@@ -172,5 +193,5 @@ declare const SUBSCRIPTION_FEATURE: {
172
193
  };
173
194
  type SubscriptionFeature = (typeof SUBSCRIPTION_FEATURE)[keyof typeof SUBSCRIPTION_FEATURE];
174
195
 
175
- export { DEFAULT_PAGE_SIZE, EMAIL_TEMPLATE, HTTP_EXCEPTION_CODE, LANGUAGE, MAX_PAGE_SIZE, ORDER, PERMISSION, RESERVED_REQUEST_HEADER, SUBSCRIPTION_FEATURE };
176
- export type { ApiErrorBody, EmailTemplate, HttpExceptionCode, Language, Order, PaginatedResult, PaginationQuery, Permission, ReservedRequestHeaderName, SubscriptionFeature };
196
+ export { DEFAULT_PAGE_SIZE, EMAIL_TEMPLATE, HTTP_EXCEPTION_CODE, LANGUAGE, MAX_PAGE_SIZE, ORDER, PAYMENT_CHANNEL, PAYMENT_ENVIRONMENT, PAYMENT_EVENT_TYPE, PERMISSION, RESERVED_REQUEST_HEADER, SUBSCRIPTION_FEATURE };
197
+ export type { ApiErrorBody, EmailTemplate, HttpExceptionCode, Language, Order, PaginatedResult, PaginationQuery, PaymentChannel, PaymentEnvironment, PaymentEventType, Permission, ReservedRequestHeaderName, SubscriptionFeature };
package/dist/index.js CHANGED
@@ -26,6 +26,9 @@ __export(index_exports, {
26
26
  LANGUAGE: () => LANGUAGE,
27
27
  MAX_PAGE_SIZE: () => MAX_PAGE_SIZE,
28
28
  ORDER: () => ORDER,
29
+ PAYMENT_CHANNEL: () => PAYMENT_CHANNEL,
30
+ PAYMENT_ENVIRONMENT: () => PAYMENT_ENVIRONMENT,
31
+ PAYMENT_EVENT_TYPE: () => PAYMENT_EVENT_TYPE,
29
32
  PERMISSION: () => PERMISSION,
30
33
  RESERVED_REQUEST_HEADER: () => RESERVED_REQUEST_HEADER,
31
34
  SUBSCRIPTION_FEATURE: () => SUBSCRIPTION_FEATURE
@@ -101,6 +104,25 @@ var ORDER = {
101
104
  var DEFAULT_PAGE_SIZE = 10;
102
105
  var MAX_PAGE_SIZE = 1024;
103
106
 
107
+ // src/payment.enum.ts
108
+ var PAYMENT_CHANNEL = {
109
+ APPLE_IAP: "APPLE_IAP"
110
+ };
111
+ var PAYMENT_ENVIRONMENT = {
112
+ PRODUCTION: "PRODUCTION",
113
+ SANDBOX: "SANDBOX"
114
+ };
115
+ var PAYMENT_EVENT_TYPE = {
116
+ ENTERED_GRACE_PERIOD: "ENTERED_GRACE_PERIOD",
117
+ EXPIRED: "EXPIRED",
118
+ PLAN_CHANGED: "PLAN_CHANGED",
119
+ REFUNDED: "REFUNDED",
120
+ REINSTATED: "REINSTATED",
121
+ RENEWED: "RENEWED",
122
+ REVOKED: "REVOKED",
123
+ SUBSCRIBED: "SUBSCRIBED"
124
+ };
125
+
104
126
  // src/permission.enum.ts
105
127
  var PERMISSION = {
106
128
  ACTION_LOG_CREATE: "action-log:create",
@@ -187,6 +209,9 @@ var SUBSCRIPTION_FEATURE = {
187
209
  LANGUAGE,
188
210
  MAX_PAGE_SIZE,
189
211
  ORDER,
212
+ PAYMENT_CHANNEL,
213
+ PAYMENT_ENVIRONMENT,
214
+ PAYMENT_EVENT_TYPE,
190
215
  PERMISSION,
191
216
  RESERVED_REQUEST_HEADER,
192
217
  SUBSCRIPTION_FEATURE
package/dist/index.mjs CHANGED
@@ -67,6 +67,25 @@ var ORDER = {
67
67
  var DEFAULT_PAGE_SIZE = 10;
68
68
  var MAX_PAGE_SIZE = 1024;
69
69
 
70
+ // src/payment.enum.ts
71
+ var PAYMENT_CHANNEL = {
72
+ APPLE_IAP: "APPLE_IAP"
73
+ };
74
+ var PAYMENT_ENVIRONMENT = {
75
+ PRODUCTION: "PRODUCTION",
76
+ SANDBOX: "SANDBOX"
77
+ };
78
+ var PAYMENT_EVENT_TYPE = {
79
+ ENTERED_GRACE_PERIOD: "ENTERED_GRACE_PERIOD",
80
+ EXPIRED: "EXPIRED",
81
+ PLAN_CHANGED: "PLAN_CHANGED",
82
+ REFUNDED: "REFUNDED",
83
+ REINSTATED: "REINSTATED",
84
+ RENEWED: "RENEWED",
85
+ REVOKED: "REVOKED",
86
+ SUBSCRIBED: "SUBSCRIBED"
87
+ };
88
+
70
89
  // src/permission.enum.ts
71
90
  var PERMISSION = {
72
91
  ACTION_LOG_CREATE: "action-log:create",
@@ -152,6 +171,9 @@ export {
152
171
  LANGUAGE,
153
172
  MAX_PAGE_SIZE,
154
173
  ORDER,
174
+ PAYMENT_CHANNEL,
175
+ PAYMENT_ENVIRONMENT,
176
+ PAYMENT_EVENT_TYPE,
155
177
  PERMISSION,
156
178
  RESERVED_REQUEST_HEADER,
157
179
  SUBSCRIPTION_FEATURE
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bearei/contracts",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "Framework-agnostic wire contracts shared by Bearei services, clients and apps",
5
5
  "keywords": [
6
6
  "bearei",