@twinfinity/twin 6.1.0 → 6.1.2-ci.30738

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 (97) hide show
  1. package/README.md +63 -2
  2. package/dist/BuildInfo.js +3 -3
  3. package/dist/TwinClient.d.ts +312 -9
  4. package/dist/TwinClient.d.ts.map +1 -1
  5. package/dist/TwinClient.js +321 -6
  6. package/dist/TwinClient.js.map +1 -1
  7. package/dist/errors.d.ts +120 -5
  8. package/dist/errors.d.ts.map +1 -1
  9. package/dist/errors.js +116 -2
  10. package/dist/errors.js.map +1 -1
  11. package/dist/tsconfig.tsbuildinfo +1 -1
  12. package/dist/types/generated.d.ts +93 -31
  13. package/dist/types/generated.d.ts.map +1 -1
  14. package/dist/types/twin-api.d.ts +54 -1
  15. package/dist/types/twin-api.d.ts.map +1 -1
  16. package/dist/types/twin-permissions-api.d.ts +226 -6
  17. package/dist/types/twin-permissions-api.d.ts.map +1 -1
  18. package/docs/assets/hierarchy.js +1 -1
  19. package/docs/assets/navigation.js +1 -1
  20. package/docs/assets/search.js +1 -1
  21. package/docs/classes/AssetAttachmentConflictError.html +1 -1
  22. package/docs/classes/AssetAttachmentNotFoundError.html +1 -1
  23. package/docs/classes/AssetBatchError.html +1 -1
  24. package/docs/classes/AssetCatalogTooLargeError.html +1 -1
  25. package/docs/classes/AssetCategoryConflictError.html +1 -1
  26. package/docs/classes/AssetCategoryForbiddenError.html +1 -1
  27. package/docs/classes/AssetCategoryNotFoundError.html +1 -1
  28. package/docs/classes/AssetCategoryValidationError.html +1 -1
  29. package/docs/classes/AssetConflictError.html +1 -1
  30. package/docs/classes/AssetForbiddenError.html +1 -1
  31. package/docs/classes/AssetNotFoundError.html +1 -1
  32. package/docs/classes/AssetPermissionsConflictError.html +16 -0
  33. package/docs/classes/AssetTypeConflictError.html +1 -1
  34. package/docs/classes/AssetTypeForbiddenError.html +1 -1
  35. package/docs/classes/AssetTypeNotFoundError.html +1 -1
  36. package/docs/classes/AssetTypeValidationError.html +1 -1
  37. package/docs/classes/AssetValidationError.html +1 -1
  38. package/docs/classes/ProcessorNotFoundError.html +1 -1
  39. package/docs/classes/TwinClient.html +251 -73
  40. package/docs/classes/TwinConflictError.html +1 -1
  41. package/docs/classes/TwinFileConflictError.html +1 -1
  42. package/docs/classes/TwinFileNotFoundError.html +1 -1
  43. package/docs/classes/TwinFileValidationError.html +1 -1
  44. package/docs/classes/TwinNotFoundError.html +4 -2
  45. package/docs/classes/TwinPermissionsConflictError.html +19 -0
  46. package/docs/classes/TwinPermissionsForbiddenError.html +12 -0
  47. package/docs/classes/TwinPrincipalNotFoundError.html +5 -0
  48. package/docs/classes/TwinTemporarilyUnavailableError.html +10 -0
  49. package/docs/classes/TwinUnauthenticatedError.html +1 -1
  50. package/docs/classes/TwinValidationError.html +1 -1
  51. package/docs/hierarchy.html +1 -1
  52. package/docs/index.html +56 -4
  53. package/docs/interfaces/AssetCatalogTooLargeErrorBody.html +2 -2
  54. package/docs/interfaces/AssetGroupGet.html +9 -0
  55. package/docs/interfaces/AssetGroupsGet.html +3 -0
  56. package/docs/interfaces/AssetPermissionsConflictErrorBody.html +12 -0
  57. package/docs/interfaces/AssetPermissionsPut.html +9 -0
  58. package/docs/interfaces/AssetPrincipalPermissionsGet.html +23 -0
  59. package/docs/interfaces/Coordinates.html +6 -0
  60. package/docs/interfaces/EntityCollection.html +7 -2
  61. package/docs/interfaces/EntityRepresentation.html +12 -0
  62. package/docs/interfaces/Facility.html +8 -3
  63. package/docs/interfaces/FacilityPart.html +5 -3
  64. package/docs/interfaces/ITwinClient.html +251 -73
  65. package/docs/interfaces/InheritedPermissions.html +8 -0
  66. package/docs/interfaces/ListTwinItem.html +18 -2
  67. package/docs/interfaces/Location.html +4 -1
  68. package/docs/interfaces/MyPermissions.html +2 -2
  69. package/docs/interfaces/MyTwinPermissions.html +5 -0
  70. package/docs/interfaces/Site.html +11 -4
  71. package/docs/interfaces/Space.html +6 -3
  72. package/docs/interfaces/TwinErrorBody.html +2 -2
  73. package/docs/interfaces/TwinGet.html +29 -11
  74. package/docs/interfaces/TwinGroupGet.html +10 -0
  75. package/docs/interfaces/TwinGroupsGet.html +3 -0
  76. package/docs/interfaces/TwinPermissionsConflictErrorBody.html +8 -0
  77. package/docs/interfaces/TwinPermissionsPut.html +11 -0
  78. package/docs/interfaces/TwinPrincipalPermissionsGet.html +34 -0
  79. package/docs/interfaces/TwinPut.html +8 -10
  80. package/docs/interfaces/TwinReference.html +4 -0
  81. package/docs/interfaces/TwinSpecification.html +7 -9
  82. package/docs/media/twin-management.md +197 -0
  83. package/docs/modules.html +1 -1
  84. package/docs/types/TwinBoundCapabilityName.html +8 -0
  85. package/docs/types/TwinCapability.html +11 -5
  86. package/docs/types/TwinCapabilityName.html +8 -0
  87. package/docs/types/TwinErrorCause.html +1 -1
  88. package/docs/types/TwinErrorItemKind.html +1 -1
  89. package/docs/types/TwinPermissionsConflictCause.html +6 -0
  90. package/docs/types/TwinScopedCapability.html +9 -0
  91. package/docs/types/TwinScopedCapabilityName.html +8 -0
  92. package/package.json +3 -3
  93. package/src/TwinClient.ts +776 -15
  94. package/src/errors.ts +191 -4
  95. package/src/types/generated.ts +93 -33
  96. package/src/types/twin-api.ts +55 -1
  97. package/src/types/twin-permissions-api.ts +243 -6
@@ -90,10 +90,6 @@ export interface TwinSpecification {
90
90
  * Spaces that are not part of any facility
91
91
  */
92
92
  aggregatedSpaces?: string[];
93
- /**
94
- * Ids of Twins that are part of this Twin
95
- */
96
- aggregatedTwins?: string[];
97
93
  elementQuantities?: ElementQuantities[];
98
94
  /**
99
95
  * Collection of entities that are part of the twin
@@ -109,17 +105,15 @@ export interface TwinSpecification {
109
105
  * Unique identifier for the twin
110
106
  */
111
107
  id?: string;
108
+ propertySets?: PropertySet[];
112
109
  /**
113
- * Twin location in WGS84
114
- */
115
- location?: Location;
116
- /**
117
- * Name of the Twin
110
+ * Id of the entity that is the root (top) node of the Twin's entity tree. Must reference a
111
+ * site or facility present in the EntityCollection.
118
112
  */
119
- name: string;
120
- propertySets?: PropertySet[];
113
+ rootEntity: string;
121
114
  /**
122
- * The site of the Twin
115
+ * Legacy. The site of the Twin. Deprecated: use rootEntity, which is authoritative for the
116
+ * root of the Twin's entity tree.
123
117
  */
124
118
  site?: string;
125
119
  }
@@ -160,6 +154,13 @@ export interface EntityCollection {
160
154
  facilityParts?: {
161
155
  [key: string]: FacilityPart;
162
156
  };
157
+ /**
158
+ * Representation relations declaring that a twin entity is represented by an entity in a
159
+ * model file, keyed by relation id
160
+ */
161
+ representations?: {
162
+ [key: string]: EntityRepresentation;
163
+ };
163
164
  /**
164
165
  * Site entities in the Twin
165
166
  */
@@ -172,6 +173,12 @@ export interface EntityCollection {
172
173
  spaces?: {
173
174
  [key: string]: Space;
174
175
  };
176
+ /**
177
+ * Twin reference entities in the Twin
178
+ */
179
+ twinReferences?: {
180
+ [key: string]: TwinReference;
181
+ };
175
182
  [property: string]: any;
176
183
  }
177
184
  /**
@@ -194,11 +201,18 @@ export interface Facility {
194
201
  * Type of facility (e.g. IfcBuilding)
195
202
  */
196
203
  class: FacilityClass;
204
+ description?: string;
197
205
  elementQuantities?: ElementQuantities[];
198
206
  /**
199
207
  * Unique identifier for the building
200
208
  */
201
209
  id: string;
210
+ /**
211
+ * Location of the facility in WGS84. When the facility is the twin's root entity, this is
212
+ * the twin's location.
213
+ */
214
+ location?: Location;
215
+ longName?: string;
202
216
  name?: string;
203
217
  propertySets?: PropertySet[];
204
218
  }
@@ -208,6 +222,29 @@ export interface Facility {
208
222
  * Types of facilities
209
223
  */
210
224
  export type FacilityClass = 'IfcBridge' | 'IfcBuilding' | 'IfcMarineFacility' | 'IfcRailway' | 'IfcRoad';
225
+ /**
226
+ * Location of the facility in WGS84. When the facility is the twin's root entity, this is
227
+ * the twin's location.
228
+ *
229
+ * A location in WGS84
230
+ *
231
+ * Location of the site in WGS84. When the site is the twin's root entity, this is the
232
+ * twin's location.
233
+ */
234
+ export interface Location {
235
+ /**
236
+ * Metres above sea level
237
+ */
238
+ elevation?: number;
239
+ epsg: EpsgType;
240
+ latitude: number;
241
+ longitude: number;
242
+ /**
243
+ * Vector pointing to the true north
244
+ */
245
+ trueNorth?: number[];
246
+ }
247
+ export type EpsgType = '4326';
211
248
  export interface PropertySet {
212
249
  name: string;
213
250
  /**
@@ -259,11 +296,13 @@ export interface FacilityPart {
259
296
  * Type of facility part (e.g. IfcBuildingStorey)
260
297
  */
261
298
  class: FacilityPartClass;
299
+ description?: string;
262
300
  elementQuantities?: ElementQuantities[];
263
301
  /**
264
302
  * Unique identifier for the facility part
265
303
  */
266
304
  id: string;
305
+ longName?: string;
267
306
  name?: string;
268
307
  propertySets?: PropertySet[];
269
308
  }
@@ -273,6 +312,25 @@ export interface FacilityPart {
273
312
  * Types of facility parts
274
313
  */
275
314
  export type FacilityPartClass = 'IfcBridgePart' | 'IfcBuildingStorey' | 'IfcMarinePart' | 'IfcRailwayPart' | 'IfcRoadPart';
315
+ /**
316
+ * An objectified relation declaring that a twin entity is represented by another entity.
317
+ * Modelled as a relation (not an inline attribute) so it stays addressable and extensible,
318
+ * mirroring how twinReferences objectifies twin-to-twin relations.
319
+ */
320
+ export interface EntityRepresentation {
321
+ /**
322
+ * Reference to the entity that is represented, e.g. twin~twin:{twinId}.entity:{entityId}
323
+ * for an entity in a twin. Must name an entity: the shared grammar also admits a bare
324
+ * domain (a scope, not an entity), which the service refuses here
325
+ */
326
+ relatingEntity: string;
327
+ /**
328
+ * Reference to the entity that provides this entity's representation, e.g.
329
+ * twin~twin:{twinId}.file:{fileId}/entities/{ifcGid} for an IFC product within one of the
330
+ * twin's model files. Must name an entity, as relatingEntity must
331
+ */
332
+ representedBy: string;
333
+ }
276
334
  /**
277
335
  * A site is a defined area of land, possibly covered with water, upon which constructions
278
336
  * are located
@@ -290,15 +348,26 @@ export interface Site {
290
348
  * Spaces that are not part of any facility
291
349
  */
292
350
  aggregatedSpaces?: string[];
351
+ /**
352
+ * Twin references nested directly under this site
353
+ */
354
+ aggregatedTwinReferences?: string[];
293
355
  /**
294
356
  * Type of site (i.e. IfcSite)
295
357
  */
296
358
  class?: SiteType;
359
+ description?: string;
297
360
  elementQuantities?: ElementQuantities[];
298
361
  /**
299
362
  * Unique identifier for the site
300
363
  */
301
364
  id?: string;
365
+ /**
366
+ * Location of the site in WGS84. When the site is the twin's root entity, this is the
367
+ * twin's location.
368
+ */
369
+ location?: Location;
370
+ longName?: string;
302
371
  /**
303
372
  * Name of the site
304
373
  */
@@ -326,18 +395,30 @@ export interface Space {
326
395
  * Type of space (e.g. IfcSpace)
327
396
  */
328
397
  class: SpaceType;
398
+ description?: string;
329
399
  elementQuantities?: ElementQuantities[];
330
400
  /**
331
401
  * Unique identifier for the space
332
402
  */
333
403
  id: string;
404
+ longName?: string;
334
405
  name?: string;
406
+ objectType?: string;
335
407
  propertySets?: PropertySet[];
336
408
  }
337
409
  /**
338
410
  * Type of space (e.g. IfcSpace)
339
411
  */
340
412
  export type SpaceType = 'IfcSpace';
413
+ /**
414
+ * A reference to another Twin nested within this Twin's spatial hierarchy
415
+ */
416
+ export interface TwinReference {
417
+ /**
418
+ * Id of the referenced (nested) Twin
419
+ */
420
+ twin: string;
421
+ }
341
422
  export interface FilePatchSet {
342
423
  /**
343
424
  * Ordered list of patch operations to apply
@@ -366,23 +447,4 @@ export interface FilePatch {
366
447
  * The patch operation type
367
448
  */
368
449
  export type Op = 'replace' | 'remove';
369
- /**
370
- * Twin location in WGS84
371
- *
372
- * A location in WGS84
373
- */
374
- export interface Location {
375
- /**
376
- * Metres above sea level
377
- */
378
- elevation?: number;
379
- epsg: EpsgType;
380
- latitude: number;
381
- longitude: number;
382
- /**
383
- * Vector pointing to the true north
384
- */
385
- trueNorth?: number[];
386
- }
387
- export type EpsgType = '4326';
388
450
  //# sourceMappingURL=generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/types/generated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/types/generated.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,17 @@
1
- import type { PropertySet, ElementQuantities, TwinSpecification, Diagnostics } from './generated';
1
+ import type { PropertySet, ElementQuantities, TwinSpecification, Diagnostics, EpsgType, Location } from './generated';
2
+ import type { TwinBoundCapabilityName } from './twin-permissions-api';
2
3
  export interface TwinFileReference {
3
4
  fileId: string;
4
5
  fileVersion: number;
5
6
  twinNodeId?: string;
6
7
  }
8
+ /** WGS84 coordinates of a twin, as returned on the list endpoint (coordinates only — the full
9
+ * Location, including elevation and trueNorth, is available on the single-twin GET). */
10
+ export interface Coordinates {
11
+ epsg: EpsgType;
12
+ latitude: number;
13
+ longitude: number;
14
+ }
7
15
  export interface ListTwinItem {
8
16
  id: string;
9
17
  name: string;
@@ -18,7 +26,31 @@ export interface ListTwinItem {
18
26
  createdUtc: string;
19
27
  modifiedBy: string;
20
28
  modifiedUtc: string;
29
+ /** Ids of the Twins nested within this Twin, derived by the service from its twin references. */
30
+ aggregatedTwins: string[];
31
+ /** Deduplicated, sorted set of IFC entity classes the twin contains (e.g. IfcBuilding, IfcSpace),
32
+ * computed by the service from the specification's entity collection. */
33
+ classes: string[];
34
+ /** Id of the Twin that references this Twin (its parent), or omitted for a root Twin. */
35
+ parentTwin?: string;
36
+ /** WGS84 coordinates, present only when the twin's specification declares a location. */
37
+ location?: Coordinates;
38
+ /**
39
+ * What the *calling principal* may do with this twin — the whole affordance decision for the
40
+ * row, so a list of a thousand twins needs no probe per row. Never the twin's access-control
41
+ * list: that is `listTwinPermissions(twinId)`, which is administration-gated.
42
+ *
43
+ * Mixes both capability vocabularies, as the twin-scoped probe does. Where each capability was
44
+ * granted is answered by `listTwinPermissions(twinId)`, whose rows split `permissions` from
45
+ * `inheritedPermissions`. Absent on `listTwinVersions`, which does not resolve it.
46
+ */
47
+ effectivePermissions?: TwinBoundCapabilityName[];
21
48
  }
49
+ /**
50
+ * A twin as returned by the service — by `getTwin` and `getTwinVersion`, and by the write methods
51
+ * (`createOrUpdateTwin`, `deleteTwin`, `restoreTwin`), which answer with the same shape. Writing a
52
+ * twin and re-rendering it therefore needs no second fetch.
53
+ */
22
54
  export interface TwinGet extends TwinSpecification {
23
55
  id: string;
24
56
  etag: string;
@@ -31,6 +63,27 @@ export interface TwinGet extends TwinSpecification {
31
63
  modifiedUtc: string;
32
64
  fileReferences: TwinFileReference[];
33
65
  computedPropertySets?: PropertySet[];
66
+ /** Ids of the Twins nested within this Twin, derived by the service from its twin references. */
67
+ aggregatedTwins: string[];
68
+ /** Id of the Twin that references this Twin (its parent), or omitted for a root Twin. */
69
+ parentTwin?: string;
70
+ /** Name of the Twin, derived by the service from the root entity. Read-only; not part of the
71
+ * stored specification. */
72
+ name: string;
73
+ /** Full WGS84 location of the Twin (including elevation and trueNorth), derived by the service
74
+ * from the root entity. Read-only; not part of the stored specification. */
75
+ location?: Location;
76
+ /**
77
+ * Everything the *calling principal* may do with this twin: the capabilities its own scopes
78
+ * confer, unioned with the twin-bound asset ones held customer-wide. Calculated by the service on
79
+ * every read, never stored, and never accepted in a `TwinPut` body.
80
+ *
81
+ * The verdict, without its provenance — a fetched twin says no more than a listing row does.
82
+ * Which capabilities are granted here and which come from elsewhere is answered by
83
+ * `listTwinPermissions(twinId)`, where they are administered. Never the twin's access-control
84
+ * list either: this describes the caller, not every principal.
85
+ */
86
+ effectivePermissions: TwinBoundCapabilityName[];
34
87
  }
35
88
  export interface TwinPut extends TwinSpecification {
36
89
  etag?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"twin-api.d.ts","sourceRoot":"","sources":["../../src/types/twin-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"twin-api.d.ts","sourceRoot":"","sources":["../../src/types/twin-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;yFACyF;AACzF,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACxC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;8EAC0E;IAC1E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,uBAAuB,EAAE,CAAC;CACpD;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAQ,SAAQ,iBAAiB;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;IACrC,iGAAiG;IACjG,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;gCAC4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb;iFAC6E;IAC7E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;;;;OASG;IACH,oBAAoB,EAAE,uBAAuB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,OAAQ,SAAQ,iBAAiB;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,oBAAoB,EAAE,gCAAgC,EAAE,CAAC;CAC5D;AAED,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;CAC5B"}
@@ -1,11 +1,30 @@
1
1
  /**
2
- * Named, customer-scoped capability the caller can exercise against the
3
- * Twin service. Returned by `GET /twins/permissions/me`. Forward-compatible:
4
- * unknown strings should be treated as "not granted" and ignored, so adding
5
- * a new capability on the backend is a non-breaking change for clients
6
- * compiled against older types.
2
+ * Named, customer-scoped capability the caller can exercise against the Twin service, granted on
3
+ * the asset domain — the one thing the service governs that is not bound to a single
4
+ * twin. Returned by `GET /twins/permissions/me`, listed by `GET /twins/permissions` and accepted by
5
+ * `PUT /twins/permissions/{principalId}`. Mirrors `Twinfinity.Twin.Model.TwinCapability`.
6
+ *
7
+ * Distinct from {@link TwinScopedCapability}, which is held on one twin. The two vocabularies never
8
+ * share a name, because `GET /twins/{twinId}/permissions/me` answers with one flat array mixing
9
+ * both and each name is resolved against the vocabulary it came from.
10
+ *
11
+ * This is the *write* vocabulary — the capabilities a grant may ask for. Values read back from the
12
+ * service are {@link TwinCapabilityName}, which also admits capabilities a newer server knows and
13
+ * this client does not; such a value is "not granted" as far as this client is concerned, and must
14
+ * be ignored rather than treated as an error.
15
+ */
16
+ export type TwinCapability = 'ViewAssets' | 'EditAssets' | 'DeleteAssets' | 'EditAssetTypes' | 'ManageAssetPermissions';
17
+ /**
18
+ * A capability as *read back* from the service: one of {@link TwinCapability}, or a name a newer
19
+ * server knows and this client does not.
20
+ *
21
+ * Deliberately wider than the write vocabulary. A grant may only ask for capabilities that exist,
22
+ * so {@link TwinCapability} stays closed and a typo is a compile error; a listing, though, is
23
+ * whatever the server says, and ADR-0008 §5 makes tolerating unknown names a rule for readers. The
24
+ * `(string & {})` tail keeps autocomplete on the five known values while forcing consumers who
25
+ * `switch` over a capability to write a default arm — which is where an unknown one must land.
7
26
  */
8
- export type TwinCapability = 'ViewAssetTypes' | 'EditAssetTypes';
27
+ export type TwinCapabilityName = TwinCapability | (string & {});
9
28
  /**
10
29
  * Response body for `GET /twins/permissions/me`. The `permissions` array
11
30
  * lists only capabilities the caller actually holds; absence means "not
@@ -15,6 +34,207 @@ export type TwinCapability = 'ViewAssetTypes' | 'EditAssetTypes';
15
34
  * etag, an identity echo, expiry — can be added without a shape break.
16
35
  */
17
36
  export interface MyPermissions {
37
+ permissions: TwinCapabilityName[];
38
+ }
39
+ /**
40
+ * Named capability a principal can hold on one specific twin, granted through
41
+ * `/twins/{twinId}/permissions`. Mirrors `Twinfinity.Twin.Model.TwinScopedCapability`.
42
+ *
43
+ * Distinct from {@link TwinCapability}, which is customer-scoped and speaks about the
44
+ * asset domain rather than about one twin.
45
+ *
46
+ * This is the *write* vocabulary — the four capabilities a grant may ask for. Values read back
47
+ * from the service are {@link TwinScopedCapabilityName}, which also admits capabilities a newer
48
+ * server knows and this client does not; such a value is "not granted" as far as this client is
49
+ * concerned, and must be ignored rather than treated as an error.
50
+ */
51
+ export type TwinScopedCapability = 'ReadTwin' | 'WriteTwin' | 'DeleteTwin' | 'ManageTwinPermissions';
52
+ /**
53
+ * A capability as *read back* from the service: one of {@link TwinScopedCapability}, or a name a
54
+ * newer server knows and this client does not.
55
+ *
56
+ * Deliberately wider than the write vocabulary. A grant may only ask for capabilities that exist,
57
+ * so {@link TwinPermissionsPut} stays closed and a typo is a compile error; a listing, though, is
58
+ * whatever the server says, and ADR-0008 §5 makes tolerating unknown names a rule for readers. The
59
+ * `(string & {})` tail keeps autocomplete on the four known values while forcing consumers who
60
+ * `switch` over a capability to write a default arm — which is where an unknown one must land.
61
+ */
62
+ export type TwinScopedCapabilityName = TwinScopedCapability | (string & {});
63
+ /**
64
+ * A capability as read back from `GET /twins/{twinId}/permissions/me`. That probe answers with one
65
+ * flat array mixing both vocabularies: the twin's own {@link TwinScopedCapability} values, plus the
66
+ * asset-instance capabilities `ViewAssets`, `EditAssets` and `DeleteAssets` from the customer-wide
67
+ * asset domain, which gate the assets hanging off the twin. `EditAssetTypes` and
68
+ * `ManageAssetPermissions` are not twin-bound and are absent — ask `GET /twins/permissions/me`.
69
+ *
70
+ * Names never collide across the two enums, so `includes('EditAssets')` is unambiguous. As with
71
+ * {@link TwinScopedCapabilityName}, the `(string & {})` tail admits names a newer server knows.
72
+ */
73
+ export type TwinBoundCapabilityName = TwinScopedCapability | TwinCapability | (string & {});
74
+ /**
75
+ * Response body for `GET /twins/{twinId}/permissions/me`: the capabilities the caller
76
+ * holds on that twin. The endpoint is open to every authenticated caller — an empty
77
+ * list is an honest answer, not a refusal — so it is safe to call before rendering.
78
+ */
79
+ export interface MyTwinPermissions {
80
+ permissions: TwinBoundCapabilityName[];
81
+ }
82
+ /**
83
+ * One entry of an access-control-list row's `inheritedPermissions`: capabilities the row's principal
84
+ * holds from a grant made somewhere other than this resource, and where that grant lives.
85
+ *
86
+ * `source` is an entity reference. A grant held customer-wide is spelled as the bare domain token
87
+ * with no trailing separator — `"twin"` for the asset capabilities a twin reports — which is where
88
+ * an administration UI has to go to change them.
89
+ */
90
+ export interface InheritedPermissions {
91
+ source: string;
92
+ permissions: TwinBoundCapabilityName[];
93
+ }
94
+ /**
95
+ * One principal's permission entry on a twin, as listed by
96
+ * `GET /twins/{twinId}/permissions` and returned by the mutation endpoints.
97
+ *
98
+ * This is where the provenance split lives: {@link permissions} is what an administrator can edit
99
+ * here, {@link inheritedPermissions} is what confers ability on the twin from elsewhere, and
100
+ * {@link effectivePermissions} is what this principal can actually do. All three describe *this
101
+ * row's principal* — a twin's own representation is the one that describes the caller, and it
102
+ * carries the verdict alone.
103
+ */
104
+ export interface TwinPrincipalPermissionsGet {
105
+ /** Global id of the principal (a group; users are not grantable per ADR-0008 §6). */
106
+ principalId: string;
107
+ /** The principal's display title. */
108
+ name: string;
109
+ /**
110
+ * What this principal holds from grants made on the twin *itself*, and the only part this
111
+ * surface writes: `setTwinPermissions` replaces exactly this set.
112
+ */
113
+ permissions: TwinScopedCapabilityName[];
114
+ /**
115
+ * One entry per place outside this twin that confers ability on it. A twin has one possible
116
+ * source: the domain, `source: 'twin'`, carrying whichever of `ViewAssets`, `EditAssets` and
117
+ * `DeleteAssets` this principal holds customer-wide, because `twins/{twinId}/assets` gates on
118
+ * them. The asset catalog capability and `ManageAssetPermissions` never appear — they are
119
+ * domain-wide and confer nothing on one twin. Empty when the principal holds none of them.
120
+ */
121
+ inheritedPermissions: InheritedPermissions[];
122
+ /**
123
+ * The union of {@link permissions} and every {@link inheritedPermissions} entry — what this
124
+ * principal can actually do on the twin. Calculated by the service on every read and never
125
+ * accepted on a write. Mixes both capability vocabularies, so it is typed the widened way.
126
+ */
127
+ effectivePermissions: TwinBoundCapabilityName[];
128
+ /**
129
+ * True exactly when a `PUT` or `DELETE` naming this principal would be refused with
130
+ * `SystemPrincipalImmutable`: the twin's own default groups and the seeded Twinfinity
131
+ * system principals. Render the control as disabled rather than discovering the
132
+ * constraint by attempting a write.
133
+ */
134
+ readOnly: boolean;
135
+ /**
136
+ * Optimistic concurrency token for this entry, to send back on the next mutation of this
137
+ * principal. Two entries in one listing may carry different values — edit each with the one its
138
+ * own row reported. Absent when the service had none to report.
139
+ */
140
+ etag?: string;
141
+ }
142
+ /** Request body for `PUT /twins/{twinId}/permissions/{principalId}`. */
143
+ export interface TwinPermissionsPut {
144
+ /**
145
+ * The capability set replacing whatever this principal held of the four above; bits
146
+ * outside this vocabulary survive untouched. An empty list revokes all four, which
147
+ * leaves the principal with no listing entry at all unless it carries such bits.
148
+ */
149
+ permissions: TwinScopedCapability[];
150
+ /**
151
+ * This principal's etag, from its entry in a prior listing or mutation response. May be omitted only to create
152
+ * the grants of a principal that holds nothing on the twin yet — the one case with no
153
+ * entry to read one from. Omitting it on what turns out to be a replacement is refused
154
+ * with `EtagRequired`, and a stale value with `EtagMismatch`.
155
+ */
156
+ etag?: string;
157
+ }
158
+ /**
159
+ * One of the default groups a twin owns — `TwinReaders`, `TwinContributors`,
160
+ * `TwinAdministrators` — provisioned for it when it is created.
161
+ *
162
+ * Address a group by {@link id}: {@link name} is informational and not unique across
163
+ * twins, since every twin's groups carry the same three names. The groups' own grants
164
+ * are immutable; confer a preset by changing a group's membership through the
165
+ * Permission service instead.
166
+ */
167
+ export interface TwinGroupGet {
168
+ name: string;
169
+ id: string;
170
+ title: string;
171
+ }
172
+ /** Response body for `GET /twins/{twinId}/groups`. */
173
+ export interface TwinGroupsGet {
174
+ groups: TwinGroupGet[];
175
+ }
176
+ /**
177
+ * One principal's permission entry on the asset domain, as listed by `GET /twins/permissions` and
178
+ * returned by the mutation endpoints.
179
+ *
180
+ * The etag is customer-wide rather than per principal, so every entry in a listing carries the same
181
+ * value and a write by any administrator invalidates the one every other administrator is holding.
182
+ */
183
+ export interface AssetPrincipalPermissionsGet {
184
+ /** Global id of the principal (a group; users are not grantable). */
185
+ id: string;
186
+ /** The principal's display name. */
187
+ name: string;
188
+ /** The capabilities this principal holds on the domain. Empty after a full revoke. */
189
+ permissions: TwinCapabilityName[];
190
+ /**
191
+ * True exactly when a `PUT` or `DELETE` naming this principal would be refused with
192
+ * `SystemPrincipalImmutable`: the seeded default groups. Render the control as disabled rather
193
+ * than discovering the constraint by attempting a write. False for everything else, the
194
+ * all-authenticated principal included, whose capabilities are mutable.
195
+ */
196
+ readOnly: boolean;
197
+ /**
198
+ * Optimistic concurrency token, to send back on the next mutation. It is customer-wide rather
199
+ * than per principal, so any administrator's write invalidates the value every other one holds.
200
+ *
201
+ * Because it belongs to the domain rather than to the principal, a revocation answers with one
202
+ * too, even though the revoked principal no longer has a listing entry — so a caller may chain
203
+ * another write straight after a `deleteAssetPermissions` without re-reading the listing.
204
+ *
205
+ * Absent only before the domain has been provisioned for the customer.
206
+ */
207
+ etag?: string;
208
+ }
209
+ /** Request body for `PUT /twins/permissions/{principalId}`. */
210
+ export interface AssetPermissionsPut {
211
+ /**
212
+ * The capability set replacing whatever this principal held; an empty list revokes everything
213
+ * and leaves the principal with no listing entry at all.
214
+ */
18
215
  permissions: TwinCapability[];
216
+ /**
217
+ * The domain's etag. May be omitted only to create the grants of a principal that holds nothing
218
+ * yet — the one case with no entry to read one from. Omitting it on what turns out to be a
219
+ * replacement is refused with `EtagRequired`, and a stale value with `EtagMismatch`.
220
+ */
221
+ etag?: string;
222
+ }
223
+ /**
224
+ * One of the asset domain's default groups — `AssetsReaders`, `AssetsContributors`,
225
+ * `AssetsAdministrators` — seeded once per customer.
226
+ *
227
+ * Unlike a twin's groups, {@link name} is unique across the customer and is what
228
+ * {@link ITwinClient.getAssetGroup} addresses. The groups' own grants are immutable; confer a
229
+ * preset by changing a group's membership through the permission API instead.
230
+ */
231
+ export interface AssetGroupGet {
232
+ name: string;
233
+ id: string;
234
+ title: string;
235
+ }
236
+ /** Response body for `GET /twins/groups`. */
237
+ export interface AssetGroupsGet {
238
+ groups: AssetGroupGet[];
19
239
  }
20
240
  //# sourceMappingURL=twin-permissions-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"twin-permissions-api.d.ts","sourceRoot":"","sources":["../../src/types/twin-permissions-api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,cAAc,EAAE,CAAC;CACjC"}
1
+ {"version":3,"file":"twin-permissions-api.d.ts","sourceRoot":"","sources":["../../src/types/twin-permissions-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,gBAAgB,GAAG,wBAAwB,CAAC;AAExH;;;;;;;;;GASG;AAEH,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACrC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,uBAAuB,CAAC;AAErG;;;;;;;;;GASG;AAEH,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5E;;;;;;;;;GASG;AAEH,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAG,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5F;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,uBAAuB,EAAE,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,uBAAuB,EAAE,CAAC;CAC1C;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,2BAA2B;IACxC,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,WAAW,EAAE,wBAAwB,EAAE,CAAC;IACxC;;;;;;OAMG;IACH,oBAAoB,EAAE,oBAAoB,EAAE,CAAC;IAC7C;;;;OAIG;IACH,oBAAoB,EAAE,uBAAuB,EAAE,CAAC;IAChD;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IAC/B;;;;OAIG;IACH,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IACzC,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,aAAa,EAAE,CAAC;CAC3B"}
@@ -1 +1 @@
1
- window.hierarchyData = "eJyVkTFrwzAQhf/LzUpaS1h2tKUhlEKHQLOFDEI+J6KKVCSZUoL/e5GbBtdDoyw6EO/ed3fvDN65GEDsOKekLChhi3pPwGNrUEXtbABxBlql18oTgoDtp7bPGIHAu7YNCFpyAp03IEDbiL6VCsPDRTU/xpMBAsrIEEBADM0stc2uUugJlMXEf9Pl+G+6TH+2qCeAtw9UutVKph0zUH/0GVAC6qhN49GC2NGKlMV+2JNO5lh77/yTa74yZrhq7+VzxhKdMzaiL0PAuJJRGnfYOvcq/QFzp/m3Ny8SzseneEn7rYxGeyv3kfLeMxSP1XCHVCcxTNAFrX/Rg/klgBvYn4++778BH44bJA=="
1
+ window.hierarchyData = "eJylU01rAyEU/C/vbFrcL11v7VJKoYdAcws5iOsmUleLupQS9r8X2zRst5C49KIgM2/mvTcewVkbPLAtqWtU0hoVZbZD4GSnpQjKGg/sCHkVT8N7CQw278o8ygAIXpVpgWVlhWBwGhgoE6TruJD+9oS6OYReAwKhuffAIPh2FWmrMxRGBFU+q78eUuqvh8T6RZnNBF7epFCdEjz2mCD1C58gikAclG6dNMC2eYWqfDciKGk98/HgnHX3tv1I8HDGLtUnOEOkyBGhOLogeDqNO+9laHjg2u431j5zt5epri5y01ZDij+7l65X3sfsNdZ0WomwZEqX6ImWKJ7P5x+ervITTdXT6DzFThutpLn2TybIpbHBGaUxL/Ge7WgmjTP6I/1V/LSKK7LfD+M4fgJoJ4XY"
@@ -1 +1 @@
1
- window.navigationData = "eJyVmU1z2zYQQP8Lz56m8TRJ61siy55M3Fi1bF86PSDkSsKUAlhgmdbT6X/vgBLNDwC7y6v24S0IgOAC+v3fAuEfLK6Kj94DfkRU5eEIBlfW7Gpd4to564qLolF4KK6Kslbeg39D0T8c8FgXF8Wf2lTF1dvLn/+7yGX5avHGtqaSZZnQbJZPCssDJR4A1rVSqGq7f7T2Trk9UNYUKvHD3roXyagnWXGGG+u+6aoCI0kxhcU5JLOaZMUZnlWtK4Xaih5jRvNZJLOwaPRFo75wtCWjvGx0H18akDx7xInMojGIQZFbMhYRJzLLVlqCZO0y8wLrxtkSvLeOGY00R5kf/9ZmVWswGNuGGGugl1aEcL4bXXPLNYlJvMwQJjGJl530DMi5Bf1d1Ncno1o8gEFdKgRKmyI5u2gUlrxPjV45UAhPTW1VtQXvtTUP4BtrPAx6bRDcTpXh5SKbTJNdvnufL2E2LaYTRBgr7QqSa6gB4b4B1z173p2iZSluAR/grxY80fMZuEBMDXqKlKllHV7UW2FXl/bTo3Xi+ZvjsiRPjQeHnxGOjH4Al4ilnZ/RbIpzadyXZXn7DJSK+QmdgVLxpJj/ZCu+61ELSaruYU9vNJlgxIm1t0C8OyNILCT3vRHECsmeSXp0pz3zLvQEq9pYr+mF3xMSFfFcIcorqCGWDG0oS7n1NDAiHTlbZ0AkIh/uDJCi109rtktjQqbKT9oEoWTdzhgW26y0GcmmiEj2AL6t012bMaxu2x6PKrP7jgFKdK3V3liPuvRJzygu1FC9ijFKuq4hzNNvrTKoUUO6hxFFKgPzsrJ1DWV2e5hDlPBGlbrWmH7cPigRbJRLr4oxQIp0DZsw62lLHxUptpkXcQxQolsw4HQ5TPfaYGZJpFFK/nknEseYWPrVVul9NqIWKa8VKpk2kKQ6dY4fC3Nn+akmfE0Dmf3mjgFSZMt8mdkHKcGvLxtwR90d3dKv+YSgVBu11yYcYMkiMqIEytwDDmFS4mwDLrNT9EGJIPdyjuKUZquPTQ3n7TLdmylCy8y+hj7zs6rb9HAnOFqbKXRCgGzYqDLTMkSopqdbq2PTIlSjofTkMuIa8QkNgqHP2gmO0xKl4hBmJYJNNsHJtdltNsaWSbMbbRqVy/nFkGA5PX0WnRCcKnyfmbkfEIksV5GP4hJN+I7cN5jd3BOcRJs7eYziEs0D7MCByWwcESVTdrdBjLBjJLqtbR3TvRMikT06ZfzOuvQnP6Ikymdw4bssneYY55JQ61CwBl//KFl/z5VMMSaWsptCRLJqYmELFvW2gVLvNFGTRRSnPE+Z9HuVxqkk59t7VNj63GzPGPFV9qnFoMSXZn6HfUJmxh9/+fD23WXSmrhZnVtz16kSK9fjGchlGL5K8ZXtSR0TcucdfIc6L+zCnG3d+H24K5pr+t+59v0peRX+d5pLJkGpKZy3SdsrwBknx7vVpOg5GSOAM943c8V9w7VJlOCpAc9gMnt/ZGDsEcbbMaNDWftQ/CcFfYAzdEW4atS32W3PSTONSlz0gogJibMrE1eq9UnfEBW7wrH/S4Byuh7gjOONey4bxziP9sI/c3at6a7u/BumyTTj+59GyRyoilRPgEj0x/8Yqsll"
1
+ window.navigationData = "eJydmktzIycQgP+Lzq5s1pXdJL6t5UdtxbEVy/ZlKwc805KoICDAOFGl8t9TjDSeB9Ddk6v5+JppEPQw/vbPIsDfYXGx+OI9hC8hiGq3Bx2WRm+UrMK1c8YtzhZWhN3iYlEp4T34Dxj93S7s1eJs8YfU9eLi4/lP/56VotybcGMaXfOijGgyyqUI1Q4T9wDpWooglNk+GXMn3BYwaw7l+GFr3IGT9SzLjnBj3Kusa9CcEGOYHYMzq1mWHeFFKFmLIA3rMSY0HYUzC7Oyz8r6zGxzsjwvuytwe+m9NNpzUlDCyThPBwucAAnHMrNynYIsNyfnCccy81Z0hiTtPPMM68qZCrw3jshGnsPMT39JvVQSdEhtfRtpwJdWglC+G6mo5ZrFOF4ihVmM4yUnvQBSbsZ4Z42Vv+Vg9Iwo1O6A4mQcJ3UlrVCMNOVZKsIT7K1xwkl1eNbiTUglXlWpHiE6ULGetWjCDnSQlQiAPUuOpOysFTpnr7Ny6UAEeLbKiHoN7QQ+grdGe+j1UgdwG1HFjQ/tMg52/ulzuYxdNSEfIMFIaVuUXoGCAA8WXPvsZXeO5oW4hfAIfzbgkZFPwBliLOk5kqfmDXjWaJlDnTtOH4xjz98U5wV5th5c+BpgT+h7cI6YO/gJTYY4vR51pXnZPgG5YnpCJyBXPHqhuzQ1PfSkBydU+7DHXzQaYMCxtbeA/HYGEFuI7nsDiBSiI+OM6NaZxuKWE8FTedrlObI76YnfaEeQqlLxg69FrNeckOhUjzlaa7zEt5aO4KiwcRnGOfBeiA2eAp39Qgc6EJpCRt7i2x+1NfQMS4c+6AlgidCHOwGo6L1KKg5pSPBU5dUxQjBZe8jF3+ekSh3IxghL9gi+UfmhTRhSt272e1E4SIcAJloa42qpRQCf9QzaMc2VFFttfJBVXjNoZ2qwh0sxTHqtIE73b43QQQZZeNCEQpWROSyNUlAVt7MpRAsfwTrwoEO5/MqBmPhGVFLJkM9j18gRrITLr9ohgIqkglVclXlL18pSrAsbxRDARLegwcmqX0fXOhTWWh7F5F83LHGKsaX3ps6fAwk1S3klguBpI4mq9Q6cDFAPzsm8OQOi4tw94dBXuisca2LlFclifTYEUJGpyr/VrhET/HqgUjQicNXkBqugm1CYciW27d5fo+9WCcVQlnLWN6MSZyy4wq7WNXIEpY1k0I5p1nJvFZzOjPxoxggu01sFXeQXoZp8ujMcri0UjbEB7WhFVegZW7Cux4v2vW3iL7tPpUeXEdWJDqgDaPwKKsNRWqTs7ptJCeNAyHB8bfFISLF50uKhkEf5cnoxZFhKj78WjwhKFWsJYu57hCMrvd0M2jmaeDQ92FDc4DMcR1t6ixu0czSPsAEHurBxJBRP2V6SEsKW4ejWpnHE8I4IR/bkhPYb4/JVREJxlC/g4rnMneYUp4Jg65CxBtH7tiHAEhXvW0YEpZp9QUZ1mhEQ++Hwb8dG3wUZ11EIT4c5fZy/fiuV0SnGlpK7ekKSaizBdFbpHYm9G60tVHIjkZI/oSjl6efLrV3yOBbk9IEziNAUF9OEYX/tO/boleFgp5/5jsjE+P3PP378dJ61Zj4+Ta2lL04cKzXiCUhF6CuU9KvWUZ0SfOcdvIEqC9tmynZt/TbewU413d+p/t3tzjJ+mp9KRo1cU7wnQm3vAGUcXUssRwXw0ZgAlPHBThUPluqTeR3LJbyA8ezd6yNhTzDaHgq6wOsfXwSzgq6BMsRN7TL+D8xSWPHazv+92Ce+Asax9z1y0r51nqs0yPnjw5dwSnCcbR2zFI3P+vpWtiveg/0SoZKuAzjGTOFVHGuJ5cRZV8ZCjc//lPk/3tJayHGUf3gUT53DNsojPfM/GDaNbr9O+A9El3HEzz8MgjkQNaoeAYno9/8ANX76UQ=="