@voidhash/mimic 0.0.2 → 0.0.3

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 (273) hide show
  1. package/.turbo/turbo-build.log +257 -42
  2. package/dist/Document.cjs +152 -0
  3. package/dist/Document.d.cts +67 -0
  4. package/dist/Document.d.cts.map +1 -0
  5. package/dist/Document.d.mts +68 -0
  6. package/dist/Document.d.mts.map +1 -0
  7. package/dist/Document.mjs +147 -0
  8. package/dist/Document.mjs.map +1 -0
  9. package/dist/EffectSchema.cjs +180 -0
  10. package/dist/EffectSchema.d.cts +84 -0
  11. package/dist/EffectSchema.d.cts.map +1 -0
  12. package/dist/EffectSchema.d.mts +84 -0
  13. package/dist/EffectSchema.d.mts.map +1 -0
  14. package/dist/EffectSchema.mjs +176 -0
  15. package/dist/EffectSchema.mjs.map +1 -0
  16. package/dist/FractionalIndex.cjs +365 -0
  17. package/dist/FractionalIndex.mjs +364 -0
  18. package/dist/FractionalIndex.mjs.map +1 -0
  19. package/dist/Operation.cjs +53 -0
  20. package/dist/Operation.d.cts +39 -0
  21. package/dist/Operation.d.cts.map +1 -0
  22. package/dist/Operation.d.mts +39 -0
  23. package/dist/Operation.d.mts.map +1 -0
  24. package/dist/Operation.mjs +46 -0
  25. package/dist/Operation.mjs.map +1 -0
  26. package/dist/OperationDefinition.cjs +13 -0
  27. package/dist/OperationDefinition.d.cts +12 -0
  28. package/dist/OperationDefinition.d.cts.map +1 -0
  29. package/dist/OperationDefinition.d.mts +12 -0
  30. package/dist/OperationDefinition.d.mts.map +1 -0
  31. package/dist/OperationDefinition.mjs +13 -0
  32. package/dist/OperationDefinition.mjs.map +1 -0
  33. package/dist/OperationPath.cjs +148 -0
  34. package/dist/OperationPath.d.cts +60 -0
  35. package/dist/OperationPath.d.cts.map +1 -0
  36. package/dist/OperationPath.d.mts +60 -0
  37. package/dist/OperationPath.d.mts.map +1 -0
  38. package/dist/OperationPath.mjs +138 -0
  39. package/dist/OperationPath.mjs.map +1 -0
  40. package/dist/{Presence-gWrmGBeu.cjs → Presence.cjs} +4 -39
  41. package/dist/{Presence-N8u7Eppr.d.mts → Presence.d.cts} +2 -2
  42. package/dist/Presence.d.cts.map +1 -0
  43. package/dist/{Presence-DKKP4v5X.d.cts → Presence.d.mts} +2 -2
  44. package/dist/Presence.d.mts.map +1 -0
  45. package/dist/{Presence-DdMVKcOv.mjs → Presence.mjs} +3 -28
  46. package/dist/Presence.mjs.map +1 -0
  47. package/dist/Primitive.cjs +52 -0
  48. package/dist/Primitive.d.cts +20 -0
  49. package/dist/Primitive.d.cts.map +1 -0
  50. package/dist/Primitive.d.mts +20 -0
  51. package/dist/Primitive.d.mts.map +1 -0
  52. package/dist/Primitive.mjs +48 -0
  53. package/dist/Primitive.mjs.map +1 -0
  54. package/dist/ProxyEnvironment.cjs +34 -0
  55. package/dist/ProxyEnvironment.d.cts +31 -0
  56. package/dist/ProxyEnvironment.d.cts.map +1 -0
  57. package/dist/ProxyEnvironment.d.mts +31 -0
  58. package/dist/ProxyEnvironment.d.mts.map +1 -0
  59. package/dist/ProxyEnvironment.mjs +29 -0
  60. package/dist/ProxyEnvironment.mjs.map +1 -0
  61. package/dist/Transaction.cjs +66 -0
  62. package/dist/Transaction.d.cts +56 -0
  63. package/dist/Transaction.d.cts.map +1 -0
  64. package/dist/Transaction.d.mts +56 -0
  65. package/dist/Transaction.d.mts.map +1 -0
  66. package/dist/Transaction.mjs +58 -0
  67. package/dist/Transaction.mjs.map +1 -0
  68. package/dist/Transform.cjs +11 -0
  69. package/dist/Transform.d.cts +21 -0
  70. package/dist/Transform.d.cts.map +1 -0
  71. package/dist/Transform.d.mts +21 -0
  72. package/dist/Transform.d.mts.map +1 -0
  73. package/dist/Transform.mjs +6 -0
  74. package/dist/Transform.mjs.map +1 -0
  75. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.cjs +14 -0
  76. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.mjs +14 -0
  77. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.cjs +27 -0
  78. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.mjs +27 -0
  79. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.cjs +16 -0
  80. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.mjs +16 -0
  81. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.cjs +11 -0
  82. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.mjs +11 -0
  83. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.cjs +18 -0
  84. package/dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.mjs +12 -0
  85. package/dist/_virtual/rolldown_runtime.cjs +43 -0
  86. package/dist/{chunk-CLMFDpHK.mjs → _virtual/rolldown_runtime.mjs} +1 -1
  87. package/dist/client/ClientDocument.cjs +590 -0
  88. package/dist/client/ClientDocument.d.cts +161 -0
  89. package/dist/client/ClientDocument.d.cts.map +1 -0
  90. package/dist/client/ClientDocument.d.mts +162 -0
  91. package/dist/client/ClientDocument.d.mts.map +1 -0
  92. package/dist/client/ClientDocument.mjs +586 -0
  93. package/dist/client/ClientDocument.mjs.map +1 -0
  94. package/dist/client/Rebase.cjs +204 -0
  95. package/dist/client/Rebase.d.cts +87 -0
  96. package/dist/client/Rebase.d.cts.map +1 -0
  97. package/dist/client/Rebase.d.mts +88 -0
  98. package/dist/client/Rebase.d.mts.map +1 -0
  99. package/dist/client/Rebase.mjs +198 -0
  100. package/dist/client/Rebase.mjs.map +1 -0
  101. package/dist/client/StateMonitor.cjs +133 -0
  102. package/dist/client/StateMonitor.d.cts +122 -0
  103. package/dist/client/StateMonitor.d.cts.map +1 -0
  104. package/dist/client/StateMonitor.d.mts +122 -0
  105. package/dist/client/StateMonitor.d.mts.map +1 -0
  106. package/dist/client/StateMonitor.mjs +129 -0
  107. package/dist/client/StateMonitor.mjs.map +1 -0
  108. package/dist/client/Transport.cjs +11 -0
  109. package/dist/client/Transport.d.cts +237 -0
  110. package/dist/client/Transport.d.cts.map +1 -0
  111. package/dist/client/Transport.d.mts +237 -0
  112. package/dist/client/Transport.d.mts.map +1 -0
  113. package/dist/client/Transport.mjs +6 -0
  114. package/dist/client/Transport.mjs.map +1 -0
  115. package/dist/client/WebSocketTransport.cjs +396 -0
  116. package/dist/client/WebSocketTransport.d.cts +29 -0
  117. package/dist/client/WebSocketTransport.d.cts.map +1 -0
  118. package/dist/client/WebSocketTransport.d.mts +29 -0
  119. package/dist/client/WebSocketTransport.d.mts.map +1 -0
  120. package/dist/client/WebSocketTransport.mjs +392 -0
  121. package/dist/client/WebSocketTransport.mjs.map +1 -0
  122. package/dist/client/errors.cjs +135 -0
  123. package/dist/client/errors.d.cts +87 -0
  124. package/dist/client/errors.d.cts.map +1 -0
  125. package/dist/client/errors.d.mts +87 -0
  126. package/dist/client/errors.d.mts.map +1 -0
  127. package/dist/client/errors.mjs +127 -0
  128. package/dist/client/errors.mjs.map +1 -0
  129. package/dist/client/index.cjs +22 -1424
  130. package/dist/client/index.d.cts +8 -692
  131. package/dist/client/index.d.mts +8 -692
  132. package/dist/client/index.mjs +9 -1413
  133. package/dist/index.cjs +20 -2973
  134. package/dist/index.d.cts +12 -419
  135. package/dist/index.d.mts +12 -419
  136. package/dist/index.mjs +13 -2968
  137. package/dist/primitives/Array.cjs +302 -0
  138. package/dist/primitives/Array.d.cts +95 -0
  139. package/dist/primitives/Array.d.cts.map +1 -0
  140. package/dist/primitives/Array.d.mts +95 -0
  141. package/dist/primitives/Array.d.mts.map +1 -0
  142. package/dist/primitives/Array.mjs +301 -0
  143. package/dist/primitives/Array.mjs.map +1 -0
  144. package/dist/primitives/Boolean.cjs +95 -0
  145. package/dist/primitives/Boolean.d.cts +44 -0
  146. package/dist/primitives/Boolean.d.cts.map +1 -0
  147. package/dist/primitives/Boolean.d.mts +44 -0
  148. package/dist/primitives/Boolean.d.mts.map +1 -0
  149. package/dist/primitives/Boolean.mjs +94 -0
  150. package/dist/primitives/Boolean.mjs.map +1 -0
  151. package/dist/primitives/Either.cjs +200 -0
  152. package/dist/primitives/Either.d.cts +113 -0
  153. package/dist/primitives/Either.d.cts.map +1 -0
  154. package/dist/primitives/Either.d.mts +113 -0
  155. package/dist/primitives/Either.d.mts.map +1 -0
  156. package/dist/primitives/Either.mjs +199 -0
  157. package/dist/primitives/Either.mjs.map +1 -0
  158. package/dist/primitives/Lazy.cjs +46 -0
  159. package/dist/primitives/Lazy.d.cts +46 -0
  160. package/dist/primitives/Lazy.d.cts.map +1 -0
  161. package/dist/primitives/Lazy.d.mts +46 -0
  162. package/dist/primitives/Lazy.d.mts.map +1 -0
  163. package/dist/primitives/Lazy.mjs +46 -0
  164. package/dist/primitives/Lazy.mjs.map +1 -0
  165. package/dist/primitives/Literal.cjs +91 -0
  166. package/dist/primitives/Literal.d.cts +46 -0
  167. package/dist/primitives/Literal.d.cts.map +1 -0
  168. package/dist/primitives/Literal.d.mts +46 -0
  169. package/dist/primitives/Literal.d.mts.map +1 -0
  170. package/dist/primitives/Literal.mjs +90 -0
  171. package/dist/primitives/Literal.mjs.map +1 -0
  172. package/dist/primitives/Number.cjs +115 -0
  173. package/dist/primitives/Number.d.cts +54 -0
  174. package/dist/primitives/Number.d.cts.map +1 -0
  175. package/dist/primitives/Number.d.mts +54 -0
  176. package/dist/primitives/Number.d.mts.map +1 -0
  177. package/dist/primitives/Number.mjs +114 -0
  178. package/dist/primitives/Number.mjs.map +1 -0
  179. package/dist/primitives/String.cjs +127 -0
  180. package/dist/primitives/String.d.cts +56 -0
  181. package/dist/primitives/String.d.cts.map +1 -0
  182. package/dist/primitives/String.d.mts +56 -0
  183. package/dist/primitives/String.d.mts.map +1 -0
  184. package/dist/primitives/String.mjs +126 -0
  185. package/dist/primitives/String.mjs.map +1 -0
  186. package/dist/primitives/Struct.cjs +207 -0
  187. package/dist/primitives/Struct.d.cts +96 -0
  188. package/dist/primitives/Struct.d.cts.map +1 -0
  189. package/dist/primitives/Struct.d.mts +97 -0
  190. package/dist/primitives/Struct.d.mts.map +1 -0
  191. package/dist/primitives/Struct.mjs +206 -0
  192. package/dist/primitives/Struct.mjs.map +1 -0
  193. package/dist/primitives/Tree.cjs +575 -0
  194. package/dist/primitives/Tree.d.cts +185 -0
  195. package/dist/primitives/Tree.d.cts.map +1 -0
  196. package/dist/primitives/Tree.d.mts +185 -0
  197. package/dist/primitives/Tree.d.mts.map +1 -0
  198. package/dist/primitives/Tree.mjs +574 -0
  199. package/dist/primitives/Tree.mjs.map +1 -0
  200. package/dist/primitives/TreeNode.cjs +73 -0
  201. package/dist/primitives/TreeNode.d.cts +92 -0
  202. package/dist/primitives/TreeNode.d.cts.map +1 -0
  203. package/dist/primitives/TreeNode.d.mts +93 -0
  204. package/dist/primitives/TreeNode.d.mts.map +1 -0
  205. package/dist/primitives/TreeNode.mjs +72 -0
  206. package/dist/primitives/TreeNode.mjs.map +1 -0
  207. package/dist/primitives/Union.cjs +170 -0
  208. package/dist/primitives/Union.d.cts +81 -0
  209. package/dist/primitives/Union.d.cts.map +1 -0
  210. package/dist/primitives/Union.d.mts +81 -0
  211. package/dist/primitives/Union.d.mts.map +1 -0
  212. package/dist/primitives/Union.mjs +169 -0
  213. package/dist/primitives/Union.mjs.map +1 -0
  214. package/dist/primitives/shared.cjs +60 -0
  215. package/dist/primitives/shared.d.cts +147 -0
  216. package/dist/primitives/shared.d.cts.map +1 -0
  217. package/dist/primitives/shared.d.mts +147 -0
  218. package/dist/primitives/shared.d.mts.map +1 -0
  219. package/dist/primitives/shared.mjs +58 -0
  220. package/dist/primitives/shared.mjs.map +1 -0
  221. package/dist/server/ServerDocument.cjs +110 -0
  222. package/dist/server/ServerDocument.d.cts +98 -0
  223. package/dist/server/ServerDocument.d.cts.map +1 -0
  224. package/dist/server/ServerDocument.d.mts +99 -0
  225. package/dist/server/ServerDocument.d.mts.map +1 -0
  226. package/dist/server/ServerDocument.mjs +106 -0
  227. package/dist/server/ServerDocument.mjs.map +1 -0
  228. package/dist/server/errors.cjs +85 -0
  229. package/dist/server/errors.d.cts +53 -0
  230. package/dist/server/errors.d.cts.map +1 -0
  231. package/dist/server/errors.d.mts +53 -0
  232. package/dist/server/errors.d.mts.map +1 -0
  233. package/dist/server/errors.mjs +81 -0
  234. package/dist/server/errors.mjs.map +1 -0
  235. package/dist/server/index.cjs +9 -185
  236. package/dist/server/index.d.cts +3 -148
  237. package/dist/server/index.d.mts +3 -148
  238. package/dist/server/index.mjs +3 -181
  239. package/dist/types/index.cjs +16 -0
  240. package/dist/types/index.d.cts +16 -0
  241. package/dist/types/index.d.cts.map +1 -0
  242. package/dist/types/index.d.mts +16 -0
  243. package/dist/types/index.d.mts.map +1 -0
  244. package/dist/types/index.mjs +12 -0
  245. package/dist/types/index.mjs.map +1 -0
  246. package/dist/utils/tree-helpers.cjs +443 -0
  247. package/dist/utils/tree-helpers.d.cts +280 -0
  248. package/dist/utils/tree-helpers.d.cts.map +1 -0
  249. package/dist/utils/tree-helpers.d.mts +280 -0
  250. package/dist/utils/tree-helpers.d.mts.map +1 -0
  251. package/dist/utils/tree-helpers.mjs +439 -0
  252. package/dist/utils/tree-helpers.mjs.map +1 -0
  253. package/package.json +2 -2
  254. package/tsdown.config.ts +1 -1
  255. package/dist/Document-ChuFrTk1.cjs +0 -571
  256. package/dist/Document-CwiAFTIq.mjs +0 -438
  257. package/dist/Document-CwiAFTIq.mjs.map +0 -1
  258. package/dist/Presence-DKKP4v5X.d.cts.map +0 -1
  259. package/dist/Presence-DdMVKcOv.mjs.map +0 -1
  260. package/dist/Presence-N8u7Eppr.d.mts.map +0 -1
  261. package/dist/Primitive-DqQFc3Gu.d.mts +0 -1180
  262. package/dist/Primitive-DqQFc3Gu.d.mts.map +0 -1
  263. package/dist/Primitive-awpEjnKL.d.cts +0 -1180
  264. package/dist/Primitive-awpEjnKL.d.cts.map +0 -1
  265. package/dist/client/index.d.cts.map +0 -1
  266. package/dist/client/index.d.mts.map +0 -1
  267. package/dist/client/index.mjs.map +0 -1
  268. package/dist/index.d.cts.map +0 -1
  269. package/dist/index.d.mts.map +0 -1
  270. package/dist/index.mjs.map +0 -1
  271. package/dist/server/index.d.cts.map +0 -1
  272. package/dist/server/index.d.mts.map +0 -1
  273. package/dist/server/index.mjs.map +0 -1
package/dist/index.d.cts CHANGED
@@ -1,419 +1,12 @@
1
- import { $ as InferState, A as InferLazyProxy, B as ArraySnapshot, C as TreeNodeSelfType, D as InferUnionSnapshot, E as ScalarPrimitive, F as ArrayElementSetInput, G as StructProxy, H as ArrayUpdateInput, I as ArrayEntry, J as AnyPrimitive, K as StructSetInput, L as ArrayEntrySnapshot, M as InferLazySnapshot, N as InferLazyState, O as InferUnionState, P as InferLazyUpdateInput, Q as InferSnapshot, R as ArrayProxy, S as TreeNodeSelf, T as InferEitherState, U as InferStructSnapshot, V as ArrayState, W as InferStructState, X as InferProxy, Y as HasDefault, Z as InferSetInput, _ as InferTreeNodeDataState, _t as OperationPath_d_exports, a as TreeNodeSnapshot, at as Optional, b as TreeNodeConfig, c as TreePrimitive, ct as Validator, d as TreeState, dt as ProxyEnvironment_d_exports, et as InferUpdateInput, f as TreeUpdateInput, g as InferTreeNodeChildren, gt as Operation_d_exports, h as AnyTreeNodePrimitive, ht as Operation, i as TreeNodeProxyBase, it as NeedsValue, j as InferLazySetInput, k as UnionVariants, l as TreeProxy, m as TypedTreeNodeState, mt as Transaction_d_exports, n as InferTreeSnapshot, nt as IsRequired, o as TreeNodeState, ot as Primitive, p as TypedNodeProxy, pt as Transaction, q as StructUpdateValue, r as TreeNodeDataSetInput, rt as MaybeUndefined, s as TreeNodeUpdateValue, st as PrimitiveInternal, t as Primitive_d_exports, tt as IsDefined, u as TreeSetInput, ut as Transform_d_exports, v as InferTreeNodeType, vt as __export, w as InferEitherSnapshot, x as TreeNodePrimitive, y as TreeNodeChildrenInput, z as ArraySetInput } from "./Primitive-awpEjnKL.cjs";
2
- import { i as Presence_d_exports } from "./Presence-DKKP4v5X.cjs";
3
- import { Schema } from "effect";
4
-
5
- //#region src/Document.d.ts
6
- declare namespace Document_d_exports {
7
- export { Document, DocumentOptions, NestedTransactionError, OperationError, make };
8
- }
9
- /**
10
- * Error thrown when attempting to start a nested transaction.
11
- */
12
- declare class NestedTransactionError extends Error {
13
- readonly _tag = "NestedTransactionError";
14
- constructor();
15
- }
16
- /**
17
- * Error thrown when an operation fails to apply.
18
- */
19
- declare class OperationError extends Error {
20
- readonly _tag = "OperationError";
21
- constructor(message: string);
22
- }
23
- /**
24
- * A Document manages state for a primitive-based schema with transaction support.
25
- */
26
- interface Document<TSchema extends AnyPrimitive> {
27
- /** The schema defining this document's structure */
28
- readonly schema: TSchema;
29
- /** Root proxy for accessing and modifying document data */
30
- readonly root: InferProxy<TSchema>;
31
- /** Returns the current document state */
32
- get(): InferState<TSchema> | undefined;
33
- /**
34
- * Returns a readonly snapshot of the entire document state for rendering.
35
- * The snapshot is a type-safe, readonly structure where:
36
- * - Required fields and fields with defaults are guaranteed to be defined
37
- * - Optional fields may be undefined
38
- */
39
- toSnapshot(): InferSnapshot<TSchema>;
40
- /**
41
- * Runs a function within a transaction.
42
- * All operations are collected and applied atomically.
43
- * If the function throws, all changes are rolled back.
44
- * @returns The return value of the function
45
- */
46
- transaction<R>(fn: (root: InferProxy<TSchema>) => R): R;
47
- /**
48
- * Applies external operations (e.g., from server/peers) to the document.
49
- * These operations are NOT added to pending operations.
50
- */
51
- apply(ops: ReadonlyArray<Operation<any, any, any>>): void;
52
- /**
53
- * Returns pending local operations as a Transaction and clears the buffer.
54
- */
55
- flush(): Transaction;
56
- }
57
- interface DocumentOptions<TSchema extends AnyPrimitive> {
58
- /** Initial state for the document */
59
- readonly initial?: InferState<TSchema>;
60
- }
61
- /**
62
- * Creates a new Document for the given schema.
63
- */
64
- declare const make: <TSchema extends AnyPrimitive>(schema: TSchema, options?: DocumentOptions<TSchema>) => Document<TSchema>;
65
- declare namespace EffectSchema_d_exports {
66
- export { ToSetSchema, ToTreeNodeSetSchema, ToTreeNodeUpdateSchema, ToUpdateSchema, TreeNodeStateSchema, toSetSchema, toUpdateSchema };
67
- }
68
- /**
69
- * Infer the Effect.Schema type for a primitive's set input.
70
- */
71
- type ToSetSchema<T extends AnyPrimitive> = Schema.Schema<InferSetInput<T>>;
72
- /**
73
- * Infer the Effect.Schema type for a primitive's update input.
74
- */
75
- type ToUpdateSchema<T extends AnyPrimitive> = Schema.Schema<InferUpdateInput<T>>;
76
- /**
77
- * Type for TreeNode set schema - uses the node's data set input type
78
- */
79
- type ToTreeNodeSetSchema<T extends AnyTreeNodePrimitive> = Schema.Schema<InferSetInput<T["data"]>>;
80
- /**
81
- * Type for TreeNode update schema - uses the node's data update input type
82
- */
83
- type ToTreeNodeUpdateSchema<T extends AnyTreeNodePrimitive> = Schema.Schema<InferUpdateInput<T["data"]>>;
84
- /**
85
- * Schema for a tree node state (flat storage format).
86
- */
87
- declare const TreeNodeStateSchema: Schema.Struct<{
88
- id: typeof Schema.String;
89
- type: typeof Schema.String;
90
- parentId: Schema.NullOr<typeof Schema.String>;
91
- pos: typeof Schema.String;
92
- data: typeof Schema.Unknown;
93
- }>;
94
- /**
95
- * Convert a Mimic primitive to an Effect.Schema for set operations.
96
- *
97
- * The resulting schema:
98
- * - For structs: required fields (required=true, no default) are non-optional, others are optional
99
- * - For arrays: uses the element's set schema
100
- * - For unions: creates a Schema.Union of variant schemas
101
- * - For TreeNode: delegates to the node's data struct schema
102
- * - For Tree: returns Schema.Array of TreeNodeState
103
- *
104
- * @example
105
- * ```typescript
106
- * const UserSchema = Primitive.Struct({
107
- * name: Primitive.String().required(),
108
- * age: Primitive.Number().default(0),
109
- * email: Primitive.String(),
110
- * });
111
- *
112
- * const SetSchema = toSetSchema(UserSchema);
113
- * // { name: string, age?: number, email?: string }
114
- * ```
115
- */
116
- declare function toSetSchema<T extends AnyPrimitive>(primitive: T): ToSetSchema<T>;
117
- declare function toSetSchema<T extends AnyTreeNodePrimitive>(primitive: T): ToTreeNodeSetSchema<T>;
118
- /**
119
- * Convert a Mimic primitive to an Effect.Schema for update operations.
120
- *
121
- * The resulting schema:
122
- * - For structs: all fields are optional (partial updates)
123
- * - For unions: all variant fields are optional
124
- * - For TreeNode: delegates to the node's data struct update schema
125
- * - For simple primitives: same as set schema
126
- *
127
- * @example
128
- * ```typescript
129
- * const UserSchema = Primitive.Struct({
130
- * name: Primitive.String().required(),
131
- * age: Primitive.Number().default(0),
132
- * email: Primitive.String(),
133
- * });
134
- *
135
- * const UpdateSchema = toUpdateSchema(UserSchema);
136
- * // { name?: string, age?: string, email?: string }
137
- * ```
138
- */
139
- declare function toUpdateSchema<T extends AnyPrimitive>(primitive: T): ToUpdateSchema<T>;
140
- declare function toUpdateSchema<T extends AnyTreeNodePrimitive>(primitive: T): ToTreeNodeUpdateSchema<T>;
141
- declare namespace index_d_exports {
142
- export { AnyPrimitive, AnyTreeNodePrimitive, ArrayElementSetInput, ArrayEntry, ArrayEntrySnapshot, ArrayProxy, ArraySetInput, ArraySnapshot, ArrayState, ArrayUpdateInput, HasDefault, InferEitherSnapshot, InferEitherState, InferLazyProxy, InferLazySetInput, InferLazySnapshot, InferLazyState, InferLazyUpdateInput, InferProxy, InferSetInput, InferSnapshot, InferState, InferStructSnapshot, InferStructState, InferTreeNodeChildren, InferTreeNodeDataState, InferTreeNodeType, InferTreeSnapshot, InferUnionSnapshot, InferUnionState, InferUpdateInput, IsDefined, IsRequired, MaybeUndefined, NeedsValue, Optional, Primitive, PrimitiveInternal, ScalarPrimitive, StructProxy, StructSetInput, StructUpdateValue, TreeNodeChildrenInput, TreeNodeConfig, TreeNodeDataSetInput, TreeNodePrimitive, TreeNodeProxyBase, TreeNodeSelf, TreeNodeSelfType, TreeNodeSnapshot, TreeNodeState, TreeNodeUpdateValue, TreeProxy, TreeSetInput, TreeState, TreeUpdateInput, TypedNodeProxy, TypedTreeNodeState, UnionVariants, Validator };
143
- }
144
- declare namespace tree_helpers_d_exports {
145
- export { FlattenedNode, NodeSearchResult, ParentSearchResult, TraverseOptions, buildNodeTypeMap, canAddChildType, findNode, findNodeById, findNodeWithPath, findNodes, flattenTree, getAllNodeTypes, getAllowedChildTypes, getAllowedChildTypesForNode, getAncestors, getDescendants, getNodeDepth, getNodePrimitive, getNodeTypeByName, getParent, getSiblings, getSubtree, isAncestorOf, isChildTypeAllowed, mapTree, traverse };
146
- }
147
- /**
148
- * Result of finding a node with path information.
149
- */
150
- interface NodeSearchResult<TNode extends AnyTreeNodePrimitive> {
151
- readonly node: TreeNodeSnapshot<TNode>;
152
- readonly path: readonly string[];
153
- readonly depth: number;
154
- }
155
- /**
156
- * Result of finding a parent node.
157
- */
158
- interface ParentSearchResult<TNode extends AnyTreeNodePrimitive> {
159
- readonly parent: TreeNodeSnapshot<TNode>;
160
- readonly childIndex: number;
161
- }
162
- /**
163
- * Flattened node with parent information.
164
- */
165
- interface FlattenedNode<TNode extends AnyTreeNodePrimitive> {
166
- readonly node: TreeNodeSnapshot<TNode>;
167
- readonly parentId: string | null;
168
- readonly depth: number;
169
- }
170
- /**
171
- * Options for tree traversal.
172
- */
173
- interface TraverseOptions {
174
- readonly order?: "pre" | "post";
175
- }
176
- /**
177
- * Find a node by ID in a tree snapshot.
178
- *
179
- * @param snapshot - The root tree snapshot
180
- * @param id - The node ID to find
181
- * @returns The node snapshot if found, undefined otherwise
182
- */
183
- declare function findNodeById<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, id: string): TreeNodeSnapshot<TNode> | undefined;
184
- /**
185
- * Find a node by ID with full path information.
186
- *
187
- * @param snapshot - The root tree snapshot
188
- * @param id - The node ID to find
189
- * @returns NodeSearchResult with node, path, and depth, or undefined if not found
190
- */
191
- declare function findNodeWithPath<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, id: string): NodeSearchResult<TNode> | undefined;
192
- /**
193
- * Get the parent node of a given node ID.
194
- *
195
- * @param snapshot - The root tree snapshot
196
- * @param nodeId - The ID of the node whose parent we want
197
- * @returns ParentSearchResult with parent node and child index, or undefined
198
- */
199
- declare function getParent<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, nodeId: string): ParentSearchResult<TNode> | undefined;
200
- /**
201
- * Get a subtree rooted at a specific node ID.
202
- *
203
- * @param snapshot - The root tree snapshot
204
- * @param nodeId - The ID of the node to use as new root
205
- * @returns The subtree snapshot, or undefined if node not found
206
- */
207
- declare function getSubtree<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, nodeId: string): TreeNodeSnapshot<TNode> | undefined;
208
- /**
209
- * Get all ancestor nodes from a node up to the root.
210
- *
211
- * @param snapshot - The root tree snapshot
212
- * @param nodeId - The ID of the node
213
- * @returns Array of ancestor snapshots from immediate parent to root, or empty array
214
- */
215
- declare function getAncestors<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, nodeId: string): readonly TreeNodeSnapshot<TNode>[];
216
- /**
217
- * Get all descendant nodes of a given node (flat array).
218
- *
219
- * @param snapshot - The root tree snapshot
220
- * @param nodeId - The ID of the node (if undefined, returns all descendants of root)
221
- * @returns Flat array of all descendant node snapshots
222
- */
223
- declare function getDescendants<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, nodeId?: string): readonly TreeNodeSnapshot<TNode>[];
224
- /**
225
- * Get siblings of a node (nodes with the same parent).
226
- *
227
- * @param snapshot - The root tree snapshot
228
- * @param nodeId - The ID of the node
229
- * @param includeSelf - Whether to include the node itself (default: false)
230
- * @returns Array of sibling snapshots
231
- */
232
- declare function getSiblings<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, nodeId: string, includeSelf?: boolean): readonly TreeNodeSnapshot<TNode>[];
233
- /**
234
- * Find the first node matching a predicate.
235
- *
236
- * @param snapshot - The root tree snapshot
237
- * @param predicate - Function to test each node
238
- * @returns First matching node snapshot, or undefined
239
- */
240
- declare function findNode<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, predicate: (node: TreeNodeSnapshot<TNode>) => boolean): TreeNodeSnapshot<TNode> | undefined;
241
- /**
242
- * Find all nodes matching a predicate.
243
- *
244
- * @param snapshot - The root tree snapshot
245
- * @param predicate - Function to test each node
246
- * @returns Array of matching node snapshots
247
- */
248
- declare function findNodes<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, predicate: (node: TreeNodeSnapshot<TNode>) => boolean): readonly TreeNodeSnapshot<TNode>[];
249
- /**
250
- * Get the depth of a specific node (0 = root).
251
- *
252
- * @param snapshot - The root tree snapshot
253
- * @param nodeId - The ID of the node
254
- * @returns The depth, or -1 if not found
255
- */
256
- declare function getNodeDepth<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, nodeId: string): number;
257
- /**
258
- * Check if one node is an ancestor of another.
259
- *
260
- * @param snapshot - The root tree snapshot
261
- * @param ancestorId - Potential ancestor node ID
262
- * @param descendantId - Potential descendant node ID
263
- * @returns true if ancestorId is an ancestor of descendantId
264
- */
265
- declare function isAncestorOf<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, ancestorId: string, descendantId: string): boolean;
266
- /**
267
- * Traverse the tree and call a visitor function for each node.
268
- * Return false from visitor to stop traversal.
269
- *
270
- * @param snapshot - The root tree snapshot
271
- * @param visitor - Function called for each node (return false to stop)
272
- * @param options - Traversal options (order: 'pre' | 'post')
273
- */
274
- declare function traverse<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined, visitor: (node: TreeNodeSnapshot<TNode>, depth: number) => void | false, options?: TraverseOptions): void;
275
- /**
276
- * Flatten the tree into an array with parent information.
277
- *
278
- * @param snapshot - The root tree snapshot
279
- * @returns Array of { node, parentId, depth } objects
280
- */
281
- declare function flattenTree<TNode extends AnyTreeNodePrimitive>(snapshot: TreeNodeSnapshot<TNode> | undefined): readonly FlattenedNode<TNode>[];
282
- /**
283
- * Map over all nodes in the tree, transforming each node's data.
284
- * Preserves tree structure while transforming node content.
285
- *
286
- * @param snapshot - The root tree snapshot
287
- * @param mapper - Function to transform each node
288
- * @returns New tree structure with transformed nodes, or undefined
289
- */
290
- declare function mapTree<TNode extends AnyTreeNodePrimitive, R>(snapshot: TreeNodeSnapshot<TNode> | undefined, mapper: (node: TreeNodeSnapshot<TNode>, depth: number) => R): {
291
- value: R;
292
- children: ReturnType<typeof mapTree<TNode, R>>[];
293
- } | undefined;
294
- /**
295
- * Build a lookup map from node type strings to their TreeNodePrimitive definitions.
296
- * Useful for resolving snapshot node types back to their schema definitions.
297
- *
298
- * @param tree - The TreePrimitive to analyze
299
- * @returns Map from type string to TreeNodePrimitive
300
- *
301
- * @example
302
- * ```ts
303
- * const typeMap = buildNodeTypeMap(fileTree);
304
- * const folderPrimitive = typeMap.get("folder"); // FolderNode
305
- * ```
306
- */
307
- declare function buildNodeTypeMap<TRoot extends AnyTreeNodePrimitive>(tree: TreePrimitive<TRoot>): Map<string, AnyTreeNodePrimitive>;
308
- /**
309
- * Get the TreeNodePrimitive definition for a snapshot node.
310
- * Requires the tree schema to resolve the type string to its primitive.
311
- *
312
- * @param tree - The TreePrimitive schema
313
- * @param snapshot - The node snapshot to get the primitive for
314
- * @returns The TreeNodePrimitive, or undefined if not found
315
- *
316
- * @example
317
- * ```ts
318
- * const node = findNodeById(treeSnapshot, "some-id");
319
- * const primitive = getNodePrimitive(fileTree, node);
320
- * // primitive is FolderNode or FileNode depending on node.type
321
- * ```
322
- */
323
- declare function getNodePrimitive<TRoot extends AnyTreeNodePrimitive>(tree: TreePrimitive<TRoot>, snapshot: TreeNodeSnapshot<AnyTreeNodePrimitive>): AnyTreeNodePrimitive | undefined;
324
- /**
325
- * Get the allowed child types for a snapshot node.
326
- * Combines schema lookup with the node's allowed children.
327
- *
328
- * @param tree - The TreePrimitive schema
329
- * @param snapshot - The node snapshot to get allowed children for
330
- * @returns Array of allowed child TreeNodePrimitives, or empty array if not found
331
- *
332
- * @example
333
- * ```ts
334
- * const node = findNodeById(treeSnapshot, "folder-id");
335
- * const allowedChildren = getAllowedChildTypesForNode(fileTree, node);
336
- * // Returns [FolderNode, FileNode] if the folder can contain both
337
- * ```
338
- */
339
- declare function getAllowedChildTypesForNode<TRoot extends AnyTreeNodePrimitive>(tree: TreePrimitive<TRoot>, snapshot: TreeNodeSnapshot<AnyTreeNodePrimitive>): readonly AnyTreeNodePrimitive[];
340
- /**
341
- * Check if a child type is allowed for a specific snapshot node.
342
- *
343
- * @param tree - The TreePrimitive schema
344
- * @param parentSnapshot - The parent node snapshot
345
- * @param childTypeName - The type string of the potential child
346
- * @returns true if the child type is allowed
347
- *
348
- * @example
349
- * ```ts
350
- * const folder = findNodeById(treeSnapshot, "folder-id");
351
- * canAddChildType(fileTree, folder, "file"); // true
352
- * canAddChildType(fileTree, folder, "unknown"); // false
353
- * ```
354
- */
355
- declare function canAddChildType<TRoot extends AnyTreeNodePrimitive>(tree: TreePrimitive<TRoot>, parentSnapshot: TreeNodeSnapshot<AnyTreeNodePrimitive>, childTypeName: string): boolean;
356
- /**
357
- * Get all allowed child node types for a specific node type.
358
- *
359
- * @param nodeType - The TreeNodePrimitive to get children for
360
- * @returns Array of allowed child TreeNodePrimitives
361
- *
362
- * @example
363
- * ```ts
364
- * const FolderNode = TreeNode("folder", { ... });
365
- * const FileNode = TreeNode("file", { ... });
366
- *
367
- * // Get allowed children for FolderNode
368
- * const allowedChildren = getAllowedChildTypes(FolderNode);
369
- * // Returns [FolderNode, FileNode] if folder can contain both
370
- * ```
371
- */
372
- declare function getAllowedChildTypes<TNode extends AnyTreeNodePrimitive>(nodeType: TNode): readonly AnyTreeNodePrimitive[];
373
- /**
374
- * Get all unique node types reachable in a tree schema.
375
- * Recursively traverses the tree structure starting from the root.
376
- *
377
- * @param tree - The TreePrimitive to analyze
378
- * @returns Array of all unique TreeNodePrimitives in the tree schema
379
- *
380
- * @example
381
- * ```ts
382
- * const fileTree = Tree({ root: FolderNode });
383
- * const allNodeTypes = getAllNodeTypes(fileTree);
384
- * // Returns [FolderNode, FileNode] - all possible node types
385
- * ```
386
- */
387
- declare function getAllNodeTypes<TRoot extends AnyTreeNodePrimitive>(tree: TreePrimitive<TRoot>): readonly AnyTreeNodePrimitive[];
388
- /**
389
- * Get the node type primitive by its type string from a tree schema.
390
- *
391
- * @param tree - The TreePrimitive to search
392
- * @param typeName - The type string to find (e.g., "folder", "file")
393
- * @returns The matching TreeNodePrimitive, or undefined if not found
394
- *
395
- * @example
396
- * ```ts
397
- * const fileTree = Tree({ root: FolderNode });
398
- * const folderType = getNodeTypeByName(fileTree, "folder");
399
- * // Returns FolderNode
400
- * ```
401
- */
402
- declare function getNodeTypeByName<TRoot extends AnyTreeNodePrimitive>(tree: TreePrimitive<TRoot>, typeName: string): AnyTreeNodePrimitive | undefined;
403
- /**
404
- * Check if a child type is allowed under a parent type.
405
- *
406
- * @param parentType - The parent TreeNodePrimitive
407
- * @param childTypeName - The type string of the potential child
408
- * @returns true if the child type is allowed
409
- *
410
- * @example
411
- * ```ts
412
- * isChildTypeAllowed(FolderNode, "file"); // true if folder can contain files
413
- * isChildTypeAllowed(FileNode, "folder"); // false - files can't have children
414
- * ```
415
- */
416
- declare function isChildTypeAllowed(parentType: AnyTreeNodePrimitive, childTypeName: string): boolean;
417
- //#endregion
418
- export { Document_d_exports as Document, EffectSchema_d_exports as EffectSchema, Operation_d_exports as Operation, OperationPath_d_exports as OperationPath, Presence_d_exports as Presence, type Primitive_d_exports as Primitive, ProxyEnvironment_d_exports as ProxyEnvironment, Transaction_d_exports as Transaction, Transform_d_exports as Transform, tree_helpers_d_exports as TreeHelpers, index_d_exports as Types };
419
- //# sourceMappingURL=index.d.cts.map
1
+ import { Presence_d_exports } from "./Presence.cjs";
2
+ import { OperationPath_d_exports } from "./OperationPath.cjs";
3
+ import { Operation_d_exports } from "./Operation.cjs";
4
+ import { Transaction_d_exports } from "./Transaction.cjs";
5
+ import { ProxyEnvironment_d_exports } from "./ProxyEnvironment.cjs";
6
+ import { Transform_d_exports } from "./Transform.cjs";
7
+ import { Primitive_d_exports } from "./Primitive.cjs";
8
+ import { Document_d_exports } from "./Document.cjs";
9
+ import { EffectSchema_d_exports } from "./EffectSchema.cjs";
10
+ import { index_d_exports } from "./types/index.cjs";
11
+ import { tree_helpers_d_exports } from "./utils/tree-helpers.cjs";
12
+ export { Document_d_exports as Document, EffectSchema_d_exports as EffectSchema, Operation_d_exports as Operation, OperationPath_d_exports as OperationPath, Presence_d_exports as Presence, Primitive_d_exports as Primitive, ProxyEnvironment_d_exports as ProxyEnvironment, Transaction_d_exports as Transaction, Transform_d_exports as Transform, tree_helpers_d_exports as TreeHelpers, index_d_exports as Types };