@comapeo/core 2.0.0 → 2.1.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 (82) hide show
  1. package/dist/blob-store/index.d.ts +23 -49
  2. package/dist/blob-store/index.d.ts.map +1 -1
  3. package/dist/constants.d.ts +2 -1
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/core-manager/index.d.ts +10 -0
  6. package/dist/core-manager/index.d.ts.map +1 -1
  7. package/dist/core-ownership.d.ts.map +1 -1
  8. package/dist/datastore/index.d.ts +5 -4
  9. package/dist/datastore/index.d.ts.map +1 -1
  10. package/dist/generated/extensions.d.ts +31 -0
  11. package/dist/generated/extensions.d.ts.map +1 -1
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/lib/drizzle-helpers.d.ts +6 -0
  15. package/dist/lib/drizzle-helpers.d.ts.map +1 -0
  16. package/dist/lib/error.d.ts +37 -0
  17. package/dist/lib/error.d.ts.map +1 -0
  18. package/dist/lib/get-own.d.ts +9 -0
  19. package/dist/lib/get-own.d.ts.map +1 -0
  20. package/dist/lib/is-hostname-ip-address.d.ts +17 -0
  21. package/dist/lib/is-hostname-ip-address.d.ts.map +1 -0
  22. package/dist/lib/omit.d.ts +17 -0
  23. package/dist/lib/omit.d.ts.map +1 -0
  24. package/dist/lib/ws-core-replicator.d.ts +11 -0
  25. package/dist/lib/ws-core-replicator.d.ts.map +1 -0
  26. package/dist/mapeo-manager.d.ts +18 -22
  27. package/dist/mapeo-manager.d.ts.map +1 -1
  28. package/dist/mapeo-project.d.ts +454 -37
  29. package/dist/mapeo-project.d.ts.map +1 -1
  30. package/dist/member-api.d.ts +40 -1
  31. package/dist/member-api.d.ts.map +1 -1
  32. package/dist/schema/client.d.ts +17 -5
  33. package/dist/schema/client.d.ts.map +1 -1
  34. package/dist/schema/project.d.ts +211 -1
  35. package/dist/schema/project.d.ts.map +1 -1
  36. package/dist/sync/peer-sync-controller.d.ts.map +1 -1
  37. package/dist/sync/sync-api.d.ts +28 -2
  38. package/dist/sync/sync-api.d.ts.map +1 -1
  39. package/dist/translation-api.d.ts.map +1 -1
  40. package/dist/types.d.ts +3 -2
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/utils.d.ts.map +1 -1
  43. package/drizzle/client/0001_chubby_cargill.sql +12 -0
  44. package/drizzle/client/meta/0001_snapshot.json +208 -0
  45. package/drizzle/client/meta/_journal.json +7 -0
  46. package/drizzle/project/0001_medical_wendell_rand.sql +22 -0
  47. package/drizzle/project/meta/0001_snapshot.json +1267 -0
  48. package/drizzle/project/meta/_journal.json +7 -0
  49. package/package.json +10 -6
  50. package/src/blob-store/index.js +20 -4
  51. package/src/config-import.js +0 -1
  52. package/src/constants.js +4 -1
  53. package/src/core-manager/index.js +58 -2
  54. package/src/core-ownership.js +5 -2
  55. package/src/datastore/README.md +1 -2
  56. package/src/datastore/index.js +4 -5
  57. package/src/fastify-plugins/blobs.js +1 -0
  58. package/src/fastify-plugins/maps.js +11 -3
  59. package/src/generated/extensions.d.ts +31 -0
  60. package/src/generated/extensions.js +150 -0
  61. package/src/generated/extensions.ts +181 -0
  62. package/src/index.js +10 -0
  63. package/src/invite-api.js +1 -1
  64. package/src/lib/drizzle-helpers.js +79 -0
  65. package/src/lib/error.js +47 -0
  66. package/src/lib/get-own.js +10 -0
  67. package/src/lib/is-hostname-ip-address.js +26 -0
  68. package/src/lib/omit.js +28 -0
  69. package/src/lib/ws-core-replicator.js +47 -0
  70. package/src/mapeo-manager.js +76 -53
  71. package/src/mapeo-project.js +155 -46
  72. package/src/member-api.js +253 -2
  73. package/src/schema/client.js +4 -3
  74. package/src/schema/project.js +7 -0
  75. package/src/sync/peer-sync-controller.js +1 -0
  76. package/src/sync/sync-api.js +171 -3
  77. package/src/translation-api.js +2 -2
  78. package/src/types.ts +4 -3
  79. package/src/utils.js +11 -14
  80. package/dist/lib/timing-safe-equal.d.ts +0 -15
  81. package/dist/lib/timing-safe-equal.d.ts.map +0 -1
  82. package/src/lib/timing-safe-equal.js +0 -34
package/src/utils.js CHANGED
@@ -2,6 +2,7 @@ import sodium from 'sodium-universal'
2
2
  import { keyToPublicId } from '@mapeo/crypto'
3
3
  import { createHash } from 'node:crypto'
4
4
  import stableStringify from 'json-stable-stringify'
5
+ import { omit } from './lib/omit.js'
5
6
 
6
7
  const PROJECT_INVITE_ID_SALT = Buffer.from('mapeo project invite id', 'ascii')
7
8
 
@@ -95,20 +96,16 @@ export function deNullify(obj) {
95
96
  * @returns {Omit<T, 'docId' | 'versionId' | 'originalVersionId' | 'links' | 'forks' | 'createdAt' | 'updatedAt' | 'deleted'>}
96
97
  */
97
98
  export function valueOf(doc) {
98
- /* eslint-disable no-unused-vars */
99
- const {
100
- docId,
101
- versionId,
102
- originalVersionId,
103
- links,
104
- forks,
105
- createdAt,
106
- updatedAt,
107
- deleted,
108
- ...rest
109
- } = doc
110
- /* eslint-enable no-unused-vars */
111
- return rest
99
+ return omit(doc, [
100
+ 'docId',
101
+ 'versionId',
102
+ 'originalVersionId',
103
+ 'links',
104
+ 'forks',
105
+ 'createdAt',
106
+ 'updatedAt',
107
+ 'deleted',
108
+ ])
112
109
  }
113
110
 
114
111
  /**
@@ -1,15 +0,0 @@
1
- /**
2
- * Compare two values in constant time.
3
- *
4
- * Useful when you want to avoid leaking data.
5
- *
6
- * Like `crypto.timingSafeEqual`, but works with strings and doesn't throw if
7
- * lengths differ.
8
- *
9
- * @template {string | NodeJS.ArrayBufferView} T
10
- * @param {T} a
11
- * @param {T} b
12
- * @returns {boolean}
13
- */
14
- export default function timingSafeEqual<T extends string | NodeJS.ArrayBufferView>(a: T, b: T): boolean;
15
- //# sourceMappingURL=timing-safe-equal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timing-safe-equal.d.ts","sourceRoot":"","sources":["../../src/lib/timing-safe-equal.js"],"names":[],"mappings":"AAaA;;;;;;;;;;;;GAYG;AACH,wCAL+C,CAAC,SAAlC,MAAM,GAAG,MAAM,CAAC,eAAgB,KACnC,CAAC,KACD,CAAC,GACC,OAAO,CASnB"}
@@ -1,34 +0,0 @@
1
- import * as crypto from 'node:crypto'
2
-
3
- /**
4
- * @param {string | NodeJS.ArrayBufferView} value
5
- * @returns {NodeJS.ArrayBufferView}
6
- */
7
- const bufferify = (value) =>
8
- // We use UTF-16 because it's the only supported encoding that doesn't
9
- // touch surrogate pairs. See [this post][0] for more details.
10
- //
11
- // [0]: https://evanhahn.com/crypto-timingsafeequal-with-strings/
12
- typeof value === 'string' ? Buffer.from(value, 'utf16le') : value
13
-
14
- /**
15
- * Compare two values in constant time.
16
- *
17
- * Useful when you want to avoid leaking data.
18
- *
19
- * Like `crypto.timingSafeEqual`, but works with strings and doesn't throw if
20
- * lengths differ.
21
- *
22
- * @template {string | NodeJS.ArrayBufferView} T
23
- * @param {T} a
24
- * @param {T} b
25
- * @returns {boolean}
26
- */
27
- export default function timingSafeEqual(a, b) {
28
- const bufferA = bufferify(a)
29
- const bufferB = bufferify(b)
30
- return (
31
- bufferA.byteLength === bufferB.byteLength &&
32
- crypto.timingSafeEqual(bufferA, bufferB)
33
- )
34
- }