@bearei/contracts 3.2.0 → 3.3.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,23 @@ 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.3.0 — 2026-11-05
8
+
9
+ ### Added
10
+
11
+ - `ApiValidationErrorBody` and `ApiErrorResponseBody`: validation failures now have their own
12
+ contract (`{code, message: string[], statusCode}`), and the union lets clients type every error
13
+ body a 2.0 service returns. `ApiErrorBody` itself is unchanged.
14
+ - `ALL_PERMISSION_KEY` (`all:all`): the response sentinel `bearei-permission` returns for users
15
+ holding an `administrator` role. It is not part of `PERMISSION` and cannot be granted.
16
+
17
+ ### Changed
18
+
19
+ - `HTTP_EXCEPTION_CODE.APPLE_IAP_TRANSACTION_NOT_COMPLETED` (`403004`),
20
+ `APPLE_IAP_TRANSACTION_UNAUTHORIZED` (`401008`) and `MISSING_SUBSCRIPTION_USER_ENTITY` (`400010`)
21
+ are documented as reserved: no 2.0 service produces them. Values are unchanged; the comments stop
22
+ future releases from renumbering or reusing them.
23
+
7
24
  ## 3.2.0 — 2026-10-30
8
25
 
9
26
  ### Added
package/README.md CHANGED
@@ -5,19 +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
- | `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
+ | `PERMISSION`, `Permission`, `ALL_PERMISSION_KEY` | value | Permission values and the administrator sentinel |
20
+ | `SUBSCRIPTION_FEATURE`, `SubscriptionFeature` | value | Subscription feature values scoped like permissions |
21
21
 
22
22
  ## Install
23
23
 
@@ -54,8 +54,9 @@ const page: PaginatedResult<{id: string}> = {
54
54
  ```
55
55
 
56
56
  `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.
57
+ validation errors use `ApiValidationErrorBody`, which keeps the field-message array, and
58
+ `ApiErrorResponseBody` is the union of both. `ALL_PERMISSION_KEY` (`all:all`) is the response
59
+ sentinel `bearei-permission` returns for administrators; it is not a grantable permission key.
59
60
 
60
61
  ### Module formats
61
62
 
package/README.zh-CN.md CHANGED
@@ -5,19 +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
- | `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
+ | `PERMISSION`、`Permission`、`ALL_PERMISSION_KEY` | 值 | 服务与客户端共用的权限值与管理员哨兵值 |
20
+ | `SUBSCRIPTION_FEATURE`、`SubscriptionFeature` | 值 | 订阅特性值,与权限使用相同的区域写法 |
21
21
 
22
22
  ## 安装
23
23
 
@@ -52,8 +52,10 @@ const page: PaginatedResult<{id: string}> = {
52
52
  }
53
53
  ```
54
54
 
55
- `ApiErrorBody` 对应守卫、服务与共享异常抛出的业务错误。请求参数校验错误仍使用 NestJS 标准体
56
- (`statusCode`、`message`、`error`),不能赋值给该类型。
55
+ `ApiErrorBody` 对应守卫、服务与共享异常抛出的业务错误。请求参数校验错误使用
56
+ `ApiValidationErrorBody`,保留字段错误数组;`ApiErrorResponseBody` 是两者的联合类型。
57
+ `ALL_PERMISSION_KEY`(`all:all`)是 `bearei-permission` 对管理员返回的响应哨兵值,不是可授予的
58
+ 权限键。
57
59
 
58
60
  ### 模块格式
59
61
 
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,6 +29,7 @@ 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;
@@ -46,15 +49,24 @@ declare const HTTP_EXCEPTION_CODE: {
46
49
  type HttpExceptionCode = (typeof HTTP_EXCEPTION_CODE)[keyof typeof HTTP_EXCEPTION_CODE];
47
50
 
48
51
  /**
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.
52
+ * Business error body returned by Bearei HTTP APIs. Services may return codes outside
53
+ * `HTTP_EXCEPTION_CODE`, so `code` stays numeric.
52
54
  */
53
55
  interface ApiErrorBody {
54
56
  code: number;
55
57
  message: string;
56
58
  statusCode: number;
57
59
  }
60
+ /**
61
+ * Body for global validation failures: same envelope as `ApiErrorBody`, but the message
62
+ * keeps the NestJS field-error array.
63
+ */
64
+ interface ApiValidationErrorBody {
65
+ code: number;
66
+ message: string[];
67
+ statusCode: number;
68
+ }
69
+ type ApiErrorResponseBody = ApiErrorBody | ApiValidationErrorBody;
58
70
 
59
71
  declare const RESERVED_REQUEST_HEADER: {
60
72
  readonly CLIENT: "x-bearei-client";
@@ -184,6 +196,8 @@ declare const PERMISSION: {
184
196
  readonly VERSION_LOG_READ: "version-log:read";
185
197
  readonly VERSION_LOG_UPDATE: "version-log:update";
186
198
  };
199
+ /** Response sentinel for administrators; it is not a grantable permission key. */
200
+ declare const ALL_PERMISSION_KEY = "all:all";
187
201
  type Permission = (typeof PERMISSION)[keyof typeof PERMISSION];
188
202
 
189
203
  declare const SUBSCRIPTION_FEATURE: {
@@ -193,5 +207,5 @@ declare const SUBSCRIPTION_FEATURE: {
193
207
  };
194
208
  type SubscriptionFeature = (typeof SUBSCRIPTION_FEATURE)[keyof typeof SUBSCRIPTION_FEATURE];
195
209
 
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 };
210
+ export { ALL_PERMISSION_KEY, 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 };
211
+ export type { ApiErrorBody, ApiErrorResponseBody, ApiValidationErrorBody, EmailTemplate, HttpExceptionCode, Language, Order, PaginatedResult, PaginationQuery, PaymentChannel, PaymentEnvironment, PaymentEventType, 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,6 +29,7 @@ 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;
@@ -46,15 +49,24 @@ declare const HTTP_EXCEPTION_CODE: {
46
49
  type HttpExceptionCode = (typeof HTTP_EXCEPTION_CODE)[keyof typeof HTTP_EXCEPTION_CODE];
47
50
 
48
51
  /**
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.
52
+ * Business error body returned by Bearei HTTP APIs. Services may return codes outside
53
+ * `HTTP_EXCEPTION_CODE`, so `code` stays numeric.
52
54
  */
53
55
  interface ApiErrorBody {
54
56
  code: number;
55
57
  message: string;
56
58
  statusCode: number;
57
59
  }
60
+ /**
61
+ * Body for global validation failures: same envelope as `ApiErrorBody`, but the message
62
+ * keeps the NestJS field-error array.
63
+ */
64
+ interface ApiValidationErrorBody {
65
+ code: number;
66
+ message: string[];
67
+ statusCode: number;
68
+ }
69
+ type ApiErrorResponseBody = ApiErrorBody | ApiValidationErrorBody;
58
70
 
59
71
  declare const RESERVED_REQUEST_HEADER: {
60
72
  readonly CLIENT: "x-bearei-client";
@@ -184,6 +196,8 @@ declare const PERMISSION: {
184
196
  readonly VERSION_LOG_READ: "version-log:read";
185
197
  readonly VERSION_LOG_UPDATE: "version-log:update";
186
198
  };
199
+ /** Response sentinel for administrators; it is not a grantable permission key. */
200
+ declare const ALL_PERMISSION_KEY = "all:all";
187
201
  type Permission = (typeof PERMISSION)[keyof typeof PERMISSION];
188
202
 
189
203
  declare const SUBSCRIPTION_FEATURE: {
@@ -193,5 +207,5 @@ declare const SUBSCRIPTION_FEATURE: {
193
207
  };
194
208
  type SubscriptionFeature = (typeof SUBSCRIPTION_FEATURE)[keyof typeof SUBSCRIPTION_FEATURE];
195
209
 
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 };
210
+ export { ALL_PERMISSION_KEY, 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 };
211
+ export type { ApiErrorBody, ApiErrorResponseBody, ApiValidationErrorBody, EmailTemplate, HttpExceptionCode, Language, Order, PaginatedResult, PaginationQuery, PaymentChannel, PaymentEnvironment, PaymentEventType, 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,
@@ -44,7 +45,9 @@ var EMAIL_TEMPLATE = {
44
45
  // src/error-code.enum.ts
45
46
  var HTTP_EXCEPTION_CODE = {
46
47
  ACCESS_DENIED_FOR_GUEST: 401003,
48
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
47
49
  APPLE_IAP_TRANSACTION_NOT_COMPLETED: 403004,
50
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
48
51
  APPLE_IAP_TRANSACTION_UNAUTHORIZED: 401008,
49
52
  APPLE_IAP_TRANSACTION_VERIFICATION_FAILED: 403005,
50
53
  BAD_GATEWAY: 502e3,
@@ -61,6 +64,7 @@ var HTTP_EXCEPTION_CODE = {
61
64
  INTERNAL_SERVER_SIGNATURE_VERIFICATION_FAILED: 401002,
62
65
  INVALID_PAYMENT_CHANNEL: 400008,
63
66
  MISSING_SIGN_IN_ENTITY: 400009,
67
+ /** Reserved: no 2.0 service produces it; never reuse or renumber. */
64
68
  MISSING_SUBSCRIPTION_USER_ENTITY: 400010,
65
69
  NOT_FOUND: 404e3,
66
70
  NOT_SUBSCRIBED: 403002,
@@ -194,6 +198,7 @@ var PERMISSION = {
194
198
  VERSION_LOG_READ: "version-log:read",
195
199
  VERSION_LOG_UPDATE: "version-log:update"
196
200
  };
201
+ var ALL_PERMISSION_KEY = "all:all";
197
202
 
198
203
  // src/subscription-feature.enum.ts
199
204
  var SUBSCRIPTION_FEATURE = {
@@ -203,6 +208,7 @@ var SUBSCRIPTION_FEATURE = {
203
208
  };
204
209
  // Annotate the CommonJS export names for ESM import in node:
205
210
  0 && (module.exports = {
211
+ ALL_PERMISSION_KEY,
206
212
  DEFAULT_PAGE_SIZE,
207
213
  EMAIL_TEMPLATE,
208
214
  HTTP_EXCEPTION_CODE,
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,6 +26,7 @@ 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,
@@ -157,6 +160,7 @@ var PERMISSION = {
157
160
  VERSION_LOG_READ: "version-log:read",
158
161
  VERSION_LOG_UPDATE: "version-log:update"
159
162
  };
163
+ var ALL_PERMISSION_KEY = "all:all";
160
164
 
161
165
  // src/subscription-feature.enum.ts
162
166
  var SUBSCRIPTION_FEATURE = {
@@ -165,6 +169,7 @@ var SUBSCRIPTION_FEATURE = {
165
169
  TAG_CLOUD_SYNC: "bookmark:tag_cloud_sync"
166
170
  };
167
171
  export {
172
+ ALL_PERMISSION_KEY,
168
173
  DEFAULT_PAGE_SIZE,
169
174
  EMAIL_TEMPLATE,
170
175
  HTTP_EXCEPTION_CODE,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bearei/contracts",
3
- "version": "3.2.0",
3
+ "version": "3.3.0",
4
4
  "description": "Framework-agnostic wire contracts shared by Bearei services, clients and apps",
5
5
  "keywords": [
6
6
  "bearei",