document-model 6.0.0-dev.11 → 6.0.0-dev.110

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 (270) hide show
  1. package/dist/index.d.ts +81 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +216 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/node.d.mts +62 -0
  6. package/dist/node.d.mts.map +1 -0
  7. package/dist/node.mjs +151 -0
  8. package/dist/node.mjs.map +1 -0
  9. package/package.json +15 -24
  10. package/dist/src/core/actions.d.ts +0 -87
  11. package/dist/src/core/actions.d.ts.map +0 -1
  12. package/dist/src/core/actions.js +0 -187
  13. package/dist/src/core/actions.js.map +0 -1
  14. package/dist/src/core/crypto.d.ts +0 -8
  15. package/dist/src/core/crypto.d.ts.map +0 -1
  16. package/dist/src/core/crypto.js +0 -68
  17. package/dist/src/core/crypto.js.map +0 -1
  18. package/dist/src/core/documents.d.ts +0 -146
  19. package/dist/src/core/documents.d.ts.map +0 -1
  20. package/dist/src/core/documents.js +0 -814
  21. package/dist/src/core/documents.js.map +0 -1
  22. package/dist/src/core/errors.d.ts +0 -21
  23. package/dist/src/core/errors.d.ts.map +0 -1
  24. package/dist/src/core/errors.js +0 -46
  25. package/dist/src/core/errors.js.map +0 -1
  26. package/dist/src/core/files.d.ts +0 -14
  27. package/dist/src/core/files.d.ts.map +0 -1
  28. package/dist/src/core/files.js +0 -65
  29. package/dist/src/core/files.js.map +0 -1
  30. package/dist/src/core/header.d.ts +0 -63
  31. package/dist/src/core/header.d.ts.map +0 -1
  32. package/dist/src/core/header.js +0 -178
  33. package/dist/src/core/header.js.map +0 -1
  34. package/dist/src/core/index.d.ts +0 -13
  35. package/dist/src/core/index.d.ts.map +0 -1
  36. package/dist/src/core/index.js +0 -13
  37. package/dist/src/core/index.js.map +0 -1
  38. package/dist/src/core/node.d.ts +0 -53
  39. package/dist/src/core/node.d.ts.map +0 -1
  40. package/dist/src/core/node.js +0 -139
  41. package/dist/src/core/node.js.map +0 -1
  42. package/dist/src/core/operations.d.ts +0 -48
  43. package/dist/src/core/operations.d.ts.map +0 -1
  44. package/dist/src/core/operations.js +0 -122
  45. package/dist/src/core/operations.js.map +0 -1
  46. package/dist/src/core/ph-types.d.ts +0 -315
  47. package/dist/src/core/ph-types.d.ts.map +0 -1
  48. package/dist/src/core/ph-types.js +0 -15
  49. package/dist/src/core/ph-types.js.map +0 -1
  50. package/dist/src/core/reducer.d.ts +0 -63
  51. package/dist/src/core/reducer.d.ts.map +0 -1
  52. package/dist/src/core/reducer.js +0 -455
  53. package/dist/src/core/reducer.js.map +0 -1
  54. package/dist/src/core/schemas.d.ts +0 -69
  55. package/dist/src/core/schemas.d.ts.map +0 -1
  56. package/dist/src/core/schemas.js +0 -110
  57. package/dist/src/core/schemas.js.map +0 -1
  58. package/dist/src/core/state.d.ts +0 -26
  59. package/dist/src/core/state.d.ts.map +0 -1
  60. package/dist/src/core/state.js +0 -56
  61. package/dist/src/core/state.js.map +0 -1
  62. package/dist/src/core/types.d.ts +0 -536
  63. package/dist/src/core/types.d.ts.map +0 -1
  64. package/dist/src/core/types.js +0 -2
  65. package/dist/src/core/types.js.map +0 -1
  66. package/dist/src/core/utils.d.ts +0 -6
  67. package/dist/src/core/utils.d.ts.map +0 -1
  68. package/dist/src/core/utils.js +0 -15
  69. package/dist/src/core/utils.js.map +0 -1
  70. package/dist/src/core/validation.d.ts +0 -4
  71. package/dist/src/core/validation.d.ts.map +0 -1
  72. package/dist/src/core/validation.js +0 -27
  73. package/dist/src/core/validation.js.map +0 -1
  74. package/dist/src/document-model/actions.d.ts +0 -158
  75. package/dist/src/document-model/actions.d.ts.map +0 -1
  76. package/dist/src/document-model/actions.js +0 -111
  77. package/dist/src/document-model/actions.js.map +0 -1
  78. package/dist/src/document-model/constants.d.ts +0 -6
  79. package/dist/src/document-model/constants.d.ts.map +0 -1
  80. package/dist/src/document-model/constants.js +0 -573
  81. package/dist/src/document-model/constants.js.map +0 -1
  82. package/dist/src/document-model/document-schema.d.ts +0 -69
  83. package/dist/src/document-model/document-schema.d.ts.map +0 -1
  84. package/dist/src/document-model/document-schema.js +0 -43
  85. package/dist/src/document-model/document-schema.js.map +0 -1
  86. package/dist/src/document-model/document-type.d.ts +0 -2
  87. package/dist/src/document-model/document-type.d.ts.map +0 -1
  88. package/dist/src/document-model/document-type.js +0 -2
  89. package/dist/src/document-model/document-type.js.map +0 -1
  90. package/dist/src/document-model/files.d.ts +0 -5
  91. package/dist/src/document-model/files.d.ts.map +0 -1
  92. package/dist/src/document-model/files.js +0 -9
  93. package/dist/src/document-model/files.js.map +0 -1
  94. package/dist/src/document-model/index.d.ts +0 -11
  95. package/dist/src/document-model/index.d.ts.map +0 -1
  96. package/dist/src/document-model/index.js +0 -11
  97. package/dist/src/document-model/index.js.map +0 -1
  98. package/dist/src/document-model/module.d.ts +0 -3
  99. package/dist/src/document-model/module.d.ts.map +0 -1
  100. package/dist/src/document-model/module.js +0 -24
  101. package/dist/src/document-model/module.js.map +0 -1
  102. package/dist/src/document-model/reducers.d.ts +0 -11
  103. package/dist/src/document-model/reducers.d.ts.map +0 -1
  104. package/dist/src/document-model/reducers.js +0 -618
  105. package/dist/src/document-model/reducers.js.map +0 -1
  106. package/dist/src/document-model/schemas.d.ts +0 -189
  107. package/dist/src/document-model/schemas.d.ts.map +0 -1
  108. package/dist/src/document-model/schemas.js +0 -388
  109. package/dist/src/document-model/schemas.js.map +0 -1
  110. package/dist/src/document-model/state.d.ts +0 -15
  111. package/dist/src/document-model/state.d.ts.map +0 -1
  112. package/dist/src/document-model/state.js +0 -75
  113. package/dist/src/document-model/state.js.map +0 -1
  114. package/dist/src/document-model/types.d.ts +0 -679
  115. package/dist/src/document-model/types.d.ts.map +0 -1
  116. package/dist/src/document-model/types.js +0 -2
  117. package/dist/src/document-model/types.js.map +0 -1
  118. package/dist/src/document-model/validation.d.ts +0 -32
  119. package/dist/src/document-model/validation.d.ts.map +0 -1
  120. package/dist/src/document-model/validation.js +0 -166
  121. package/dist/src/document-model/validation.js.map +0 -1
  122. package/dist/src/index.d.ts +0 -6
  123. package/dist/src/index.d.ts.map +0 -1
  124. package/dist/src/index.js +0 -3
  125. package/dist/src/index.js.map +0 -1
  126. package/dist/test/document/crypto.test.d.ts +0 -2
  127. package/dist/test/document/crypto.test.d.ts.map +0 -1
  128. package/dist/test/document/crypto.test.js +0 -195
  129. package/dist/test/document/crypto.test.js.map +0 -1
  130. package/dist/test/document/event-vs-command.test.d.ts +0 -2
  131. package/dist/test/document/event-vs-command.test.d.ts.map +0 -1
  132. package/dist/test/document/event-vs-command.test.js +0 -202
  133. package/dist/test/document/event-vs-command.test.js.map +0 -1
  134. package/dist/test/document/local.test.d.ts +0 -2
  135. package/dist/test/document/local.test.d.ts.map +0 -1
  136. package/dist/test/document/local.test.js +0 -229
  137. package/dist/test/document/local.test.js.map +0 -1
  138. package/dist/test/document/operation-id.test.d.ts +0 -2
  139. package/dist/test/document/operation-id.test.d.ts.map +0 -1
  140. package/dist/test/document/operation-id.test.js +0 -118
  141. package/dist/test/document/operation-id.test.js.map +0 -1
  142. package/dist/test/document/prune.test.d.ts +0 -2
  143. package/dist/test/document/prune.test.d.ts.map +0 -1
  144. package/dist/test/document/prune.test.js +0 -159
  145. package/dist/test/document/prune.test.js.map +0 -1
  146. package/dist/test/document/reducer.test.d.ts +0 -2
  147. package/dist/test/document/reducer.test.d.ts.map +0 -1
  148. package/dist/test/document/reducer.test.js +0 -284
  149. package/dist/test/document/reducer.test.js.map +0 -1
  150. package/dist/test/document/skip-operations.test.d.ts +0 -2
  151. package/dist/test/document/skip-operations.test.d.ts.map +0 -1
  152. package/dist/test/document/skip-operations.test.js +0 -412
  153. package/dist/test/document/skip-operations.test.js.map +0 -1
  154. package/dist/test/document/undo-redo-v2.test.d.ts +0 -2
  155. package/dist/test/document/undo-redo-v2.test.d.ts.map +0 -1
  156. package/dist/test/document/undo-redo-v2.test.js +0 -207
  157. package/dist/test/document/undo-redo-v2.test.js.map +0 -1
  158. package/dist/test/document/undo-redo.test.d.ts +0 -2
  159. package/dist/test/document/undo-redo.test.d.ts.map +0 -1
  160. package/dist/test/document/undo-redo.test.js +0 -413
  161. package/dist/test/document/undo-redo.test.js.map +0 -1
  162. package/dist/test/document/utils.test.d.ts +0 -2
  163. package/dist/test/document/utils.test.d.ts.map +0 -1
  164. package/dist/test/document/utils.test.js +0 -172
  165. package/dist/test/document/utils.test.js.map +0 -1
  166. package/dist/test/document-helpers/addUndo.test.d.ts +0 -2
  167. package/dist/test/document-helpers/addUndo.test.d.ts.map +0 -1
  168. package/dist/test/document-helpers/addUndo.test.js +0 -120
  169. package/dist/test/document-helpers/addUndo.test.js.map +0 -1
  170. package/dist/test/document-helpers/attachBranch.test.d.ts +0 -2
  171. package/dist/test/document-helpers/attachBranch.test.d.ts.map +0 -1
  172. package/dist/test/document-helpers/attachBranch.test.js +0 -364
  173. package/dist/test/document-helpers/attachBranch.test.js.map +0 -1
  174. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts +0 -2
  175. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.d.ts.map +0 -1
  176. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js +0 -252
  177. package/dist/test/document-helpers/checkCleanedOperationsIntegrity.test.js.map +0 -1
  178. package/dist/test/document-helpers/conflictResolution.test.d.ts +0 -2
  179. package/dist/test/document-helpers/conflictResolution.test.d.ts.map +0 -1
  180. package/dist/test/document-helpers/conflictResolution.test.js +0 -109
  181. package/dist/test/document-helpers/conflictResolution.test.js.map +0 -1
  182. package/dist/test/document-helpers/filterDuplicatedOperations.test.d.ts +0 -2
  183. package/dist/test/document-helpers/filterDuplicatedOperations.test.d.ts.map +0 -1
  184. package/dist/test/document-helpers/filterDuplicatedOperations.test.js +0 -126
  185. package/dist/test/document-helpers/filterDuplicatedOperations.test.js.map +0 -1
  186. package/dist/test/document-helpers/garbageCollect.test.d.ts +0 -2
  187. package/dist/test/document-helpers/garbageCollect.test.d.ts.map +0 -1
  188. package/dist/test/document-helpers/garbageCollect.test.js +0 -136
  189. package/dist/test/document-helpers/garbageCollect.test.js.map +0 -1
  190. package/dist/test/document-helpers/groupOperationsByScope.test.d.ts +0 -2
  191. package/dist/test/document-helpers/groupOperationsByScope.test.d.ts.map +0 -1
  192. package/dist/test/document-helpers/groupOperationsByScope.test.js +0 -102
  193. package/dist/test/document-helpers/groupOperationsByScope.test.js.map +0 -1
  194. package/dist/test/document-helpers/merge.test.d.ts +0 -2
  195. package/dist/test/document-helpers/merge.test.d.ts.map +0 -1
  196. package/dist/test/document-helpers/merge.test.js +0 -906
  197. package/dist/test/document-helpers/merge.test.js.map +0 -1
  198. package/dist/test/document-helpers/nextSkipNumber.test.d.ts +0 -2
  199. package/dist/test/document-helpers/nextSkipNumber.test.d.ts.map +0 -1
  200. package/dist/test/document-helpers/nextSkipNumber.test.js +0 -135
  201. package/dist/test/document-helpers/nextSkipNumber.test.js.map +0 -1
  202. package/dist/test/document-helpers/prepareOperations.test.d.ts +0 -2
  203. package/dist/test/document-helpers/prepareOperations.test.d.ts.map +0 -1
  204. package/dist/test/document-helpers/prepareOperations.test.js +0 -304
  205. package/dist/test/document-helpers/prepareOperations.test.js.map +0 -1
  206. package/dist/test/document-helpers/removeExistingOperations.test.d.ts +0 -2
  207. package/dist/test/document-helpers/removeExistingOperations.test.d.ts.map +0 -1
  208. package/dist/test/document-helpers/removeExistingOperations.test.js +0 -177
  209. package/dist/test/document-helpers/removeExistingOperations.test.js.map +0 -1
  210. package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts +0 -2
  211. package/dist/test/document-helpers/reshuffleByTimestamp.test.d.ts.map +0 -1
  212. package/dist/test/document-helpers/reshuffleByTimestamp.test.js +0 -148
  213. package/dist/test/document-helpers/reshuffleByTimestamp.test.js.map +0 -1
  214. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts +0 -2
  215. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.d.ts.map +0 -1
  216. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js +0 -200
  217. package/dist/test/document-helpers/reshuffleByTimestampAndIndex.test.js.map +0 -1
  218. package/dist/test/document-helpers/skipHeaderOperations.test.d.ts +0 -2
  219. package/dist/test/document-helpers/skipHeaderOperations.test.d.ts.map +0 -1
  220. package/dist/test/document-helpers/skipHeaderOperations.test.js +0 -72
  221. package/dist/test/document-helpers/skipHeaderOperations.test.js.map +0 -1
  222. package/dist/test/document-helpers/sortOperations.test.d.ts +0 -2
  223. package/dist/test/document-helpers/sortOperations.test.d.ts.map +0 -1
  224. package/dist/test/document-helpers/sortOperations.test.js +0 -101
  225. package/dist/test/document-helpers/sortOperations.test.js.map +0 -1
  226. package/dist/test/document-helpers/split.test.d.ts +0 -2
  227. package/dist/test/document-helpers/split.test.d.ts.map +0 -1
  228. package/dist/test/document-helpers/split.test.js +0 -121
  229. package/dist/test/document-helpers/split.test.js.map +0 -1
  230. package/dist/test/document-helpers/utils.d.ts +0 -15
  231. package/dist/test/document-helpers/utils.d.ts.map +0 -1
  232. package/dist/test/document-helpers/utils.js +0 -61
  233. package/dist/test/document-helpers/utils.js.map +0 -1
  234. package/dist/test/document-model/replay.test.d.ts +0 -2
  235. package/dist/test/document-model/replay.test.d.ts.map +0 -1
  236. package/dist/test/document-model/replay.test.js +0 -139
  237. package/dist/test/document-model/replay.test.js.map +0 -1
  238. package/dist/test/document-model/skip-operations.test.d.ts +0 -2
  239. package/dist/test/document-model/skip-operations.test.d.ts.map +0 -1
  240. package/dist/test/document-model/skip-operations.test.js +0 -214
  241. package/dist/test/document-model/skip-operations.test.js.map +0 -1
  242. package/dist/test/document-model/validation.test.d.ts +0 -2
  243. package/dist/test/document-model/validation.test.d.ts.map +0 -1
  244. package/dist/test/document-model/validation.test.js +0 -451
  245. package/dist/test/document-model/validation.test.js.map +0 -1
  246. package/dist/test/document-model/versioning.test.d.ts +0 -2
  247. package/dist/test/document-model/versioning.test.d.ts.map +0 -1
  248. package/dist/test/document-model/versioning.test.js +0 -93
  249. package/dist/test/document-model/versioning.test.js.map +0 -1
  250. package/dist/test/document-model/zip.test.d.ts +0 -2
  251. package/dist/test/document-model/zip.test.d.ts.map +0 -1
  252. package/dist/test/document-model/zip.test.js +0 -79
  253. package/dist/test/document-model/zip.test.js.map +0 -1
  254. package/dist/test/helpers.d.ts +0 -77
  255. package/dist/test/helpers.d.ts.map +0 -1
  256. package/dist/test/helpers.js +0 -118
  257. package/dist/test/helpers.js.map +0 -1
  258. package/dist/test/index.d.ts +0 -4
  259. package/dist/test/index.d.ts.map +0 -1
  260. package/dist/test/index.js +0 -3
  261. package/dist/test/index.js.map +0 -1
  262. package/dist/test/types.d.ts +0 -6
  263. package/dist/test/types.d.ts.map +0 -1
  264. package/dist/test/types.js +0 -2
  265. package/dist/test/types.js.map +0 -1
  266. package/dist/tsconfig.tsbuildinfo +0 -1
  267. package/dist/vitest.config.d.ts +0 -3
  268. package/dist/vitest.config.d.ts.map +0 -1
  269. package/dist/vitest.config.js +0 -7
  270. package/dist/vitest.config.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/core/documents.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { ZodIssue } from "zod";
2
- import type { Operation, PHDocument } from "./ph-types.js";
3
- export declare const FileSystemError: Error;
4
- export declare class InvalidActionInputError extends Error {
5
- data: unknown;
6
- constructor(data: unknown);
7
- }
8
- export declare class InvalidActionInputZodError extends InvalidActionInputError {
9
- issues: ZodIssue[];
10
- constructor(issues: ZodIssue[]);
11
- }
12
- export declare class HashMismatchError extends Error {
13
- protected _scope: string;
14
- protected _document: PHDocument;
15
- protected _operation: Operation;
16
- constructor(scope: string, document: PHDocument, operation: Operation);
17
- get document(): PHDocument;
18
- get scope(): string;
19
- get operation(): Operation;
20
- }
21
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3D,eAAO,MAAM,eAAe,OAA0C,CAAC;AAEvE,qBAAa,uBAAwB,SAAQ,KAAK;IACzC,IAAI,EAAE,OAAO,CAAC;gBACT,IAAI,EAAE,OAAO;CAO1B;AAED,qBAAa,0BAA2B,SAAQ,uBAAuB;IAC9D,MAAM,EAAE,QAAQ,EAAE,CAAC;gBAEd,MAAM,EAAE,QAAQ,EAAE;CAK/B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAChC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;gBAEpB,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS;IAkBrE,IAAI,QAAQ,eAEX;IAED,IAAI,KAAK,WAER;IAED,IAAI,SAAS,cAEZ;CACF"}
@@ -1,46 +0,0 @@
1
- export const FileSystemError = new Error("File system not available.");
2
- export class InvalidActionInputError extends Error {
3
- data;
4
- constructor(data) {
5
- super();
6
- this.name = "InvalidActionInputError";
7
- this.data = data;
8
- this.message =
9
- this.message || `Invalid action input: ${JSON.stringify(data, null, 2)}`;
10
- }
11
- }
12
- export class InvalidActionInputZodError extends InvalidActionInputError {
13
- issues;
14
- constructor(issues) {
15
- super(issues);
16
- this.issues = issues;
17
- this.name = "InvalidActionInputZodError";
18
- }
19
- }
20
- export class HashMismatchError extends Error {
21
- _scope;
22
- _document;
23
- _operation;
24
- constructor(scope, document, operation) {
25
- super();
26
- this.name = "HashMismatchError";
27
- this._document = document;
28
- this._scope = scope;
29
- this._operation = operation;
30
- this.message = JSON.stringify({
31
- error: `Hash mismatch on document ${document.header.id}, scope ${scope}, index ${operation.index}`,
32
- document,
33
- operation,
34
- }, null, 1);
35
- }
36
- get document() {
37
- return this._document;
38
- }
39
- get scope() {
40
- return this._scope;
41
- }
42
- get operation() {
43
- return this._operation;
44
- }
45
- }
46
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAEvE,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACzC,IAAI,CAAU;IACrB,YAAY,IAAa;QACvB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO;YACV,IAAI,CAAC,OAAO,IAAI,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAC7E,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,uBAAuB;IAC9D,MAAM,CAAa;IAE1B,YAAY,MAAkB;QAC5B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAChC,MAAM,CAAS;IACf,SAAS,CAAa;IACtB,UAAU,CAAY;IAEhC,YAAY,KAAa,EAAE,QAAoB,EAAE,SAAoB;QACnE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAC3B;YACE,KAAK,EAAE,6BAA6B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,WAAW,SAAS,CAAC,KAAK,EAAE;YAClG,QAAQ;YACR,SAAS;SACV,EACD,IAAI,EACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
@@ -1,14 +0,0 @@
1
- import JSZip from "jszip";
2
- import type { PHBaseState, PHDocument } from "./ph-types.js";
3
- import type { FileInput, Reducer, ReplayDocumentOptions } from "./types.js";
4
- export declare function writeFileBrowser(path: string, name: string, stream: Uint8Array): Promise<string>;
5
- export declare function readFileBrowser(path: string): void;
6
- export declare function fetchFileBrowser(url: string): Promise<{
7
- data: Buffer;
8
- mimeType?: string;
9
- }>;
10
- export declare const getFileBrowser: (file: string) => Promise<void>;
11
- export declare function createZip(document: PHDocument): JSZip;
12
- export declare function baseSaveToFileHandle(document: PHDocument, input: FileSystemFileHandle): Promise<void>;
13
- export declare function baseLoadFromInput<TState extends PHBaseState>(input: FileInput, reducer: Reducer<TState>, options?: ReplayDocumentOptions): Promise<PHDocument<TState>>;
14
- //# sourceMappingURL=files.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/core/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,KAAK,EAEV,WAAW,EACX,UAAU,EAEX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAG5E,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,QAE3C;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAE9C;AAED,eAAO,MAAM,cAAc,GAAU,MAAM,MAAM,kBAEhD,CAAC;AAEF,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,SAkB7C;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,oBAAoB,iBAO5B;AAED,wBAAsB,iBAAiB,CAAC,MAAM,SAAS,WAAW,EAChE,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACxB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAI7B"}
@@ -1,65 +0,0 @@
1
- import JSZip from "jszip";
2
- import { filterDocumentOperationsResultingState, garbageCollectDocumentOperations, replayDocument, } from "./documents.js";
3
- import { FileSystemError } from "./errors.js";
4
- import { validateOperations } from "./validation.js";
5
- export function writeFileBrowser(path, name, stream) {
6
- throw FileSystemError;
7
- }
8
- export function readFileBrowser(path) {
9
- throw FileSystemError;
10
- }
11
- export function fetchFileBrowser(url) {
12
- throw FileSystemError;
13
- }
14
- export const getFileBrowser = async (file) => {
15
- return readFileBrowser(file);
16
- };
17
- export function createZip(document) {
18
- // create zip file
19
- const zip = new JSZip();
20
- const header = document.header;
21
- zip.file("header.json", JSON.stringify(header, null, 2));
22
- zip.file("state.json", JSON.stringify(document.initialState || {}, null, 2));
23
- zip.file("current-state.json", JSON.stringify(document.state || {}, null, 2));
24
- zip.file("operations.json", JSON.stringify(filterDocumentOperationsResultingState(document.operations), null, 2));
25
- return zip;
26
- }
27
- export async function baseSaveToFileHandle(document, input) {
28
- const zip = createZip(document);
29
- const blob = await zip.generateAsync({ type: "blob" });
30
- const writable = await input.createWritable();
31
- await writable.write(blob);
32
- await writable.close();
33
- }
34
- export async function baseLoadFromInput(input, reducer, options) {
35
- const zip = new JSZip();
36
- await zip.loadAsync(input);
37
- return loadFromZip(zip, reducer, options);
38
- }
39
- async function loadFromZip(zip, reducer, options) {
40
- const initialStateZip = zip.file("state.json");
41
- if (!initialStateZip) {
42
- throw new Error("Initial state not found");
43
- }
44
- const initialStateStr = await initialStateZip.async("string");
45
- const initialState = JSON.parse(initialStateStr);
46
- const headerZip = zip.file("header.json");
47
- if (!headerZip) {
48
- throw new Error("Document header not found - file format may be outdated");
49
- }
50
- const header = JSON.parse(await headerZip.async("string"));
51
- const operationsZip = zip.file("operations.json");
52
- if (!operationsZip) {
53
- throw new Error("Operations history not found");
54
- }
55
- const operations = JSON.parse(await operationsZip.async("string"));
56
- const clearedOperations = garbageCollectDocumentOperations(operations);
57
- const operationsError = validateOperations(clearedOperations);
58
- if (operationsError.length) {
59
- const errorMessages = operationsError.map((err) => err.message);
60
- throw new Error(errorMessages.join("\n"));
61
- }
62
- const result = replayDocument(initialState, clearedOperations, reducer, header, undefined, {}, options);
63
- return result;
64
- }
65
- //# sourceMappingURL=files.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/core/files.ts"],"names":[],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- import type { PHDocumentHeader } from "./ph-types.js";
2
- import type { ISigner, SigningParameters } from "./types.js";
3
- /**
4
- * Creates a verification-only signer from a public key.
5
- * This signer can only verify signatures, not sign data.
6
- *
7
- * @param pubKey - The public key to use for verification.
8
- * @returns An ISigner that can only verify signatures.
9
- */
10
- export declare function createVerificationSigner(pubKey: JsonWebKey): ISigner;
11
- /**
12
- * Signs a header. Generally, this is not called directly, but rather through
13
- * {@link createSignedHeader}.
14
- *
15
- * @param parameters - The parameters used to sign the header.
16
- * @param signer - The signer of the document.
17
- *
18
- * @returns The signature of the header.
19
- */
20
- export declare const sign: (parameters: SigningParameters, signer: ISigner) => Promise<string>;
21
- /**
22
- * Verifies a header signature. Generally, this is not called directly, but
23
- * rather through {@link validateHeader}.
24
- *
25
- * @param parameters - The parameters used to sign the header.
26
- * @param signature - The signature to verify.
27
- * @param signer - The signer of the document.
28
- */
29
- export declare const verify: (parameters: SigningParameters, signature: string, signer: ISigner) => Promise<void>;
30
- /**
31
- * Validates a header signature.
32
- */
33
- export declare const validateHeader: (header: PHDocumentHeader) => Promise<void>;
34
- /**
35
- * Creates a header that has yet to be signed. This header is not valid, but
36
- * can be input into {@link createSignedHeader} to create a signed header.
37
- *
38
- * @returns An unsigned header for a document.
39
- */
40
- export declare const createPresignedHeader: (id?: string, documentType?: string) => PHDocumentHeader;
41
- /**
42
- * Creates a new, signed header for a document. This will replace the id of the
43
- * document.
44
- *
45
- * @param unsignedHeader - The unsigned header to created the signed header from.
46
- * @param signer - The signer of the document.
47
- *
48
- * @returns A new signed header for a document. Some fields are mutable and
49
- * some are not. See the PHDocumentHeader type for more information.
50
- */
51
- export declare const createSignedHeader: (unsignedHeader: PHDocumentHeader, documentType: string, signer: ISigner) => Promise<PHDocumentHeader>;
52
- /**
53
- * Creates a signed header for a document. The document header requires a signer
54
- * as the document id is a cryptographic signature.
55
- *
56
- * @param documentType - The type of the document.
57
- * @param signer - The signer of the document.
58
- *
59
- * @returns The signed header for a document. Some fields are mutable and
60
- * some are not. See the PHDocumentHeader type for more information.
61
- */
62
- export declare const createSignedHeaderForSigner: (documentType: string, signer: ISigner) => Promise<PHDocumentHeader>;
63
- //# sourceMappingURL=header.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/core/header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,gBAAgB,EAAa,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAS7D;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CA+CpE;AAYD;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,GACf,YAAY,iBAAiB,EAC7B,QAAQ,OAAO,KACd,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,GACjB,YAAY,iBAAiB,EAC7B,WAAW,MAAM,EACjB,QAAQ,OAAO,KACd,OAAO,CAAC,IAAI,CAcd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,gBAAgB,KACvB,OAAO,CAAC,IAAI,CAYd,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,KAAI,MAAqB,EACzB,qBAAiB,KAChB,gBAkBF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAC7B,gBAAgB,gBAAgB,EAChC,cAAc,MAAM,EACpB,QAAQ,OAAO,KACd,OAAO,CAAC,gBAAgB,CA4B1B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,GACtC,cAAc,MAAM,EACpB,QAAQ,OAAO,KACd,OAAO,CAAC,gBAAgB,CAS1B,CAAC"}
@@ -1,178 +0,0 @@
1
- import { generateId } from "./utils.js";
2
- /**
3
- * Generates a deterministic payload from signing parameters
4
- */
5
- const generateStablePayload = (parameters) => `${parameters.documentType}:${parameters.createdAtUtcIso}:${parameters.nonce}`;
6
- /**
7
- * Creates a verification-only signer from a public key.
8
- * This signer can only verify signatures, not sign data.
9
- *
10
- * @param pubKey - The public key to use for verification.
11
- * @returns An ISigner that can only verify signatures.
12
- */
13
- export function createVerificationSigner(pubKey) {
14
- let cachedCryptoKey;
15
- return {
16
- async publicKey() {
17
- return pubKey;
18
- },
19
- async sign(_data) {
20
- throw new Error("verification-only signer cannot sign data");
21
- },
22
- async signAction(_action, _abortSignal) {
23
- throw new Error("verification-only signer cannot sign actions");
24
- },
25
- async verify(data, signature) {
26
- if (!cachedCryptoKey) {
27
- cachedCryptoKey = await crypto.subtle.importKey("jwk", pubKey, { name: "ECDSA", namedCurve: "P-256" }, true, ["verify"]);
28
- }
29
- let isValid;
30
- try {
31
- isValid = await crypto.subtle.verify({ name: "ECDSA", hash: "SHA-256" }, cachedCryptoKey, new Uint8Array(signature), new Uint8Array(data));
32
- }
33
- catch {
34
- throw new Error("invalid signature");
35
- }
36
- if (!isValid) {
37
- throw new Error("invalid signature");
38
- }
39
- },
40
- };
41
- }
42
- /**
43
- * Creates a verification-only signer from a header.
44
- *
45
- * @param header - The header to create a signer from.
46
- * @returns A signer that can verify the header's signature.
47
- */
48
- const createSignerFromHeader = (header) => {
49
- return createVerificationSigner(header.sig.publicKey);
50
- };
51
- /**
52
- * Signs a header. Generally, this is not called directly, but rather through
53
- * {@link createSignedHeader}.
54
- *
55
- * @param parameters - The parameters used to sign the header.
56
- * @param signer - The signer of the document.
57
- *
58
- * @returns The signature of the header.
59
- */
60
- export const sign = async (parameters, signer) => {
61
- // Generate stable payload
62
- const payload = generateStablePayload(parameters);
63
- // Convert payload to Uint8Array for signing
64
- const encoder = new TextEncoder();
65
- const data = encoder.encode(payload);
66
- // Create signature using Web Crypto API with Ed25519
67
- const signature = await signer.sign(data);
68
- // Convert signature to base64 string for JSON serialization
69
- const signatureArray = new Uint8Array(signature);
70
- const signatureBase64 = btoa(String.fromCharCode(...signatureArray));
71
- return signatureBase64;
72
- };
73
- /**
74
- * Verifies a header signature. Generally, this is not called directly, but
75
- * rather through {@link validateHeader}.
76
- *
77
- * @param parameters - The parameters used to sign the header.
78
- * @param signature - The signature to verify.
79
- * @param signer - The signer of the document.
80
- */
81
- export const verify = async (parameters, signature, signer) => {
82
- // Generate the same stable payload that was signed
83
- const payload = generateStablePayload(parameters);
84
- // Convert payload to Uint8Array for verification
85
- const encoder = new TextEncoder();
86
- const data = encoder.encode(payload);
87
- // Decode the base64 signature back to binary
88
- const signatureBytes = Uint8Array.from(atob(signature), (c) => c.charCodeAt(0));
89
- await signer.verify(data, signatureBytes);
90
- };
91
- /**
92
- * Validates a header signature.
93
- */
94
- export const validateHeader = async (header) => {
95
- const signer = createSignerFromHeader(header);
96
- return verify({
97
- documentType: header.documentType,
98
- createdAtUtcIso: header.createdAtUtcIso,
99
- nonce: header.sig.nonce,
100
- }, header.id, signer);
101
- };
102
- /**
103
- * Creates a header that has yet to be signed. This header is not valid, but
104
- * can be input into {@link createSignedHeader} to create a signed header.
105
- *
106
- * @returns An unsigned header for a document.
107
- */
108
- export const createPresignedHeader = (id = generateId(), documentType = "") => {
109
- return {
110
- id,
111
- sig: {
112
- publicKey: {},
113
- nonce: "",
114
- },
115
- documentType,
116
- createdAtUtcIso: new Date().toISOString(),
117
- slug: "",
118
- name: "",
119
- branch: "main",
120
- revision: {
121
- document: 0,
122
- },
123
- lastModifiedAtUtcIso: new Date().toISOString(),
124
- meta: {},
125
- };
126
- };
127
- /**
128
- * Creates a new, signed header for a document. This will replace the id of the
129
- * document.
130
- *
131
- * @param unsignedHeader - The unsigned header to created the signed header from.
132
- * @param signer - The signer of the document.
133
- *
134
- * @returns A new signed header for a document. Some fields are mutable and
135
- * some are not. See the PHDocumentHeader type for more information.
136
- */
137
- export const createSignedHeader = async (unsignedHeader, documentType, signer) => {
138
- const parameters = {
139
- documentType,
140
- createdAtUtcIso: unsignedHeader.createdAtUtcIso,
141
- nonce: generateId(),
142
- };
143
- const signature = await sign(parameters, signer);
144
- const publicKey = await signer.publicKey();
145
- return {
146
- // immutable fields
147
- id: signature,
148
- sig: {
149
- publicKey,
150
- nonce: parameters.nonce,
151
- },
152
- documentType,
153
- createdAtUtcIso: unsignedHeader.createdAtUtcIso,
154
- // mutable fields
155
- slug: unsignedHeader.slug,
156
- name: unsignedHeader.name,
157
- branch: unsignedHeader.branch,
158
- revision: unsignedHeader.revision,
159
- lastModifiedAtUtcIso: unsignedHeader.lastModifiedAtUtcIso,
160
- meta: unsignedHeader.meta,
161
- };
162
- };
163
- /**
164
- * Creates a signed header for a document. The document header requires a signer
165
- * as the document id is a cryptographic signature.
166
- *
167
- * @param documentType - The type of the document.
168
- * @param signer - The signer of the document.
169
- *
170
- * @returns The signed header for a document. Some fields are mutable and
171
- * some are not. See the PHDocumentHeader type for more information.
172
- */
173
- export const createSignedHeaderForSigner = async (documentType, signer) => {
174
- const unsignedHeader = createPresignedHeader();
175
- const signedHeader = await createSignedHeader(unsignedHeader, documentType, signer);
176
- return signedHeader;
177
- };
178
- //# sourceMappingURL=header.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/core/header.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,UAA6B,EAAU,EAAE,CACtE,GAAG,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAkB;IACzD,IAAI,eAAsC,CAAC;IAE3C,OAAO;QACL,KAAK,CAAC,SAAS;YACb,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAiB;YAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,KAAK,CAAC,UAAU,CACd,OAAe,EACf,YAA0B;YAE1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,IAAgB,EAAE,SAAqB;YAClD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,eAAe,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC7C,KAAK,EACL,MAAM,EACN,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EACtC,IAAI,EACJ,CAAC,QAAQ,CAAC,CACX,CAAC;YACJ,CAAC;YAED,IAAI,OAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAClC,eAAe,EACf,IAAI,UAAU,CAAC,SAAS,CAAC,EACzB,IAAI,UAAU,CAAC,IAAI,CAAC,CACrB,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG,CAAC,MAAwB,EAAW,EAAE;IACnE,OAAO,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EACvB,UAA6B,EAC7B,MAAe,EACE,EAAE;IACnB,0BAA0B;IAC1B,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAElD,4CAA4C;IAC5C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErC,qDAAqD;IACrD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1C,4DAA4D;IAC5D,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IACrE,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EACzB,UAA6B,EAC7B,SAAiB,EACjB,MAAe,EACA,EAAE;IACjB,mDAAmD;IACnD,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAElD,iDAAiD;IACjD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErC,6CAA6C;IAC7C,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5D,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAChB,CAAC;IAEF,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,MAAwB,EACT,EAAE;IACjB,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE9C,OAAO,MAAM,CACX;QACE,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK;KACxB,EACD,MAAM,CAAC,EAAE,EACT,MAAM,CACP,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAa,UAAU,EAAE,EACzB,YAAY,GAAG,EAAE,EACC,EAAE;IACpB,OAAO;QACL,EAAE;QACF,GAAG,EAAE;YACH,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;SACV;QACD,YAAY;QACZ,eAAe,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACzC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC;SACZ;QACD,oBAAoB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9C,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,cAAgC,EAChC,YAAoB,EACpB,MAAe,EACY,EAAE;IAC7B,MAAM,UAAU,GAAsB;QACpC,YAAY;QACZ,eAAe,EAAE,cAAc,CAAC,eAAe;QAC/C,KAAK,EAAE,UAAU,EAAE;KACpB,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IAE3C,OAAO;QACL,mBAAmB;QACnB,EAAE,EAAE,SAAS;QACb,GAAG,EAAE;YACH,SAAS;YACT,KAAK,EAAE,UAAU,CAAC,KAAK;SACxB;QACD,YAAY;QACZ,eAAe,EAAE,cAAc,CAAC,eAAe;QAE/C,iBAAiB;QACjB,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,oBAAoB,EAAE,cAAc,CAAC,oBAAoB;QACzD,IAAI,EAAE,cAAc,CAAC,IAAI;KAC1B,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC9C,YAAoB,EACpB,MAAe,EACY,EAAE;IAC7B,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,cAAc,EACd,YAAY,EACZ,MAAM,CACP,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
@@ -1,13 +0,0 @@
1
- export * from "./actions.js";
2
- export * from "./crypto.js";
3
- export * from "./documents.js";
4
- export * from "./errors.js";
5
- export * from "./files.js";
6
- export * from "./header.js";
7
- export * from "./operations.js";
8
- export * from "./reducer.js";
9
- export * from "./schemas.js";
10
- export * from "./state.js";
11
- export * from "./utils.js";
12
- export * from "./validation.js";
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
@@ -1,13 +0,0 @@
1
- export * from "./actions.js";
2
- export * from "./crypto.js";
3
- export * from "./documents.js";
4
- export * from "./errors.js";
5
- export * from "./files.js";
6
- export * from "./header.js";
7
- export * from "./operations.js";
8
- export * from "./reducer.js";
9
- export * from "./schemas.js";
10
- export * from "./state.js";
11
- export * from "./utils.js";
12
- export * from "./validation.js";
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
@@ -1,53 +0,0 @@
1
- import type { BinaryLike } from "node:crypto";
2
- import type { PHBaseState, PHDocument } from "./ph-types.js";
3
- import type { AttachmentInput, Reducer, ReplayDocumentOptions } from "./types.js";
4
- /**
5
- * Reads an attachment from a file and returns its base64-encoded data and MIME type.
6
- * @param path - The path of the attachment file to read.
7
- * @returns A Promise that resolves to an object containing the base64-encoded data and MIME type of the attachment.
8
- */
9
- export declare function getLocalFile(path: string): Promise<AttachmentInput>;
10
- /**
11
- * Fetches an attachment from a URL and returns its base64-encoded data and MIME type.
12
- * @param url - The URL of the attachment to fetch.
13
- * @returns A Promise that resolves to an object containing the base64-encoded data and MIME type of the attachment.
14
- */
15
- export declare function getRemoteFile(url: string): Promise<AttachmentInput>;
16
- /**
17
- * Loads a document from a ZIP file.
18
- *
19
- * @remarks
20
- * This function reads a ZIP file and returns the document state after
21
- * applying all the operations. The reducer is used to apply the operations.
22
- *
23
- * @typeParam S - The type of the state object.
24
- * @typeParam A - The type of the actions that can be applied to the state object.
25
- *
26
- * @param path - The path to the ZIP file.
27
- * @param reducer - The reducer to apply the operations to the state object.
28
- * @returns A promise that resolves to the document state after applying all the operations.
29
- * @throws An error if the initial state or the operations history is not found in the ZIP file.
30
- */
31
- export declare function baseLoadFromFile<TState extends PHBaseState = PHBaseState>(path: string, reducer: Reducer<TState>, options?: ReplayDocumentOptions): Promise<PHDocument<TState>>;
32
- /**
33
- * Saves a document to a ZIP file.
34
- *
35
- * @remarks
36
- * This function creates a ZIP file containing the document's state, operations,
37
- * and file attachments. The file is saved to the specified path.
38
- *
39
- * @param document - The document to save to the file.
40
- * @param path - The path to save the file to.
41
- * @param extension - The extension to use for the file.
42
- * @returns A promise that resolves to the path of the saved file.
43
- */
44
- export declare function baseSaveToFile(document: PHDocument, path: string, extension: string, name?: string): Promise<string>;
45
- export declare function writeFileNode(path: string, name: string, data: Uint8Array): Promise<string>;
46
- export declare function readFileNode(path: string): NonSharedBuffer;
47
- export declare function fetchFileNode(url: string): Promise<{
48
- buffer: Buffer;
49
- mimeType?: string;
50
- }>;
51
- export declare const getFileNode: (file: string) => Promise<NonSharedBuffer>;
52
- export declare const hashNode: (data: BinaryLike, algorithm?: string, encoding?: "base64" | "hex", _params?: Record<string, unknown>) => string;
53
- //# sourceMappingURL=node.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/core/node.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAEV,eAAe,EACf,OAAO,EACP,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAUpB;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAMzE;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAWzE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,SAAS,WAAW,GAAG,WAAW,EAExC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACxB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAG7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,mBAgBd;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,mBAExC;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBhD;AAED,eAAO,MAAM,WAAW,GAAU,MAAM,MAAM,6BAE7C,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,MAAM,UAAU,EAChB,kBAAkB,EAClB,WAAU,QAAQ,GAAG,KAAgB,EACrC,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAelC,CAAC"}