@fluid-internal/presence-definitions 2.93.0

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 (141) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +12 -0
  3. package/dist/baseTypes.d.ts +24 -0
  4. package/dist/baseTypes.d.ts.map +1 -0
  5. package/dist/baseTypes.js +7 -0
  6. package/dist/baseTypes.js.map +1 -0
  7. package/dist/broadcastControlsTypes.d.ts +38 -0
  8. package/dist/broadcastControlsTypes.d.ts.map +1 -0
  9. package/dist/broadcastControlsTypes.js +7 -0
  10. package/dist/broadcastControlsTypes.js.map +1 -0
  11. package/dist/exposedInternalTypes.d.ts +137 -0
  12. package/dist/exposedInternalTypes.d.ts.map +1 -0
  13. package/dist/exposedInternalTypes.js +19 -0
  14. package/dist/exposedInternalTypes.js.map +1 -0
  15. package/dist/exposedUtilityTypes.d.ts +108 -0
  16. package/dist/exposedUtilityTypes.d.ts.map +1 -0
  17. package/dist/exposedUtilityTypes.js +7 -0
  18. package/dist/exposedUtilityTypes.js.map +1 -0
  19. package/dist/index.d.ts +16 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +10 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/internal.d.ts +9 -0
  24. package/dist/internal.d.ts.map +1 -0
  25. package/dist/internal.js +7 -0
  26. package/dist/internal.js.map +1 -0
  27. package/dist/latestMapTypes.d.ts +343 -0
  28. package/dist/latestMapTypes.d.ts.map +1 -0
  29. package/dist/latestMapTypes.js +7 -0
  30. package/dist/latestMapTypes.js.map +1 -0
  31. package/dist/latestTypes.d.ts +183 -0
  32. package/dist/latestTypes.d.ts.map +1 -0
  33. package/dist/latestTypes.js +7 -0
  34. package/dist/latestTypes.js.map +1 -0
  35. package/dist/latestValueTypes.d.ts +108 -0
  36. package/dist/latestValueTypes.d.ts.map +1 -0
  37. package/dist/latestValueTypes.js +7 -0
  38. package/dist/latestValueTypes.js.map +1 -0
  39. package/dist/notificationsManagerTypes.d.ts +144 -0
  40. package/dist/notificationsManagerTypes.d.ts.map +1 -0
  41. package/dist/notificationsManagerTypes.js +7 -0
  42. package/dist/notificationsManagerTypes.js.map +1 -0
  43. package/dist/package.json +11 -0
  44. package/dist/presence.d.ts +224 -0
  45. package/dist/presence.d.ts.map +1 -0
  46. package/dist/presence.js +23 -0
  47. package/dist/presence.js.map +1 -0
  48. package/dist/statesManagerTypes.d.ts +31 -0
  49. package/dist/statesManagerTypes.d.ts.map +1 -0
  50. package/dist/statesManagerTypes.js +7 -0
  51. package/dist/statesManagerTypes.js.map +1 -0
  52. package/dist/types.d.ts +134 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/dist/types.js +7 -0
  55. package/dist/types.js.map +1 -0
  56. package/dist/validatableTypes.d.ts +79 -0
  57. package/dist/validatableTypes.d.ts.map +1 -0
  58. package/dist/validatableTypes.js +7 -0
  59. package/dist/validatableTypes.js.map +1 -0
  60. package/dist/workspace/workspaceTypes.d.ts +18 -0
  61. package/dist/workspace/workspaceTypes.d.ts.map +1 -0
  62. package/dist/workspace/workspaceTypes.js +7 -0
  63. package/dist/workspace/workspaceTypes.js.map +1 -0
  64. package/dist/workspace-runtime/presenceStatesTypes.d.ts +72 -0
  65. package/dist/workspace-runtime/presenceStatesTypes.d.ts.map +1 -0
  66. package/dist/workspace-runtime/presenceStatesTypes.js +7 -0
  67. package/dist/workspace-runtime/presenceStatesTypes.js.map +1 -0
  68. package/dist/workspace-states/stateDatastoreTypes.d.ts +42 -0
  69. package/dist/workspace-states/stateDatastoreTypes.d.ts.map +1 -0
  70. package/dist/workspace-states/stateDatastoreTypes.js +7 -0
  71. package/dist/workspace-states/stateDatastoreTypes.js.map +1 -0
  72. package/lib/baseTypes.d.ts +24 -0
  73. package/lib/baseTypes.d.ts.map +1 -0
  74. package/lib/baseTypes.js +6 -0
  75. package/lib/baseTypes.js.map +1 -0
  76. package/lib/broadcastControlsTypes.d.ts +38 -0
  77. package/lib/broadcastControlsTypes.d.ts.map +1 -0
  78. package/lib/broadcastControlsTypes.js +6 -0
  79. package/lib/broadcastControlsTypes.js.map +1 -0
  80. package/lib/exposedInternalTypes.d.ts +137 -0
  81. package/lib/exposedInternalTypes.d.ts.map +1 -0
  82. package/lib/exposedInternalTypes.js +16 -0
  83. package/lib/exposedInternalTypes.js.map +1 -0
  84. package/lib/exposedUtilityTypes.d.ts +108 -0
  85. package/lib/exposedUtilityTypes.d.ts.map +1 -0
  86. package/lib/exposedUtilityTypes.js +6 -0
  87. package/lib/exposedUtilityTypes.js.map +1 -0
  88. package/lib/index.d.ts +16 -0
  89. package/lib/index.d.ts.map +1 -0
  90. package/lib/index.js +6 -0
  91. package/lib/index.js.map +1 -0
  92. package/lib/internal.d.ts +9 -0
  93. package/lib/internal.d.ts.map +1 -0
  94. package/lib/internal.js +6 -0
  95. package/lib/internal.js.map +1 -0
  96. package/lib/latestMapTypes.d.ts +343 -0
  97. package/lib/latestMapTypes.d.ts.map +1 -0
  98. package/lib/latestMapTypes.js +6 -0
  99. package/lib/latestMapTypes.js.map +1 -0
  100. package/lib/latestTypes.d.ts +183 -0
  101. package/lib/latestTypes.d.ts.map +1 -0
  102. package/lib/latestTypes.js +6 -0
  103. package/lib/latestTypes.js.map +1 -0
  104. package/lib/latestValueTypes.d.ts +108 -0
  105. package/lib/latestValueTypes.d.ts.map +1 -0
  106. package/lib/latestValueTypes.js +6 -0
  107. package/lib/latestValueTypes.js.map +1 -0
  108. package/lib/notificationsManagerTypes.d.ts +144 -0
  109. package/lib/notificationsManagerTypes.d.ts.map +1 -0
  110. package/lib/notificationsManagerTypes.js +6 -0
  111. package/lib/notificationsManagerTypes.js.map +1 -0
  112. package/lib/presence.d.ts +224 -0
  113. package/lib/presence.d.ts.map +1 -0
  114. package/lib/presence.js +20 -0
  115. package/lib/presence.js.map +1 -0
  116. package/lib/statesManagerTypes.d.ts +31 -0
  117. package/lib/statesManagerTypes.d.ts.map +1 -0
  118. package/lib/statesManagerTypes.js +6 -0
  119. package/lib/statesManagerTypes.js.map +1 -0
  120. package/lib/tsdoc-metadata.json +11 -0
  121. package/lib/types.d.ts +134 -0
  122. package/lib/types.d.ts.map +1 -0
  123. package/lib/types.js +6 -0
  124. package/lib/types.js.map +1 -0
  125. package/lib/validatableTypes.d.ts +79 -0
  126. package/lib/validatableTypes.d.ts.map +1 -0
  127. package/lib/validatableTypes.js +6 -0
  128. package/lib/validatableTypes.js.map +1 -0
  129. package/lib/workspace/workspaceTypes.d.ts +18 -0
  130. package/lib/workspace/workspaceTypes.d.ts.map +1 -0
  131. package/lib/workspace/workspaceTypes.js +6 -0
  132. package/lib/workspace/workspaceTypes.js.map +1 -0
  133. package/lib/workspace-runtime/presenceStatesTypes.d.ts +72 -0
  134. package/lib/workspace-runtime/presenceStatesTypes.d.ts.map +1 -0
  135. package/lib/workspace-runtime/presenceStatesTypes.js +6 -0
  136. package/lib/workspace-runtime/presenceStatesTypes.js.map +1 -0
  137. package/lib/workspace-states/stateDatastoreTypes.d.ts +42 -0
  138. package/lib/workspace-states/stateDatastoreTypes.d.ts.map +1 -0
  139. package/lib/workspace-states/stateDatastoreTypes.js +6 -0
  140. package/lib/workspace-states/stateDatastoreTypes.js.map +1 -0
  141. package/package.json +117 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (c) Microsoft Corporation and contributors. All rights reserved.
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,12 @@
1
+ # @fluid-internal/presence-definitions
2
+
3
+ This is an internal package containing common interfaces for API and between internal layers.
4
+ `presence` APIs should be accessed via `@fluidframework/presence` package.
5
+
6
+ ## Exports and source organization
7
+
8
+ - "." (root files exposed via ./index.ts) - public APIs
9
+ - "./internal" (./internal.ts) - common internal interfaces and utilities
10
+ - "./internal/workspace" - internal interfaces for `workspace` layer or its dependents
11
+ - "./internal/workspace-runtime" - interfaces spanning `workspace` and `runtime` layers boundary
12
+ - "./internal/workspace-states" - interfaces spanning `workspace` and `states` layers boundary
@@ -0,0 +1,24 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ /**
6
+ * A Fluid client connection identifier.
7
+ *
8
+ * @remarks
9
+ * Each client connection is given a unique identifier for the duration of the
10
+ * connection. If a client disconnects and reconnects, it will be given a new
11
+ * identifier. Prefer use of {@link Attendee} as a way to identify clients
12
+ * in a session. {@link Attendee.getConnectionId} will provide the current
13
+ * connection identifier for a logical attendee.
14
+ *
15
+ * @privateRemarks
16
+ * This represents what is commonly `clientId` in Fluid code. Ideally this is
17
+ * moved somewhere more central and we brand it to avoid confusion with other
18
+ * strings. Branding broadly is likely a breaking change and may take decent
19
+ * effort to manage.
20
+ *
21
+ * @public
22
+ */
23
+ export type ClientConnectionId = string;
24
+ //# sourceMappingURL=baseTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseTypes.d.ts","sourceRoot":"","sources":["../src/baseTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=baseTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseTypes.js","sourceRoot":"","sources":["../src/baseTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * A Fluid client connection identifier.\n *\n * @remarks\n * Each client connection is given a unique identifier for the duration of the\n * connection. If a client disconnects and reconnects, it will be given a new\n * identifier. Prefer use of {@link Attendee} as a way to identify clients\n * in a session. {@link Attendee.getConnectionId} will provide the current\n * connection identifier for a logical attendee.\n *\n * @privateRemarks\n * This represents what is commonly `clientId` in Fluid code. Ideally this is\n * moved somewhere more central and we brand it to avoid confusion with other\n * strings. Branding broadly is likely a breaking change and may take decent\n * effort to manage.\n *\n * @public\n */\nexport type ClientConnectionId = string;\n"]}
@@ -0,0 +1,38 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ /**
6
+ * Common controls for States objects.
7
+ *
8
+ * @sealed
9
+ * @public
10
+ */
11
+ export interface BroadcastControls {
12
+ /**
13
+ * Maximum time in milliseconds that a local value update is allowed
14
+ * to remain pending before it must be broadcast.
15
+ *
16
+ * @remarks
17
+ * There is no guarantee of broadcast within time allowed
18
+ * as other conditions such as disconnect or service throttling may
19
+ * cause a delay.
20
+ *
21
+ * Setting to `undefined` will restore to a system default.
22
+ */
23
+ allowableUpdateLatencyMs: number | undefined;
24
+ }
25
+ /**
26
+ * Value set to configure {@link BroadcastControls}.
27
+ *
28
+ * @public
29
+ */
30
+ export interface BroadcastControlSettings {
31
+ /**
32
+ * {@inheritdoc BroadcastControls.allowableUpdateLatencyMs}
33
+ *
34
+ * @defaultValue 60 [milliseconds]
35
+ */
36
+ readonly allowableUpdateLatencyMs?: number;
37
+ }
38
+ //# sourceMappingURL=broadcastControlsTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcastControlsTypes.d.ts","sourceRoot":"","sources":["../src/broadcastControlsTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;;;;;;;;OAUG;IACH,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;CAc7C;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACxC;;;;OAIG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAS3C"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=broadcastControlsTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcastControlsTypes.js","sourceRoot":"","sources":["../src/broadcastControlsTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Common controls for States objects.\n *\n * @sealed\n * @public\n */\nexport interface BroadcastControls {\n\t/**\n\t * Maximum time in milliseconds that a local value update is allowed\n\t * to remain pending before it must be broadcast.\n\t *\n\t * @remarks\n\t * There is no guarantee of broadcast within time allowed\n\t * as other conditions such as disconnect or service throttling may\n\t * cause a delay.\n\t *\n\t * Setting to `undefined` will restore to a system default.\n\t */\n\tallowableUpdateLatencyMs: number | undefined;\n\n\t/**\n\t * Target time in milliseconds between oldest changed local state\n\t * has been broadcast and forced rebroadcast of all local values.\n\t * A value of less than 10 disables forced refresh.\n\t *\n\t * @privateRemarks\n\t * Any time less than 10 milliseconds is likely to generate too\n\t * many signals. Ideally this feature becomes obsolete as\n\t * we understand the system better and account for holes.\n\t */\n\t// forcedRefreshIntervalMs is removed until it is supported.\n\t// forcedRefreshIntervalMs: number | undefined;\n}\n\n/**\n * Value set to configure {@link BroadcastControls}.\n *\n * @public\n */\nexport interface BroadcastControlSettings {\n\t/**\n\t * {@inheritdoc BroadcastControls.allowableUpdateLatencyMs}\n\t *\n\t * @defaultValue 60 [milliseconds]\n\t */\n\treadonly allowableUpdateLatencyMs?: number;\n\n\t/**\n\t * {@inheritdoc BroadcastControls.forcedRefreshIntervalMs}\n\t *\n\t * @defaultValue 0 (disabled)\n\t */\n\t// forcedRefreshIntervalMs is removed until it is supported.\n\t// readonly forcedRefreshIntervalMs?: number;\n}\n"]}
@@ -0,0 +1,137 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import type { OpaqueJsonDeserialized } from "@fluidframework/core-interfaces/internal/exposedUtilityTypes";
6
+ /**
7
+ * Collection of value types that are not intended to be used/imported
8
+ * directly outside of this package.
9
+ *
10
+ * @public
11
+ * @system
12
+ */
13
+ export declare namespace InternalTypes {
14
+ /**
15
+ * Metadata for a value state.
16
+ *
17
+ * @system
18
+ */
19
+ interface ValueStateMetadata {
20
+ rev: number;
21
+ timestamp: number;
22
+ }
23
+ /**
24
+ * Represents a state that may have a value.
25
+ * And it includes standard metadata.
26
+ *
27
+ * @see {@link InternalPresenceTypes.ValueRequiredState}.
28
+ *
29
+ * @system
30
+ */
31
+ interface ValueOptionalState<TValue> extends ValueStateMetadata {
32
+ value?: OpaqueJsonDeserialized<TValue>;
33
+ }
34
+ /**
35
+ * Represents a state that must have a value.
36
+ * And it includes standard metadata.
37
+ *
38
+ * @remarks
39
+ * The value is wrapped in `OpaqueJsonDeserialized` as uses are expected
40
+ * to involve generic or unknown types that will be filtered. It is here
41
+ * mostly as a convenience to the many such uses that would otherwise
42
+ * need to specify some wrapper themselves.
43
+ *
44
+ * For known cases, construct a custom interface that extends
45
+ * {@link InternalPresenceTypes.ValueStateMetadata}.
46
+ *
47
+ * @system
48
+ */
49
+ interface ValueRequiredState<TValue> extends ValueStateMetadata {
50
+ value: OpaqueJsonDeserialized<TValue>;
51
+ }
52
+ /**
53
+ * A directory of values, where each value may be an optional state or another directory.
54
+ *
55
+ * @system
56
+ */
57
+ interface ValueDirectory<T> {
58
+ rev: number;
59
+ items: {
60
+ [name: string | number]: ValueOptionalState<T> | ValueDirectory<T>;
61
+ };
62
+ }
63
+ /**
64
+ * Convenience type for a required state or a directory of values.
65
+ *
66
+ * @system
67
+ */
68
+ type ValueDirectoryOrState<T> = ValueRequiredState<T> | ValueDirectory<T>;
69
+ /**
70
+ * Collection of optional values in a "map" structure.
71
+ *
72
+ * @system
73
+ */
74
+ interface MapValueState<T, Keys extends string> {
75
+ rev: number;
76
+ items: {
77
+ [name in Keys]: ValueOptionalState<T>;
78
+ };
79
+ }
80
+ /**
81
+ * Opaque type representing internal state datastore.
82
+ *
83
+ * @system
84
+ */
85
+ class StateDatastoreHandle<TKey, TValue extends ValueDirectoryOrState<unknown>> {
86
+ private readonly StateDatastoreHandle;
87
+ }
88
+ /**
89
+ * Brand to ensure state values internal type safety without revealing
90
+ * internals that are subject to change.
91
+ *
92
+ * @system
93
+ */
94
+ class StateValueBrand<T> {
95
+ private readonly StateValue;
96
+ }
97
+ /**
98
+ * This type provides no additional functionality over the type it wraps.
99
+ * It is used to ensure type safety within package.
100
+ * Users may find it convenient to just use the type it wraps directly.
101
+ *
102
+ * @privateRemarks
103
+ * Checkout filtering omitting unknown from T (`Omit<T,unknown> &`).
104
+ *
105
+ * @system
106
+ */
107
+ type StateValue<T> = T & StateValueBrand<T>;
108
+ /**
109
+ * Package internal function declaration for state and notification instantiation.
110
+ *
111
+ * @remarks
112
+ * Direct use of this type is discouraged. If in need, try to use the type
113
+ * returned by the factory functions instead, as those are more specific and
114
+ * stable.
115
+ *
116
+ * @system
117
+ */
118
+ type ManagerFactory<TKey extends string, TValue extends ValueDirectoryOrState<unknown>, TManager> = {
119
+ instanceBase: new (...args: any[]) => unknown;
120
+ } & ((key: TKey, datastoreHandle: StateDatastoreHandle<TKey, TValue>) => {
121
+ initialData?: {
122
+ value: TValue;
123
+ allowableUpdateLatencyMs: number | undefined;
124
+ };
125
+ manager: StateValue<TManager>;
126
+ });
127
+ /**
128
+ * Structure of a generic notification "value".
129
+ *
130
+ * @system
131
+ */
132
+ interface NotificationType {
133
+ name: string;
134
+ args: unknown[];
135
+ }
136
+ }
137
+ //# sourceMappingURL=exposedInternalTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposedInternalTypes.d.ts","sourceRoot":"","sources":["../src/exposedInternalTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AAE3G;;;;;;GAMG;AAEH,yBAAiB,aAAa,CAAC;IAC9B;;;;OAIG;IACH,UAAiB,kBAAkB;QAClC,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KAClB;IAED;;;;;;;OAOG;IACH,UAAiB,kBAAkB,CAAC,MAAM,CAAE,SAAQ,kBAAkB;QACrE,KAAK,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;KAMvC;IAED;;;;;;;;;;;;;;OAcG;IACH,UAAiB,kBAAkB,CAAC,MAAM,CAAE,SAAQ,kBAAkB;QACrE,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;KAMtC;IAED;;;;OAIG;IACH,UAAiB,cAAc,CAAC,CAAC;QAChC,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YAIN,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;SACnE,CAAC;KACF;IAED;;;;OAIG;IACH,KAAY,qBAAqB,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAEjF;;;;OAIG;IACH,UAAiB,aAAa,CAAC,CAAC,EAAE,IAAI,SAAS,MAAM;QACpD,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;aAIL,IAAI,IAAI,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC;SACrC,CAAC;KACF;IAED;;;;OAIG;IACH,MAAqB,oBAAoB,CACxC,IAAI,EACJ,MAAM,SAAS,qBAAqB,CAAC,OAAO,CAAC;QAE7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqC;KAC1E;IAED;;;;;OAKG;IACH,MAAqB,eAAe,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;KAC3C;IAED;;;;;;;;;OASG;IACH,KAAY,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAEnD;;;;;;;;;OASG;IACH,KAAY,cAAc,CACzB,IAAI,SAAS,MAAM,EACnB,MAAM,SAAS,qBAAqB,CAAC,OAAO,CAAC,EAC7C,QAAQ,IACL;QAAE,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAA;KAAE,GAAG,CAAC,CACxD,GAAG,EAAE,IAAI,EACT,eAAe,EAAE,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,KAC/C;QACJ,WAAW,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC;QAC9E,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;KAC9B,CAAC,CAAC;IAEH;;;;OAIG;IACH,UAAiB,gBAAgB;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,EAAE,CAAC;KAChB;CACD"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.InternalTypes = void 0;
8
+ /**
9
+ * Collection of value types that are not intended to be used/imported
10
+ * directly outside of this package.
11
+ *
12
+ * @public
13
+ * @system
14
+ */
15
+ // eslint-disable-next-line @typescript-eslint/no-namespace
16
+ var InternalTypes;
17
+ (function (InternalTypes) {
18
+ })(InternalTypes || (exports.InternalTypes = InternalTypes = {}));
19
+ //# sourceMappingURL=exposedInternalTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposedInternalTypes.js","sourceRoot":"","sources":["../src/exposedInternalTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;;;;;GAMG;AACH,2DAA2D;AAC3D,IAAiB,aAAa,CA0J7B;AA1JD,WAAiB,aAAa;AA0J9B,CAAC,EA1JgB,aAAa,6BAAb,aAAa,QA0J7B","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { OpaqueJsonDeserialized } from \"@fluidframework/core-interfaces/internal/exposedUtilityTypes\";\n\n/**\n * Collection of value types that are not intended to be used/imported\n * directly outside of this package.\n *\n * @public\n * @system\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace InternalTypes {\n\t/**\n\t * Metadata for a value state.\n\t *\n\t * @system\n\t */\n\texport interface ValueStateMetadata {\n\t\trev: number;\n\t\ttimestamp: number;\n\t}\n\n\t/**\n\t * Represents a state that may have a value.\n\t * And it includes standard metadata.\n\t *\n\t * @see {@link InternalPresenceTypes.ValueRequiredState}.\n\t *\n\t * @system\n\t */\n\texport interface ValueOptionalState<TValue> extends ValueStateMetadata {\n\t\tvalue?: OpaqueJsonDeserialized<TValue>;\n\n\t\t// Uncomment this property and rebuild to check more thoroughly\n\t\t// for incompatibilities between this non-validatable state\n\t\t// and ValidatableOptionalState.\n\t\t// validatedValue?: never;\n\t}\n\n\t/**\n\t * Represents a state that must have a value.\n\t * And it includes standard metadata.\n\t *\n\t * @remarks\n\t * The value is wrapped in `OpaqueJsonDeserialized` as uses are expected\n\t * to involve generic or unknown types that will be filtered. It is here\n\t * mostly as a convenience to the many such uses that would otherwise\n\t * need to specify some wrapper themselves.\n\t *\n\t * For known cases, construct a custom interface that extends\n\t * {@link InternalPresenceTypes.ValueStateMetadata}.\n\t *\n\t * @system\n\t */\n\texport interface ValueRequiredState<TValue> extends ValueStateMetadata {\n\t\tvalue: OpaqueJsonDeserialized<TValue>;\n\n\t\t// Uncomment this property and rebuild to check more thoroughly\n\t\t// for incompatibilities between this non-validatable state\n\t\t// and ValidatableOptionalState.\n\t\t// validatedValue?: never;\n\t}\n\n\t/**\n\t * A directory of values, where each value may be an optional state or another directory.\n\t *\n\t * @system\n\t */\n\texport interface ValueDirectory<T> {\n\t\trev: number;\n\t\titems: {\n\t\t\t// Caution: any particular item may or may not exist\n\t\t\t// Typescript does not support absent keys without forcing type to also be undefined.\n\t\t\t// See https://github.com/microsoft/TypeScript/issues/42810.\n\t\t\t[name: string | number]: ValueOptionalState<T> | ValueDirectory<T>;\n\t\t};\n\t}\n\n\t/**\n\t * Convenience type for a required state or a directory of values.\n\t *\n\t * @system\n\t */\n\texport type ValueDirectoryOrState<T> = ValueRequiredState<T> | ValueDirectory<T>;\n\n\t/**\n\t * Collection of optional values in a \"map\" structure.\n\t *\n\t * @system\n\t */\n\texport interface MapValueState<T, Keys extends string> {\n\t\trev: number;\n\t\titems: {\n\t\t\t// Caution: any particular item may or may not exist\n\t\t\t// Typescript does not support absent keys without forcing type to also be undefined.\n\t\t\t// See https://github.com/microsoft/TypeScript/issues/42810.\n\t\t\t[name in Keys]: ValueOptionalState<T>;\n\t\t};\n\t}\n\n\t/**\n\t * Opaque type representing internal state datastore.\n\t *\n\t * @system\n\t */\n\texport declare class StateDatastoreHandle<\n\t\tTKey,\n\t\tTValue extends ValueDirectoryOrState<unknown>,\n\t> {\n\t\tprivate readonly StateDatastoreHandle: StateDatastoreHandle<TKey, TValue>;\n\t}\n\n\t/**\n\t * Brand to ensure state values internal type safety without revealing\n\t * internals that are subject to change.\n\t *\n\t * @system\n\t */\n\texport declare class StateValueBrand<T> {\n\t\tprivate readonly StateValue: StateValue<T>;\n\t}\n\n\t/**\n\t * This type provides no additional functionality over the type it wraps.\n\t * It is used to ensure type safety within package.\n\t * Users may find it convenient to just use the type it wraps directly.\n\t *\n\t * @privateRemarks\n\t * Checkout filtering omitting unknown from T (`Omit<T,unknown> &`).\n\t *\n\t * @system\n\t */\n\texport type StateValue<T> = T & StateValueBrand<T>;\n\n\t/**\n\t * Package internal function declaration for state and notification instantiation.\n\t *\n\t * @remarks\n\t * Direct use of this type is discouraged. If in need, try to use the type\n\t * returned by the factory functions instead, as those are more specific and\n\t * stable.\n\t *\n\t * @system\n\t */\n\texport type ManagerFactory<\n\t\tTKey extends string,\n\t\tTValue extends ValueDirectoryOrState<unknown>,\n\t\tTManager,\n\t> = { instanceBase: new (...args: any[]) => unknown } & ((\n\t\tkey: TKey,\n\t\tdatastoreHandle: StateDatastoreHandle<TKey, TValue>,\n\t) => {\n\t\tinitialData?: { value: TValue; allowableUpdateLatencyMs: number | undefined };\n\t\tmanager: StateValue<TManager>;\n\t});\n\n\t/**\n\t * Structure of a generic notification \"value\".\n\t *\n\t * @system\n\t */\n\texport interface NotificationType {\n\t\tname: string;\n\t\targs: unknown[];\n\t}\n}\n"]}
@@ -0,0 +1,108 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import type { InternalCoreInterfacesUtilityTypes, JsonDeserialized, JsonSerializable } from "@fluidframework/core-interfaces/internal/exposedUtilityTypes";
6
+ import type { Attendee } from "./presence.js";
7
+ /**
8
+ * Collection of utility types that are not intended to be used/imported
9
+ * directly outside of this package.
10
+ *
11
+ * @alpha
12
+ * @system
13
+ */
14
+ export declare namespace InternalUtilityTypes {
15
+ /**
16
+ * Yields `IfParametersValid` when the given type is an acceptable shape for a
17
+ * notification. `Else` otherwise.
18
+ *
19
+ * @system
20
+ */
21
+ type IfNotificationParametersSignature<Event, IfParametersValid, Else> = Event extends (...args: infer P) => void ? InternalCoreInterfacesUtilityTypes.IfSameType<P, JsonSerializable<P>, IfParametersValid, Else> : Else;
22
+ /**
23
+ * Yields `IfSubscriber` when the given type is an acceptable shape for a notification
24
+ * listener (subscriber) function. `Else` otherwise.
25
+ *
26
+ * @system
27
+ */
28
+ type IfNotificationSubscriberSignature<Event, IfSubscriber, Else> = Event extends (sender: Attendee, ...args: infer P) => void ? InternalCoreInterfacesUtilityTypes.IfSameType<P, JsonSerializable<P>, IfSubscriber, Else> : Else;
29
+ /**
30
+ * Used to specify the kinds of notifications handled by a {@link NotificationListenable}
31
+ * by describing the custom parameters in a function signature.
32
+ *
33
+ * @remarks
34
+ *
35
+ * Any object type is a valid NotificationListeners, but only the notification-like
36
+ * properties of that type will be included.
37
+ *
38
+ * @example
39
+ *
40
+ * ```typescript
41
+ * interface MyNotifications {
42
+ * load: (user: string, data: IUserData) => void;
43
+ * requestPause: (period: number) => void;
44
+ * }
45
+ * ```
46
+ *
47
+ * @system
48
+ */
49
+ type NotificationListeners<E> = {
50
+ [P in keyof E as IfNotificationParametersSignature<E[P], P, never>]: E[P];
51
+ };
52
+ /**
53
+ * Converts a notification subscriber signature into parameters signature
54
+ * (by removing the `sender: Attendee` parameter).
55
+ *
56
+ * @remarks
57
+ * No attempt is made to validate that the original signature is valid with
58
+ * all parameters being JSON-serializable.
59
+ *
60
+ * @system
61
+ */
62
+ type NotificationParametersSignatureFromSubscriberSignature<Event> = Event extends (sender: Attendee, ...args: infer P) => void ? (...args: P) => void : never;
63
+ /**
64
+ * Used to specify the kinds of notifications handled by a {@link NotificationListenable}
65
+ * by describing the subscriber signatures.
66
+ *
67
+ * @remarks
68
+ *
69
+ * Any object type is a valid NotificationListenersWithSubscriberSignatures,
70
+ * but only the notification-like properties of that type will be included.
71
+ *
72
+ * @example
73
+ *
74
+ * ```typescript
75
+ * interface MyNotifications {
76
+ * load: (sender: Attendee, user: string, data: IUserData) => void;
77
+ * requestPause: (sender: Attendee, period: number) => void;
78
+ * }
79
+ * ```
80
+ *
81
+ * @system
82
+ */
83
+ type NotificationListenersWithSubscriberSignatures<E> = {
84
+ [P in keyof E as IfNotificationSubscriberSignature<E[P], P, never>]: E[P];
85
+ };
86
+ /**
87
+ * Converts a record of notification subscriber signatures into
88
+ * a record of base parameter signatures (which are the canonical form).
89
+ *
90
+ * @system
91
+ */
92
+ type NotificationListenersFromSubscriberSignatures<E extends NotificationListenersWithSubscriberSignatures<E>> = {
93
+ [K in keyof NotificationListenersWithSubscriberSignatures<E>]: NotificationParametersSignatureFromSubscriberSignature<E[K]>;
94
+ } extends infer TListeners ? NotificationListeners<TListeners> : never;
95
+ /**
96
+ * {@link @fluidframework/core-interfaces#JsonDeserialized} version of the parameters of a function.
97
+ *
98
+ * @system
99
+ */
100
+ type JsonDeserializedParameters<T extends (...args: any[]) => unknown> = T extends (...args: infer P) => unknown ? JsonDeserialized<P> : never;
101
+ /**
102
+ * {@link @fluidframework/core-interfaces#JsonSerializable} version of the parameters of a function.
103
+ *
104
+ * @system
105
+ */
106
+ type JsonSerializableParameters<T extends (...args: any[]) => unknown> = T extends (...args: infer P) => unknown ? JsonSerializable<P> : never;
107
+ }
108
+ //# sourceMappingURL=exposedUtilityTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposedUtilityTypes.d.ts","sourceRoot":"","sources":["../src/exposedUtilityTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,kCAAkC,EAClC,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,8DAA8D,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;GAMG;AAEH,yBAAiB,oBAAoB,CAAC;IACrC;;;;;OAKG;IACH,KAAY,iCAAiC,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,IAC3E,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,GACrC,kCAAkC,CAAC,UAAU,CAC7C,CAAC,EACD,gBAAgB,CAAC,CAAC,CAAC,EACnB,iBAAiB,EACjB,IAAI,CACJ,GACA,IAAI,CAAC;IAET;;;;;OAKG;IACH,KAAY,iCAAiC,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,IAAI,KAAK,SAAS,CACxF,MAAM,EAAE,QAAQ,EAChB,GAAG,IAAI,EAAE,MAAM,CAAC,KACZ,IAAI,GACN,kCAAkC,CAAC,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,GACzF,IAAI,CAAC;IAER;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAY,qBAAqB,CAAC,CAAC,IAAI;SACrC,CAAC,IAAI,MAAM,CAAC,IAAI,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACzE,CAAC;IAEF;;;;;;;;;OASG;IACH,KAAY,sDAAsD,CAAC,KAAK,IAAI,KAAK,SAAS,CACzF,MAAM,EAAE,QAAQ,EAChB,GAAG,IAAI,EAAE,MAAM,CAAC,KACZ,IAAI,GACN,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,GACpB,KAAK,CAAC;IAET;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAY,6CAA6C,CAAC,CAAC,IAAI;SAC7D,CAAC,IAAI,MAAM,CAAC,IAAI,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACzE,CAAC;IAEF;;;;;OAKG;IACH,KAAY,6CAA6C,CACxD,CAAC,SAAS,6CAA6C,CAAC,CAAC,CAAC,IACvD;SACF,CAAC,IAAI,MAAM,6CAA6C,CAAC,CAAC,CAAC,GAAG,sDAAsD,CACpH,CAAC,CAAC,CAAC,CAAC,CACJ;KACD,SAAS,MAAM,UAAU,GAExB,qBAAqB,CAAC,UAAU,CAAC,GAChC,KAAK,CAAC;IAET;;;;OAIG;IACH,KAAY,0BAA0B,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,IAAI,CAAC,SAAS,CACzF,GAAG,IAAI,EAAE,MAAM,CAAC,KACZ,OAAO,GACT,gBAAgB,CAAC,CAAC,CAAC,GACnB,KAAK,CAAC;IAET;;;;OAIG;IACH,KAAY,0BAA0B,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,IAAI,CAAC,SAAS,CACzF,GAAG,IAAI,EAAE,MAAM,CAAC,KACZ,OAAO,GACT,gBAAgB,CAAC,CAAC,CAAC,GACnB,KAAK,CAAC;CACT"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=exposedUtilityTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exposedUtilityTypes.js","sourceRoot":"","sources":["../src/exposedUtilityTypes.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 {\n\tInternalCoreInterfacesUtilityTypes,\n\tJsonDeserialized,\n\tJsonSerializable,\n} from \"@fluidframework/core-interfaces/internal/exposedUtilityTypes\";\n\nimport type { Attendee } from \"./presence.js\";\n\n/**\n * Collection of utility types that are not intended to be used/imported\n * directly outside of this package.\n *\n * @alpha\n * @system\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace InternalUtilityTypes {\n\t/**\n\t * Yields `IfParametersValid` when the given type is an acceptable shape for a\n\t * notification. `Else` otherwise.\n\t *\n\t * @system\n\t */\n\texport type IfNotificationParametersSignature<Event, IfParametersValid, Else> =\n\t\tEvent extends (...args: infer P) => void\n\t\t\t? InternalCoreInterfacesUtilityTypes.IfSameType<\n\t\t\t\t\tP,\n\t\t\t\t\tJsonSerializable<P>,\n\t\t\t\t\tIfParametersValid,\n\t\t\t\t\tElse\n\t\t\t\t>\n\t\t\t: Else;\n\n\t/**\n\t * Yields `IfSubscriber` when the given type is an acceptable shape for a notification\n\t * listener (subscriber) function. `Else` otherwise.\n\t *\n\t * @system\n\t */\n\texport type IfNotificationSubscriberSignature<Event, IfSubscriber, Else> = Event extends (\n\t\tsender: Attendee,\n\t\t...args: infer P\n\t) => void\n\t\t? InternalCoreInterfacesUtilityTypes.IfSameType<P, JsonSerializable<P>, IfSubscriber, Else>\n\t\t: Else;\n\n\t/**\n\t * Used to specify the kinds of notifications handled by a {@link NotificationListenable}\n\t * by describing the custom parameters in a function signature.\n\t *\n\t * @remarks\n\t *\n\t * Any object type is a valid NotificationListeners, but only the notification-like\n\t * properties of that type will be included.\n\t *\n\t * @example\n\t *\n\t * ```typescript\n\t * interface MyNotifications {\n\t * load: (user: string, data: IUserData) => void;\n\t * requestPause: (period: number) => void;\n\t * }\n\t * ```\n\t *\n\t * @system\n\t */\n\texport type NotificationListeners<E> = {\n\t\t[P in keyof E as IfNotificationParametersSignature<E[P], P, never>]: E[P];\n\t};\n\n\t/**\n\t * Converts a notification subscriber signature into parameters signature\n\t * (by removing the `sender: Attendee` parameter).\n\t *\n\t * @remarks\n\t * No attempt is made to validate that the original signature is valid with\n\t * all parameters being JSON-serializable.\n\t *\n\t * @system\n\t */\n\texport type NotificationParametersSignatureFromSubscriberSignature<Event> = Event extends (\n\t\tsender: Attendee,\n\t\t...args: infer P\n\t) => void\n\t\t? (...args: P) => void\n\t\t: never;\n\n\t/**\n\t * Used to specify the kinds of notifications handled by a {@link NotificationListenable}\n\t * by describing the subscriber signatures.\n\t *\n\t * @remarks\n\t *\n\t * Any object type is a valid NotificationListenersWithSubscriberSignatures,\n\t * but only the notification-like properties of that type will be included.\n\t *\n\t * @example\n\t *\n\t * ```typescript\n\t * interface MyNotifications {\n\t * load: (sender: Attendee, user: string, data: IUserData) => void;\n\t * requestPause: (sender: Attendee, period: number) => void;\n\t * }\n\t * ```\n\t *\n\t * @system\n\t */\n\texport type NotificationListenersWithSubscriberSignatures<E> = {\n\t\t[P in keyof E as IfNotificationSubscriberSignature<E[P], P, never>]: E[P];\n\t};\n\n\t/**\n\t * Converts a record of notification subscriber signatures into\n\t * a record of base parameter signatures (which are the canonical form).\n\t *\n\t * @system\n\t */\n\texport type NotificationListenersFromSubscriberSignatures<\n\t\tE extends NotificationListenersWithSubscriberSignatures<E>,\n\t> = {\n\t\t[K in keyof NotificationListenersWithSubscriberSignatures<E>]: NotificationParametersSignatureFromSubscriberSignature<\n\t\t\tE[K]\n\t\t>;\n\t} extends infer TListeners\n\t\t? // Additional filter is needed to convince TypeScript that the result is NotificationListeners shape\n\t\t\tNotificationListeners<TListeners>\n\t\t: never;\n\n\t/**\n\t * {@link @fluidframework/core-interfaces#JsonDeserialized} version of the parameters of a function.\n\t *\n\t * @system\n\t */\n\texport type JsonDeserializedParameters<T extends (...args: any[]) => unknown> = T extends (\n\t\t...args: infer P\n\t) => unknown\n\t\t? JsonDeserialized<P>\n\t\t: never;\n\n\t/**\n\t * {@link @fluidframework/core-interfaces#JsonSerializable} version of the parameters of a function.\n\t *\n\t * @system\n\t */\n\texport type JsonSerializableParameters<T extends (...args: any[]) => unknown> = T extends (\n\t\t...args: infer P\n\t) => unknown\n\t\t? JsonSerializable<P>\n\t\t: never;\n}\n"]}
@@ -0,0 +1,16 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ export type { ClientConnectionId } from "./baseTypes.js";
6
+ export type { BroadcastControls, BroadcastControlSettings } from "./broadcastControlsTypes.js";
7
+ export type { InternalTypes as InternalPresenceTypes } from "./exposedInternalTypes.js";
8
+ export type { InternalUtilityTypes as InternalPresenceUtilityTypes } from "./exposedUtilityTypes.js";
9
+ export type { KeySchemaValidator, LatestMap, LatestMapArguments, LatestMapArgumentsRaw, LatestMapClientData, LatestMapConfiguration, LatestMapEvents, LatestMapFactory, LatestMapItemRemovedClientData, LatestMapItemUpdatedClientData, LatestMapRaw, LatestMapRawConfiguration, LatestMapRawEvents, StateMap, } from "./latestMapTypes.js";
10
+ export type { Latest, LatestArguments, LatestArgumentsRaw, LatestConfiguration, LatestEvents, LatestFactory, LatestRaw, LatestRawConfiguration, LatestRawEvents, } from "./latestTypes.js";
11
+ export type { Accessor, LatestClientData, LatestData, LatestMetadata, ProxiedValueAccessor, RawValueAccessor, StateSchemaValidator, ValueAccessor, } from "./latestValueTypes.js";
12
+ export type { NotificationEmitter, NotificationListenable, NotificationsConfiguration, NotificationsManager, NotificationsManagerEvents, NotificationSubscriberSignatures, NotificationsWithSubscriptionsConfiguration, } from "./notificationsManagerTypes.js";
13
+ export type { Attendee, AttendeeId, AttendeesEvents, Presence, PresenceEvents, PresenceWithNotifications, } from "./presence.js";
14
+ export { AttendeeStatus } from "./presence.js";
15
+ export type { NotificationsWorkspace, NotificationsWorkspaceSchema, StatesWorkspace, StatesWorkspaceEntries, StatesWorkspaceEntry, StatesWorkspaceSchema, WorkspaceAddress, } from "./types.js";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE/F,YAAY,EAAE,aAAa,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAExF,YAAY,EAAE,oBAAoB,IAAI,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAErG,YAAY,EACX,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,8BAA8B,EAC9B,8BAA8B,EAC9B,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,QAAQ,GACR,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACX,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,SAAS,EACT,sBAAsB,EACtB,eAAe,GACf,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACX,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACb,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACX,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,0BAA0B,EAC1B,gCAAgC,EAChC,2CAA2C,GAC3C,MAAM,gCAAgC,CAAC;AAExC,YAAY,EACX,QAAQ,EACR,UAAU,EACV,eAAe,EACf,QAAQ,EACR,cAAc,EACd,yBAAyB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,YAAY,EACX,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,GAChB,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AttendeeStatus = void 0;
8
+ var presence_js_1 = require("./presence.js");
9
+ Object.defineProperty(exports, "AttendeeStatus", { enumerable: true, get: function () { return presence_js_1.AttendeeStatus; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAoEH,6CAA+C;AAAtC,6GAAA,cAAc,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport type { ClientConnectionId } from \"./baseTypes.js\";\n\nexport type { BroadcastControls, BroadcastControlSettings } from \"./broadcastControlsTypes.js\";\n\nexport type { InternalTypes as InternalPresenceTypes } from \"./exposedInternalTypes.js\";\n\nexport type { InternalUtilityTypes as InternalPresenceUtilityTypes } from \"./exposedUtilityTypes.js\";\n\nexport type {\n\tKeySchemaValidator,\n\tLatestMap,\n\tLatestMapArguments,\n\tLatestMapArgumentsRaw,\n\tLatestMapClientData,\n\tLatestMapConfiguration,\n\tLatestMapEvents,\n\tLatestMapFactory,\n\tLatestMapItemRemovedClientData,\n\tLatestMapItemUpdatedClientData,\n\tLatestMapRaw,\n\tLatestMapRawConfiguration,\n\tLatestMapRawEvents,\n\tStateMap,\n} from \"./latestMapTypes.js\";\n\nexport type {\n\tLatest,\n\tLatestArguments,\n\tLatestArgumentsRaw,\n\tLatestConfiguration,\n\tLatestEvents,\n\tLatestFactory,\n\tLatestRaw,\n\tLatestRawConfiguration,\n\tLatestRawEvents,\n} from \"./latestTypes.js\";\n\nexport type {\n\tAccessor,\n\tLatestClientData,\n\tLatestData,\n\tLatestMetadata,\n\tProxiedValueAccessor,\n\tRawValueAccessor,\n\tStateSchemaValidator,\n\tValueAccessor,\n} from \"./latestValueTypes.js\";\n\nexport type {\n\tNotificationEmitter,\n\tNotificationListenable,\n\tNotificationsConfiguration,\n\tNotificationsManager,\n\tNotificationsManagerEvents,\n\tNotificationSubscriberSignatures,\n\tNotificationsWithSubscriptionsConfiguration,\n} from \"./notificationsManagerTypes.js\";\n\nexport type {\n\tAttendee,\n\tAttendeeId,\n\tAttendeesEvents,\n\tPresence,\n\tPresenceEvents,\n\tPresenceWithNotifications,\n} from \"./presence.js\";\nexport { AttendeeStatus } from \"./presence.js\";\n\nexport type {\n\tNotificationsWorkspace,\n\tNotificationsWorkspaceSchema,\n\tStatesWorkspace,\n\tStatesWorkspaceEntries,\n\tStatesWorkspaceEntry,\n\tStatesWorkspaceSchema,\n\tWorkspaceAddress,\n} from \"./types.js\";\n"]}
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ export type { InternalTypes } from "./exposedInternalTypes.js";
6
+ export type { PostUpdateAction, ValueManager } from "./statesManagerTypes.js";
7
+ export type { AnyWorkspace } from "./types.js";
8
+ export type { ValidatableOptionalState, ValidatableRequiredState, ValidatableValueDirectory, ValidatableValueDirectoryOrState, ValidatableValueStructure, } from "./validatableTypes.js";
9
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE9E,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,YAAY,EACX,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,gCAAgC,EAChC,yBAAyB,GACzB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /*!
3
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
+ * Licensed under the MIT License.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.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 { InternalTypes } from \"./exposedInternalTypes.js\";\n\nexport type { PostUpdateAction, ValueManager } from \"./statesManagerTypes.js\";\n\nexport type { AnyWorkspace } from \"./types.js\";\n\nexport type {\n\tValidatableOptionalState,\n\tValidatableRequiredState,\n\tValidatableValueDirectory,\n\tValidatableValueDirectoryOrState,\n\tValidatableValueStructure,\n} from \"./validatableTypes.js\";\n"]}