anchordb 1.0.5 → 1.0.6

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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,22 @@ All notable changes to the `anchordb` packages.
5
5
  This project follows [semantic versioning](https://semver.org/). While the version is `0.x`, minor
6
6
  releases may contain breaking changes.
7
7
 
8
+ ## 1.0.6
9
+
10
+ Crash on launch in React Native apps that load `anchordb` before `anchordb-react`.
11
+
12
+ - **Importing `anchordb` needed a crypto source.** `ObjectId` drew its per-process random block and
13
+ its counter seed when the module loaded. On React Native, `globalThis.crypto` comes from the
14
+ `react-native-get-random-values` polyfill that `anchordb-react` loads — so an app that evaluated
15
+ `anchordb` first died with `No cryptographically secure random source is available` before it
16
+ generated a single id. Lens React did exactly that through a re-export and closed the instant it
17
+ launched on a phone; the Contacts app survived only because its first import happened to be
18
+ `createAnchorDB`. Both values are now drawn on the first `ObjectId`, and a failed draw caches
19
+ nothing, so a polyfill that loads later still works.
20
+ - The error message now points React Native users at `anchordb-react`'s `createAnchorDB`.
21
+ - A new test imports the whole package with no crypto source. Without this fix it fails with the
22
+ original error.
23
+
8
24
  ## 1.0.5
9
25
 
10
26
  Inspector fix, found by building Anchor Lens on a database on the device.
@@ -1 +1 @@
1
- {"version":3,"file":"object-id.d.ts","sourceRoot":"","sources":["../../../src/core/object-id.ts"],"names":[],"mappings":"AA+BA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG;IAAE,WAAW,IAAI,MAAM,CAAA;CAAE,CAAC;AAEtF;;;;;GAKG;AAEH,qBAAa,QAAQ;IACnB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,cAAc;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,SAAS,CAAuB;gBAE5B,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI;IAqCvC,qEAAqE;IACrE,IAAI,EAAE,IAAI,UAAU,CAEnB;IAED,WAAW,IAAI,MAAM;IAKrB,QAAQ,IAAI,MAAM;IAIlB,iFAAiF;IACjF,MAAM,IAAI,MAAM;IAIhB,mFAAmF;IACnF,YAAY,IAAI,IAAI;IAKpB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAgBvD,OAAO,IAAI,MAAM;IAIjB,iFAAiF;IACjF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU;IAmB1C,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAIjD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAShD;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAWvC,kFAAkF;IAClF,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAGzC"}
1
+ {"version":3,"file":"object-id.d.ts","sourceRoot":"","sources":["../../../src/core/object-id.ts"],"names":[],"mappings":"AAoCA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG;IAAE,WAAW,IAAI,MAAM,CAAA;CAAE,CAAC;AAEtF;;;;;GAKG;AAEH,qBAAa,QAAQ;IACnB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,cAAc;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,SAAS,CAAuB;gBAE5B,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI;IAqCvC,qEAAqE;IACrE,IAAI,EAAE,IAAI,UAAU,CAEnB;IAED,WAAW,IAAI,MAAM;IAKrB,QAAQ,IAAI,MAAM;IAIlB,iFAAiF;IACjF,MAAM,IAAI,MAAM;IAIhB,mFAAmF;IACnF,YAAY,IAAI,IAAI;IAKpB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAgBvD,OAAO,IAAI,MAAM;IAIjB,iFAAiF;IACjF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU;IAmB1C,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAIjD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAShD;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAWvC,kFAAkF;IAClF,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAGzC"}
@@ -21,11 +21,16 @@ const random_ts_1 = require("./random.js");
21
21
  * - The per-process random block is what keeps two devices generating ids offline from colliding,
22
22
  * which is why `random.ts` refuses to run without a real CSPRNG.
23
23
  */
24
- const PROCESS_RANDOM = (0, random_ts_1.randomBytes)(5);
24
+ // Both drawn on first use, never at import. Importing anchordb must not need entropy: on React
25
+ // Native the polyfill arrives with anchordb-react, and an app that loads anchordb first — a single
26
+ // re-export is enough — crashed on launch before any id was ever generated. Found when Lens React
27
+ // closed instantly on a phone. A failed draw caches nothing, so a polyfill loaded later still works.
28
+ let processRandom = null;
25
29
  const COUNTER_MAX = 0xffffff;
26
- let counter = (0, random_ts_1.randomInt)(COUNTER_MAX + 1);
30
+ let counter = null;
27
31
  function nextCounter() {
28
- counter = (counter + 1) % (COUNTER_MAX + 1); // wraps at 2^24, as the spec requires
32
+ // wraps at 2^24, as the spec requires
33
+ counter = ((counter ?? (0, random_ts_1.randomInt)(COUNTER_MAX + 1)) + 1) % (COUNTER_MAX + 1);
29
34
  return counter;
30
35
  }
31
36
  /**
@@ -122,7 +127,7 @@ class ObjectId {
122
127
  out[1] = (seconds >> 16) & 0xff;
123
128
  out[2] = (seconds >> 8) & 0xff;
124
129
  out[3] = seconds & 0xff;
125
- out.set(PROCESS_RANDOM, 4);
130
+ out.set((processRandom ??= (0, random_ts_1.randomBytes)(5)), 4);
126
131
  const c = nextCounter();
127
132
  out[9] = (c >> 16) & 0xff;
128
133
  out[10] = (c >> 8) & 0xff;
@@ -1 +1 @@
1
- {"version":3,"file":"object-id.js","sourceRoot":"","sources":["../../../src/core/object-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-id.js","sourceRoot":"","sources":["../../../src/core/object-id.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../src/core/random.ts"],"names":[],"mappings":"AAYA,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAEpF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAepD;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAItD"}
1
+ {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../src/core/random.ts"],"names":[],"mappings":"AAYA,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAEpF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAgBpD;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAItD"}
@@ -27,7 +27,8 @@ function randomBytes(size) {
27
27
  return out;
28
28
  }
29
29
  throw new errors_ts_1.AnchorConfigError("No cryptographically secure random source is available (globalThis.crypto.getRandomValues is missing). " +
30
- "On React Native, install and import `react-native-get-random-values` at the top of your entry file. " +
30
+ "On React Native, use anchordb-react's createAnchorDB, which loads `react-native-get-random-values` for you " +
31
+ "or import that package at the top of your entry file. " +
31
32
  "AnchorDB refuses to fall back to Math.random() because ObjectId uniqueness depends on real entropy.");
32
33
  }
33
34
  /** Uniform integer in [0, maxExclusive). Used to seed the ObjectId counter. */
@@ -1 +1 @@
1
- {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../src/core/random.ts"],"names":[],"mappings":";;AAaA,oDAEC;AAED,kCAeC;AAGD,8BAIC;AAvCD,2CAAgD;AAEhD;;;;;;;GAOG;AACH,IAAI,QAAQ,GAA0C,IAAI,CAAC;AAE3D,mGAAmG;AACnG,SAAgB,oBAAoB,CAAC,EAAyC;IAC5E,QAAQ,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,GAAuB,UAAU,CAAC,MAAM,CAAC;IAChD,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QACjD,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,IAAI,6BAAiB,CACzB,yGAAyG;QACvG,sGAAsG;QACtG,qGAAqG,CACxG,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAgB,SAAS,CAAC,YAAoB;IAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;IAC3F,OAAO,KAAK,GAAG,YAAY,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../src/core/random.ts"],"names":[],"mappings":";;AAaA,oDAEC;AAED,kCAgBC;AAGD,8BAIC;AAxCD,2CAAgD;AAEhD;;;;;;;GAOG;AACH,IAAI,QAAQ,GAA0C,IAAI,CAAC;AAE3D,mGAAmG;AACnG,SAAgB,oBAAoB,CAAC,EAAyC;IAC5E,QAAQ,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,GAAuB,UAAU,CAAC,MAAM,CAAC;IAChD,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QACjD,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,IAAI,6BAAiB,CACzB,yGAAyG;QACvG,+GAA+G;QAC/G,wDAAwD;QACxD,qGAAqG,CACxG,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAgB,SAAS,CAAC,YAAoB;IAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;IAC3F,OAAO,KAAK,GAAG,YAAY,CAAC;AAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"object-id.d.ts","sourceRoot":"","sources":["../../../src/core/object-id.ts"],"names":[],"mappings":"AA+BA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG;IAAE,WAAW,IAAI,MAAM,CAAA;CAAE,CAAC;AAEtF;;;;;GAKG;AAEH,qBAAa,QAAQ;IACnB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,cAAc;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,SAAS,CAAuB;gBAE5B,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI;IAqCvC,qEAAqE;IACrE,IAAI,EAAE,IAAI,UAAU,CAEnB;IAED,WAAW,IAAI,MAAM;IAKrB,QAAQ,IAAI,MAAM;IAIlB,iFAAiF;IACjF,MAAM,IAAI,MAAM;IAIhB,mFAAmF;IACnF,YAAY,IAAI,IAAI;IAKpB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAgBvD,OAAO,IAAI,MAAM;IAIjB,iFAAiF;IACjF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU;IAmB1C,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAIjD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAShD;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAWvC,kFAAkF;IAClF,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAGzC"}
1
+ {"version":3,"file":"object-id.d.ts","sourceRoot":"","sources":["../../../src/core/object-id.ts"],"names":[],"mappings":"AAoCA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG;IAAE,WAAW,IAAI,MAAM,CAAA;CAAE,CAAC;AAEtF;;;;;GAKG;AAEH,qBAAa,QAAQ;IACnB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,cAAc;IAEhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,SAAS,CAAuB;gBAE5B,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI;IAqCvC,qEAAqE;IACrE,IAAI,EAAE,IAAI,UAAU,CAEnB;IAED,WAAW,IAAI,MAAM;IAKrB,QAAQ,IAAI,MAAM;IAIlB,iFAAiF;IACjF,MAAM,IAAI,MAAM;IAIhB,mFAAmF;IACnF,YAAY,IAAI,IAAI;IAKpB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAgBvD,OAAO,IAAI,MAAM;IAIjB,iFAAiF;IACjF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU;IAmB1C,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAIjD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAShD;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAWvC,kFAAkF;IAClF,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAGzC"}
@@ -18,11 +18,16 @@ import { randomBytes, randomInt } from "./random.js";
18
18
  * - The per-process random block is what keeps two devices generating ids offline from colliding,
19
19
  * which is why `random.ts` refuses to run without a real CSPRNG.
20
20
  */
21
- const PROCESS_RANDOM = randomBytes(5);
21
+ // Both drawn on first use, never at import. Importing anchordb must not need entropy: on React
22
+ // Native the polyfill arrives with anchordb-react, and an app that loads anchordb first — a single
23
+ // re-export is enough — crashed on launch before any id was ever generated. Found when Lens React
24
+ // closed instantly on a phone. A failed draw caches nothing, so a polyfill loaded later still works.
25
+ let processRandom = null;
22
26
  const COUNTER_MAX = 0xffffff;
23
- let counter = randomInt(COUNTER_MAX + 1);
27
+ let counter = null;
24
28
  function nextCounter() {
25
- counter = (counter + 1) % (COUNTER_MAX + 1); // wraps at 2^24, as the spec requires
29
+ // wraps at 2^24, as the spec requires
30
+ counter = ((counter ?? randomInt(COUNTER_MAX + 1)) + 1) % (COUNTER_MAX + 1);
26
31
  return counter;
27
32
  }
28
33
  /**
@@ -119,7 +124,7 @@ export class ObjectId {
119
124
  out[1] = (seconds >> 16) & 0xff;
120
125
  out[2] = (seconds >> 8) & 0xff;
121
126
  out[3] = seconds & 0xff;
122
- out.set(PROCESS_RANDOM, 4);
127
+ out.set((processRandom ??= randomBytes(5)), 4);
123
128
  const c = nextCounter();
124
129
  out[9] = (c >> 16) & 0xff;
125
130
  out[10] = (c >> 8) & 0xff;
@@ -1 +1 @@
1
- {"version":3,"file":"object-id.js","sourceRoot":"","sources":["../../../src/core/object-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-id.js","sourceRoot":"","sources":["../../../src/core/object-id.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../src/core/random.ts"],"names":[],"mappings":"AAYA,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAEpF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAepD;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAItD"}
1
+ {"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../src/core/random.ts"],"names":[],"mappings":"AAYA,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI,CAEpF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAgBpD;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAItD"}
@@ -22,7 +22,8 @@ export function randomBytes(size) {
22
22
  return out;
23
23
  }
24
24
  throw new AnchorConfigError("No cryptographically secure random source is available (globalThis.crypto.getRandomValues is missing). " +
25
- "On React Native, install and import `react-native-get-random-values` at the top of your entry file. " +
25
+ "On React Native, use anchordb-react's createAnchorDB, which loads `react-native-get-random-values` for you " +
26
+ "or import that package at the top of your entry file. " +
26
27
  "AnchorDB refuses to fall back to Math.random() because ObjectId uniqueness depends on real entropy.");
27
28
  }
28
29
  /** Uniform integer in [0, maxExclusive). Used to seed the ObjectId counter. */
@@ -1 +1 @@
1
- {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../src/core/random.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;GAOG;AACH,IAAI,QAAQ,GAA0C,IAAI,CAAC;AAE3D,mGAAmG;AACnG,MAAM,UAAU,oBAAoB,CAAC,EAAyC;IAC5E,QAAQ,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,GAAuB,UAAU,CAAC,MAAM,CAAC;IAChD,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QACjD,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,IAAI,iBAAiB,CACzB,yGAAyG;QACvG,sGAAsG;QACtG,qGAAqG,CACxG,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,SAAS,CAAC,YAAoB;IAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;IAC3F,OAAO,KAAK,GAAG,YAAY,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../src/core/random.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;GAOG;AACH,IAAI,QAAQ,GAA0C,IAAI,CAAC;AAE3D,mGAAmG;AACnG,MAAM,UAAU,oBAAoB,CAAC,EAAyC;IAC5E,QAAQ,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,GAAuB,UAAU,CAAC,MAAM,CAAC;IAChD,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QACjD,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,IAAI,iBAAiB,CACzB,yGAAyG;QACvG,+GAA+G;QAC/G,wDAAwD;QACxD,qGAAqG,CACxG,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,SAAS,CAAC,YAAoB;IAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;IAC3F,OAAO,KAAK,GAAG,YAAY,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anchordb",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "MongoDB + Mongoose for mobile apps. Offline-first local database with optional sync.",
5
5
  "keywords": [
6
6
  "mongodb",