@fluidframework/presence 2.10.0-307399

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 (255) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +216 -0
  3. package/dist/alpha.d.ts +58 -0
  4. package/dist/baseTypes.d.ts +24 -0
  5. package/dist/baseTypes.d.ts.map +1 -0
  6. package/dist/baseTypes.js +7 -0
  7. package/dist/baseTypes.js.map +1 -0
  8. package/dist/container-definitions/containerExtensions.d.ts +137 -0
  9. package/dist/container-definitions/containerExtensions.d.ts.map +1 -0
  10. package/dist/container-definitions/containerExtensions.js +7 -0
  11. package/dist/container-definitions/containerExtensions.js.map +1 -0
  12. package/dist/container-definitions/index.d.ts +7 -0
  13. package/dist/container-definitions/index.d.ts.map +1 -0
  14. package/dist/container-definitions/index.js +7 -0
  15. package/dist/container-definitions/index.js.map +1 -0
  16. package/dist/container-definitions/runtime.d.ts +12 -0
  17. package/dist/container-definitions/runtime.d.ts.map +1 -0
  18. package/dist/container-definitions/runtime.js +7 -0
  19. package/dist/container-definitions/runtime.js.map +1 -0
  20. package/dist/core-interfaces/exposedUtilityTypes.d.ts +446 -0
  21. package/dist/core-interfaces/exposedUtilityTypes.d.ts.map +1 -0
  22. package/dist/core-interfaces/exposedUtilityTypes.js +11 -0
  23. package/dist/core-interfaces/exposedUtilityTypes.js.map +1 -0
  24. package/dist/core-interfaces/index.d.ts +10 -0
  25. package/dist/core-interfaces/index.d.ts.map +1 -0
  26. package/dist/core-interfaces/index.js +7 -0
  27. package/dist/core-interfaces/index.js.map +1 -0
  28. package/dist/core-interfaces/jsonDeserialized.d.ts +109 -0
  29. package/dist/core-interfaces/jsonDeserialized.d.ts.map +1 -0
  30. package/dist/core-interfaces/jsonDeserialized.js +7 -0
  31. package/dist/core-interfaces/jsonDeserialized.js.map +1 -0
  32. package/dist/core-interfaces/jsonSerializable.d.ts +120 -0
  33. package/dist/core-interfaces/jsonSerializable.d.ts.map +1 -0
  34. package/dist/core-interfaces/jsonSerializable.js +7 -0
  35. package/dist/core-interfaces/jsonSerializable.js.map +1 -0
  36. package/dist/core-interfaces/jsonSerializationErrors.d.ts +31 -0
  37. package/dist/core-interfaces/jsonSerializationErrors.d.ts.map +1 -0
  38. package/dist/core-interfaces/jsonSerializationErrors.js +7 -0
  39. package/dist/core-interfaces/jsonSerializationErrors.js.map +1 -0
  40. package/dist/core-interfaces/jsonType.d.ts +29 -0
  41. package/dist/core-interfaces/jsonType.d.ts.map +1 -0
  42. package/dist/core-interfaces/jsonType.js +7 -0
  43. package/dist/core-interfaces/jsonType.js.map +1 -0
  44. package/dist/datastorePresenceManagerFactory.d.ts +48 -0
  45. package/dist/datastorePresenceManagerFactory.d.ts.map +1 -0
  46. package/dist/datastorePresenceManagerFactory.js +79 -0
  47. package/dist/datastorePresenceManagerFactory.js.map +1 -0
  48. package/dist/datastoreSupport.d.ts +31 -0
  49. package/dist/datastoreSupport.d.ts.map +1 -0
  50. package/dist/datastoreSupport.js +82 -0
  51. package/dist/datastoreSupport.js.map +1 -0
  52. package/dist/events/events.d.ts +198 -0
  53. package/dist/events/events.d.ts.map +1 -0
  54. package/dist/events/events.js +157 -0
  55. package/dist/events/events.js.map +1 -0
  56. package/dist/experimentalAccess.d.ts +15 -0
  57. package/dist/experimentalAccess.d.ts.map +1 -0
  58. package/dist/experimentalAccess.js +46 -0
  59. package/dist/experimentalAccess.js.map +1 -0
  60. package/dist/exposedInternalTypes.d.ts +100 -0
  61. package/dist/exposedInternalTypes.d.ts.map +1 -0
  62. package/dist/exposedInternalTypes.js +19 -0
  63. package/dist/exposedInternalTypes.js.map +1 -0
  64. package/dist/exposedUtilityTypes.d.ts +63 -0
  65. package/dist/exposedUtilityTypes.d.ts.map +1 -0
  66. package/dist/exposedUtilityTypes.js +7 -0
  67. package/dist/exposedUtilityTypes.js.map +1 -0
  68. package/dist/index.d.ts +22 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +21 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/internalTypes.d.ts +39 -0
  73. package/dist/internalTypes.d.ts.map +1 -0
  74. package/dist/internalTypes.js +14 -0
  75. package/dist/internalTypes.js.map +1 -0
  76. package/dist/latestMapValueManager.d.ts +182 -0
  77. package/dist/latestMapValueManager.d.ts.map +1 -0
  78. package/dist/latestMapValueManager.js +206 -0
  79. package/dist/latestMapValueManager.js.map +1 -0
  80. package/dist/latestValueControls.d.ts +44 -0
  81. package/dist/latestValueControls.d.ts.map +1 -0
  82. package/dist/latestValueControls.js +28 -0
  83. package/dist/latestValueControls.js.map +1 -0
  84. package/dist/latestValueManager.d.ts +69 -0
  85. package/dist/latestValueManager.d.ts.map +1 -0
  86. package/dist/latestValueManager.js +100 -0
  87. package/dist/latestValueManager.js.map +1 -0
  88. package/dist/latestValueTypes.d.ts +44 -0
  89. package/dist/latestValueTypes.d.ts.map +1 -0
  90. package/dist/latestValueTypes.js +7 -0
  91. package/dist/latestValueTypes.js.map +1 -0
  92. package/dist/notificationsManager.d.ts +101 -0
  93. package/dist/notificationsManager.d.ts.map +1 -0
  94. package/dist/notificationsManager.js +82 -0
  95. package/dist/notificationsManager.js.map +1 -0
  96. package/dist/package.json +15 -0
  97. package/dist/presence.d.ts +180 -0
  98. package/dist/presence.d.ts.map +1 -0
  99. package/dist/presence.js +23 -0
  100. package/dist/presence.js.map +1 -0
  101. package/dist/presenceDatastoreManager.d.ts +91 -0
  102. package/dist/presenceDatastoreManager.d.ts.map +1 -0
  103. package/dist/presenceDatastoreManager.js +248 -0
  104. package/dist/presenceDatastoreManager.js.map +1 -0
  105. package/dist/presenceManager.d.ts +20 -0
  106. package/dist/presenceManager.d.ts.map +1 -0
  107. package/dist/presenceManager.js +104 -0
  108. package/dist/presenceManager.js.map +1 -0
  109. package/dist/presenceStates.d.ts +78 -0
  110. package/dist/presenceStates.d.ts.map +1 -0
  111. package/dist/presenceStates.js +182 -0
  112. package/dist/presenceStates.js.map +1 -0
  113. package/dist/stateDatastore.d.ts +35 -0
  114. package/dist/stateDatastore.d.ts.map +1 -0
  115. package/dist/stateDatastore.js +26 -0
  116. package/dist/stateDatastore.js.map +1 -0
  117. package/dist/systemWorkspace.d.ts +51 -0
  118. package/dist/systemWorkspace.d.ts.map +1 -0
  119. package/dist/systemWorkspace.js +180 -0
  120. package/dist/systemWorkspace.js.map +1 -0
  121. package/dist/types.d.ts +92 -0
  122. package/dist/types.d.ts.map +1 -0
  123. package/dist/types.js +8 -0
  124. package/dist/types.js.map +1 -0
  125. package/dist/valueManager.d.ts +19 -0
  126. package/dist/valueManager.d.ts.map +1 -0
  127. package/dist/valueManager.js +26 -0
  128. package/dist/valueManager.js.map +1 -0
  129. package/lib/alpha.d.ts +58 -0
  130. package/lib/baseTypes.d.ts +24 -0
  131. package/lib/baseTypes.d.ts.map +1 -0
  132. package/lib/baseTypes.js +6 -0
  133. package/lib/baseTypes.js.map +1 -0
  134. package/lib/container-definitions/containerExtensions.d.ts +137 -0
  135. package/lib/container-definitions/containerExtensions.d.ts.map +1 -0
  136. package/lib/container-definitions/containerExtensions.js +6 -0
  137. package/lib/container-definitions/containerExtensions.js.map +1 -0
  138. package/lib/container-definitions/index.d.ts +7 -0
  139. package/lib/container-definitions/index.d.ts.map +1 -0
  140. package/lib/container-definitions/index.js +6 -0
  141. package/lib/container-definitions/index.js.map +1 -0
  142. package/lib/container-definitions/runtime.d.ts +12 -0
  143. package/lib/container-definitions/runtime.d.ts.map +1 -0
  144. package/lib/container-definitions/runtime.js +6 -0
  145. package/lib/container-definitions/runtime.js.map +1 -0
  146. package/lib/core-interfaces/exposedUtilityTypes.d.ts +446 -0
  147. package/lib/core-interfaces/exposedUtilityTypes.d.ts.map +1 -0
  148. package/lib/core-interfaces/exposedUtilityTypes.js +10 -0
  149. package/lib/core-interfaces/exposedUtilityTypes.js.map +1 -0
  150. package/lib/core-interfaces/index.d.ts +10 -0
  151. package/lib/core-interfaces/index.d.ts.map +1 -0
  152. package/lib/core-interfaces/index.js +6 -0
  153. package/lib/core-interfaces/index.js.map +1 -0
  154. package/lib/core-interfaces/jsonDeserialized.d.ts +109 -0
  155. package/lib/core-interfaces/jsonDeserialized.d.ts.map +1 -0
  156. package/lib/core-interfaces/jsonDeserialized.js +6 -0
  157. package/lib/core-interfaces/jsonDeserialized.js.map +1 -0
  158. package/lib/core-interfaces/jsonSerializable.d.ts +120 -0
  159. package/lib/core-interfaces/jsonSerializable.d.ts.map +1 -0
  160. package/lib/core-interfaces/jsonSerializable.js +6 -0
  161. package/lib/core-interfaces/jsonSerializable.js.map +1 -0
  162. package/lib/core-interfaces/jsonSerializationErrors.d.ts +31 -0
  163. package/lib/core-interfaces/jsonSerializationErrors.d.ts.map +1 -0
  164. package/lib/core-interfaces/jsonSerializationErrors.js +6 -0
  165. package/lib/core-interfaces/jsonSerializationErrors.js.map +1 -0
  166. package/lib/core-interfaces/jsonType.d.ts +29 -0
  167. package/lib/core-interfaces/jsonType.d.ts.map +1 -0
  168. package/lib/core-interfaces/jsonType.js +6 -0
  169. package/lib/core-interfaces/jsonType.js.map +1 -0
  170. package/lib/datastorePresenceManagerFactory.d.ts +48 -0
  171. package/lib/datastorePresenceManagerFactory.d.ts.map +1 -0
  172. package/lib/datastorePresenceManagerFactory.js +75 -0
  173. package/lib/datastorePresenceManagerFactory.js.map +1 -0
  174. package/lib/datastoreSupport.d.ts +31 -0
  175. package/lib/datastoreSupport.d.ts.map +1 -0
  176. package/lib/datastoreSupport.js +77 -0
  177. package/lib/datastoreSupport.js.map +1 -0
  178. package/lib/events/events.d.ts +198 -0
  179. package/lib/events/events.d.ts.map +1 -0
  180. package/lib/events/events.js +152 -0
  181. package/lib/events/events.js.map +1 -0
  182. package/lib/experimentalAccess.d.ts +15 -0
  183. package/lib/experimentalAccess.d.ts.map +1 -0
  184. package/lib/experimentalAccess.js +42 -0
  185. package/lib/experimentalAccess.js.map +1 -0
  186. package/lib/exposedInternalTypes.d.ts +100 -0
  187. package/lib/exposedInternalTypes.d.ts.map +1 -0
  188. package/lib/exposedInternalTypes.js +16 -0
  189. package/lib/exposedInternalTypes.js.map +1 -0
  190. package/lib/exposedUtilityTypes.d.ts +63 -0
  191. package/lib/exposedUtilityTypes.d.ts.map +1 -0
  192. package/lib/exposedUtilityTypes.js +6 -0
  193. package/lib/exposedUtilityTypes.js.map +1 -0
  194. package/lib/index.d.ts +22 -0
  195. package/lib/index.d.ts.map +1 -0
  196. package/lib/index.js +11 -0
  197. package/lib/index.js.map +1 -0
  198. package/lib/internalTypes.d.ts +39 -0
  199. package/lib/internalTypes.d.ts.map +1 -0
  200. package/lib/internalTypes.js +11 -0
  201. package/lib/internalTypes.js.map +1 -0
  202. package/lib/latestMapValueManager.d.ts +182 -0
  203. package/lib/latestMapValueManager.d.ts.map +1 -0
  204. package/lib/latestMapValueManager.js +202 -0
  205. package/lib/latestMapValueManager.js.map +1 -0
  206. package/lib/latestValueControls.d.ts +44 -0
  207. package/lib/latestValueControls.d.ts.map +1 -0
  208. package/lib/latestValueControls.js +24 -0
  209. package/lib/latestValueControls.js.map +1 -0
  210. package/lib/latestValueManager.d.ts +69 -0
  211. package/lib/latestValueManager.d.ts.map +1 -0
  212. package/lib/latestValueManager.js +96 -0
  213. package/lib/latestValueManager.js.map +1 -0
  214. package/lib/latestValueTypes.d.ts +44 -0
  215. package/lib/latestValueTypes.d.ts.map +1 -0
  216. package/lib/latestValueTypes.js +6 -0
  217. package/lib/latestValueTypes.js.map +1 -0
  218. package/lib/notificationsManager.d.ts +101 -0
  219. package/lib/notificationsManager.d.ts.map +1 -0
  220. package/lib/notificationsManager.js +78 -0
  221. package/lib/notificationsManager.js.map +1 -0
  222. package/lib/presence.d.ts +180 -0
  223. package/lib/presence.d.ts.map +1 -0
  224. package/lib/presence.js +20 -0
  225. package/lib/presence.js.map +1 -0
  226. package/lib/presenceDatastoreManager.d.ts +91 -0
  227. package/lib/presenceDatastoreManager.d.ts.map +1 -0
  228. package/lib/presenceDatastoreManager.js +244 -0
  229. package/lib/presenceDatastoreManager.js.map +1 -0
  230. package/lib/presenceManager.d.ts +20 -0
  231. package/lib/presenceManager.d.ts.map +1 -0
  232. package/lib/presenceManager.js +100 -0
  233. package/lib/presenceManager.js.map +1 -0
  234. package/lib/presenceStates.d.ts +78 -0
  235. package/lib/presenceStates.d.ts.map +1 -0
  236. package/lib/presenceStates.js +177 -0
  237. package/lib/presenceStates.js.map +1 -0
  238. package/lib/stateDatastore.d.ts +35 -0
  239. package/lib/stateDatastore.d.ts.map +1 -0
  240. package/lib/stateDatastore.js +21 -0
  241. package/lib/stateDatastore.js.map +1 -0
  242. package/lib/systemWorkspace.d.ts +51 -0
  243. package/lib/systemWorkspace.d.ts.map +1 -0
  244. package/lib/systemWorkspace.js +176 -0
  245. package/lib/systemWorkspace.js.map +1 -0
  246. package/lib/tsdoc-metadata.json +11 -0
  247. package/lib/types.d.ts +92 -0
  248. package/lib/types.d.ts.map +1 -0
  249. package/lib/types.js +7 -0
  250. package/lib/types.js.map +1 -0
  251. package/lib/valueManager.d.ts +19 -0
  252. package/lib/valueManager.d.ts.map +1 -0
  253. package/lib/valueManager.js +21 -0
  254. package/lib/valueManager.js.map +1 -0
  255. package/package.json +175 -0
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ export type { IRuntimeInternal } from "./runtime.js";
6
+ export type * from "./containerExtensions.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/container-definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,mBAAmB,0BAA0B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/container-definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport type { IRuntimeInternal } from \"./runtime.js\";\n\n// eslint-disable-next-line no-restricted-syntax\nexport type * from \"./containerExtensions.js\";\n"]}
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import type { IRuntime } from "@fluidframework/container-definitions/internal";
6
+ import type { ContainerExtensionStore } from "./containerExtensions.js";
7
+ /**
8
+ * @internal
9
+ */
10
+ export interface IRuntimeInternal extends IRuntime, ContainerExtensionStore {
11
+ }
12
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/container-definitions/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,EAAE,uBAAuB;CAAG"}
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/container-definitions/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IRuntime } from \"@fluidframework/container-definitions/internal\";\n\nimport type { ContainerExtensionStore } from \"./containerExtensions.js\";\n\n/**\n * @internal\n */\nexport interface IRuntimeInternal extends IRuntime, ContainerExtensionStore {}\n"]}
@@ -0,0 +1,446 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import type { SerializationErrorPerNonPublicProperties, SerializationErrorPerUndefinedArrayElement } from "./jsonSerializationErrors.js";
6
+ import type { JsonTypeWith, NonNullJsonObjectWith } from "./jsonType.js";
7
+ /**
8
+ * Unique symbol for recursion meta-typing.
9
+ */
10
+ declare const RecursionMarkerSymbol: unique symbol;
11
+ /**
12
+ * Collection of utility types that are not intended to be used/imported
13
+ * directly outside of this package.
14
+ *
15
+ * @privateRemarks
16
+ * There are ony three intentional exports from this module:
17
+ * - {@link InternalUtilityTypes.IfSameType | IfSameType}
18
+ * - {@link InternalUtilityTypes.JsonDeserializedImpl | JsonDeserializedImpl }
19
+ * - {@link InternalUtilityTypes.JsonSerializableImpl | JsonSerializableImpl }
20
+ *
21
+ * api-extractor will allow `export` to be removed from others but generates
22
+ * api-report a little oddly with a rogue `{};` floating at end of namespace
23
+ * in api.md file. It will promote all of the support types to appear as
24
+ * exported anyway. All in namespace are left exported to avoid api-extractor
25
+ * potentially failing to validate other modules correctly.
26
+ *
27
+ * @alpha
28
+ * @system
29
+ */
30
+ export declare namespace InternalUtilityTypes {
31
+ /**
32
+ * Meta-type for controlling filtering utilities.
33
+ *
34
+ * @system
35
+ */
36
+ interface FilterControls {
37
+ /**
38
+ * Exact types that are managed by custom serialization/deserialization
39
+ * logic (beyond JSON.stringify and JSON.parse without replacers/revivers).
40
+ * Only exact types matching specification will be preserved unaltered.
41
+ *
42
+ * @privateRemarks
43
+ * This could be a tuple of types that would support replacing exactly
44
+ * specified unions. However that would not be useful in the context of
45
+ * serializers/deserializers as those must work only with the specific
46
+ * data given at runtime and have no knowledge of the alternate data
47
+ * that could be encountered in that space.
48
+ *
49
+ * Such union matching is only known to be useful for matching recursion
50
+ * cases.
51
+ */
52
+ AllowExactly: unknown;
53
+ /**
54
+ * General types that are managed by custom serialization/deserialization
55
+ * logic (beyond JSON.stringify and JSON.parse without replacers/revivers).
56
+ * Any type satisfying specification will be preserved unaltered.
57
+ */
58
+ AllowExtensionOf: unknown;
59
+ }
60
+ /**
61
+ * Returns non-symbol keys for optional properties of an object type.
62
+ *
63
+ * For homomorphic mapping use with `as` to filter. Example:
64
+ * `[K in keyof T as OptionalNonSymbolKeysOf<T, K>]: ...`
65
+ *
66
+ * @system
67
+ */
68
+ type OptionalNonSymbolKeysOf<T extends object, Keys extends keyof T = keyof T> = Exclude<{
69
+ [K in Keys]: T extends Record<K, T[K]> ? never : K;
70
+ }[Keys], undefined | symbol>;
71
+ /**
72
+ * Returns non-symbol keys for required properties of an object type.
73
+ *
74
+ * For homomorphic mapping use with `as` to filter. Example:
75
+ * `[K in keyof T as RequiredNonSymbolKeysOf<T, K>]: ...`
76
+ *
77
+ * @system
78
+ */
79
+ type RequiredNonSymbolKeysOf<T extends object, Keys extends keyof T = keyof T> = Exclude<{
80
+ [K in Keys]: T extends Record<K, T[K]> ? K : never;
81
+ }[Keys], undefined | symbol>;
82
+ /**
83
+ * Returns Result.WhenSomethingDeserializable if T is sometimes at least a
84
+ * partially deserializable type, otherwise Result.WhenNeverDeserializable.
85
+ * Fully not deserializable (bigints, symbols, undefined and functions without
86
+ * other properties less overlap with T*Exception) produce Result.WhenNeverDeserializable.
87
+ * An object would have a defined result even if parts of its content are
88
+ * not deserializable.
89
+ *
90
+ * @param Result - Result type with two properties. One property must always
91
+ * be `never` as `T` maybe a union of never deserializable and at least
92
+ * partially deserializable types and the result is a union of Result.*.
93
+ *
94
+ * @privateRemarks
95
+ * If `Result.WhenSomethingDeserializable` was `true` and
96
+ * `Result.WhenNeverDeserializable` was `false`, then the return type
97
+ * for type `T` would be `boolean` for a sometimes deserializable type.
98
+ *
99
+ * @system
100
+ */
101
+ type TestDeserializabilityOf<T, TExactException, TExtendsException, Result extends {
102
+ WhenSomethingDeserializable: unknown;
103
+ WhenNeverDeserializable: never;
104
+ } | {
105
+ WhenSomethingDeserializable: never;
106
+ WhenNeverDeserializable: unknown;
107
+ }> = T extends never ? Result["WhenNeverDeserializable"] : T extends TExtendsException ? Result["WhenSomethingDeserializable"] : IfExactTypeInUnion<T, TExactException, Result["WhenSomethingDeserializable"], T extends bigint | symbol | undefined ? Result["WhenNeverDeserializable"] : T extends Function ? ExtractFunctionFromIntersection<T> extends {
108
+ classification: "exactly Function";
109
+ } ? Result["WhenNeverDeserializable"] : Result["WhenSomethingDeserializable"] : Result["WhenSomethingDeserializable"]>;
110
+ /**
111
+ * Similar to `Exclude` but only excludes exact `U`s from `T`
112
+ * rather than any type that extends `U`.
113
+ *
114
+ * @system
115
+ */
116
+ type ExcludeExactly<T, U> = IfSameType<T, U, never, T>;
117
+ /**
118
+ * Returns non-symbol keys for defined, (likely) serializable properties of an
119
+ * object type. Keys with fully unsupported properties (undefined, symbol, and
120
+ * bigint) and sometimes unsupported (functions) are excluded. An exception to
121
+ * that is when there are supported types in union with just bigint.
122
+ *
123
+ * For homomorphic mapping use with `as` to filter. Example:
124
+ * `[K in keyof T as NonSymbolWithDeserializablePropertyOf<T, never, never, K>]: ...`
125
+ *
126
+ * @system
127
+ */
128
+ type NonSymbolWithDeserializablePropertyOf<T extends object, TExactException, TExtendsException, Keys extends keyof T = keyof T> = Exclude<{
129
+ [K in Keys]: ExcludeExactly<Exclude<T[K], TExtendsException>, TExactException> extends infer PossibleTypeLessAllowed ? Extract<PossibleTypeLessAllowed, undefined | symbol | Function> extends never ? IfSameType<PossibleTypeLessAllowed, bigint, never, T[K] extends never ? never : K> : never : never;
130
+ }[Keys], undefined | symbol>;
131
+ /**
132
+ * Returns non-symbol keys for partially supported properties of an object type.
133
+ * Keys with only unsupported properties (undefined, symbol, bigint, and
134
+ * functions without other properties) are excluded.
135
+ *
136
+ * For homomorphic mapping use with `as` to filter. Example:
137
+ * `[K in keyof T as NonSymbolWithPossiblyDeserializablePropertyOf<T, never, never, K>]: ...`
138
+ *
139
+ * @system
140
+ */
141
+ type NonSymbolWithPossiblyDeserializablePropertyOf<T extends object, TExactException, TExtendsException, Keys extends keyof T = keyof T> = Exclude<{
142
+ [K in Keys]: Extract<ExcludeExactly<Exclude<T[K], TExtendsException>, TExactException>, undefined | symbol | Function> extends never ? never : TestDeserializabilityOf<T[K], TExactException, TExtendsException, {
143
+ WhenSomethingDeserializable: K;
144
+ WhenNeverDeserializable: never;
145
+ }>;
146
+ }[Keys], undefined | symbol>;
147
+ /**
148
+ * Filters a type `T` for `undefined` that is not viable in an array (or tuple) that
149
+ * must go through JSON serialization.
150
+ * If `T` is `undefined`, then error type {@link SerializationErrorPerUndefinedArrayElement}
151
+ * is returned with hopes of being informative.
152
+ *
153
+ * @system
154
+ */
155
+ type JsonForSerializableArrayItem<T, Controls extends FilterControls, TAncestorTypes extends unknown[], TBlessed> = boolean extends (T extends never ? true : false) ? TBlessed : unknown extends T ? TBlessed : IfExactTypeInTuple<T, TAncestorTypes, T, T extends null | boolean | number | string | Controls["AllowExtensionOf"] ? T : IfExactTypeInUnion<T, Controls["AllowExactly"], T, undefined extends T ? SerializationErrorPerUndefinedArrayElement : TBlessed>>;
156
+ /**
157
+ * Filters a type `T` for types that become null through JSON serialization.
158
+ *
159
+ * @system
160
+ */
161
+ type JsonForDeserializedArrayItem<T, Controls extends FilterControls, TBlessed> = boolean extends (T extends never ? true : false) ? TBlessed : unknown extends T ? TBlessed : T extends null | boolean | number | string | Controls["AllowExtensionOf"] ? T : IfExactTypeInUnion<T, Controls["AllowExactly"], T, T extends undefined | symbol ? null : T extends Function ? ExtractFunctionFromIntersection<T> extends {
162
+ classification: "exactly Function";
163
+ } ? null : null | TBlessed : TBlessed>;
164
+ /**
165
+ * Checks for a type that is simple class of number and string indexed types to numbers and strings.
166
+ *
167
+ * @system
168
+ */
169
+ type IfEnumLike<T extends object, EnumLike = never, NotEnumLike = unknown> = T extends readonly (infer _)[] ? NotEnumLike : T extends Function ? NotEnumLike : T extends {
170
+ readonly [i: number]: string;
171
+ readonly [p: string]: number | string;
172
+ readonly [s: symbol]: never;
173
+ } ? true extends {
174
+ [K in keyof T]: T[K] extends never ? true : never;
175
+ }[keyof T] ? NotEnumLike : EnumLike : NotEnumLike;
176
+ /**
177
+ * Test for type equality
178
+ *
179
+ * @returns IfSame if identical and IfDifferent otherwise.
180
+ *
181
+ * Implementation derived from https://github.com/Microsoft/TypeScript/issues/27024#issuecomment-421529650
182
+ *
183
+ * @system
184
+ */
185
+ type IfSameType<X, Y, IfSame = unknown, IfDifferent = never> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? IfSame : IfDifferent;
186
+ /**
187
+ * Test for type equality with tuple of other types.
188
+ *
189
+ * @typeParam T - Type to find in Tuple.
190
+ * @typeParam Tuple - Tuple of types to test against.
191
+ * @typeParam IfMatch - Type to return if match is found.
192
+ * @typeParam IfNoMatch - Type to return if no match is found.
193
+ *
194
+ * @privateRemarks
195
+ * Tests for an extact match of `T` in `Tuple[0]`. If not found,
196
+ * recurses with the remainder of the tuple.
197
+ */
198
+ type IfExactTypeInTuple<T, Tuple extends unknown[], IfMatch = unknown, IfNoMatch = never> = Tuple extends [infer First, ...infer Rest] ? IfSameType<T, First, IfMatch, IfExactTypeInTuple<T, Rest, IfMatch, IfNoMatch>> : IfNoMatch;
199
+ /**
200
+ * Test for type equality with union of other types.
201
+ *
202
+ * @typeParam T - Type to find in Union. If this is itself a union, then all types must be found in Union.
203
+ * @typeParam Union - Union of types to test against.
204
+ * @typeParam IfMatch - Type to return if match is found.
205
+ * @typeParam IfNoMatch - Type to return if no match is found.
206
+ *
207
+ * @remarks
208
+ * In a recursive context, use {@link InternalUtilityTypes.IfExactTypeInTuple} to manage ancestry.
209
+ *
210
+ * @privateRemarks
211
+ * Perhaps it is a Typescript defect but a simple check that `T` is `never`
212
+ * via `T extends never` does not work as expected in this context.
213
+ * Workaround using `IfSameType<..., never,...>`.
214
+ * @system
215
+ */
216
+ type IfExactTypeInUnion<T, Union, IfMatch = unknown, IfNoMatch = never> = IfSameType<T, never, IfSameType<Union, never, IfMatch, IfNoMatch>, IfSameType<T, Extract<Union, T>, IfMatch, IfNoMatch>>;
217
+ /**
218
+ * Test for type equality
219
+ *
220
+ * @returns `true` if identical and `false` otherwise.
221
+ *
222
+ * @system
223
+ */
224
+ type IsSameType<X, Y> = IfSameType<X, Y, true, false>;
225
+ /**
226
+ * Checks that type is exactly `object`.
227
+ *
228
+ * @system
229
+ */
230
+ type IsExactlyObject<T extends object> = IsSameType<T, object>;
231
+ /**
232
+ * Creates a simple object type from an intersection of multiple.
233
+ * @privateRemarks
234
+ * `T extends Record` within the implementation encourages tsc to process
235
+ * intersections within unions.
236
+ *
237
+ * @system
238
+ */
239
+ type FlattenIntersection<T extends Record<string | number | symbol, unknown>> = T extends Record<string | number | symbol, unknown> ? {
240
+ [K in keyof T]: T[K];
241
+ } : T;
242
+ /**
243
+ * Extracts Function portion from an intersection (&) type returning
244
+ * the extracted portion in the `function` property or `unknown` if
245
+ * no function is found.
246
+ * The returned `classification` property has one of three values:
247
+ * - "no Function" if the type is not a function.
248
+ * - "exactly Function" if the type is exactly a function.
249
+ * - "Function and more" if the type is a function and has other properties.
250
+ *
251
+ * @system
252
+ */
253
+ type ExtractFunctionFromIntersection<T extends object> = (T extends new (...args: infer A) => infer R ? new (...args: A) => R : unknown) & (T extends (...args: infer A) => infer R ? (...args: A) => R : unknown) extends infer Functional ? {
254
+ classification: unknown extends Functional ? "no Function" : Functional extends Required<T> ? "exactly Function" : "Function and more";
255
+ function: Functional;
256
+ } : never;
257
+ /**
258
+ * Returns `Filtered` & any Function intersection from `Original`.
259
+ * If `Original` is exactly a Function, then `Filtered` is left out
260
+ * under the assumption that it is not useful/applicable.
261
+ *
262
+ * @system
263
+ */
264
+ type FilterPreservingFunction<Original extends object, Filtered> = ExtractFunctionFromIntersection<Original> extends {
265
+ classification: infer TClassification;
266
+ function: infer TFunction;
267
+ } ? TClassification extends "exactly Function" ? TFunction : TFunction & Filtered : never;
268
+ /**
269
+ * Replaces any instance where a type T recurses into itself or a portion of
270
+ * itself with TReplacement.
271
+ *
272
+ * @typeParam T - Type to process.
273
+ * @typeParam TRecursionMarker - Replacement marker type.
274
+ * @typeParam Controls - Allowances are preserved as-is.
275
+ * @typeParam TAncestorTypes - Types that are ancestors of T.
276
+ * @typeParam TNextAncestor - Set exactly to T. This is passed separately
277
+ * such that T union types remain intact as exact ancestors.
278
+ *
279
+ * @remarks
280
+ * Filtering applied to class instances with non-public properties will not
281
+ * preserve the class instance unless those classes are known and listed as
282
+ * allowances via `Controls`.
283
+ *
284
+ * @privateRemarks
285
+ * This implementation handles functions including function with properties.
286
+ * There are no known cases where replacing recursion under such types make
287
+ * a difference. Either the function (whole type) is allowed by the Json
288
+ * filters or function is not allowed at all.
289
+ * If the function portion is found to be problematic later, then could use
290
+ * `T extends Function ? T : ...` to ignore function objects.
291
+ *
292
+ * @system
293
+ */
294
+ type ReplaceRecursionWithMarkerAndPreserveAllowances<T, TRecursionMarker, Controls extends FilterControls, TAncestorTypes extends unknown[] = [], TNextAncestor = T> = IfExactTypeInTuple<T, TAncestorTypes, true, "no match"> extends true ? TRecursionMarker : T extends infer _ ? IfExactTypeInTuple<T, TAncestorTypes, true, "no match"> extends true ? TRecursionMarker : T extends Controls["AllowExtensionOf"] ? T : IfExactTypeInUnion<T, Controls["AllowExactly"], true, "no match"> extends true ? T : T extends object ? FilterPreservingFunction<T, {
295
+ [K in keyof T]: ReplaceRecursionWithMarkerAndPreserveAllowances<T[K], TRecursionMarker, Controls, [
296
+ TNextAncestor,
297
+ ...TAncestorTypes
298
+ ]>;
299
+ }> : T : never;
300
+ /**
301
+ * Replaces any instances of "allowed" types and recursion within with `never`.
302
+ *
303
+ * @typeParam T - Type to process.
304
+ * @typeParam Controls - Allowances to replace.
305
+ * @typeParam TAncestorTypes - Types that are ancestors of T.
306
+ * @typeParam TNextAncestor - Set exactly to T. This is passed separately
307
+ * such that T union types remain intact as exact ancestors.
308
+ *
309
+ * @system
310
+ */
311
+ type ReplaceAllowancesAndRecursionWithNever<T, Controls extends FilterControls, TAncestorTypes extends unknown[] = [], TNextAncestor = T> = IfExactTypeInTuple<T, TAncestorTypes, true, "no match"> extends true ? never : T extends Controls["AllowExtensionOf"] ? never : IfExactTypeInUnion<T, Controls["AllowExactly"], true, "no match"> extends true ? never : IfExactTypeInTuple<T, TAncestorTypes, true, "no match"> extends true ? never : T extends object ? FilterPreservingFunction<T, {
312
+ [K in keyof T]: ReplaceAllowancesAndRecursionWithNever<T[K], Controls, [
313
+ TNextAncestor,
314
+ ...TAncestorTypes
315
+ ]>;
316
+ }> : T;
317
+ /**
318
+ * Test for non-public properties (which can only exist on class instance types).
319
+ *
320
+ * Returns `HasNonPublic` if `T` deeply may contain a private or protected field
321
+ * and `OnlyPublics` otherwise.
322
+ *
323
+ * @remarks
324
+ * Compare original (unprocessed) to filtered case that has `never` where
325
+ * recursing or where allowed exception types are used.
326
+ *
327
+ * Note that this a test of the type and not the actual data. So, if an
328
+ * interface is given as `T` where implemented by a class, any private or
329
+ * protected fields within the class will not be detected.
330
+ *
331
+ * @system
332
+ */
333
+ type IfNonPublicProperties<T, Controls extends FilterControls, HasNonPublic = never, OnlyPublics = unknown> = ReplaceAllowancesAndRecursionWithNever<T, Controls> extends T ? OnlyPublics : HasNonPublic;
334
+ /**
335
+ * Outer implementation of {@link JsonSerializable} handling meta cases
336
+ * like classes (with non-public properties).
337
+ *
338
+ * @system
339
+ */
340
+ type JsonSerializableImpl<T, Options extends Partial<FilterControls> & {
341
+ IgnoreInaccessibleMembers?: "ignore-inaccessible-members";
342
+ }, TAncestorTypes extends unknown[] = [], TNextAncestor = T> = {
343
+ AllowExactly: Options extends {
344
+ AllowExactly: unknown;
345
+ } ? Options["AllowExactly"] : never;
346
+ AllowExtensionOf: Options extends {
347
+ AllowExtensionOf: unknown;
348
+ } ? Options["AllowExtensionOf"] : never;
349
+ } extends infer Controls ? Controls extends FilterControls ? boolean extends (T extends never ? true : false) ? JsonTypeWith<Controls["AllowExactly"] | Controls["AllowExtensionOf"]> : Options["IgnoreInaccessibleMembers"] extends "ignore-inaccessible-members" ? JsonSerializableFilter<T, Controls, TAncestorTypes, TNextAncestor> : IfNonPublicProperties<T, Controls, "found non-publics", "only publics"> extends "found non-publics" ? T extends readonly (infer _)[] ? {
350
+ [K in keyof T]: JsonSerializableImpl<T[K], Controls, [
351
+ TNextAncestor,
352
+ ...TAncestorTypes
353
+ ]>;
354
+ } : SerializationErrorPerNonPublicProperties : JsonSerializableFilter<T, Controls, TAncestorTypes, TNextAncestor> : never : never;
355
+ /**
356
+ * Core implementation of {@link JsonSerializable}.
357
+ *
358
+ * @privateRemarks
359
+ * Note that `T` becomes an Controls.AllowExtensionOf type during recursion.
360
+ * Filtering through a single layer of recursion is all that is required
361
+ * when using in prescribed filter scenario. Controls.AllowExtensionOf must
362
+ * be used instead of Controls.AllowExactly to avoid possibly deep and
363
+ * infinite recursion from tsc. Checking extension of is sufficient as all
364
+ * extended types from the recursion type are more specific and and would
365
+ * be considered before reaching the more general T currently being processed.
366
+ *
367
+ * @system
368
+ */
369
+ type JsonSerializableFilter<T, Controls extends FilterControls, TAncestorTypes extends unknown[], TNextAncestor = T> = boolean extends (T extends never ? true : false) ? JsonTypeWith<Controls["AllowExactly"] | Controls["AllowExtensionOf"]> : unknown extends T ? JsonTypeWith<Controls["AllowExactly"] | Controls["AllowExtensionOf"]> : IfExactTypeInTuple<T, TAncestorTypes, true, "no match"> extends true ? T : T extends null | boolean | number | string | Controls["AllowExtensionOf"] ? T : IfExactTypeInUnion<T, Controls["AllowExactly"], true, "no match"> extends true ? T : Extract<T, Function> extends never ? T extends object ? T extends readonly (infer _)[] ? {
370
+ [K in keyof T]: JsonForSerializableArrayItem<T[K], Controls, TAncestorTypes, JsonSerializableFilter<T[K], Controls, [
371
+ TNextAncestor,
372
+ ...TAncestorTypes
373
+ ]>>;
374
+ } : IsExactlyObject<T> extends true ? NonNullJsonObjectWith<Controls["AllowExactly"] | Controls["AllowExtensionOf"]> : IfEnumLike<T> extends never ? T : FlattenIntersection<{
375
+ [K in keyof T as RequiredNonSymbolKeysOf<T, K>]-?: undefined extends T[K] ? {
376
+ ["error required property may not allow undefined value"]: never;
377
+ } : JsonSerializableFilter<T[K], Controls, [
378
+ TNextAncestor,
379
+ ...TAncestorTypes
380
+ ]>;
381
+ } & {
382
+ [K in keyof T as OptionalNonSymbolKeysOf<T, K>]?: JsonSerializableFilter<T[K], Controls, [
383
+ TNextAncestor,
384
+ ...TAncestorTypes
385
+ ]>;
386
+ } & {
387
+ [K in keyof T & symbol]: never;
388
+ }> : never : never;
389
+ /**
390
+ * Sentinel type for use when marking points of recursion (in a recursive type).
391
+ * Type is expected to be unique, though no lengths is taken to ensure that.
392
+ *
393
+ * @system
394
+ */
395
+ interface RecursionMarker {
396
+ [RecursionMarkerSymbol]: typeof RecursionMarkerSymbol;
397
+ }
398
+ /**
399
+ * Recursion limit is the count of `+` that prefix it when string.
400
+ *
401
+ * @system
402
+ */
403
+ type RecursionLimit = `+${string}` | 0;
404
+ /**
405
+ * Outer implementation of {@link JsonDeserialized} handling meta cases
406
+ * like recursive types.
407
+ *
408
+ * @privateRemarks
409
+ * This utility is reentrant and will process a type `T` up to RecurseLimit.
410
+ *
411
+ * @system
412
+ */
413
+ type JsonDeserializedImpl<T, Options extends Partial<FilterControls>, RecurseLimit extends RecursionLimit = "++++"> = {
414
+ AllowExactly: Options extends {
415
+ AllowExactly: unknown;
416
+ } ? Options["AllowExactly"] : never;
417
+ AllowExtensionOf: Options extends {
418
+ AllowExtensionOf: unknown;
419
+ } ? Options["AllowExtensionOf"] : never;
420
+ } extends infer Controls ? Controls extends FilterControls ? boolean extends (T extends never ? true : false) ? JsonTypeWith<Controls["AllowExactly"] | Controls["AllowExtensionOf"]> : ReplaceRecursionWithMarkerAndPreserveAllowances<T, RecursionMarker, Controls> extends infer TNoRecursionAndOnlyPublics ? IsSameType<TNoRecursionAndOnlyPublics, JsonDeserializedFilter<TNoRecursionAndOnlyPublics, {
421
+ AllowExactly: Controls["AllowExactly"] | RecursionMarker;
422
+ AllowExtensionOf: Controls["AllowExtensionOf"];
423
+ }, 0>> extends true ? IfNonPublicProperties<T, Controls, "found non-publics", "only publics"> extends "found non-publics" ? JsonDeserializedFilter<T, Controls, RecurseLimit> : T : JsonDeserializedFilter<T, Controls, RecurseLimit> : never : never : never;
424
+ /**
425
+ * Recurses T applying {@link InternalUtilityTypes.JsonDeserializedFilter} up to RecurseLimit times.
426
+ *
427
+ * @system
428
+ */
429
+ type JsonDeserializedRecursion<T, Controls extends FilterControls, RecurseLimit extends RecursionLimit, TAncestorTypes> = T extends TAncestorTypes ? RecurseLimit extends `+${infer RecursionRemainder}` ? JsonDeserializedImpl<T, Controls, RecursionRemainder extends RecursionLimit ? RecursionRemainder : 0> : JsonTypeWith<Controls["AllowExactly"] | Controls["AllowExtensionOf"]> : JsonDeserializedFilter<T, Controls, RecurseLimit, TAncestorTypes | T>;
430
+ /**
431
+ * Core implementation of {@link JsonDeserialized}.
432
+ *
433
+ * @system
434
+ */
435
+ type JsonDeserializedFilter<T, Controls extends FilterControls, RecurseLimit extends RecursionLimit, TAncestorTypes = T> = boolean extends (T extends never ? true : false) ? JsonTypeWith<Controls["AllowExactly"] | Controls["AllowExtensionOf"]> : unknown extends T ? JsonTypeWith<Controls["AllowExactly"] | Controls["AllowExtensionOf"]> : T extends null | boolean | number | string | Controls["AllowExtensionOf"] ? T : IfExactTypeInUnion<T, Controls["AllowExactly"], true, "not found"> extends true ? T : T extends object ? ExtractFunctionFromIntersection<T> extends {
436
+ classification: "exactly Function";
437
+ } ? never : T extends readonly (infer _)[] ? {
438
+ [K in keyof T]: JsonForDeserializedArrayItem<T[K], Controls, JsonDeserializedRecursion<T[K], Controls, RecurseLimit, TAncestorTypes>>;
439
+ } : IsExactlyObject<T> extends true ? NonNullJsonObjectWith<Controls["AllowExactly"] | Controls["AllowExtensionOf"]> : IfEnumLike<T> extends never ? T : FlattenIntersection<{
440
+ [K in keyof T as NonSymbolWithDeserializablePropertyOf<T, Controls["AllowExactly"], Controls["AllowExtensionOf"], K>]: JsonDeserializedRecursion<T[K], Controls, RecurseLimit, TAncestorTypes>;
441
+ } & {
442
+ [K in keyof T as NonSymbolWithPossiblyDeserializablePropertyOf<T, Controls["AllowExactly"], Controls["AllowExtensionOf"], K>]?: JsonDeserializedRecursion<T[K], Controls, RecurseLimit, TAncestorTypes>;
443
+ }> : never;
444
+ }
445
+ export {};
446
+ //# sourceMappingURL=exposedUtilityTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposedUtilityTypes.d.ts","sourceRoot":"","sources":["../../src/core-interfaces/exposedUtilityTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACX,wCAAwC,EACxC,0CAA0C,EAC1C,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEzE;;GAEG;AACH,QAAA,MAAM,qBAAqB,EAAE,OAAO,MAAiC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;GAkBG;AAEH,yBAAiB,oBAAoB,CAAC;IACrC;;;;OAIG;IACH,UAAiB,cAAc;QAC9B;;;;;;;;;;;;;;WAcG;QACH,YAAY,EAAE,OAAO,CAAC;QAEtB;;;;WAIG;QACH,gBAAgB,EAAE,OAAO,CAAC;KAC1B;IAED;;;;;;;OAOG;IACH,KAAY,uBAAuB,CAClC,CAAC,SAAS,MAAM,EAChB,IAAI,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,IAC3B,OAAO,CACV;SACE,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;KAClD,CAAC,IAAI,CAAC,EACP,SAAS,GAAG,MAAM,CAClB,CAAC;IAEF;;;;;;;OAOG;IACH,KAAY,uBAAuB,CAClC,CAAC,SAAS,MAAM,EAChB,IAAI,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,IAC3B,OAAO,CACV;SACE,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;KAClD,CAAC,IAAI,CAAC,EACP,SAAS,GAAG,MAAM,CAClB,CAAC;IAEF;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAY,uBAAuB,CAClC,CAAC,EACD,eAAe,EACf,iBAAiB,EACjB,MAAM,SACH;QAAE,2BAA2B,EAAE,OAAO,CAAC;QAAC,uBAAuB,EAAE,KAAK,CAAA;KAAE,GACxE;QAAE,2BAA2B,EAAE,KAAK,CAAC;QAAC,uBAAuB,EAAE,OAAO,CAAA;KAAE,IAC9B,CAAC,SAAS,KAAK,GAC3C,MAAM,CAAC,yBAAyB,CAAC,GACd,CAAC,SAAS,iBAAiB,GACjC,MAAM,CAAC,6BAA6B,CAAC,GACR,kBAAkB,CAC1E,CAAC,EACD,eAAe,EACU,MAAM,CAAC,6BAA6B,CAAC,EACI,CAAC,SAChE,MAAM,GACN,MAAM,GACN,SAAS,GACiB,MAAM,CAAC,yBAAyB,CAAC,GAE5D,CAAC,SAAS,QAAQ,GAChB,+BAA+B,CAAC,CAAC,CAAC,SAAS;QAC3C,cAAc,EAAE,kBAAkB,CAAC;KACnC,GAC2B,MAAM,CAAC,yBAAyB,CAAC,GACrB,MAAM,CAAC,6BAA6B,CAAC,GACtC,MAAM,CAAC,6BAA6B,CAAC,CAC/E,CAAC;IAEL;;;;;OAKG;IACH,KAAY,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAE9D;;;;;;;;;;OAUG;IACH,KAAY,qCAAqC,CAChD,CAAC,SAAS,MAAM,EAChB,eAAe,EACf,iBAAiB,EACjB,IAAI,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,IAC3B,OAAO,CACV;SACE,CAAC,IAAI,IAAI,GACV,cAAc,CACb,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAChC,eAAe,CACf,SAAS,MAAM,uBAAuB,GAErC,OAAO,CACN,uBAAuB,EAGvB,SAAS,GAAG,MAAM,GAAG,QAAQ,CAC7B,SAAS,KAAK,GAE0B,UAAU,CACjD,uBAAuB,EACvB,MAAM,EACmC,KAAK,EAEnB,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,CAAC,CACzD,GACgD,KAAK,GACtD,KAAK;KACR,CAAC,IAAI,CAAC,EACP,SAAS,GAAG,MAAM,CAClB,CAAC;IAEF;;;;;;;;;OASG;IACH,KAAY,6CAA6C,CACxD,CAAC,SAAS,MAAM,EAChB,eAAe,EACf,iBAAiB,EACjB,IAAI,SAAS,MAAM,CAAC,GAAG,MAAM,CAAC,IAC3B,OAAO,CACV;SACE,CAAC,IAAI,IAAI,GAAG,OAAO,CAEnB,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,eAAe,CAAC,EAGjE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAC7B,SAAS,KAAK,GACyC,KAAK,GACM,uBAAuB,CACvF,CAAC,CAAC,CAAC,CAAC,EACJ,eAAe,EACf,iBAAiB,EACjB;YAAE,2BAA2B,EAAE,CAAC,CAAC;YAAC,uBAAuB,EAAE,KAAK,CAAA;SAAE,CAClE;KACH,CAAC,IAAI,CAAC,EACP,SAAS,GAAG,MAAM,CAClB,CAAC;IAEF;;;;;;;OAOG;IACH,KAAY,4BAA4B,CACvC,CAAC,EACD,QAAQ,SAAS,cAAc,EAC/B,cAAc,SAAS,OAAO,EAAE,EAChC,QAAQ,IAGY,OAAO,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GACnD,QAAQ,GACE,OAAO,SAAS,CAAC,GACtB,QAAQ,GACI,kBAAkB,CACjD,CAAC,EACD,cAAc,EACgB,CAAC,EAC0B,CAAC,SACvD,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,CAAC,kBAAkB,CAAC,GACY,CAAC,GACR,kBAAkB,CACnD,CAAC,EACD,QAAQ,CAAC,cAAc,CAAC,EACxB,CAAC,EACoC,SAAS,SAAS,CAAC,GAC5B,0CAA0C,GACnE,QAAQ,CACX,CACH,CAAC;IAEL;;;;OAIG;IACH,KAAY,4BAA4B,CACvC,CAAC,EACD,QAAQ,SAAS,cAAc,EAC/B,QAAQ,IAGY,OAAO,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GACnD,QAAQ,GACE,OAAO,SAAS,CAAC,GACtB,QAAQ,GACgC,CAAC,SACzD,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,CAAC,kBAAkB,CAAC,GACO,CAAC,GACL,kBAAkB,CACnD,CAAC,EACD,QAAQ,CAAC,cAAc,CAAC,EACE,CAAC,EACiB,CAAC,SAAS,SAAS,GAAG,MAAM,GAC5D,IAAI,GAEd,CAAC,SAAS,QAAQ,GAChB,+BAA+B,CAAC,CAAC,CAAC,SAAS;QAC3C,cAAc,EAAE,kBAAkB,CAAC;KACnC,GACC,IAAI,GACJ,IAAI,GAAG,QAAQ,GAChB,QAAQ,CACZ,CAAC;IAEN;;;;OAIG;IACH,KAAY,UAAU,CACrB,CAAC,SAAS,MAAM,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,OAAO,IAClB,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAChB,WAAW,GAE3B,CAAC,SAAS,QAAQ,GACE,WAAW,GAC7B,CAAC,SAAS;QAET,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAE7B,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;QAEtC,QAAQ,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KAC5B,GACuC,IAAI,SAAS;SACnD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK;KACjD,CAAC,MAAM,CAAC,CAAC,GACR,WAAW,GACX,QAAQ,GACT,WAAW,CAAC;IAEjB;;;;;;;;OAQG;IACH,KAAY,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,WAAW,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GACxF,CAAC,GACD,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GACvC,MAAM,GACN,WAAW,CAAC;IAEf;;;;;;;;;;;OAWG;IACH,KAAY,kBAAkB,CAC7B,CAAC,EACD,KAAK,SAAS,OAAO,EAAE,EACvB,OAAO,GAAG,OAAO,EACjB,SAAS,GAAG,KAAK,IACd,KAAK,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,GAC3C,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,GAC9E,SAAS,CAAC;IAEb;;;;;;;;;;;;;;;;OAgBG;IACH,KAAY,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,SAAS,GAAG,KAAK,IAAI,UAAU,CAC1F,CAAC,EACD,KAAK,EACe,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EACxC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAC5E,CAAC;IAEF;;;;;;OAMG;IACH,KAAY,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAE7D;;;;OAIG;IACH,KAAY,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAEtE;;;;;;;OAOG;IACH,KAAY,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,IAClF,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAChD;SACC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACpB,GACA,CAAC,CAAC;IAEN;;;;;;;;;;OAUG;IACH,KAAY,+BAA+B,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,SAAS,KAC1E,GAAG,IAAI,EAAE,MAAM,CAAC,KACZ,MAAM,CAAC,GACT,KACA,GAAG,IAAI,EAAE,CAAC,KACN,CAAC,GACL,OAAO,CAAC,GACV,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACrC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACjB,OAAO,CAAC,SAAS,MAAM,UAAU,GAClC;QACA,cAAc,EAAE,OAAO,SAAS,UAAU,GACvC,aAAa,GACb,UAAU,SAAS,QAAQ,CAAC,CAAC,CAAC,GAC7B,kBAAkB,GAClB,mBAAmB,CAAC;QACxB,QAAQ,EAAE,UAAU,CAAC;KACrB,GACA,KAAK,CAAC;IAET;;;;;;OAMG;IACH,KAAY,wBAAwB,CACnC,QAAQ,SAAS,MAAM,EACvB,QAAQ,IACL,+BAA+B,CAAC,QAAQ,CAAC,SAAS;QACrD,cAAc,EAAE,MAAM,eAAe,CAAC;QACtC,QAAQ,EAAE,MAAM,SAAS,CAAC;KAC1B,GACE,eAAe,SAAS,kBAAkB,GACzC,SAAS,GACT,SAAS,GAAG,QAAQ,GACrB,KAAK,CAAC;IAET;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAY,+CAA+C,CAC1D,CAAC,EACD,gBAAgB,EAChB,QAAQ,SAAS,cAAc,EAC/B,cAAc,SAAS,OAAO,EAAE,GAAG,EAAE,EACrC,aAAa,GAAG,CAAC,IAElB,kBAAkB,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,IAAI,GAC9B,gBAAgB,GACZ,CAAC,SAAS,MAAM,CAAC,GAExD,kBAAkB,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS,IAAI,GAClE,gBAAgB,GACiB,CAAC,SAAS,QAAQ,CAAC,kBAAkB,CAAC,GACtC,CAAC,GACF,kBAAkB,CAChD,CAAC,EACD,QAAQ,CAAC,cAAc,CAAC,EACxB,IAAI,EACJ,UAAU,CACV,SAAS,IAAI,GACe,CAAC,GAC7B,CAAC,SAAS,MAAM,GACf,wBAAwB,CACxB,CAAC,EACD;SACE,CAAC,IAAI,MAAM,CAAC,GAAG,+CAA+C,CAC9D,CAAC,CAAC,CAAC,CAAC,EACJ,gBAAgB,EAChB,QAAQ,EACR;YAAC,aAAa;YAAE,GAAG,cAAc;SAAC,CAClC;KACD,CACD,GAC4B,CAAC,GACjC,KAAK,CAAC;IAEV;;;;;;;;;;OAUG;IACH,KAAY,sCAAsC,CACjD,CAAC,EACD,QAAQ,SAAS,cAAc,EAC/B,cAAc,SAAS,OAAO,EAAE,GAAG,EAAE,EACrC,aAAa,GAAG,CAAC,IACuB,kBAAkB,CAC1D,CAAC,EACD,cAAc,EACd,IAAI,EACJ,UAAU,CACV,SAAS,IAAI,GACQ,KAAK,GACwC,CAAC,SAAS,QAAQ,CAAC,kBAAkB,CAAC,GACrE,KAAK,GACN,kBAAkB,CAChD,CAAC,EACD,QAAQ,CAAC,cAAc,CAAC,EACxB,IAAI,EACJ,UAAU,CACV,SAAS,IAAI,GACe,KAAK,GACa,kBAAkB,CAC/D,CAAC,EACD,cAAc,EACd,IAAI,EACJ,UAAU,CACV,SAAS,IAAI,GACM,KAAK,GACxB,CAAC,SAAS,MAAM,GACf,wBAAwB,CACxB,CAAC,EACD;SACE,CAAC,IAAI,MAAM,CAAC,GAAG,sCAAsC,CACrD,CAAC,CAAC,CAAC,CAAC,EACJ,QAAQ,EACR;YAAC,aAAa;YAAE,GAAG,cAAc;SAAC,CAClC;KACD,CACD,GAC4B,CAAC,CAAC;IAErC;;;;;;;;;;;;;;;OAeG;IACH,KAAY,qBAAqB,CAChC,CAAC,EACD,QAAQ,SAAS,cAAc,EAC/B,YAAY,GAAG,KAAK,EACpB,WAAW,GAAG,OAAO,IAClB,sCAAsC,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC9D,WAAW,GACX,YAAY,CAAC;IAIhB;;;;;OAKG;IACH,KAAY,oBAAoB,CAC/B,CAAC,EACD,OAAO,SAAS,OAAO,CAAC,cAAc,CAAC,GAAG;QACzC,yBAAyB,CAAC,EAAE,6BAA6B,CAAC;KAC1D,EACD,cAAc,SAAS,OAAO,EAAE,GAAG,EAAE,EACrC,aAAa,GAAG,CAAC,IAElB;QACC,YAAY,EAAE,OAAO,SAAS;YAAE,YAAY,EAAE,OAAO,CAAA;SAAE,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QAC1F,gBAAgB,EAAE,OAAO,SAAS;YAAE,gBAAgB,EAAE,OAAO,CAAA;SAAE,GAC5D,OAAO,CAAC,kBAAkB,CAAC,GAC3B,KAAK,CAAC;KACT,SAAS,MAAM,QAAQ,GAEtB,QAAQ,SAAS,cAAc,GACR,OAAO,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GACrD,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GACpF,OAAO,CAAC,2BAA2B,CAAC,SAAS,6BAA6B,GACzE,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,GAEnE,qBAAqB,CACnB,CAAC,EACD,QAAQ,EACR,mBAAmB,EACnB,cAAc,CACd,SAAS,mBAAmB,GAC8C,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACxF;SAEd,CAAC,IAAI,MAAM,CAAC,GAAG,oBAAoB,CACnC,CAAC,CAAC,CAAC,CAAC,EACJ,QAAQ,EACR;YAAC,aAAa;YAAE,GAAG,cAAc;SAAC,CAClC;KACD,GACyB,wCAAwC,GACjB,sBAAsB,CACvE,CAAC,EACD,QAAQ,EACR,cAAc,EACd,aAAa,CACb,GACH,KAAK,GACN,KAAK,CAAkC;IAE1C;;;;;;;;;;;;;OAaG;IACH,KAAY,sBAAsB,CACjC,CAAC,EACD,QAAQ,SAAS,cAAc,EAC/B,cAAc,SAAS,OAAO,EAAE,EAChC,aAAa,GAAG,CAAC,IACO,OAAO,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GACvD,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GAC3D,OAAO,SAAS,CAAC,GACtB,YAAY,CAC/B,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CACvD,GACyB,kBAAkB,CAC1C,CAAC,EACD,cAAc,EACd,IAAI,EACJ,UAAU,CACV,SAAS,IAAI,GACuB,CAAC,GACiC,CAAC,SACpE,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,CAAC,kBAAkB,CAAC,GACQ,CAAC,GACR,kBAAkB,CAChD,CAAC,EACD,QAAQ,CAAC,cAAc,CAAC,EACxB,IAAI,EACJ,UAAU,CACV,SAAS,IAAI,GACiB,CAAC,GAEF,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,KAAK,GACtB,CAAC,SAAS,MAAM,GACxB,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAC7C;SAGd,CAAC,IAAI,MAAM,CAAC,GAAG,4BAA4B,CAC3C,CAAC,CAAC,CAAC,CAAC,EACJ,QAAQ,EACR,cAAc,EACd,sBAAsB,CACrB,CAAC,CAAC,CAAC,CAAC,EACJ,QAAQ,EACR;YAAC,aAAa;YAAE,GAAG,cAAc;SAAC,CAClC,CACD;KACD,GACgD,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GAC5D,qBAAqB,CACvC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CACvD,GAC+B,UAAU,CAAC,CAAC,CAAC,SAAS,KAAK,GACL,CAAC,GAC/B,mBAAmB,CACzC;SAEE,CAAC,IAAI,MAAM,CAAC,IAAI,uBAAuB,CACvC,CAAC,EACD,CAAC,CACD,CAAC,CAAC,GAAG,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GACzB;YACA,CAAC,uDAAuD,CAAC,EAAE,KAAK,CAAC;SACjE,GACA,sBAAsB,CACtB,CAAC,CAAC,CAAC,CAAC,EACJ,QAAQ,EACR;YAAC,aAAa;YAAE,GAAG,cAAc;SAAC,CAClC;KACH,GAAG;SAGF,CAAC,IAAI,MAAM,CAAC,IAAI,uBAAuB,CACvC,CAAC,EACD,CAAC,CACD,CAAC,CAAC,EAAE,sBAAsB,CAC1B,CAAC,CAAC,CAAC,CAAC,EACJ,QAAQ,EACR;YAAC,aAAa;YAAE,GAAG,cAAc;SAAC,CAClC;KACD,GAAG;SAEF,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK;KAC9B,CACD,GACoB,KAAK,GACX,KAAK,CAAC;IAMhC;;;;;OAKG;IACH,UAAiB,eAAe;QAC/B,CAAC,qBAAqB,CAAC,EAAE,OAAO,qBAAqB,CAAC;KACtD;IAED;;;;OAIG;IACH,KAAY,cAAc,GAAG,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC;IAE9C;;;;;;;;OAQG;IACH,KAAY,oBAAoB,CAC/B,CAAC,EACD,OAAO,SAAS,OAAO,CAAC,cAAc,CAAC,EACvC,YAAY,SAAS,cAAc,GAAG,MAAM,IAE7C;QACC,YAAY,EAAE,OAAO,SAAS;YAAE,YAAY,EAAE,OAAO,CAAA;SAAE,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QAC1F,gBAAgB,EAAE,OAAO,SAAS;YAAE,gBAAgB,EAAE,OAAO,CAAA;SAAE,GAC5D,OAAO,CAAC,kBAAkB,CAAC,GAC3B,KAAK,CAAC;KACT,SAAS,MAAM,QAAQ,GAEtB,QAAQ,SAAS,cAAc,GACR,OAAO,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GACrD,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GAC7C,+CAA+C,CACrF,CAAC,EACD,eAAe,EACf,QAAQ,CACR,SAAS,MAAM,0BAA0B,GACG,UAAU,CACtD,0BAA0B,EAC1B,sBAAsB,CACrB,0BAA0B,EAC1B;QACC,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC;QACzD,gBAAgB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;KAC/C,EACD,CAAC,CACD,CACD,SAAS,IAAI,GAGb,qBAAqB,CACpB,CAAC,EACD,QAAQ,EACR,mBAAmB,EACnB,cAAc,CACd,SAAS,mBAAmB,GAG5B,sBAAsB,CACrB,CAAC,EACD,QAAQ,EAQR,YAAY,CACZ,GAED,CAAC,GAC4B,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,GAC9C,KAAK,GACxC,KAAK,GACN,KAAK,CAAkC;IAE1C;;;;OAIG;IACH,KAAY,yBAAyB,CACpC,CAAC,EACD,QAAQ,SAAS,cAAc,EAC/B,YAAY,SAAS,cAAc,EACnC,cAAc,IACX,CAAC,SAAS,cAAc,GACzB,YAAY,SAAS,IAAI,MAAM,kBAAkB,EAAE,GAInD,oBAAoB,CACnB,CAAC,EACD,QAAQ,EACR,kBAAkB,SAAS,cAAc,GAAG,kBAAkB,GAAG,CAAC,CAClE,GACA,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GACtE,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;IAEzE;;;;OAIG;IACH,KAAY,sBAAsB,CACjC,CAAC,EACD,QAAQ,SAAS,cAAc,EAC/B,YAAY,SAAS,cAAc,EACnC,cAAc,GAAG,CAAC,IACM,OAAO,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,GACvD,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GAC3D,OAAO,SAAS,CAAC,GACtB,YAAY,CAC/B,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CACvD,GACsE,CAAC,SACpE,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,CAAC,kBAAkB,CAAC,GACQ,CAAC,GACF,kBAAkB,CACtD,CAAC,EACD,QAAQ,CAAC,cAAc,CAAC,EACxB,IAAI,EACJ,WAAW,CACX,SAAS,IAAI,GACiB,CAAC,GACT,CAAC,SAAS,MAAM,GACrB,+BAA+B,CAAC,CAAC,CAAC,SAAS;QAC3D,cAAc,EAAE,kBAAkB,CAAC;KACnC,GAC2B,KAAK,GAER,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACrC;SAGd,CAAC,IAAI,MAAM,CAAC,GAAG,4BAA4B,CAC3C,CAAC,CAAC,CAAC,CAAC,EACJ,QAAQ,EACR,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC,CACvE;KACD,GACgD,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GAC5D,qBAAqB,CACvC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CACvD,GAC+B,UAAU,CAAC,CAAC,CAAC,SAAS,KAAK,GACL,CAAC,GAC/B,mBAAmB,CAEzC;SAEE,CAAC,IAAI,MAAM,CAAC,IAAI,qCAAqC,CACrD,CAAC,EACD,QAAQ,CAAC,cAAc,CAAC,EACxB,QAAQ,CAAC,kBAAkB,CAAC,EAC5B,CAAC,CACD,GAAG,yBAAyB,CAC5B,CAAC,CAAC,CAAC,CAAC,EACJ,QAAQ,EACR,YAAY,EACZ,cAAc,CACd;KACD,GAAG;SAEF,CAAC,IAAI,MAAM,CAAC,IAAI,6CAA6C,CAC7D,CAAC,EACD,QAAQ,CAAC,cAAc,CAAC,EACxB,QAAQ,CAAC,kBAAkB,CAAC,EAC5B,CAAC,CACD,CAAC,CAAC,EAAE,yBAAyB,CAC7B,CAAC,CAAC,CAAC,CAAC,EACJ,QAAQ,EACR,YAAY,EACZ,cAAc,CACd;KACD,CACD,GACmB,KAAK,CAAC;CAGpC"}
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ /**
6
+ * Unique symbol for recursion meta-typing.
7
+ */
8
+ const RecursionMarkerSymbol = Symbol("recursion here");
9
+ export {};
10
+ //# sourceMappingURL=exposedUtilityTypes.js.map