@mhome/app-facade-protocol 1.93.0 → 1.109.2

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 (34) hide show
  1. package/README.md +13 -1
  2. package/contract/automation-presentation-v1.md +76 -0
  3. package/contract/automation-v1.md +28 -0
  4. package/contract/client-space-focus-v1.md +26 -0
  5. package/contract/entity-presentation-v1.md +24 -1
  6. package/contract/integration-presentation-v1.md +1 -1
  7. package/contract/plugin-preview-v1.md +16 -0
  8. package/contract/reference-presentation-v1.md +35 -0
  9. package/contract/resource-read-v1.md +2 -2
  10. package/contract/space-presentation-v1.md +45 -0
  11. package/contract/storage-v1.md +3 -1
  12. package/contract/widget-presentation-v1.md +36 -0
  13. package/contract/widget-writes-v1.md +44 -0
  14. package/fixtures/authorization/decisions.json +96 -0
  15. package/fixtures/entity-presentation.conformance.json +216 -0
  16. package/fixtures/nfc.conformance.json +442 -0
  17. package/fixtures/presentation/cases.json +48 -50
  18. package/fixtures/reference-presentation.v1.json +5 -0
  19. package/fixtures/routing/cases.json +192 -0
  20. package/fixtures/widget-presentation.v1.json +96 -0
  21. package/manifest/app-facade.v1.json +87 -6
  22. package/manifest/authorization.v1.json +75 -99
  23. package/manifest/host-provision-targets.v1.json +1 -1
  24. package/manifest/hub-targets.v1.json +1 -1
  25. package/manifest/pod-targets.v1.json +1 -1
  26. package/manifest/presentation-times.v1.json +50 -1
  27. package/manifest/routing.v1.json +14 -4
  28. package/manifest/targets.v1.json +1 -1
  29. package/package.json +1 -1
  30. package/protocol.json +1 -1
  31. package/schema/automation-presentation.v1.schema.json +602 -0
  32. package/schema/automation.v1.schema.json +142 -0
  33. package/schema/entity-presentation.v1.schema.json +111 -0
  34. package/schema/routing.v1.schema.json +5 -1
@@ -50,5 +50,221 @@
50
50
  "twinAutomations": []
51
51
  }
52
52
  ]
53
+ },
54
+ "metaInput": {
55
+ "valid": [
56
+ {
57
+ "entityType": "basic.device.Device",
58
+ "ids": [
59
+ " lamp ",
60
+ "g:room",
61
+ "missing",
62
+ "lamp"
63
+ ]
64
+ },
65
+ {
66
+ "entityType": "basic.automation.Automation",
67
+ "ids": [
68
+ "auto-1"
69
+ ]
70
+ }
71
+ ],
72
+ "invalid": [
73
+ {},
74
+ {
75
+ "entityType": " ",
76
+ "ids": [
77
+ " lamp ",
78
+ "g:room",
79
+ "missing",
80
+ "lamp"
81
+ ]
82
+ },
83
+ {
84
+ "entityType": "basic.device.Device",
85
+ "ids": []
86
+ },
87
+ {
88
+ "entityType": "basic.device.Device",
89
+ "ids": [
90
+ ""
91
+ ]
92
+ },
93
+ {
94
+ "entityType": "basic.device.Device",
95
+ "ids": [
96
+ "lamp",
97
+ "lamp",
98
+ "lamp",
99
+ "lamp",
100
+ "lamp",
101
+ "lamp",
102
+ "lamp",
103
+ "lamp",
104
+ "lamp",
105
+ "lamp",
106
+ "lamp",
107
+ "lamp",
108
+ "lamp",
109
+ "lamp",
110
+ "lamp",
111
+ "lamp",
112
+ "lamp",
113
+ "lamp",
114
+ "lamp",
115
+ "lamp",
116
+ "lamp",
117
+ "lamp",
118
+ "lamp",
119
+ "lamp",
120
+ "lamp",
121
+ "lamp",
122
+ "lamp",
123
+ "lamp",
124
+ "lamp",
125
+ "lamp",
126
+ "lamp",
127
+ "lamp",
128
+ "lamp",
129
+ "lamp",
130
+ "lamp",
131
+ "lamp",
132
+ "lamp",
133
+ "lamp",
134
+ "lamp",
135
+ "lamp",
136
+ "lamp",
137
+ "lamp",
138
+ "lamp",
139
+ "lamp",
140
+ "lamp",
141
+ "lamp",
142
+ "lamp",
143
+ "lamp",
144
+ "lamp",
145
+ "lamp",
146
+ "lamp",
147
+ "lamp",
148
+ "lamp",
149
+ "lamp",
150
+ "lamp",
151
+ "lamp",
152
+ "lamp",
153
+ "lamp",
154
+ "lamp",
155
+ "lamp",
156
+ "lamp",
157
+ "lamp",
158
+ "lamp",
159
+ "lamp",
160
+ "lamp",
161
+ "lamp",
162
+ "lamp",
163
+ "lamp",
164
+ "lamp",
165
+ "lamp",
166
+ "lamp",
167
+ "lamp",
168
+ "lamp",
169
+ "lamp",
170
+ "lamp",
171
+ "lamp",
172
+ "lamp",
173
+ "lamp",
174
+ "lamp",
175
+ "lamp",
176
+ "lamp",
177
+ "lamp",
178
+ "lamp",
179
+ "lamp",
180
+ "lamp",
181
+ "lamp",
182
+ "lamp",
183
+ "lamp",
184
+ "lamp",
185
+ "lamp",
186
+ "lamp",
187
+ "lamp",
188
+ "lamp",
189
+ "lamp",
190
+ "lamp",
191
+ "lamp",
192
+ "lamp",
193
+ "lamp",
194
+ "lamp",
195
+ "lamp",
196
+ "lamp"
197
+ ]
198
+ },
199
+ {
200
+ "entityType": "basic.device.Device",
201
+ "ids": [
202
+ " lamp ",
203
+ "g:room",
204
+ "missing",
205
+ "lamp"
206
+ ],
207
+ "scopeId": "other"
208
+ }
209
+ ]
210
+ },
211
+ "metaOutput": {
212
+ "valid": [
213
+ {
214
+ "items": [
215
+ {
216
+ "requestedId": "lamp",
217
+ "found": true,
218
+ "resource": {
219
+ "id": "lamp",
220
+ "entityType": "basic.device.Device",
221
+ "displayName": "Desk lamp",
222
+ "group": false
223
+ }
224
+ },
225
+ {
226
+ "requestedId": "g:room",
227
+ "found": true,
228
+ "resource": {
229
+ "id": "g:room",
230
+ "entityType": "basic.device.Device",
231
+ "displayName": "Study lights",
232
+ "group": true
233
+ }
234
+ },
235
+ {
236
+ "requestedId": "missing",
237
+ "found": false,
238
+ "reason": "not_found"
239
+ }
240
+ ]
241
+ }
242
+ ],
243
+ "invalid": [
244
+ {},
245
+ {
246
+ "items": [
247
+ {
248
+ "requestedId": "missing",
249
+ "found": false
250
+ }
251
+ ]
252
+ },
253
+ {
254
+ "items": [
255
+ {
256
+ "requestedId": "lamp",
257
+ "found": true,
258
+ "resource": {
259
+ "id": "lamp",
260
+ "entityType": "basic.device.Device",
261
+ "displayName": "Desk lamp",
262
+ "group": false,
263
+ "state": {}
264
+ }
265
+ }
266
+ ]
267
+ }
268
+ ]
53
269
  }
54
270
  }
@@ -0,0 +1,442 @@
1
+ [
2
+ {
3
+ "target": "/app/nfc/list",
4
+ "input": {
5
+ "createState": "active"
6
+ },
7
+ "valid": true
8
+ },
9
+ {
10
+ "target": "/app/nfc/list",
11
+ "input": {
12
+ "createState": "pending"
13
+ },
14
+ "valid": true
15
+ },
16
+ {
17
+ "target": "/app/nfc/list",
18
+ "input": {
19
+ "createState": "all"
20
+ },
21
+ "valid": true
22
+ },
23
+ {
24
+ "target": "/app/nfc/list",
25
+ "input": {},
26
+ "valid": true
27
+ },
28
+ {
29
+ "target": "/app/nfc/list",
30
+ "input": {
31
+ "createState": null
32
+ },
33
+ "valid": false
34
+ },
35
+ {
36
+ "target": "/app/nfc/list",
37
+ "input": {
38
+ "tenantId": "t"
39
+ },
40
+ "valid": false
41
+ },
42
+ {
43
+ "target": "/app/nfc/sources/list",
44
+ "input": {},
45
+ "valid": true
46
+ },
47
+ {
48
+ "target": "/app/nfc/sources/list",
49
+ "input": {
50
+ "all": true
51
+ },
52
+ "valid": false
53
+ },
54
+ {
55
+ "target": "/app/nfc/create",
56
+ "input": {
57
+ "name": " Entry ",
58
+ "policy": "ALL_PHONE"
59
+ },
60
+ "valid": true
61
+ },
62
+ {
63
+ "target": "/app/nfc/create",
64
+ "input": {
65
+ "name": "Entry",
66
+ "policy": "CUSTOM_PHONE",
67
+ "trustedSources": [
68
+ {
69
+ "sourceType": "phone",
70
+ "sourceId": "p1",
71
+ "sourceName": "Phone"
72
+ }
73
+ ]
74
+ },
75
+ "valid": true
76
+ },
77
+ {
78
+ "target": "/app/nfc/create",
79
+ "input": {
80
+ "name": "",
81
+ "policy": "ALL_PHONE"
82
+ },
83
+ "valid": false
84
+ },
85
+ {
86
+ "target": "/app/nfc/create",
87
+ "input": {
88
+ "name": "Entry",
89
+ "policy": "ANY"
90
+ },
91
+ "valid": false
92
+ },
93
+ {
94
+ "target": "/app/nfc/create",
95
+ "input": {
96
+ "name": "Entry",
97
+ "policy": "CUSTOM_PHONE"
98
+ },
99
+ "valid": false
100
+ },
101
+ {
102
+ "target": "/app/nfc/create",
103
+ "input": {
104
+ "name": "Entry",
105
+ "policy": "ALL_PHONE",
106
+ "description": null
107
+ },
108
+ "valid": false
109
+ },
110
+ {
111
+ "target": "/app/nfc/create",
112
+ "input": {
113
+ "name": "Entry",
114
+ "policy": "ALL_PHONE",
115
+ "createState": "active"
116
+ },
117
+ "valid": false
118
+ },
119
+ {
120
+ "target": "/app/nfc/create",
121
+ "input": {
122
+ "name": "Entry",
123
+ "policy": "CUSTOM_PHONE",
124
+ "trustedSources": [
125
+ {
126
+ "sourceType": "phone",
127
+ "sourceId": "p",
128
+ "unknown": 1
129
+ }
130
+ ]
131
+ },
132
+ "valid": false
133
+ },
134
+ {
135
+ "target": "/app/nfc/activate",
136
+ "input": {
137
+ "tagId": "a"
138
+ },
139
+ "valid": true
140
+ },
141
+ {
142
+ "target": "/app/nfc/activate",
143
+ "input": {
144
+ "tagIds": [
145
+ "a"
146
+ ]
147
+ },
148
+ "valid": false
149
+ },
150
+ {
151
+ "target": "/app/nfc/update",
152
+ "input": {
153
+ "tagId": "a",
154
+ "name": "Renamed"
155
+ },
156
+ "valid": true
157
+ },
158
+ {
159
+ "target": "/app/nfc/update",
160
+ "input": {
161
+ "tagId": "a",
162
+ "description": ""
163
+ },
164
+ "valid": true
165
+ },
166
+ {
167
+ "target": "/app/nfc/update",
168
+ "input": {
169
+ "tagId": "a",
170
+ "policy": "ALL_PHONE"
171
+ },
172
+ "valid": true
173
+ },
174
+ {
175
+ "target": "/app/nfc/update",
176
+ "input": {
177
+ "tagId": "a",
178
+ "trustedSources": []
179
+ },
180
+ "valid": true
181
+ },
182
+ {
183
+ "target": "/app/nfc/update",
184
+ "input": {
185
+ "tagId": "a"
186
+ },
187
+ "valid": false
188
+ },
189
+ {
190
+ "target": "/app/nfc/update",
191
+ "input": {
192
+ "tagId": "a",
193
+ "name": null
194
+ },
195
+ "valid": false
196
+ },
197
+ {
198
+ "target": "/app/nfc/update",
199
+ "input": {
200
+ "tagId": "a",
201
+ "description": null
202
+ },
203
+ "valid": false
204
+ },
205
+ {
206
+ "target": "/app/nfc/update",
207
+ "input": {
208
+ "tagId": "a",
209
+ "policy": null
210
+ },
211
+ "valid": false
212
+ },
213
+ {
214
+ "target": "/app/nfc/update",
215
+ "input": {
216
+ "tagId": "a",
217
+ "trustedSources": null
218
+ },
219
+ "valid": false
220
+ },
221
+ {
222
+ "target": "/app/nfc/update",
223
+ "input": {
224
+ "tagId": "a",
225
+ "createdAt": 1
226
+ },
227
+ "valid": false
228
+ },
229
+ {
230
+ "target": "/app/nfc/update",
231
+ "input": {
232
+ "tagId": "a",
233
+ "name": 3
234
+ },
235
+ "valid": false
236
+ },
237
+ {
238
+ "target": "/app/nfc/update",
239
+ "input": {
240
+ "tagId": "a",
241
+ "trustedSources": [
242
+ {
243
+ "sourceType": "phone",
244
+ "sourceId": "p",
245
+ "unknown": true
246
+ }
247
+ ]
248
+ },
249
+ "valid": false
250
+ },
251
+ {
252
+ "target": "/app/nfc/delete",
253
+ "input": {
254
+ "tagIds": [
255
+ "a"
256
+ ]
257
+ },
258
+ "valid": true
259
+ },
260
+ {
261
+ "target": "/app/nfc/delete",
262
+ "input": {
263
+ "tagIds": [
264
+ "a",
265
+ "b"
266
+ ]
267
+ },
268
+ "valid": true
269
+ },
270
+ {
271
+ "target": "/app/nfc/delete",
272
+ "input": {
273
+ "tagIds": []
274
+ },
275
+ "valid": false
276
+ },
277
+ {
278
+ "target": "/app/nfc/delete",
279
+ "input": {
280
+ "tagIds": [
281
+ ""
282
+ ]
283
+ },
284
+ "valid": false
285
+ },
286
+ {
287
+ "target": "/app/nfc/delete",
288
+ "input": {
289
+ "tagIds": [
290
+ "a",
291
+ " a "
292
+ ]
293
+ },
294
+ "valid": false
295
+ },
296
+ {
297
+ "target": "/app/nfc/delete",
298
+ "input": {
299
+ "tagIds": [
300
+ "a",
301
+ "a",
302
+ "a",
303
+ "a",
304
+ "a",
305
+ "a",
306
+ "a",
307
+ "a",
308
+ "a",
309
+ "a",
310
+ "a",
311
+ "a",
312
+ "a",
313
+ "a",
314
+ "a",
315
+ "a",
316
+ "a",
317
+ "a",
318
+ "a",
319
+ "a",
320
+ "a",
321
+ "a",
322
+ "a",
323
+ "a",
324
+ "a",
325
+ "a",
326
+ "a",
327
+ "a",
328
+ "a",
329
+ "a",
330
+ "a",
331
+ "a",
332
+ "a",
333
+ "a",
334
+ "a",
335
+ "a",
336
+ "a",
337
+ "a",
338
+ "a",
339
+ "a",
340
+ "a",
341
+ "a",
342
+ "a",
343
+ "a",
344
+ "a",
345
+ "a",
346
+ "a",
347
+ "a",
348
+ "a",
349
+ "a",
350
+ "a",
351
+ "a",
352
+ "a",
353
+ "a",
354
+ "a",
355
+ "a",
356
+ "a",
357
+ "a",
358
+ "a",
359
+ "a",
360
+ "a",
361
+ "a",
362
+ "a",
363
+ "a",
364
+ "a",
365
+ "a",
366
+ "a",
367
+ "a",
368
+ "a",
369
+ "a",
370
+ "a",
371
+ "a",
372
+ "a",
373
+ "a",
374
+ "a",
375
+ "a",
376
+ "a",
377
+ "a",
378
+ "a",
379
+ "a",
380
+ "a",
381
+ "a",
382
+ "a",
383
+ "a",
384
+ "a",
385
+ "a",
386
+ "a",
387
+ "a",
388
+ "a",
389
+ "a",
390
+ "a",
391
+ "a",
392
+ "a",
393
+ "a",
394
+ "a",
395
+ "a",
396
+ "a",
397
+ "a",
398
+ "a",
399
+ "a",
400
+ "a"
401
+ ]
402
+ },
403
+ "valid": false
404
+ },
405
+ {
406
+ "target": "/app/nfc/delete",
407
+ "input": {
408
+ "tagId": "a"
409
+ },
410
+ "valid": false
411
+ },
412
+ {
413
+ "target": "/app/nfc/update",
414
+ "input": {
415
+ "tagId": "a",
416
+ "trustedSources": [
417
+ {
418
+ "sourceType": "pod",
419
+ "sourceId": "a"
420
+ }
421
+ ]
422
+ },
423
+ "valid": false
424
+ },
425
+ {
426
+ "target": "/app/nfc/update",
427
+ "input": {
428
+ "tagId": "a",
429
+ "trustedSources": [
430
+ {
431
+ "sourceType": "phone",
432
+ "sourceId": "p"
433
+ },
434
+ {
435
+ "sourceType": "phone",
436
+ "sourceId": " p "
437
+ }
438
+ ]
439
+ },
440
+ "valid": false
441
+ }
442
+ ]