@tbox.cn/app-contracts-mall 0.1.1 → 0.9.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/README.md +16 -2
- package/dist/alipay-activity/cards.d.ts +305 -0
- package/dist/assembly.d.ts +54 -0
- package/dist/chunk-KIZD6FZ2.js +43 -0
- package/dist/deployment.d.ts +42 -0
- package/dist/domain/activity.d.ts +64 -0
- package/dist/domain/coupon.d.ts +2 -0
- package/dist/domain/entitlement.d.ts +53 -0
- package/dist/domain/offer.d.ts +111 -0
- package/dist/domain/operation.d.ts +22 -0
- package/dist/domain/parking.d.ts +195 -12
- package/dist/domain/points.d.ts +3 -2
- package/dist/domain/shopping-guide.d.ts +201 -0
- package/dist/guard.d.ts +50 -0
- package/dist/index.d.ts +22 -2
- package/dist/member/cards.d.ts +940 -0
- package/dist/parking/cards.d.ts +1271 -0
- package/dist/promotion/cards.d.ts +2529 -0
- package/dist/query-context.d.ts +47 -0
- package/dist/runtime.d.ts +20 -0
- package/dist/runtime.js +1281 -0
- package/dist/scope.d.ts +76 -0
- package/dist/server/index.d.ts +11 -0
- package/dist/server/index.js +80 -0
- package/dist/server/mall-context.d.ts +24 -0
- package/dist/server/mall-control-plane.d.ts +8 -0
- package/dist/server/request-credentials.d.ts +22 -0
- package/dist/services/customer-service.d.ts +11 -0
- package/dist/services/mall-info.d.ts +26 -0
- package/dist/services/member.d.ts +243 -9
- package/dist/services/parking.d.ts +105 -12
- package/dist/services/promotion.d.ts +100 -4
- package/dist/services/shopping-guide.d.ts +97 -0
- package/dist/shared/cards.d.ts +42 -0
- package/dist/shopping-guide/cards.d.ts +7039 -0
- package/package.json +19 -8
- package/src/alipay-activity/cards.ts +66 -0
- package/src/assembly.ts +103 -0
- package/src/deployment.ts +44 -0
- package/src/domain/activity.ts +66 -0
- package/src/domain/coupon.ts +3 -0
- package/src/domain/entitlement.ts +56 -0
- package/src/domain/offer.ts +120 -0
- package/src/domain/operation.ts +40 -0
- package/src/domain/parking.ts +206 -12
- package/src/domain/points.ts +3 -2
- package/src/domain/shopping-guide.ts +242 -0
- package/src/guard.ts +48 -0
- package/src/index.ts +22 -2
- package/src/member/cards.ts +209 -0
- package/src/parking/cards.ts +233 -0
- package/src/promotion/cards.ts +290 -0
- package/src/query-context.ts +81 -0
- package/src/runtime.ts +41 -0
- package/src/scope.ts +92 -0
- package/src/server/index.ts +11 -0
- package/src/server/mall-context.ts +39 -0
- package/src/server/mall-control-plane.ts +56 -0
- package/src/server/request-credentials.ts +43 -0
- package/src/service-slots.json +23 -0
- package/src/services/customer-service.ts +12 -0
- package/src/services/mall-info.ts +31 -0
- package/src/services/member.ts +354 -9
- package/src/services/parking.ts +161 -11
- package/src/services/promotion.ts +124 -4
- package/src/services/shopping-guide.ts +138 -0
- package/src/shared/cards.ts +25 -0
- package/src/shopping-guide/cards.ts +438 -0
- package/tests/assembly-validate-scope.test.ts +132 -0
- package/tests/cards.test.ts +586 -0
- package/tests/context-unification.test.ts +73 -0
- package/tests/mall-control-plane.test.ts +86 -0
- package/tests/member-status.test.ts +197 -0
- package/tests/query-context.test.ts +111 -0
- package/tests/request-credentials.test.ts +38 -0
- package/tests/resolve-primitives.test.ts +55 -0
- package/tests/service-slots.test.ts +78 -0
- package/tsconfig.json +1 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mall 查询上下文组装单源(读/写/消费三层中的消费层 + query 写入口)。
|
|
3
|
+
*
|
|
4
|
+
* 原子 + 组合子分层:mallScopeOrEmpty / mallSubjectIdOf 为原子,toMallQueryContext 为
|
|
5
|
+
* 宽松组合子;strict 语义(member 域 throw / shopping-guide toShoppingQueryContext)
|
|
6
|
+
* 留在模块内,不在本文件。
|
|
7
|
+
*
|
|
8
|
+
* plazaId 边界(不可变约束):plazaId 归一是客户端 mall-scope-url 单点职责,
|
|
9
|
+
* 本文件只认 mallId 契约键,不接受别名(四道防护见 docs/plans/mall-scope-unification)。
|
|
10
|
+
*/
|
|
11
|
+
import type { RequestContext } from '@tbox.cn/app-contracts';
|
|
12
|
+
import type { MallScope } from './scope';
|
|
13
|
+
/** C 端查询上下文公共形状(三域 *QueryContext extends;未来新域直接继承) */
|
|
14
|
+
export interface MallQueryContext {
|
|
15
|
+
readonly scope: MallScope;
|
|
16
|
+
readonly subjectId?: string;
|
|
17
|
+
readonly requestContext: RequestContext;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 空 mall scope 兜底(demo/单实例部署:scope 缺席时以空 mallId 命中 mock 单实例)。
|
|
21
|
+
* 函数化而非共享常量——miss 返回新对象,免疫「调用方原地改写」共享引用事故。
|
|
22
|
+
*/
|
|
23
|
+
export declare function mallScopeOrEmpty(reqCtx: RequestContext): MallScope;
|
|
24
|
+
/**
|
|
25
|
+
* C 端主体归一(登录态 = source !== 'anonymous',与 mall-context.ts 定义同源)。
|
|
26
|
+
* 五模块 subjectId 判式三态分裂(!=='anonymous' / 无条件 / local‖external)的归一点。
|
|
27
|
+
*/
|
|
28
|
+
export declare function mallSubjectIdOf(reqCtx: RequestContext): string | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* GET 路由 mall scope 供给:query 部分形状 → attributes 注入(唯一写入口)。
|
|
31
|
+
*
|
|
32
|
+
* - mallId 非空 string(trim)才注入,覆盖既有 attributes.mall(与既有 spread 覆盖语义一致);
|
|
33
|
+
* - miniAppId = query 透传优先 → opts.miniAppId 兜底(模块路由 = 卡片 data 链回传;
|
|
34
|
+
* 模板路由 = 配置面 root config/malls 表——两种真实并存的真源策略);双缺 → 注入
|
|
35
|
+
* mallId-only(v4:miniAppId 可选——URL 明确携带 mallId 却落全局会话是与恒动态
|
|
36
|
+
* 语义矛盾的倒退;parseMallScope 对 mallId-only 恒成功,旧「注入了却 parse 不了」
|
|
37
|
+
* 中间态不复存在);
|
|
38
|
+
* - 只认 mallId 契约键;plazaId 归一是客户端 mall-scope-url 单点职责,本入口不接受别名;
|
|
39
|
+
* - 安全模型同登录面:无入口白名单,registry per-service scope 绑定兜底
|
|
40
|
+
* (伪造 mallId → resolveService 预期缺席 → 各域兜底/fail-loud);
|
|
41
|
+
* - query 结构型参数 Readonly<Record<string, unknown>> 不耦合 express(ParsedQs 结构兼容)。
|
|
42
|
+
*/
|
|
43
|
+
export declare function withMallScopeFromQuery(reqCtx: RequestContext, query: Readonly<Record<string, unknown>>, opts?: {
|
|
44
|
+
miniAppId?: string;
|
|
45
|
+
}): RequestContext;
|
|
46
|
+
/** 宽松组合子:空兜底 + 主体归一一键组装(零参数——无覆盖口) */
|
|
47
|
+
export declare function toMallQueryContext(reqCtx: RequestContext): MallQueryContext;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tbox.cn/app-contracts-mall runtime 入口(011 A5:types-only → types + runtime)。
|
|
3
|
+
* 本文件为唯一运行时 JS(经 tsup/esbuild 出 dist/runtime.js);
|
|
4
|
+
* 类型面仍经 tsc emitDeclarationOnly 出 dist/*.d.ts。
|
|
5
|
+
* 依赖方向:contracts-mall → contracts(TIER0);SDK 不 import 本包(011 B3)。
|
|
6
|
+
*/
|
|
7
|
+
export { MALL_SCOPE_KEY, mallScopeSchema, mallSlot, parseMallScope, extractMallScope, mallScopeOf, readLoginMallId } from './scope';
|
|
8
|
+
export { mallScopeOrEmpty, mallSubjectIdOf, withMallScopeFromQuery, toMallQueryContext } from './query-context';
|
|
9
|
+
export { createMallRuntimeAssembly, createMallContextValidator, AUTH_LOGIN_SERVICE } from './assembly';
|
|
10
|
+
export { MEMBER_ACCOUNT_SERVICE, MEMBER_PROFILE_SERVICE, MEMBER_CARD_SERVICE, MEMBER_BENEFITS_SERVICE, MEMBER_ENROLLMENT_SERVICE, classifyMemberOutcome, externalMemberRefOf, memberGateCardOf, resolveMemberGate, } from './services/member';
|
|
11
|
+
export { PARKING_QUERY_SERVICE, PARKING_PAYMENT_SERVICE, PARKING_VEHICLE_SERVICE } from './services/parking';
|
|
12
|
+
export { PROMOTION_OFFERS_SERVICE, PROMOTION_ENTITLEMENTS_SERVICE, PROMOTION_ACTIVITIES_SERVICE, PROMOTION_ACQUISITION_SERVICE, PROMOTION_ACTIVITY_ROUTING_POLICY, } from './services/promotion';
|
|
13
|
+
export { SHOPPING_CATALOG_SERVICE, SHOPPING_SHOPS_SERVICE, SHOPPING_CATEGORIES_SERVICE, SHOPPING_DIRECTORY_SERVICE, } from './services/shopping-guide';
|
|
14
|
+
export { MALL_INFO_SERVICE } from './services/mall-info';
|
|
15
|
+
export { mallLocationSchema, parseMallLocation, mallUserRefSchema, parseMallUserRef } from './guard';
|
|
16
|
+
export * from './shopping-guide/cards';
|
|
17
|
+
export * from './member/cards';
|
|
18
|
+
export * from './promotion/cards';
|
|
19
|
+
export * from './parking/cards';
|
|
20
|
+
export * from './shared/cards';
|