@bearei/contracts 3.2.0 → 3.4.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,32 @@ 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.4.0 — 2026-11-05
8
+
9
+ ### Added
10
+
11
+ - `PAYMENT_TRANSACTION_STATE` and `PaymentTransactionState`: the transaction states stored and
12
+ returned by `bearei-pay`. The values (`ACTIVE`, `EXPIRED`, `GRACE`, `REFUNDED`, `REVOKED`) were
13
+ previously declared inside the service; they now live in the shared contract so clients can type
14
+ `state` without copying the list. The release is additive and no existing export changed.
15
+
16
+ ## 3.3.0 — 2026-11-05
17
+
18
+ ### Added
19
+
20
+ - `ApiValidationErrorBody` and `ApiErrorResponseBody`: validation failures now have their own
21
+ contract (`{code, message: string[], statusCode}`), and the union lets clients type every error
22
+ body a 2.0 service returns. `ApiErrorBody` itself is unchanged.
23
+ - `ALL_PERMISSION_KEY` (`all:all`): the response sentinel `bearei-permission` returns for users
24
+ holding an `administrator` role. It is not part of `PERMISSION` and cannot be granted.
25
+
26
+ ### Changed
27
+
28
+ - `HTTP_EXCEPTION_CODE.APPLE_IAP_TRANSACTION_NOT_COMPLETED` (`403004`),
29
+ `APPLE_IAP_TRANSACTION_UNAUTHORIZED` (`401008`) and `MISSING_SUBSCRIPTION_USER_ENTITY` (`400010`)
30
+ are documented as reserved: no 2.0 service produces them. Values are unchanged; the comments stop
31
+ future releases from renumbering or reusing them.
32
+
7
33
  ## 3.2.0 — 2026-10-30
8
34
 
9
35
  ### Added
package/README.md CHANGED
@@ -5,19 +5,20 @@ 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
- | `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 |
8
+ | Export | Kind | Purpose |
9
+ | ---------------------------------------------------------------- | ----- | --------------------------------------------------- |
10
+ | `HTTP_EXCEPTION_CODE`, `HttpExceptionCode` | value | Numeric error codes shared by services and clients |
11
+ | `ApiErrorBody`, `ApiValidationErrorBody`, `ApiErrorResponseBody` | type | Business and validation error bodies |
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
+ | `PAYMENT_TRANSACTION_STATE`, `PaymentTransactionState` | value | Transaction states returned by the payment service |
20
+ | `PERMISSION`, `Permission`, `ALL_PERMISSION_KEY` | value | Permission values and the administrator sentinel |
21
+ | `SUBSCRIPTION_FEATURE`, `SubscriptionFeature` | value | Subscription feature values scoped like permissions |
21
22
 
22
23
  ## Install
23
24
 
@@ -54,8 +55,9 @@ const page: PaginatedResult<{id: string}> = {
54
55
  ```
55
56
 
56
57
  `ApiErrorBody` describes business errors raised by guards, services and shared exceptions. Request
57
- validation errors keep the NestJS default body (`statusCode`, `message`, `error`) and are not
58
- assignable to this type.
58
+ validation errors use `ApiValidationErrorBody`, which keeps the field-message array, and
59
+ `ApiErrorResponseBody` is the union of both. `ALL_PERMISSION_KEY` (`all:all`) is the response
60
+ sentinel `bearei-permission` returns for administrators; it is not a grantable permission key.
59
61
 
60
62
  ### Module formats
61
63
 
package/README.zh-CN.md CHANGED
@@ -5,19 +5,20 @@ 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
- | `PAYMENT_CHANNEL`、`PAYMENT_ENVIRONMENT`、`PAYMENT_EVENT_TYPE` | 值 | 支付服务与订阅服务共用的支付契约词表 |
19
- | `PERMISSION`、`Permission` | 值 | 服务与客户端共用的权限值 |
20
- | `SUBSCRIPTION_FEATURE`、`SubscriptionFeature` | 值 | 订阅特性值,与权限使用相同的区域写法 |
8
+ | 导出 | 类型 | 用途 |
9
+ | ---------------------------------------------------------------- | ---- | -------------------------------------- |
10
+ | `HTTP_EXCEPTION_CODE`、`HttpExceptionCode` | 值 | 服务与客户端共享的数字错误码 |
11
+ | `ApiErrorBody`、`ApiValidationErrorBody`、`ApiErrorResponseBody` | 类型 | 业务错误体与校验错误体 |
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
+ | `PAYMENT_TRANSACTION_STATE`、`PaymentTransactionState` | 值 | 支付服务返回的交易状态值 |
20
+ | `PERMISSION`、`Permission`、`ALL_PERMISSION_KEY` | 值 | 服务与客户端共用的权限值与管理员哨兵值 |
21
+ | `SUBSCRIPTION_FEATURE`、`SubscriptionFeature` | 值 | 订阅特性值,与权限使用相同的区域写法 |
21
22
 
22
23
  ## 安装
23
24
 
@@ -52,8 +53,10 @@ const page: PaginatedResult<{id: string}> = {
52
53
  }
53
54
  ```
54
55
 
55
- `ApiErrorBody` 对应守卫、服务与共享异常抛出的业务错误。请求参数校验错误仍使用 NestJS 标准体
56
- (`statusCode`、`message`、`error`),不能赋值给该类型。
56
+ `ApiErrorBody` 对应守卫、服务与共享异常抛出的业务错误。请求参数校验错误使用
57
+ `ApiValidationErrorBody`,保留字段错误数组;`ApiErrorResponseBody` 是两者的联合类型。
58
+ `ALL_PERMISSION_KEY`(`all:all`)是 `bearei-permission` 对管理员返回的响应哨兵值,不是可授予的
59
+ 权限键。
57
60
 
58
61
  ### 模块格式
59
62
 
package/dist/index.d.mts CHANGED
@@ -10,7 +10,9 @@ type EmailTemplate = (typeof EMAIL_TEMPLATE)[keyof typeof EMAIL_TEMPLATE];
10
10
  */
11
11
  declare const HTTP_EXCEPTION_CODE: {
12
12
  readonly ACCESS_DENIED_FOR_GUEST: 401003;
13
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
13
14
  readonly APPLE_IAP_TRANSACTION_NOT_COMPLETED: 403004;
15
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
14
16
  readonly APPLE_IAP_TRANSACTION_UNAUTHORIZED: 401008;
15
17
  readonly APPLE_IAP_TRANSACTION_VERIFICATION_FAILED: 403005;
16
18
  readonly BAD_GATEWAY: 502000;
@@ -27,16 +29,20 @@ declare const HTTP_EXCEPTION_CODE: {
27
29
  readonly INTERNAL_SERVER_SIGNATURE_VERIFICATION_FAILED: 401002;
28
30
  readonly INVALID_PAYMENT_CHANNEL: 400008;
29
31
  readonly MISSING_SIGN_IN_ENTITY: 400009;
32
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
30
33
  readonly MISSING_SUBSCRIPTION_USER_ENTITY: 400010;
31
34
  readonly NOT_FOUND: 404000;
32
35
  readonly NOT_SUBSCRIBED: 403002;
36
+ /** Reserved: a 1.0-era code; no 2.0 service produces it. Never reuse or renumber. */
33
37
  readonly OR_VALIDATION_PARAMETER_INVALID: 400002;
34
38
  readonly PASSWORD_HAS_EXPIRED: 401006;
35
39
  readonly PASSWORD_IS_INVALID: 401007;
36
40
  readonly PROHIBITED_OPERATIONS: 403001;
37
41
  readonly PROHIBITED_RESET_PASSWORD: 403003;
42
+ /** Default when `REQUEST_TIMEOUT` is thrown without a code; services should pass 408001. */
38
43
  readonly REQUEST_TIMEOUT: 408000;
39
44
  readonly SERVICE_FIELDS_ALREADY_EXISTS: 400003;
45
+ /** Reserved: a 1.0-era code; no 2.0 service produces it. Never reuse or renumber. */
40
46
  readonly SIGNATURE_STRING_LENGTH_LIMIT: 400004;
41
47
  readonly TOKEN_IS_NOT_FOUND: 401001;
42
48
  readonly UNAUTHORIZED: 401000;
@@ -46,15 +52,24 @@ declare const HTTP_EXCEPTION_CODE: {
46
52
  type HttpExceptionCode = (typeof HTTP_EXCEPTION_CODE)[keyof typeof HTTP_EXCEPTION_CODE];
47
53
 
48
54
  /**
49
- * Business error body returned by Bearei HTTP APIs. Validation errors keep the NestJS default
50
- * body (`statusCode`, `message`, `error`) and are not represented by this type.
51
- * Services may return codes outside `HTTP_EXCEPTION_CODE`, so `code` stays numeric.
55
+ * Business error body returned by Bearei HTTP APIs. Services may return codes outside
56
+ * `HTTP_EXCEPTION_CODE`, so `code` stays numeric.
52
57
  */
53
58
  interface ApiErrorBody {
54
59
  code: number;
55
60
  message: string;
56
61
  statusCode: number;
57
62
  }
63
+ /**
64
+ * Body for global validation failures: same envelope as `ApiErrorBody`, but the message
65
+ * keeps the NestJS field-error array.
66
+ */
67
+ interface ApiValidationErrorBody {
68
+ code: number;
69
+ message: string[];
70
+ statusCode: number;
71
+ }
72
+ type ApiErrorResponseBody = ApiErrorBody | ApiValidationErrorBody;
58
73
 
59
74
  declare const RESERVED_REQUEST_HEADER: {
60
75
  readonly CLIENT: "x-bearei-client";
@@ -113,6 +128,14 @@ declare const PAYMENT_EVENT_TYPE: {
113
128
  readonly SUBSCRIBED: "SUBSCRIBED";
114
129
  };
115
130
  type PaymentEventType = (typeof PAYMENT_EVENT_TYPE)[keyof typeof PAYMENT_EVENT_TYPE];
131
+ declare const PAYMENT_TRANSACTION_STATE: {
132
+ readonly ACTIVE: "ACTIVE";
133
+ readonly EXPIRED: "EXPIRED";
134
+ readonly GRACE: "GRACE";
135
+ readonly REFUNDED: "REFUNDED";
136
+ readonly REVOKED: "REVOKED";
137
+ };
138
+ type PaymentTransactionState = (typeof PAYMENT_TRANSACTION_STATE)[keyof typeof PAYMENT_TRANSACTION_STATE];
116
139
 
117
140
  declare const PERMISSION: {
118
141
  readonly ACTION_LOG_CREATE: "action-log:create";
@@ -184,6 +207,8 @@ declare const PERMISSION: {
184
207
  readonly VERSION_LOG_READ: "version-log:read";
185
208
  readonly VERSION_LOG_UPDATE: "version-log:update";
186
209
  };
210
+ /** Response sentinel for administrators; it is not a grantable permission key. */
211
+ declare const ALL_PERMISSION_KEY = "all:all";
187
212
  type Permission = (typeof PERMISSION)[keyof typeof PERMISSION];
188
213
 
189
214
  declare const SUBSCRIPTION_FEATURE: {
@@ -193,5 +218,5 @@ declare const SUBSCRIPTION_FEATURE: {
193
218
  };
194
219
  type SubscriptionFeature = (typeof SUBSCRIPTION_FEATURE)[keyof typeof SUBSCRIPTION_FEATURE];
195
220
 
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 };
221
+ export { ALL_PERMISSION_KEY, DEFAULT_PAGE_SIZE, EMAIL_TEMPLATE, HTTP_EXCEPTION_CODE, LANGUAGE, MAX_PAGE_SIZE, ORDER, PAYMENT_CHANNEL, PAYMENT_ENVIRONMENT, PAYMENT_EVENT_TYPE, PAYMENT_TRANSACTION_STATE, PERMISSION, RESERVED_REQUEST_HEADER, SUBSCRIPTION_FEATURE };
222
+ export type { ApiErrorBody, ApiErrorResponseBody, ApiValidationErrorBody, EmailTemplate, HttpExceptionCode, Language, Order, PaginatedResult, PaginationQuery, PaymentChannel, PaymentEnvironment, PaymentEventType, PaymentTransactionState, Permission, ReservedRequestHeaderName, SubscriptionFeature };
package/dist/index.d.ts CHANGED
@@ -10,7 +10,9 @@ type EmailTemplate = (typeof EMAIL_TEMPLATE)[keyof typeof EMAIL_TEMPLATE];
10
10
  */
11
11
  declare const HTTP_EXCEPTION_CODE: {
12
12
  readonly ACCESS_DENIED_FOR_GUEST: 401003;
13
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
13
14
  readonly APPLE_IAP_TRANSACTION_NOT_COMPLETED: 403004;
15
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
14
16
  readonly APPLE_IAP_TRANSACTION_UNAUTHORIZED: 401008;
15
17
  readonly APPLE_IAP_TRANSACTION_VERIFICATION_FAILED: 403005;
16
18
  readonly BAD_GATEWAY: 502000;
@@ -27,16 +29,20 @@ declare const HTTP_EXCEPTION_CODE: {
27
29
  readonly INTERNAL_SERVER_SIGNATURE_VERIFICATION_FAILED: 401002;
28
30
  readonly INVALID_PAYMENT_CHANNEL: 400008;
29
31
  readonly MISSING_SIGN_IN_ENTITY: 400009;
32
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
30
33
  readonly MISSING_SUBSCRIPTION_USER_ENTITY: 400010;
31
34
  readonly NOT_FOUND: 404000;
32
35
  readonly NOT_SUBSCRIBED: 403002;
36
+ /** Reserved: a 1.0-era code; no 2.0 service produces it. Never reuse or renumber. */
33
37
  readonly OR_VALIDATION_PARAMETER_INVALID: 400002;
34
38
  readonly PASSWORD_HAS_EXPIRED: 401006;
35
39
  readonly PASSWORD_IS_INVALID: 401007;
36
40
  readonly PROHIBITED_OPERATIONS: 403001;
37
41
  readonly PROHIBITED_RESET_PASSWORD: 403003;
42
+ /** Default when `REQUEST_TIMEOUT` is thrown without a code; services should pass 408001. */
38
43
  readonly REQUEST_TIMEOUT: 408000;
39
44
  readonly SERVICE_FIELDS_ALREADY_EXISTS: 400003;
45
+ /** Reserved: a 1.0-era code; no 2.0 service produces it. Never reuse or renumber. */
40
46
  readonly SIGNATURE_STRING_LENGTH_LIMIT: 400004;
41
47
  readonly TOKEN_IS_NOT_FOUND: 401001;
42
48
  readonly UNAUTHORIZED: 401000;
@@ -46,15 +52,24 @@ declare const HTTP_EXCEPTION_CODE: {
46
52
  type HttpExceptionCode = (typeof HTTP_EXCEPTION_CODE)[keyof typeof HTTP_EXCEPTION_CODE];
47
53
 
48
54
  /**
49
- * Business error body returned by Bearei HTTP APIs. Validation errors keep the NestJS default
50
- * body (`statusCode`, `message`, `error`) and are not represented by this type.
51
- * Services may return codes outside `HTTP_EXCEPTION_CODE`, so `code` stays numeric.
55
+ * Business error body returned by Bearei HTTP APIs. Services may return codes outside
56
+ * `HTTP_EXCEPTION_CODE`, so `code` stays numeric.
52
57
  */
53
58
  interface ApiErrorBody {
54
59
  code: number;
55
60
  message: string;
56
61
  statusCode: number;
57
62
  }
63
+ /**
64
+ * Body for global validation failures: same envelope as `ApiErrorBody`, but the message
65
+ * keeps the NestJS field-error array.
66
+ */
67
+ interface ApiValidationErrorBody {
68
+ code: number;
69
+ message: string[];
70
+ statusCode: number;
71
+ }
72
+ type ApiErrorResponseBody = ApiErrorBody | ApiValidationErrorBody;
58
73
 
59
74
  declare const RESERVED_REQUEST_HEADER: {
60
75
  readonly CLIENT: "x-bearei-client";
@@ -113,6 +128,14 @@ declare const PAYMENT_EVENT_TYPE: {
113
128
  readonly SUBSCRIBED: "SUBSCRIBED";
114
129
  };
115
130
  type PaymentEventType = (typeof PAYMENT_EVENT_TYPE)[keyof typeof PAYMENT_EVENT_TYPE];
131
+ declare const PAYMENT_TRANSACTION_STATE: {
132
+ readonly ACTIVE: "ACTIVE";
133
+ readonly EXPIRED: "EXPIRED";
134
+ readonly GRACE: "GRACE";
135
+ readonly REFUNDED: "REFUNDED";
136
+ readonly REVOKED: "REVOKED";
137
+ };
138
+ type PaymentTransactionState = (typeof PAYMENT_TRANSACTION_STATE)[keyof typeof PAYMENT_TRANSACTION_STATE];
116
139
 
117
140
  declare const PERMISSION: {
118
141
  readonly ACTION_LOG_CREATE: "action-log:create";
@@ -184,6 +207,8 @@ declare const PERMISSION: {
184
207
  readonly VERSION_LOG_READ: "version-log:read";
185
208
  readonly VERSION_LOG_UPDATE: "version-log:update";
186
209
  };
210
+ /** Response sentinel for administrators; it is not a grantable permission key. */
211
+ declare const ALL_PERMISSION_KEY = "all:all";
187
212
  type Permission = (typeof PERMISSION)[keyof typeof PERMISSION];
188
213
 
189
214
  declare const SUBSCRIPTION_FEATURE: {
@@ -193,5 +218,5 @@ declare const SUBSCRIPTION_FEATURE: {
193
218
  };
194
219
  type SubscriptionFeature = (typeof SUBSCRIPTION_FEATURE)[keyof typeof SUBSCRIPTION_FEATURE];
195
220
 
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 };
221
+ export { ALL_PERMISSION_KEY, DEFAULT_PAGE_SIZE, EMAIL_TEMPLATE, HTTP_EXCEPTION_CODE, LANGUAGE, MAX_PAGE_SIZE, ORDER, PAYMENT_CHANNEL, PAYMENT_ENVIRONMENT, PAYMENT_EVENT_TYPE, PAYMENT_TRANSACTION_STATE, PERMISSION, RESERVED_REQUEST_HEADER, SUBSCRIPTION_FEATURE };
222
+ export type { ApiErrorBody, ApiErrorResponseBody, ApiValidationErrorBody, EmailTemplate, HttpExceptionCode, Language, Order, PaginatedResult, PaginationQuery, PaymentChannel, PaymentEnvironment, PaymentEventType, PaymentTransactionState, Permission, ReservedRequestHeaderName, SubscriptionFeature };
package/dist/index.js CHANGED
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
+ ALL_PERMISSION_KEY: () => ALL_PERMISSION_KEY,
23
24
  DEFAULT_PAGE_SIZE: () => DEFAULT_PAGE_SIZE,
24
25
  EMAIL_TEMPLATE: () => EMAIL_TEMPLATE,
25
26
  HTTP_EXCEPTION_CODE: () => HTTP_EXCEPTION_CODE,
@@ -29,6 +30,7 @@ __export(index_exports, {
29
30
  PAYMENT_CHANNEL: () => PAYMENT_CHANNEL,
30
31
  PAYMENT_ENVIRONMENT: () => PAYMENT_ENVIRONMENT,
31
32
  PAYMENT_EVENT_TYPE: () => PAYMENT_EVENT_TYPE,
33
+ PAYMENT_TRANSACTION_STATE: () => PAYMENT_TRANSACTION_STATE,
32
34
  PERMISSION: () => PERMISSION,
33
35
  RESERVED_REQUEST_HEADER: () => RESERVED_REQUEST_HEADER,
34
36
  SUBSCRIPTION_FEATURE: () => SUBSCRIPTION_FEATURE
@@ -44,7 +46,9 @@ var EMAIL_TEMPLATE = {
44
46
  // src/error-code.enum.ts
45
47
  var HTTP_EXCEPTION_CODE = {
46
48
  ACCESS_DENIED_FOR_GUEST: 401003,
49
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
47
50
  APPLE_IAP_TRANSACTION_NOT_COMPLETED: 403004,
51
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
48
52
  APPLE_IAP_TRANSACTION_UNAUTHORIZED: 401008,
49
53
  APPLE_IAP_TRANSACTION_VERIFICATION_FAILED: 403005,
50
54
  BAD_GATEWAY: 502e3,
@@ -61,16 +65,20 @@ var HTTP_EXCEPTION_CODE = {
61
65
  INTERNAL_SERVER_SIGNATURE_VERIFICATION_FAILED: 401002,
62
66
  INVALID_PAYMENT_CHANNEL: 400008,
63
67
  MISSING_SIGN_IN_ENTITY: 400009,
68
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
64
69
  MISSING_SUBSCRIPTION_USER_ENTITY: 400010,
65
70
  NOT_FOUND: 404e3,
66
71
  NOT_SUBSCRIBED: 403002,
72
+ /** Reserved: a 1.0-era code; no 2.0 service produces it. Never reuse or renumber. */
67
73
  OR_VALIDATION_PARAMETER_INVALID: 400002,
68
74
  PASSWORD_HAS_EXPIRED: 401006,
69
75
  PASSWORD_IS_INVALID: 401007,
70
76
  PROHIBITED_OPERATIONS: 403001,
71
77
  PROHIBITED_RESET_PASSWORD: 403003,
78
+ /** Default when `REQUEST_TIMEOUT` is thrown without a code; services should pass 408001. */
72
79
  REQUEST_TIMEOUT: 408e3,
73
80
  SERVICE_FIELDS_ALREADY_EXISTS: 400003,
81
+ /** Reserved: a 1.0-era code; no 2.0 service produces it. Never reuse or renumber. */
74
82
  SIGNATURE_STRING_LENGTH_LIMIT: 400004,
75
83
  TOKEN_IS_NOT_FOUND: 401001,
76
84
  UNAUTHORIZED: 401e3,
@@ -122,6 +130,13 @@ var PAYMENT_EVENT_TYPE = {
122
130
  REVOKED: "REVOKED",
123
131
  SUBSCRIBED: "SUBSCRIBED"
124
132
  };
133
+ var PAYMENT_TRANSACTION_STATE = {
134
+ ACTIVE: "ACTIVE",
135
+ EXPIRED: "EXPIRED",
136
+ GRACE: "GRACE",
137
+ REFUNDED: "REFUNDED",
138
+ REVOKED: "REVOKED"
139
+ };
125
140
 
126
141
  // src/permission.enum.ts
127
142
  var PERMISSION = {
@@ -194,6 +209,7 @@ var PERMISSION = {
194
209
  VERSION_LOG_READ: "version-log:read",
195
210
  VERSION_LOG_UPDATE: "version-log:update"
196
211
  };
212
+ var ALL_PERMISSION_KEY = "all:all";
197
213
 
198
214
  // src/subscription-feature.enum.ts
199
215
  var SUBSCRIPTION_FEATURE = {
@@ -203,6 +219,7 @@ var SUBSCRIPTION_FEATURE = {
203
219
  };
204
220
  // Annotate the CommonJS export names for ESM import in node:
205
221
  0 && (module.exports = {
222
+ ALL_PERMISSION_KEY,
206
223
  DEFAULT_PAGE_SIZE,
207
224
  EMAIL_TEMPLATE,
208
225
  HTTP_EXCEPTION_CODE,
@@ -212,6 +229,7 @@ var SUBSCRIPTION_FEATURE = {
212
229
  PAYMENT_CHANNEL,
213
230
  PAYMENT_ENVIRONMENT,
214
231
  PAYMENT_EVENT_TYPE,
232
+ PAYMENT_TRANSACTION_STATE,
215
233
  PERMISSION,
216
234
  RESERVED_REQUEST_HEADER,
217
235
  SUBSCRIPTION_FEATURE
package/dist/index.mjs CHANGED
@@ -7,7 +7,9 @@ var EMAIL_TEMPLATE = {
7
7
  // src/error-code.enum.ts
8
8
  var HTTP_EXCEPTION_CODE = {
9
9
  ACCESS_DENIED_FOR_GUEST: 401003,
10
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
10
11
  APPLE_IAP_TRANSACTION_NOT_COMPLETED: 403004,
12
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
11
13
  APPLE_IAP_TRANSACTION_UNAUTHORIZED: 401008,
12
14
  APPLE_IAP_TRANSACTION_VERIFICATION_FAILED: 403005,
13
15
  BAD_GATEWAY: 502e3,
@@ -24,16 +26,20 @@ var HTTP_EXCEPTION_CODE = {
24
26
  INTERNAL_SERVER_SIGNATURE_VERIFICATION_FAILED: 401002,
25
27
  INVALID_PAYMENT_CHANNEL: 400008,
26
28
  MISSING_SIGN_IN_ENTITY: 400009,
29
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
27
30
  MISSING_SUBSCRIPTION_USER_ENTITY: 400010,
28
31
  NOT_FOUND: 404e3,
29
32
  NOT_SUBSCRIBED: 403002,
33
+ /** Reserved: a 1.0-era code; no 2.0 service produces it. Never reuse or renumber. */
30
34
  OR_VALIDATION_PARAMETER_INVALID: 400002,
31
35
  PASSWORD_HAS_EXPIRED: 401006,
32
36
  PASSWORD_IS_INVALID: 401007,
33
37
  PROHIBITED_OPERATIONS: 403001,
34
38
  PROHIBITED_RESET_PASSWORD: 403003,
39
+ /** Default when `REQUEST_TIMEOUT` is thrown without a code; services should pass 408001. */
35
40
  REQUEST_TIMEOUT: 408e3,
36
41
  SERVICE_FIELDS_ALREADY_EXISTS: 400003,
42
+ /** Reserved: a 1.0-era code; no 2.0 service produces it. Never reuse or renumber. */
37
43
  SIGNATURE_STRING_LENGTH_LIMIT: 400004,
38
44
  TOKEN_IS_NOT_FOUND: 401001,
39
45
  UNAUTHORIZED: 401e3,
@@ -85,6 +91,13 @@ var PAYMENT_EVENT_TYPE = {
85
91
  REVOKED: "REVOKED",
86
92
  SUBSCRIBED: "SUBSCRIBED"
87
93
  };
94
+ var PAYMENT_TRANSACTION_STATE = {
95
+ ACTIVE: "ACTIVE",
96
+ EXPIRED: "EXPIRED",
97
+ GRACE: "GRACE",
98
+ REFUNDED: "REFUNDED",
99
+ REVOKED: "REVOKED"
100
+ };
88
101
 
89
102
  // src/permission.enum.ts
90
103
  var PERMISSION = {
@@ -157,6 +170,7 @@ var PERMISSION = {
157
170
  VERSION_LOG_READ: "version-log:read",
158
171
  VERSION_LOG_UPDATE: "version-log:update"
159
172
  };
173
+ var ALL_PERMISSION_KEY = "all:all";
160
174
 
161
175
  // src/subscription-feature.enum.ts
162
176
  var SUBSCRIPTION_FEATURE = {
@@ -165,6 +179,7 @@ var SUBSCRIPTION_FEATURE = {
165
179
  TAG_CLOUD_SYNC: "bookmark:tag_cloud_sync"
166
180
  };
167
181
  export {
182
+ ALL_PERMISSION_KEY,
168
183
  DEFAULT_PAGE_SIZE,
169
184
  EMAIL_TEMPLATE,
170
185
  HTTP_EXCEPTION_CODE,
@@ -174,6 +189,7 @@ export {
174
189
  PAYMENT_CHANNEL,
175
190
  PAYMENT_ENVIRONMENT,
176
191
  PAYMENT_EVENT_TYPE,
192
+ PAYMENT_TRANSACTION_STATE,
177
193
  PERMISSION,
178
194
  RESERVED_REQUEST_HEADER,
179
195
  SUBSCRIPTION_FEATURE
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bearei/contracts",
3
- "version": "3.2.0",
3
+ "version": "3.4.0",
4
4
  "description": "Framework-agnostic wire contracts shared by Bearei services, clients and apps",
5
5
  "keywords": [
6
6
  "bearei",