pi-kiosk-shared 2.3.30 → 2.3.31

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.
Files changed (41) hide show
  1. package/dist/auditEventCodes.d.ts +8 -1
  2. package/dist/auditEventCodes.d.ts.map +1 -1
  3. package/dist/auditEventCodes.js +14 -0
  4. package/dist/auditEventCodes.js.map +1 -1
  5. package/dist/auditEventDescriptions.d.ts.map +1 -1
  6. package/dist/auditEventDescriptions.js +10 -0
  7. package/dist/auditEventDescriptions.js.map +1 -1
  8. package/dist/auditEventLabels.d.ts.map +1 -1
  9. package/dist/auditEventLabels.js +10 -0
  10. package/dist/auditEventLabels.js.map +1 -1
  11. package/dist/auditMetadataDisplayFields.d.ts.map +1 -1
  12. package/dist/auditMetadataDisplayFields.js +5 -0
  13. package/dist/auditMetadataDisplayFields.js.map +1 -1
  14. package/dist/index.d.ts +3 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/permissions/templateDualKeyMap.d.ts +32 -0
  19. package/dist/permissions/templateDualKeyMap.d.ts.map +1 -0
  20. package/dist/permissions/templateDualKeyMap.js +118 -0
  21. package/dist/permissions/templateDualKeyMap.js.map +1 -0
  22. package/dist/sales-point/salesPointPublicConfig.d.ts +6 -1
  23. package/dist/sales-point/salesPointPublicConfig.d.ts.map +1 -1
  24. package/dist/sales-point/salesPointPublicConfig.js +6 -9
  25. package/dist/sales-point/salesPointPublicConfig.js.map +1 -1
  26. package/dist/tenant-entitlements/catalog.d.ts +1 -1
  27. package/dist/tenant-entitlements/index.d.ts +4 -0
  28. package/dist/tenant-entitlements/index.d.ts.map +1 -1
  29. package/dist/tenant-entitlements/index.js +2 -0
  30. package/dist/tenant-entitlements/index.js.map +1 -1
  31. package/dist/tenant-entitlements/productCapabilityMap.d.ts +54 -0
  32. package/dist/tenant-entitlements/productCapabilityMap.d.ts.map +1 -0
  33. package/dist/tenant-entitlements/productCapabilityMap.js +101 -0
  34. package/dist/tenant-entitlements/productCapabilityMap.js.map +1 -0
  35. package/dist/tenant-entitlements/productCapabilityReadiness.d.ts +248 -0
  36. package/dist/tenant-entitlements/productCapabilityReadiness.d.ts.map +1 -0
  37. package/dist/tenant-entitlements/productCapabilityReadiness.js +295 -0
  38. package/dist/tenant-entitlements/productCapabilityReadiness.js.map +1 -0
  39. package/dist/tenant-entitlements/types.d.ts +1 -1
  40. package/dist/tenant-entitlements/types.js +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,248 @@
1
+ /**
2
+ * Product-capability readiness (FR-03 / I-01).
3
+ *
4
+ * Catalog is 50 entitlement blocks at catalogVersion 10.
5
+ * SIMPLE on/softOffVisible/softOffHidden/off/hardOff collapse to READY vs NOT_READY.
6
+ * Declared 15×4 grids are plan G8 production / test-mode (`explicitDevEnable`).
7
+ * CAP-15 Partner API is always NOT_READY (never-activate) on every surface.
8
+ *
9
+ * NEVER import admin-app or up-backend into this module.
10
+ */
11
+ import type { EntitlementBlockKey, SimpleEntitlementState } from './types.js';
12
+ import { type ProductCapabilityId } from './productCapabilityMap.js';
13
+ export type ProductCapabilityReadiness = 'READY' | 'NOT_READY';
14
+ export declare const PRODUCT_CAPABILITY_SURFACES: readonly ["admin_staff_ops", "kiosk_kiosk_device", "customer_mobile_shop", "pickup_staff_ops"];
15
+ export type ProductCapabilitySurface = (typeof PRODUCT_CAPABILITY_SURFACES)[number];
16
+ /** Short aliases matching G8 column order (admin / kiosk / customer / pickup). */
17
+ export declare const PRODUCT_READINESS_SURFACES: readonly ["admin", "kiosk", "customer", "pickup"];
18
+ export type ProductReadinessSurface = (typeof PRODUCT_READINESS_SURFACES)[number];
19
+ export type ProductReadinessMode = 'production' | 'test';
20
+ export declare const PRODUCT_CAPABILITY_GRID_CELLS: readonly ["READY", "PARTIAL", "TEST", "NOT_READY", "n_a"];
21
+ export type ProductCapabilityGridCell = (typeof PRODUCT_CAPABILITY_GRID_CELLS)[number];
22
+ export type ProductCapabilityReadinessState = ProductCapabilityGridCell;
23
+ export declare function normalizeProductCapabilitySurface(surface: ProductCapabilitySurface | ProductReadinessSurface): ProductCapabilitySurface;
24
+ /** Plan G8 production 15×4. */
25
+ export declare const PRODUCT_CAPABILITY_PRODUCTION_GRID: {
26
+ readonly 'CAP-01': {
27
+ readonly admin_staff_ops: "PARTIAL";
28
+ readonly kiosk_kiosk_device: "READY";
29
+ readonly customer_mobile_shop: "READY";
30
+ readonly pickup_staff_ops: "PARTIAL";
31
+ };
32
+ readonly 'CAP-02': {
33
+ readonly admin_staff_ops: "PARTIAL";
34
+ readonly kiosk_kiosk_device: "PARTIAL";
35
+ readonly customer_mobile_shop: "PARTIAL";
36
+ readonly pickup_staff_ops: "n_a";
37
+ };
38
+ readonly 'CAP-03': {
39
+ readonly admin_staff_ops: "READY";
40
+ readonly kiosk_kiosk_device: "n_a";
41
+ readonly customer_mobile_shop: "READY";
42
+ readonly pickup_staff_ops: "n_a";
43
+ };
44
+ readonly 'CAP-04': {
45
+ readonly admin_staff_ops: "READY";
46
+ readonly kiosk_kiosk_device: "READY";
47
+ readonly customer_mobile_shop: "READY";
48
+ readonly pickup_staff_ops: "n_a";
49
+ };
50
+ readonly 'CAP-05': {
51
+ readonly admin_staff_ops: "READY";
52
+ readonly kiosk_kiosk_device: "READY";
53
+ readonly customer_mobile_shop: "READY";
54
+ readonly pickup_staff_ops: "n_a";
55
+ };
56
+ readonly 'CAP-06': {
57
+ readonly admin_staff_ops: "PARTIAL";
58
+ readonly kiosk_kiosk_device: "n_a";
59
+ readonly customer_mobile_shop: "n_a";
60
+ readonly pickup_staff_ops: "PARTIAL";
61
+ };
62
+ readonly 'CAP-07': {
63
+ readonly admin_staff_ops: "READY";
64
+ readonly kiosk_kiosk_device: "NOT_READY";
65
+ readonly customer_mobile_shop: "NOT_READY";
66
+ readonly pickup_staff_ops: "NOT_READY";
67
+ };
68
+ readonly 'CAP-08': {
69
+ readonly admin_staff_ops: "PARTIAL";
70
+ readonly kiosk_kiosk_device: "PARTIAL";
71
+ readonly customer_mobile_shop: "PARTIAL";
72
+ readonly pickup_staff_ops: "n_a";
73
+ };
74
+ readonly 'CAP-09': {
75
+ readonly admin_staff_ops: "PARTIAL";
76
+ readonly kiosk_kiosk_device: "n_a";
77
+ readonly customer_mobile_shop: "n_a";
78
+ readonly pickup_staff_ops: "n_a";
79
+ };
80
+ readonly 'CAP-10': {
81
+ readonly admin_staff_ops: "TEST";
82
+ readonly kiosk_kiosk_device: "n_a";
83
+ readonly customer_mobile_shop: "TEST";
84
+ readonly pickup_staff_ops: "n_a";
85
+ };
86
+ readonly 'CAP-11': {
87
+ readonly admin_staff_ops: "READY";
88
+ readonly kiosk_kiosk_device: "n_a";
89
+ readonly customer_mobile_shop: "n_a";
90
+ readonly pickup_staff_ops: "n_a";
91
+ };
92
+ readonly 'CAP-12': {
93
+ readonly admin_staff_ops: "PARTIAL";
94
+ readonly kiosk_kiosk_device: "n_a";
95
+ readonly customer_mobile_shop: "n_a";
96
+ readonly pickup_staff_ops: "n_a";
97
+ };
98
+ readonly 'CAP-13': {
99
+ readonly admin_staff_ops: "READY";
100
+ readonly kiosk_kiosk_device: "READY";
101
+ readonly customer_mobile_shop: "READY";
102
+ readonly pickup_staff_ops: "READY";
103
+ };
104
+ readonly 'CAP-14': {
105
+ readonly admin_staff_ops: "PARTIAL";
106
+ readonly kiosk_kiosk_device: "PARTIAL";
107
+ readonly customer_mobile_shop: "PARTIAL";
108
+ readonly pickup_staff_ops: "PARTIAL";
109
+ };
110
+ readonly 'CAP-15': {
111
+ readonly admin_staff_ops: "NOT_READY";
112
+ readonly kiosk_kiosk_device: "NOT_READY";
113
+ readonly customer_mobile_shop: "NOT_READY";
114
+ readonly pickup_staff_ops: "NOT_READY";
115
+ };
116
+ };
117
+ /** Plan G8 test-mode 15×4 (`explicitDevEnable`). */
118
+ export declare const PRODUCT_CAPABILITY_TEST_MODE_GRID: {
119
+ readonly 'CAP-01': {
120
+ readonly admin_staff_ops: "PARTIAL";
121
+ readonly kiosk_kiosk_device: "READY";
122
+ readonly customer_mobile_shop: "READY";
123
+ readonly pickup_staff_ops: "PARTIAL";
124
+ };
125
+ readonly 'CAP-02': {
126
+ readonly admin_staff_ops: "PARTIAL";
127
+ readonly kiosk_kiosk_device: "PARTIAL";
128
+ readonly customer_mobile_shop: "PARTIAL";
129
+ readonly pickup_staff_ops: "n_a";
130
+ };
131
+ readonly 'CAP-03': {
132
+ readonly admin_staff_ops: "READY";
133
+ readonly kiosk_kiosk_device: "n_a";
134
+ readonly customer_mobile_shop: "READY";
135
+ readonly pickup_staff_ops: "n_a";
136
+ };
137
+ readonly 'CAP-04': {
138
+ readonly admin_staff_ops: "READY";
139
+ readonly kiosk_kiosk_device: "READY";
140
+ readonly customer_mobile_shop: "READY";
141
+ readonly pickup_staff_ops: "n_a";
142
+ };
143
+ readonly 'CAP-05': {
144
+ readonly admin_staff_ops: "READY";
145
+ readonly kiosk_kiosk_device: "READY";
146
+ readonly customer_mobile_shop: "TEST";
147
+ readonly pickup_staff_ops: "n_a";
148
+ };
149
+ readonly 'CAP-06': {
150
+ readonly admin_staff_ops: "PARTIAL";
151
+ readonly kiosk_kiosk_device: "n_a";
152
+ readonly customer_mobile_shop: "n_a";
153
+ readonly pickup_staff_ops: "PARTIAL";
154
+ };
155
+ readonly 'CAP-07': {
156
+ readonly admin_staff_ops: "READY";
157
+ readonly kiosk_kiosk_device: "NOT_READY";
158
+ readonly customer_mobile_shop: "NOT_READY";
159
+ readonly pickup_staff_ops: "NOT_READY";
160
+ };
161
+ readonly 'CAP-08': {
162
+ readonly admin_staff_ops: "TEST";
163
+ readonly kiosk_kiosk_device: "TEST";
164
+ readonly customer_mobile_shop: "TEST";
165
+ readonly pickup_staff_ops: "n_a";
166
+ };
167
+ readonly 'CAP-09': {
168
+ readonly admin_staff_ops: "PARTIAL";
169
+ readonly kiosk_kiosk_device: "n_a";
170
+ readonly customer_mobile_shop: "n_a";
171
+ readonly pickup_staff_ops: "n_a";
172
+ };
173
+ readonly 'CAP-10': {
174
+ readonly admin_staff_ops: "TEST";
175
+ readonly kiosk_kiosk_device: "n_a";
176
+ readonly customer_mobile_shop: "TEST";
177
+ readonly pickup_staff_ops: "n_a";
178
+ };
179
+ readonly 'CAP-11': {
180
+ readonly admin_staff_ops: "READY";
181
+ readonly kiosk_kiosk_device: "n_a";
182
+ readonly customer_mobile_shop: "n_a";
183
+ readonly pickup_staff_ops: "n_a";
184
+ };
185
+ readonly 'CAP-12': {
186
+ readonly admin_staff_ops: "TEST";
187
+ readonly kiosk_kiosk_device: "n_a";
188
+ readonly customer_mobile_shop: "n_a";
189
+ readonly pickup_staff_ops: "n_a";
190
+ };
191
+ readonly 'CAP-13': {
192
+ readonly admin_staff_ops: "READY";
193
+ readonly kiosk_kiosk_device: "READY";
194
+ readonly customer_mobile_shop: "READY";
195
+ readonly pickup_staff_ops: "READY";
196
+ };
197
+ readonly 'CAP-14': {
198
+ readonly admin_staff_ops: "PARTIAL";
199
+ readonly kiosk_kiosk_device: "PARTIAL";
200
+ readonly customer_mobile_shop: "PARTIAL";
201
+ readonly pickup_staff_ops: "PARTIAL";
202
+ };
203
+ readonly 'CAP-15': {
204
+ readonly admin_staff_ops: "NOT_READY";
205
+ readonly kiosk_kiosk_device: "NOT_READY";
206
+ readonly customer_mobile_shop: "NOT_READY";
207
+ readonly pickup_staff_ops: "NOT_READY";
208
+ };
209
+ };
210
+ export declare function simpleEntitlementStateToProductReadiness(state: SimpleEntitlementState): ProductCapabilityReadiness;
211
+ export declare function collapseProductCapabilityGridCell(cell: ProductCapabilityGridCell, options?: {
212
+ readonly explicitDevEnable?: boolean;
213
+ }): ProductCapabilityReadiness;
214
+ export declare function resolveProductReadinessMode(explicitDevEnable: boolean | undefined): ProductReadinessMode;
215
+ export declare function getDeclaredProductCapabilityGridCell(capabilityId: ProductCapabilityId, surface: ProductCapabilitySurface | ProductReadinessSurface, options?: {
216
+ readonly explicitDevEnable?: boolean;
217
+ readonly mode?: ProductReadinessMode;
218
+ }): ProductCapabilityGridCell;
219
+ export declare function declaredProductCapabilityReadiness(capabilityId: ProductCapabilityId, surface: ProductCapabilitySurface | ProductReadinessSurface, options?: {
220
+ readonly explicitDevEnable?: boolean;
221
+ readonly mode?: ProductReadinessMode;
222
+ }): ProductCapabilityReadiness;
223
+ export type EvaluateProductCapabilityReadinessInput = {
224
+ readonly capabilityId: ProductCapabilityId;
225
+ readonly surface: ProductCapabilitySurface | ProductReadinessSurface;
226
+ readonly explicitDevEnable?: boolean;
227
+ readonly mode?: ProductReadinessMode;
228
+ readonly simpleStates?: Partial<Record<EntitlementBlockKey, SimpleEntitlementState>>;
229
+ };
230
+ /**
231
+ * Declared G8 grid (production vs test-mode) AND optional SIMPLE `on` for every
232
+ * mapped block. CAP-15 is NOT_READY even when SIMPLE is `on` and test-mode is on.
233
+ */
234
+ export declare function evaluateProductCapabilityReadiness(input: EvaluateProductCapabilityReadinessInput): ProductCapabilityReadiness;
235
+ export declare function isPartnerApiNeverActivate(capabilityId: ProductCapabilityId): boolean;
236
+ export declare function getProductCapabilityReadiness(input: {
237
+ readonly capabilityId: ProductCapabilityId;
238
+ readonly surface: ProductCapabilitySurface | ProductReadinessSurface;
239
+ readonly mode?: ProductReadinessMode;
240
+ readonly explicitDevEnable?: boolean;
241
+ }): ProductCapabilityReadinessState;
242
+ export declare function isProductCapabilityActivable(input: {
243
+ readonly capabilityId: ProductCapabilityId;
244
+ readonly surface: ProductCapabilitySurface | ProductReadinessSurface;
245
+ readonly mode?: ProductReadinessMode;
246
+ readonly explicitDevEnable?: boolean;
247
+ }): boolean;
248
+ //# sourceMappingURL=productCapabilityReadiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"productCapabilityReadiness.d.ts","sourceRoot":"","sources":["../../src/tenant-entitlements/productCapabilityReadiness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,295 @@
1
+ import { entitlementBlockKeysForProductCapability, isNeverActivateProductCapability, } from './productCapabilityMap.js';
2
+ export const PRODUCT_CAPABILITY_SURFACES = [
3
+ 'admin_staff_ops',
4
+ 'kiosk_kiosk_device',
5
+ 'customer_mobile_shop',
6
+ 'pickup_staff_ops',
7
+ ];
8
+ /** Short aliases matching G8 column order (admin / kiosk / customer / pickup). */
9
+ export const PRODUCT_READINESS_SURFACES = ['admin', 'kiosk', 'customer', 'pickup'];
10
+ export const PRODUCT_CAPABILITY_GRID_CELLS = [
11
+ 'READY',
12
+ 'PARTIAL',
13
+ 'TEST',
14
+ 'NOT_READY',
15
+ 'n_a',
16
+ ];
17
+ const SHORT_TO_PLAN_SURFACE = {
18
+ admin: 'admin_staff_ops',
19
+ kiosk: 'kiosk_kiosk_device',
20
+ customer: 'customer_mobile_shop',
21
+ pickup: 'pickup_staff_ops',
22
+ };
23
+ export function normalizeProductCapabilitySurface(surface) {
24
+ if (surface === 'admin' || surface === 'kiosk' || surface === 'customer' || surface === 'pickup') {
25
+ return SHORT_TO_PLAN_SURFACE[surface];
26
+ }
27
+ return surface;
28
+ }
29
+ /** Plan G8 production 15×4. */
30
+ export const PRODUCT_CAPABILITY_PRODUCTION_GRID = {
31
+ 'CAP-01': {
32
+ admin_staff_ops: 'PARTIAL',
33
+ kiosk_kiosk_device: 'READY',
34
+ customer_mobile_shop: 'READY',
35
+ pickup_staff_ops: 'PARTIAL',
36
+ },
37
+ 'CAP-02': {
38
+ admin_staff_ops: 'PARTIAL',
39
+ kiosk_kiosk_device: 'PARTIAL',
40
+ customer_mobile_shop: 'PARTIAL',
41
+ pickup_staff_ops: 'n_a',
42
+ },
43
+ 'CAP-03': {
44
+ admin_staff_ops: 'READY',
45
+ kiosk_kiosk_device: 'n_a',
46
+ customer_mobile_shop: 'READY',
47
+ pickup_staff_ops: 'n_a',
48
+ },
49
+ 'CAP-04': {
50
+ admin_staff_ops: 'READY',
51
+ kiosk_kiosk_device: 'READY',
52
+ customer_mobile_shop: 'READY',
53
+ pickup_staff_ops: 'n_a',
54
+ },
55
+ 'CAP-05': {
56
+ admin_staff_ops: 'READY',
57
+ kiosk_kiosk_device: 'READY',
58
+ customer_mobile_shop: 'READY',
59
+ pickup_staff_ops: 'n_a',
60
+ },
61
+ 'CAP-06': {
62
+ admin_staff_ops: 'PARTIAL',
63
+ kiosk_kiosk_device: 'n_a',
64
+ customer_mobile_shop: 'n_a',
65
+ pickup_staff_ops: 'PARTIAL',
66
+ },
67
+ 'CAP-07': {
68
+ admin_staff_ops: 'READY',
69
+ kiosk_kiosk_device: 'NOT_READY',
70
+ customer_mobile_shop: 'NOT_READY',
71
+ pickup_staff_ops: 'NOT_READY',
72
+ },
73
+ 'CAP-08': {
74
+ admin_staff_ops: 'PARTIAL',
75
+ kiosk_kiosk_device: 'PARTIAL',
76
+ customer_mobile_shop: 'PARTIAL',
77
+ pickup_staff_ops: 'n_a',
78
+ },
79
+ 'CAP-09': {
80
+ admin_staff_ops: 'PARTIAL',
81
+ kiosk_kiosk_device: 'n_a',
82
+ customer_mobile_shop: 'n_a',
83
+ pickup_staff_ops: 'n_a',
84
+ },
85
+ 'CAP-10': {
86
+ admin_staff_ops: 'TEST',
87
+ kiosk_kiosk_device: 'n_a',
88
+ customer_mobile_shop: 'TEST',
89
+ pickup_staff_ops: 'n_a',
90
+ },
91
+ 'CAP-11': {
92
+ admin_staff_ops: 'READY',
93
+ kiosk_kiosk_device: 'n_a',
94
+ customer_mobile_shop: 'n_a',
95
+ pickup_staff_ops: 'n_a',
96
+ },
97
+ 'CAP-12': {
98
+ admin_staff_ops: 'PARTIAL',
99
+ kiosk_kiosk_device: 'n_a',
100
+ customer_mobile_shop: 'n_a',
101
+ pickup_staff_ops: 'n_a',
102
+ },
103
+ 'CAP-13': {
104
+ admin_staff_ops: 'READY',
105
+ kiosk_kiosk_device: 'READY',
106
+ customer_mobile_shop: 'READY',
107
+ pickup_staff_ops: 'READY',
108
+ },
109
+ 'CAP-14': {
110
+ admin_staff_ops: 'PARTIAL',
111
+ kiosk_kiosk_device: 'PARTIAL',
112
+ customer_mobile_shop: 'PARTIAL',
113
+ pickup_staff_ops: 'PARTIAL',
114
+ },
115
+ 'CAP-15': {
116
+ admin_staff_ops: 'NOT_READY',
117
+ kiosk_kiosk_device: 'NOT_READY',
118
+ customer_mobile_shop: 'NOT_READY',
119
+ pickup_staff_ops: 'NOT_READY',
120
+ },
121
+ };
122
+ /** Plan G8 test-mode 15×4 (`explicitDevEnable`). */
123
+ export const PRODUCT_CAPABILITY_TEST_MODE_GRID = {
124
+ 'CAP-01': {
125
+ admin_staff_ops: 'PARTIAL',
126
+ kiosk_kiosk_device: 'READY',
127
+ customer_mobile_shop: 'READY',
128
+ pickup_staff_ops: 'PARTIAL',
129
+ },
130
+ 'CAP-02': {
131
+ admin_staff_ops: 'PARTIAL',
132
+ kiosk_kiosk_device: 'PARTIAL',
133
+ customer_mobile_shop: 'PARTIAL',
134
+ pickup_staff_ops: 'n_a',
135
+ },
136
+ 'CAP-03': {
137
+ admin_staff_ops: 'READY',
138
+ kiosk_kiosk_device: 'n_a',
139
+ customer_mobile_shop: 'READY',
140
+ pickup_staff_ops: 'n_a',
141
+ },
142
+ 'CAP-04': {
143
+ admin_staff_ops: 'READY',
144
+ kiosk_kiosk_device: 'READY',
145
+ customer_mobile_shop: 'READY',
146
+ pickup_staff_ops: 'n_a',
147
+ },
148
+ 'CAP-05': {
149
+ admin_staff_ops: 'READY',
150
+ kiosk_kiosk_device: 'READY',
151
+ customer_mobile_shop: 'TEST',
152
+ pickup_staff_ops: 'n_a',
153
+ },
154
+ 'CAP-06': {
155
+ admin_staff_ops: 'PARTIAL',
156
+ kiosk_kiosk_device: 'n_a',
157
+ customer_mobile_shop: 'n_a',
158
+ pickup_staff_ops: 'PARTIAL',
159
+ },
160
+ 'CAP-07': {
161
+ admin_staff_ops: 'READY',
162
+ kiosk_kiosk_device: 'NOT_READY',
163
+ customer_mobile_shop: 'NOT_READY',
164
+ pickup_staff_ops: 'NOT_READY',
165
+ },
166
+ 'CAP-08': {
167
+ admin_staff_ops: 'TEST',
168
+ kiosk_kiosk_device: 'TEST',
169
+ customer_mobile_shop: 'TEST',
170
+ pickup_staff_ops: 'n_a',
171
+ },
172
+ 'CAP-09': {
173
+ admin_staff_ops: 'PARTIAL',
174
+ kiosk_kiosk_device: 'n_a',
175
+ customer_mobile_shop: 'n_a',
176
+ pickup_staff_ops: 'n_a',
177
+ },
178
+ 'CAP-10': {
179
+ admin_staff_ops: 'TEST',
180
+ kiosk_kiosk_device: 'n_a',
181
+ customer_mobile_shop: 'TEST',
182
+ pickup_staff_ops: 'n_a',
183
+ },
184
+ 'CAP-11': {
185
+ admin_staff_ops: 'READY',
186
+ kiosk_kiosk_device: 'n_a',
187
+ customer_mobile_shop: 'n_a',
188
+ pickup_staff_ops: 'n_a',
189
+ },
190
+ 'CAP-12': {
191
+ admin_staff_ops: 'TEST',
192
+ kiosk_kiosk_device: 'n_a',
193
+ customer_mobile_shop: 'n_a',
194
+ pickup_staff_ops: 'n_a',
195
+ },
196
+ 'CAP-13': {
197
+ admin_staff_ops: 'READY',
198
+ kiosk_kiosk_device: 'READY',
199
+ customer_mobile_shop: 'READY',
200
+ pickup_staff_ops: 'READY',
201
+ },
202
+ 'CAP-14': {
203
+ admin_staff_ops: 'PARTIAL',
204
+ kiosk_kiosk_device: 'PARTIAL',
205
+ customer_mobile_shop: 'PARTIAL',
206
+ pickup_staff_ops: 'PARTIAL',
207
+ },
208
+ 'CAP-15': {
209
+ admin_staff_ops: 'NOT_READY',
210
+ kiosk_kiosk_device: 'NOT_READY',
211
+ customer_mobile_shop: 'NOT_READY',
212
+ pickup_staff_ops: 'NOT_READY',
213
+ },
214
+ };
215
+ export function simpleEntitlementStateToProductReadiness(state) {
216
+ return state === 'on' ? 'READY' : 'NOT_READY';
217
+ }
218
+ export function collapseProductCapabilityGridCell(cell, options) {
219
+ if (cell === 'READY') {
220
+ return 'READY';
221
+ }
222
+ if (cell === 'TEST' && options?.explicitDevEnable === true) {
223
+ return 'READY';
224
+ }
225
+ return 'NOT_READY';
226
+ }
227
+ export function resolveProductReadinessMode(explicitDevEnable) {
228
+ return explicitDevEnable === true ? 'test' : 'production';
229
+ }
230
+ export function getDeclaredProductCapabilityGridCell(capabilityId, surface, options) {
231
+ const mode = options?.mode ?? resolveProductReadinessMode(options?.explicitDevEnable);
232
+ const grid = mode === 'test' ? PRODUCT_CAPABILITY_TEST_MODE_GRID : PRODUCT_CAPABILITY_PRODUCTION_GRID;
233
+ return grid[capabilityId][normalizeProductCapabilitySurface(surface)];
234
+ }
235
+ export function declaredProductCapabilityReadiness(capabilityId, surface, options) {
236
+ if (isNeverActivateProductCapability(capabilityId)) {
237
+ return 'NOT_READY';
238
+ }
239
+ const explicitDevEnable = options?.explicitDevEnable === true || options?.mode === 'test';
240
+ return collapseProductCapabilityGridCell(getDeclaredProductCapabilityGridCell(capabilityId, surface, options), { explicitDevEnable });
241
+ }
242
+ function mappedBlocksAreSimpleOn(capabilityId, simpleStates) {
243
+ const blockKeys = entitlementBlockKeysForProductCapability(capabilityId);
244
+ if (blockKeys.length === 0) {
245
+ return false;
246
+ }
247
+ return blockKeys.every((blockKey) => simpleStates[blockKey] === 'on');
248
+ }
249
+ /**
250
+ * Declared G8 grid (production vs test-mode) AND optional SIMPLE `on` for every
251
+ * mapped block. CAP-15 is NOT_READY even when SIMPLE is `on` and test-mode is on.
252
+ */
253
+ export function evaluateProductCapabilityReadiness(input) {
254
+ if (isNeverActivateProductCapability(input.capabilityId)) {
255
+ return 'NOT_READY';
256
+ }
257
+ const declared = declaredProductCapabilityReadiness(input.capabilityId, input.surface, {
258
+ explicitDevEnable: input.explicitDevEnable,
259
+ mode: input.mode,
260
+ });
261
+ if (declared === 'NOT_READY') {
262
+ return 'NOT_READY';
263
+ }
264
+ if (input.simpleStates !== undefined && !mappedBlocksAreSimpleOn(input.capabilityId, input.simpleStates)) {
265
+ return 'NOT_READY';
266
+ }
267
+ return 'READY';
268
+ }
269
+ export function isPartnerApiNeverActivate(capabilityId) {
270
+ return isNeverActivateProductCapability(capabilityId);
271
+ }
272
+ export function getProductCapabilityReadiness(input) {
273
+ if (isNeverActivateProductCapability(input.capabilityId)) {
274
+ return 'NOT_READY';
275
+ }
276
+ return getDeclaredProductCapabilityGridCell(input.capabilityId, input.surface, {
277
+ mode: input.mode,
278
+ explicitDevEnable: input.explicitDevEnable,
279
+ });
280
+ }
281
+ export function isProductCapabilityActivable(input) {
282
+ if (isNeverActivateProductCapability(input.capabilityId)) {
283
+ return false;
284
+ }
285
+ const state = getProductCapabilityReadiness(input);
286
+ if (state === 'n_a' || state === 'NOT_READY') {
287
+ return false;
288
+ }
289
+ if (state === 'TEST') {
290
+ const mode = input.mode ?? resolveProductReadinessMode(input.explicitDevEnable);
291
+ return mode === 'test';
292
+ }
293
+ return state === 'READY' || state === 'PARTIAL';
294
+ }
295
+ //# sourceMappingURL=productCapabilityReadiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"productCapabilityReadiness.js","sourceRoot":"","sources":["../../src/tenant-entitlements/productCapabilityReadiness.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Tenant entitlement policy — shared axis types and strategy shapes (ENT-PR-00).
3
- * Authoritative block list lives in catalog.ts (§6.3, 49 blocks).
3
+ * Authoritative block list lives in catalog.ts (§6.3, 50 blocks).
4
4
  */
5
5
  export declare const ENTITLEMENT_RUNTIME_MODES: readonly ["ALWAYS_ON", "ENABLED", "DISABLED"];
6
6
  export type EntitlementRuntimeMode = (typeof ENTITLEMENT_RUNTIME_MODES)[number];
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Tenant entitlement policy — shared axis types and strategy shapes (ENT-PR-00).
3
- * Authoritative block list lives in catalog.ts (§6.3, 49 blocks).
3
+ * Authoritative block list lives in catalog.ts (§6.3, 50 blocks).
4
4
  */
5
5
  export const ENTITLEMENT_RUNTIME_MODES = ['ALWAYS_ON', 'ENABLED', 'DISABLED'];
6
6
  export const ENTITLEMENT_VISIBILITY_MODES = ['VISIBLE', 'HIDDEN'];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-kiosk-shared",
3
- "version": "2.3.30",
3
+ "version": "2.3.31",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "description": "Shared types, API contracts, and error classes for Pi Kiosk system",