evo360-types 1.3.656 → 1.3.659

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.
@@ -0,0 +1,364 @@
1
+ {
2
+ "version": 1,
3
+ "description": "Golden de paridade de isModuleActive/hasModuleCapability (evo360-types, feat-263). Toda implementação (backend, web-app, Flutter) deve dar o mesmo resultado para cada caso, avaliado com `now`. capability_checks: capability -> esperado de hasModuleCapability (independe de estar ativo).",
4
+ "now": "2026-10-06T12:00:00.000Z",
5
+ "cases": [
6
+ {
7
+ "name": "ausente (null)",
8
+ "entitlement": null,
9
+ "expect_active": false
10
+ },
11
+ {
12
+ "name": "active + enabled, sem datas",
13
+ "entitlement": {
14
+ "status": "active",
15
+ "enabled": true,
16
+ "source": "contract",
17
+ "version": 1,
18
+ "updated_at": "2026-10-01T00:00:00.000Z",
19
+ "capabilities": {
20
+ "recording": true,
21
+ "transcription": false,
22
+ "auto_admit": true
23
+ }
24
+ },
25
+ "expect_active": true,
26
+ "capability_checks": {
27
+ "recording": true,
28
+ "transcription": false,
29
+ "auto_admit": true,
30
+ "inexistente": false
31
+ }
32
+ },
33
+ {
34
+ "name": "enabled=false",
35
+ "entitlement": {
36
+ "status": "active",
37
+ "enabled": false,
38
+ "source": "contract",
39
+ "version": 1,
40
+ "updated_at": "2026-10-01T00:00:00.000Z"
41
+ },
42
+ "expect_active": false
43
+ },
44
+ {
45
+ "name": "enabled ausente",
46
+ "entitlement": {
47
+ "status": "active",
48
+ "source": "contract",
49
+ "version": 1,
50
+ "updated_at": "2026-10-01T00:00:00.000Z"
51
+ },
52
+ "expect_active": false
53
+ },
54
+ {
55
+ "name": "suspended",
56
+ "entitlement": {
57
+ "status": "suspended",
58
+ "enabled": true,
59
+ "source": "contract",
60
+ "version": 1,
61
+ "updated_at": "2026-10-01T00:00:00.000Z"
62
+ },
63
+ "expect_active": false
64
+ },
65
+ {
66
+ "name": "cancelled",
67
+ "entitlement": {
68
+ "status": "cancelled",
69
+ "enabled": true,
70
+ "source": "contract",
71
+ "version": 1,
72
+ "updated_at": "2026-10-01T00:00:00.000Z"
73
+ },
74
+ "expect_active": false
75
+ },
76
+ {
77
+ "name": "status desconhecido",
78
+ "entitlement": {
79
+ "status": "pending",
80
+ "enabled": true,
81
+ "source": "contract",
82
+ "version": 1,
83
+ "updated_at": "2026-10-01T00:00:00.000Z"
84
+ },
85
+ "expect_active": false
86
+ },
87
+ {
88
+ "name": "trial válido (expires ISO futuro)",
89
+ "entitlement": {
90
+ "status": "trial",
91
+ "enabled": true,
92
+ "source": "trial",
93
+ "version": 1,
94
+ "updated_at": "2026-10-01T00:00:00.000Z",
95
+ "expires_at": "2026-11-05T12:00:00.000Z"
96
+ },
97
+ "expect_active": true
98
+ },
99
+ {
100
+ "name": "trial vencido (expires ISO passado)",
101
+ "entitlement": {
102
+ "status": "trial",
103
+ "enabled": true,
104
+ "source": "trial",
105
+ "version": 1,
106
+ "updated_at": "2026-10-01T00:00:00.000Z",
107
+ "expires_at": "2026-09-06T12:00:00.000Z"
108
+ },
109
+ "expect_active": false
110
+ },
111
+ {
112
+ "name": "trial sem expires_at",
113
+ "entitlement": {
114
+ "status": "trial",
115
+ "enabled": true,
116
+ "source": "trial",
117
+ "version": 1,
118
+ "updated_at": "2026-10-01T00:00:00.000Z",
119
+ "expires_at": null
120
+ },
121
+ "expect_active": true
122
+ },
123
+ {
124
+ "name": "active com expires_at passado",
125
+ "entitlement": {
126
+ "status": "active",
127
+ "enabled": true,
128
+ "source": "contract",
129
+ "version": 1,
130
+ "updated_at": "2026-10-01T00:00:00.000Z",
131
+ "expires_at": "2026-09-06T12:00:00.000Z"
132
+ },
133
+ "expect_active": false
134
+ },
135
+ {
136
+ "name": "active com expires_at == now (vence no instante)",
137
+ "entitlement": {
138
+ "status": "active",
139
+ "enabled": true,
140
+ "source": "contract",
141
+ "version": 1,
142
+ "updated_at": "2026-10-01T00:00:00.000Z",
143
+ "expires_at": "2026-10-06T12:00:00.000Z"
144
+ },
145
+ "expect_active": false
146
+ },
147
+ {
148
+ "name": "effective_at futuro",
149
+ "entitlement": {
150
+ "status": "active",
151
+ "enabled": true,
152
+ "source": "contract",
153
+ "version": 1,
154
+ "updated_at": "2026-10-01T00:00:00.000Z",
155
+ "effective_at": "2026-11-05T12:00:00.000Z"
156
+ },
157
+ "expect_active": false
158
+ },
159
+ {
160
+ "name": "effective_at passado",
161
+ "entitlement": {
162
+ "status": "active",
163
+ "enabled": true,
164
+ "source": "contract",
165
+ "version": 1,
166
+ "updated_at": "2026-10-01T00:00:00.000Z",
167
+ "effective_at": "2026-09-06T12:00:00.000Z"
168
+ },
169
+ "expect_active": true
170
+ },
171
+ {
172
+ "name": "override futuro com override_by (cancelled)",
173
+ "entitlement": {
174
+ "status": "cancelled",
175
+ "enabled": false,
176
+ "source": "contract",
177
+ "version": 1,
178
+ "updated_at": "2026-10-01T00:00:00.000Z",
179
+ "override_until": "2026-11-05T12:00:00.000Z",
180
+ "override_by": "ops@hubmedica"
181
+ },
182
+ "expect_active": true
183
+ },
184
+ {
185
+ "name": "override futuro SEM override_by",
186
+ "entitlement": {
187
+ "status": "cancelled",
188
+ "enabled": false,
189
+ "source": "contract",
190
+ "version": 1,
191
+ "updated_at": "2026-10-01T00:00:00.000Z",
192
+ "override_until": "2026-11-05T12:00:00.000Z",
193
+ "override_by": null
194
+ },
195
+ "expect_active": false
196
+ },
197
+ {
198
+ "name": "override vencido com override_by",
199
+ "entitlement": {
200
+ "status": "suspended",
201
+ "enabled": true,
202
+ "source": "contract",
203
+ "version": 1,
204
+ "updated_at": "2026-10-01T00:00:00.000Z",
205
+ "override_until": "2026-09-06T12:00:00.000Z",
206
+ "override_by": "ops@hubmedica"
207
+ },
208
+ "expect_active": false
209
+ },
210
+ {
211
+ "name": "override futuro libera trial vencido",
212
+ "entitlement": {
213
+ "status": "trial",
214
+ "enabled": true,
215
+ "source": "contract",
216
+ "version": 1,
217
+ "updated_at": "2026-10-01T00:00:00.000Z",
218
+ "expires_at": "2026-09-06T12:00:00.000Z",
219
+ "override_until": "2026-11-05T12:00:00.000Z",
220
+ "override_by": "ops"
221
+ },
222
+ "expect_active": true
223
+ },
224
+ {
225
+ "name": "datas como epoch ms: expires futuro",
226
+ "entitlement": {
227
+ "status": "active",
228
+ "enabled": true,
229
+ "source": "contract",
230
+ "version": 1,
231
+ "updated_at": "2026-10-01T00:00:00.000Z",
232
+ "expires_at": 1793880000000
233
+ },
234
+ "expect_active": true
235
+ },
236
+ {
237
+ "name": "datas como epoch ms: expires passado",
238
+ "entitlement": {
239
+ "status": "active",
240
+ "enabled": true,
241
+ "source": "contract",
242
+ "version": 1,
243
+ "updated_at": "2026-10-01T00:00:00.000Z",
244
+ "expires_at": 1788696000000
245
+ },
246
+ "expect_active": false
247
+ },
248
+ {
249
+ "name": "datas como Timestamp serializado {_seconds}: expires passado",
250
+ "entitlement": {
251
+ "status": "active",
252
+ "enabled": true,
253
+ "source": "contract",
254
+ "version": 1,
255
+ "updated_at": "2026-10-01T00:00:00.000Z",
256
+ "expires_at": {
257
+ "_seconds": 1788696000,
258
+ "_nanoseconds": 0
259
+ }
260
+ },
261
+ "expect_active": false
262
+ },
263
+ {
264
+ "name": "datas como Timestamp serializado {seconds}: expires futuro",
265
+ "entitlement": {
266
+ "status": "active",
267
+ "enabled": true,
268
+ "source": "contract",
269
+ "version": 1,
270
+ "updated_at": "2026-10-01T00:00:00.000Z",
271
+ "expires_at": {
272
+ "seconds": 1793880000,
273
+ "nanoseconds": 0
274
+ }
275
+ },
276
+ "expect_active": true
277
+ },
278
+ {
279
+ "name": "datas como Timestamp serializado: override futuro",
280
+ "entitlement": {
281
+ "status": "cancelled",
282
+ "enabled": true,
283
+ "source": "contract",
284
+ "version": 1,
285
+ "updated_at": "2026-10-01T00:00:00.000Z",
286
+ "override_until": {
287
+ "_seconds": 1793880000,
288
+ "_nanoseconds": 0
289
+ },
290
+ "override_by": "ops"
291
+ },
292
+ "expect_active": true
293
+ },
294
+ {
295
+ "name": "data inválida equivale a ausente",
296
+ "entitlement": {
297
+ "status": "active",
298
+ "enabled": true,
299
+ "source": "contract",
300
+ "version": 1,
301
+ "updated_at": "2026-10-01T00:00:00.000Z",
302
+ "expires_at": "not-a-date"
303
+ },
304
+ "expect_active": true
305
+ },
306
+ {
307
+ "name": "capabilities: só o booleano true conta",
308
+ "entitlement": {
309
+ "status": "active",
310
+ "enabled": true,
311
+ "source": "contract",
312
+ "version": 1,
313
+ "updated_at": "2026-10-01T00:00:00.000Z",
314
+ "capabilities": {
315
+ "a": true,
316
+ "b": "true",
317
+ "c": 1,
318
+ "d": false,
319
+ "e": 0
320
+ }
321
+ },
322
+ "expect_active": true,
323
+ "capability_checks": {
324
+ "a": true,
325
+ "b": false,
326
+ "c": false,
327
+ "d": false,
328
+ "e": false,
329
+ "ausente": false
330
+ }
331
+ },
332
+ {
333
+ "name": "capabilities ausentes",
334
+ "entitlement": {
335
+ "status": "active",
336
+ "enabled": true,
337
+ "source": "contract",
338
+ "version": 1,
339
+ "updated_at": "2026-10-01T00:00:00.000Z"
340
+ },
341
+ "expect_active": true,
342
+ "capability_checks": {
343
+ "recording": false
344
+ }
345
+ },
346
+ {
347
+ "name": "capability true com módulo inativo continua true (não implica ativo)",
348
+ "entitlement": {
349
+ "status": "active",
350
+ "enabled": false,
351
+ "source": "contract",
352
+ "version": 1,
353
+ "updated_at": "2026-10-01T00:00:00.000Z",
354
+ "capabilities": {
355
+ "recording": true
356
+ }
357
+ },
358
+ "expect_active": false,
359
+ "capability_checks": {
360
+ "recording": true
361
+ }
362
+ }
363
+ ]
364
+ }
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "evo360-types",
3
- "version": "1.3.656",
3
+ "version": "1.3.659",
4
4
  "description": "HREVO360 Shared Types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "files": [
8
- "dist"
8
+ "dist",
9
+ "fixtures"
9
10
  ],
10
11
  "scripts": {
11
12
  "prebuild": "node scripts/bump-version.cjs",
@@ -17,7 +18,8 @@
17
18
  "bump:minor": "node scripts/bump-version.cjs minor",
18
19
  "bump:major": "node scripts/bump-version.cjs major",
19
20
  "deploy": "bash scripts/deploy.sh",
20
- "push-tags": "bash scripts/push-tags.sh"
21
+ "push-tags": "bash scripts/push-tags.sh",
22
+ "test": "vitest run"
21
23
  },
22
24
  "homepage": "https://www.hubmedica.com.br",
23
25
  "repository": {
@@ -34,6 +36,7 @@
34
36
  "copyfiles": "^2.4.1",
35
37
  "rimraf": "^6.0.1",
36
38
  "semver": "^7.7.2",
37
- "typescript": "~5.8.3"
39
+ "typescript": "~5.8.3",
40
+ "vitest": "^4.1.11"
38
41
  }
39
42
  }