@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 +26 -0
- package/README.md +17 -15
- package/README.zh-CN.md +18 -15
- package/dist/index.d.mts +30 -5
- package/dist/index.d.ts +30 -5
- package/dist/index.js +18 -0
- package/dist/index.mjs +16 -0
- package/package.json +1 -1
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
|
|
9
|
-
|
|
|
10
|
-
| `HTTP_EXCEPTION_CODE`, `HttpExceptionCode`
|
|
11
|
-
| `ApiErrorBody`
|
|
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
|
-
| `
|
|
20
|
-
| `
|
|
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
|
|
58
|
-
|
|
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`
|
|
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
|
-
| `
|
|
20
|
-
| `
|
|
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`
|
|
56
|
-
|
|
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.
|
|
50
|
-
*
|
|
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.
|
|
50
|
-
*
|
|
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
|