@teselagen/sequence-utils 0.3.32-beta.1 → 0.3.32-beta.2
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/findOrfsInPlasmid.d.ts +1 -1
- package/getOrfsFromSequence.d.ts +1 -1
- package/index.cjs +20 -308
- package/index.js +20 -308
- package/index.umd.cjs +20 -308
- package/package.json +8 -4
- package/src/computeDigestFragments.js +2 -2
- package/src/cutSequenceByRestrictionEnzyme.js +2 -2
- package/src/generateAnnotations.js +2 -2
- package/src/getOrfsFromSequence.js +2 -2
- package/src/tidyUpAnnotation.js +3 -3
- package/src/tidyUpSequenceData.js +2 -2
package/findOrfsInPlasmid.d.ts
CHANGED
package/getOrfsFromSequence.d.ts
CHANGED
package/index.cjs
CHANGED
|
@@ -3667,307 +3667,15 @@ const getFeatureToColorMap = /* @__PURE__ */ __name(({ includeHidden } = {}) =>
|
|
|
3667
3667
|
const getFeatureTypes = /* @__PURE__ */ __name(({ includeHidden } = {}) => filter(getMergedFeatureMap(), (f) => includeHidden ? true : !f.isHidden).map(
|
|
3668
3668
|
(f) => f.name
|
|
3669
3669
|
), "getFeatureTypes");
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
hasRequiredRandomFromSeed = 1;
|
|
3680
|
-
var seed = 1;
|
|
3681
|
-
function getNextValue() {
|
|
3682
|
-
seed = (seed * 9301 + 49297) % 233280;
|
|
3683
|
-
return seed / 233280;
|
|
3684
|
-
}
|
|
3685
|
-
__name(getNextValue, "getNextValue");
|
|
3686
|
-
function setSeed(_seed_) {
|
|
3687
|
-
seed = _seed_;
|
|
3688
|
-
}
|
|
3689
|
-
__name(setSeed, "setSeed");
|
|
3690
|
-
randomFromSeed = {
|
|
3691
|
-
nextValue: getNextValue,
|
|
3692
|
-
seed: setSeed
|
|
3693
|
-
};
|
|
3694
|
-
return randomFromSeed;
|
|
3695
|
-
}
|
|
3696
|
-
__name(requireRandomFromSeed, "requireRandomFromSeed");
|
|
3697
|
-
var alphabet_1;
|
|
3698
|
-
var hasRequiredAlphabet;
|
|
3699
|
-
function requireAlphabet() {
|
|
3700
|
-
if (hasRequiredAlphabet) return alphabet_1;
|
|
3701
|
-
hasRequiredAlphabet = 1;
|
|
3702
|
-
var randomFromSeed2 = requireRandomFromSeed();
|
|
3703
|
-
var ORIGINAL = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";
|
|
3704
|
-
var alphabet;
|
|
3705
|
-
var previousSeed;
|
|
3706
|
-
var shuffled;
|
|
3707
|
-
function reset() {
|
|
3708
|
-
shuffled = false;
|
|
3709
|
-
}
|
|
3710
|
-
__name(reset, "reset");
|
|
3711
|
-
function setCharacters(_alphabet_) {
|
|
3712
|
-
if (!_alphabet_) {
|
|
3713
|
-
if (alphabet !== ORIGINAL) {
|
|
3714
|
-
alphabet = ORIGINAL;
|
|
3715
|
-
reset();
|
|
3716
|
-
}
|
|
3717
|
-
return;
|
|
3718
|
-
}
|
|
3719
|
-
if (_alphabet_ === alphabet) {
|
|
3720
|
-
return;
|
|
3721
|
-
}
|
|
3722
|
-
if (_alphabet_.length !== ORIGINAL.length) {
|
|
3723
|
-
throw new Error("Custom alphabet for shortid must be " + ORIGINAL.length + " unique characters. You submitted " + _alphabet_.length + " characters: " + _alphabet_);
|
|
3724
|
-
}
|
|
3725
|
-
var unique = _alphabet_.split("").filter(function(item, ind, arr) {
|
|
3726
|
-
return ind !== arr.lastIndexOf(item);
|
|
3727
|
-
});
|
|
3728
|
-
if (unique.length) {
|
|
3729
|
-
throw new Error("Custom alphabet for shortid must be " + ORIGINAL.length + " unique characters. These characters were not unique: " + unique.join(", "));
|
|
3730
|
-
}
|
|
3731
|
-
alphabet = _alphabet_;
|
|
3732
|
-
reset();
|
|
3733
|
-
}
|
|
3734
|
-
__name(setCharacters, "setCharacters");
|
|
3735
|
-
function characters(_alphabet_) {
|
|
3736
|
-
setCharacters(_alphabet_);
|
|
3737
|
-
return alphabet;
|
|
3738
|
-
}
|
|
3739
|
-
__name(characters, "characters");
|
|
3740
|
-
function setSeed(seed) {
|
|
3741
|
-
randomFromSeed2.seed(seed);
|
|
3742
|
-
if (previousSeed !== seed) {
|
|
3743
|
-
reset();
|
|
3744
|
-
previousSeed = seed;
|
|
3745
|
-
}
|
|
3746
|
-
}
|
|
3747
|
-
__name(setSeed, "setSeed");
|
|
3748
|
-
function shuffle() {
|
|
3749
|
-
if (!alphabet) {
|
|
3750
|
-
setCharacters(ORIGINAL);
|
|
3751
|
-
}
|
|
3752
|
-
var sourceArray = alphabet.split("");
|
|
3753
|
-
var targetArray = [];
|
|
3754
|
-
var r = randomFromSeed2.nextValue();
|
|
3755
|
-
var characterIndex;
|
|
3756
|
-
while (sourceArray.length > 0) {
|
|
3757
|
-
r = randomFromSeed2.nextValue();
|
|
3758
|
-
characterIndex = Math.floor(r * sourceArray.length);
|
|
3759
|
-
targetArray.push(sourceArray.splice(characterIndex, 1)[0]);
|
|
3760
|
-
}
|
|
3761
|
-
return targetArray.join("");
|
|
3762
|
-
}
|
|
3763
|
-
__name(shuffle, "shuffle");
|
|
3764
|
-
function getShuffled() {
|
|
3765
|
-
if (shuffled) {
|
|
3766
|
-
return shuffled;
|
|
3767
|
-
}
|
|
3768
|
-
shuffled = shuffle();
|
|
3769
|
-
return shuffled;
|
|
3770
|
-
}
|
|
3771
|
-
__name(getShuffled, "getShuffled");
|
|
3772
|
-
function lookup(index) {
|
|
3773
|
-
var alphabetShuffled = getShuffled();
|
|
3774
|
-
return alphabetShuffled[index];
|
|
3775
|
-
}
|
|
3776
|
-
__name(lookup, "lookup");
|
|
3777
|
-
function get2() {
|
|
3778
|
-
return alphabet || ORIGINAL;
|
|
3779
|
-
}
|
|
3780
|
-
__name(get2, "get");
|
|
3781
|
-
alphabet_1 = {
|
|
3782
|
-
get: get2,
|
|
3783
|
-
characters,
|
|
3784
|
-
seed: setSeed,
|
|
3785
|
-
lookup,
|
|
3786
|
-
shuffled: getShuffled
|
|
3787
|
-
};
|
|
3788
|
-
return alphabet_1;
|
|
3789
|
-
}
|
|
3790
|
-
__name(requireAlphabet, "requireAlphabet");
|
|
3791
|
-
var randomByteBrowser;
|
|
3792
|
-
var hasRequiredRandomByteBrowser;
|
|
3793
|
-
function requireRandomByteBrowser() {
|
|
3794
|
-
if (hasRequiredRandomByteBrowser) return randomByteBrowser;
|
|
3795
|
-
hasRequiredRandomByteBrowser = 1;
|
|
3796
|
-
var crypto = typeof window === "object" && (window.crypto || window.msCrypto);
|
|
3797
|
-
var randomByte;
|
|
3798
|
-
if (!crypto || !crypto.getRandomValues) {
|
|
3799
|
-
randomByte = /* @__PURE__ */ __name(function(size) {
|
|
3800
|
-
var bytes = [];
|
|
3801
|
-
for (var i = 0; i < size; i++) {
|
|
3802
|
-
bytes.push(Math.floor(Math.random() * 256));
|
|
3803
|
-
}
|
|
3804
|
-
return bytes;
|
|
3805
|
-
}, "randomByte");
|
|
3806
|
-
} else {
|
|
3807
|
-
randomByte = /* @__PURE__ */ __name(function(size) {
|
|
3808
|
-
return crypto.getRandomValues(new Uint8Array(size));
|
|
3809
|
-
}, "randomByte");
|
|
3810
|
-
}
|
|
3811
|
-
randomByteBrowser = randomByte;
|
|
3812
|
-
return randomByteBrowser;
|
|
3813
|
-
}
|
|
3814
|
-
__name(requireRandomByteBrowser, "requireRandomByteBrowser");
|
|
3815
|
-
var format_browser;
|
|
3816
|
-
var hasRequiredFormat_browser;
|
|
3817
|
-
function requireFormat_browser() {
|
|
3818
|
-
if (hasRequiredFormat_browser) return format_browser;
|
|
3819
|
-
hasRequiredFormat_browser = 1;
|
|
3820
|
-
format_browser = /* @__PURE__ */ __name(function(random, alphabet, size) {
|
|
3821
|
-
var mask = (2 << Math.log(alphabet.length - 1) / Math.LN2) - 1;
|
|
3822
|
-
var step = -~(1.6 * mask * size / alphabet.length);
|
|
3823
|
-
var id = "";
|
|
3824
|
-
while (true) {
|
|
3825
|
-
var bytes = random(step);
|
|
3826
|
-
var i = step;
|
|
3827
|
-
while (i--) {
|
|
3828
|
-
id += alphabet[bytes[i] & mask] || "";
|
|
3829
|
-
if (id.length === +size) return id;
|
|
3830
|
-
}
|
|
3831
|
-
}
|
|
3832
|
-
}, "format_browser");
|
|
3833
|
-
return format_browser;
|
|
3834
|
-
}
|
|
3835
|
-
__name(requireFormat_browser, "requireFormat_browser");
|
|
3836
|
-
var generate_1;
|
|
3837
|
-
var hasRequiredGenerate;
|
|
3838
|
-
function requireGenerate() {
|
|
3839
|
-
if (hasRequiredGenerate) return generate_1;
|
|
3840
|
-
hasRequiredGenerate = 1;
|
|
3841
|
-
var alphabet = requireAlphabet();
|
|
3842
|
-
var random = requireRandomByteBrowser();
|
|
3843
|
-
var format = /* @__PURE__ */ requireFormat_browser();
|
|
3844
|
-
function generate(number) {
|
|
3845
|
-
var loopCounter = 0;
|
|
3846
|
-
var done;
|
|
3847
|
-
var str = "";
|
|
3848
|
-
while (!done) {
|
|
3849
|
-
str = str + format(random, alphabet.get(), 1);
|
|
3850
|
-
done = number < Math.pow(16, loopCounter + 1);
|
|
3851
|
-
loopCounter++;
|
|
3852
|
-
}
|
|
3853
|
-
return str;
|
|
3854
|
-
}
|
|
3855
|
-
__name(generate, "generate");
|
|
3856
|
-
generate_1 = generate;
|
|
3857
|
-
return generate_1;
|
|
3858
|
-
}
|
|
3859
|
-
__name(requireGenerate, "requireGenerate");
|
|
3860
|
-
var build_1;
|
|
3861
|
-
var hasRequiredBuild;
|
|
3862
|
-
function requireBuild() {
|
|
3863
|
-
if (hasRequiredBuild) return build_1;
|
|
3864
|
-
hasRequiredBuild = 1;
|
|
3865
|
-
var generate = requireGenerate();
|
|
3866
|
-
requireAlphabet();
|
|
3867
|
-
var REDUCE_TIME = 1567752802062;
|
|
3868
|
-
var version = 7;
|
|
3869
|
-
var counter;
|
|
3870
|
-
var previousSeconds;
|
|
3871
|
-
function build(clusterWorkerId) {
|
|
3872
|
-
var str = "";
|
|
3873
|
-
var seconds = Math.floor((Date.now() - REDUCE_TIME) * 1e-3);
|
|
3874
|
-
if (seconds === previousSeconds) {
|
|
3875
|
-
counter++;
|
|
3876
|
-
} else {
|
|
3877
|
-
counter = 0;
|
|
3878
|
-
previousSeconds = seconds;
|
|
3879
|
-
}
|
|
3880
|
-
str = str + generate(version);
|
|
3881
|
-
str = str + generate(clusterWorkerId);
|
|
3882
|
-
if (counter > 0) {
|
|
3883
|
-
str = str + generate(counter);
|
|
3884
|
-
}
|
|
3885
|
-
str = str + generate(seconds);
|
|
3886
|
-
return str;
|
|
3887
|
-
}
|
|
3888
|
-
__name(build, "build");
|
|
3889
|
-
build_1 = build;
|
|
3890
|
-
return build_1;
|
|
3891
|
-
}
|
|
3892
|
-
__name(requireBuild, "requireBuild");
|
|
3893
|
-
var isValid;
|
|
3894
|
-
var hasRequiredIsValid;
|
|
3895
|
-
function requireIsValid() {
|
|
3896
|
-
if (hasRequiredIsValid) return isValid;
|
|
3897
|
-
hasRequiredIsValid = 1;
|
|
3898
|
-
var alphabet = requireAlphabet();
|
|
3899
|
-
function isShortId(id) {
|
|
3900
|
-
if (!id || typeof id !== "string" || id.length < 6) {
|
|
3901
|
-
return false;
|
|
3902
|
-
}
|
|
3903
|
-
var nonAlphabetic = new RegExp("[^" + alphabet.get().replace(/[|\\{}()[\]^$+*?.-]/g, "\\$&") + "]");
|
|
3904
|
-
return !nonAlphabetic.test(id);
|
|
3905
|
-
}
|
|
3906
|
-
__name(isShortId, "isShortId");
|
|
3907
|
-
isValid = isShortId;
|
|
3908
|
-
return isValid;
|
|
3909
|
-
}
|
|
3910
|
-
__name(requireIsValid, "requireIsValid");
|
|
3911
|
-
var clusterWorkerIdBrowser;
|
|
3912
|
-
var hasRequiredClusterWorkerIdBrowser;
|
|
3913
|
-
function requireClusterWorkerIdBrowser() {
|
|
3914
|
-
if (hasRequiredClusterWorkerIdBrowser) return clusterWorkerIdBrowser;
|
|
3915
|
-
hasRequiredClusterWorkerIdBrowser = 1;
|
|
3916
|
-
clusterWorkerIdBrowser = 0;
|
|
3917
|
-
return clusterWorkerIdBrowser;
|
|
3918
|
-
}
|
|
3919
|
-
__name(requireClusterWorkerIdBrowser, "requireClusterWorkerIdBrowser");
|
|
3920
|
-
var hasRequiredLib;
|
|
3921
|
-
function requireLib() {
|
|
3922
|
-
if (hasRequiredLib) return lib.exports;
|
|
3923
|
-
hasRequiredLib = 1;
|
|
3924
|
-
(function(module2) {
|
|
3925
|
-
var alphabet = requireAlphabet();
|
|
3926
|
-
var build = requireBuild();
|
|
3927
|
-
var isValid2 = requireIsValid();
|
|
3928
|
-
var clusterWorkerId = requireClusterWorkerIdBrowser() || 0;
|
|
3929
|
-
function seed(seedValue) {
|
|
3930
|
-
alphabet.seed(seedValue);
|
|
3931
|
-
return module2.exports;
|
|
3932
|
-
}
|
|
3933
|
-
__name(seed, "seed");
|
|
3934
|
-
function worker(workerId) {
|
|
3935
|
-
clusterWorkerId = workerId;
|
|
3936
|
-
return module2.exports;
|
|
3937
|
-
}
|
|
3938
|
-
__name(worker, "worker");
|
|
3939
|
-
function characters(newCharacters) {
|
|
3940
|
-
if (newCharacters !== void 0) {
|
|
3941
|
-
alphabet.characters(newCharacters);
|
|
3942
|
-
}
|
|
3943
|
-
return alphabet.shuffled();
|
|
3944
|
-
}
|
|
3945
|
-
__name(characters, "characters");
|
|
3946
|
-
function generate() {
|
|
3947
|
-
return build(clusterWorkerId);
|
|
3948
|
-
}
|
|
3949
|
-
__name(generate, "generate");
|
|
3950
|
-
module2.exports = generate;
|
|
3951
|
-
module2.exports.generate = generate;
|
|
3952
|
-
module2.exports.seed = seed;
|
|
3953
|
-
module2.exports.worker = worker;
|
|
3954
|
-
module2.exports.characters = characters;
|
|
3955
|
-
module2.exports.isValid = isValid2;
|
|
3956
|
-
})(lib);
|
|
3957
|
-
return lib.exports;
|
|
3958
|
-
}
|
|
3959
|
-
__name(requireLib, "requireLib");
|
|
3960
|
-
var shortid$1;
|
|
3961
|
-
var hasRequiredShortid;
|
|
3962
|
-
function requireShortid() {
|
|
3963
|
-
if (hasRequiredShortid) return shortid$1;
|
|
3964
|
-
hasRequiredShortid = 1;
|
|
3965
|
-
shortid$1 = requireLib();
|
|
3966
|
-
return shortid$1;
|
|
3967
|
-
}
|
|
3968
|
-
__name(requireShortid, "requireShortid");
|
|
3969
|
-
var shortidExports = requireShortid();
|
|
3970
|
-
const shortid = /* @__PURE__ */ getDefaultExportFromCjs(shortidExports);
|
|
3670
|
+
const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
|
|
3671
|
+
let nanoid = /* @__PURE__ */ __name((size = 21) => {
|
|
3672
|
+
let id = "";
|
|
3673
|
+
let bytes = crypto.getRandomValues(new Uint8Array(size |= 0));
|
|
3674
|
+
while (size--) {
|
|
3675
|
+
id += urlAlphabet[bytes[size] & 63];
|
|
3676
|
+
}
|
|
3677
|
+
return id;
|
|
3678
|
+
}, "nanoid");
|
|
3971
3679
|
function cutSequenceByRestrictionEnzyme(pSequence, circular, restrictionEnzyme) {
|
|
3972
3680
|
if (restrictionEnzyme.forwardRegex.length === 0 || restrictionEnzyme.reverseRegex.length === 0) {
|
|
3973
3681
|
const returnArray = [];
|
|
@@ -4175,7 +3883,7 @@ function cutSequence(forwardRegExpPattern, restrictionEnzyme, sequence, circular
|
|
|
4175
3883
|
}
|
|
4176
3884
|
const overhangBps = getSequenceWithinRange(cutRange, originalSequence);
|
|
4177
3885
|
restrictionCutSite = {
|
|
4178
|
-
id:
|
|
3886
|
+
id: nanoid(),
|
|
4179
3887
|
start,
|
|
4180
3888
|
end,
|
|
4181
3889
|
topSnipPosition,
|
|
@@ -4233,7 +3941,7 @@ function computeDigestFragments({
|
|
|
4233
3941
|
});
|
|
4234
3942
|
if (!circular && cutsites.length) {
|
|
4235
3943
|
sortedCutsites.push({
|
|
4236
|
-
id: "seqTerm_" +
|
|
3944
|
+
id: "seqTerm_" + nanoid(),
|
|
4237
3945
|
start: 0,
|
|
4238
3946
|
end: 0,
|
|
4239
3947
|
overhangBps: "",
|
|
@@ -4367,6 +4075,10 @@ function getDigestFragsForSeqAndEnzymes({
|
|
|
4367
4075
|
});
|
|
4368
4076
|
}
|
|
4369
4077
|
__name(getDigestFragsForSeqAndEnzymes, "getDigestFragsForSeqAndEnzymes");
|
|
4078
|
+
function getDefaultExportFromCjs(x) {
|
|
4079
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
4080
|
+
}
|
|
4081
|
+
__name(getDefaultExportFromCjs, "getDefaultExportFromCjs");
|
|
4370
4082
|
var jsondiffpatch_umd$1 = { exports: {} };
|
|
4371
4083
|
var empty = {};
|
|
4372
4084
|
var hasRequiredEmpty;
|
|
@@ -8965,10 +8677,10 @@ function tidyUpAnnotation(_annotation, {
|
|
|
8965
8677
|
annotation.name = "Untitled annotation";
|
|
8966
8678
|
}
|
|
8967
8679
|
if (provideNewIdsForAnnotations) {
|
|
8968
|
-
annotation.id =
|
|
8680
|
+
annotation.id = nanoid();
|
|
8969
8681
|
}
|
|
8970
8682
|
if (!annotation.id && annotation.id !== 0 && !doNotProvideIdsForAnnotations) {
|
|
8971
|
-
annotation.id =
|
|
8683
|
+
annotation.id = nanoid();
|
|
8972
8684
|
messages.push(
|
|
8973
8685
|
"Unable to detect valid ID for annotation, setting ID to " + annotation.id
|
|
8974
8686
|
);
|
|
@@ -9212,7 +8924,7 @@ function tidyUpSequenceData(pSeqData, options = {}) {
|
|
|
9212
8924
|
if (item.id || item.id === 0) {
|
|
9213
8925
|
itemId = item.id;
|
|
9214
8926
|
} else {
|
|
9215
|
-
itemId =
|
|
8927
|
+
itemId = nanoid();
|
|
9216
8928
|
if (!doNotProvideIdsForAnnotations) {
|
|
9217
8929
|
item.id = itemId;
|
|
9218
8930
|
}
|
|
@@ -17782,7 +17494,7 @@ function generateAnnotation(start, end, maxLength) {
|
|
|
17782
17494
|
return __spreadProps(__spreadValues({}, range), {
|
|
17783
17495
|
name: getRandomInt(0, 1e5).toString(),
|
|
17784
17496
|
type: "misc_feature",
|
|
17785
|
-
id:
|
|
17497
|
+
id: nanoid(),
|
|
17786
17498
|
forward: Math.random() > 0.5,
|
|
17787
17499
|
notes: {}
|
|
17788
17500
|
});
|
|
@@ -17905,7 +17617,7 @@ function getOrfsFromSequence(options) {
|
|
|
17905
17617
|
forward,
|
|
17906
17618
|
annotationTypePlural: "orfs",
|
|
17907
17619
|
isOrf: true,
|
|
17908
|
-
id:
|
|
17620
|
+
id: nanoid()
|
|
17909
17621
|
});
|
|
17910
17622
|
}
|
|
17911
17623
|
}
|
package/index.js
CHANGED
|
@@ -3665,307 +3665,15 @@ const getFeatureToColorMap = /* @__PURE__ */ __name(({ includeHidden } = {}) =>
|
|
|
3665
3665
|
const getFeatureTypes = /* @__PURE__ */ __name(({ includeHidden } = {}) => filter(getMergedFeatureMap(), (f) => includeHidden ? true : !f.isHidden).map(
|
|
3666
3666
|
(f) => f.name
|
|
3667
3667
|
), "getFeatureTypes");
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
hasRequiredRandomFromSeed = 1;
|
|
3678
|
-
var seed = 1;
|
|
3679
|
-
function getNextValue() {
|
|
3680
|
-
seed = (seed * 9301 + 49297) % 233280;
|
|
3681
|
-
return seed / 233280;
|
|
3682
|
-
}
|
|
3683
|
-
__name(getNextValue, "getNextValue");
|
|
3684
|
-
function setSeed(_seed_) {
|
|
3685
|
-
seed = _seed_;
|
|
3686
|
-
}
|
|
3687
|
-
__name(setSeed, "setSeed");
|
|
3688
|
-
randomFromSeed = {
|
|
3689
|
-
nextValue: getNextValue,
|
|
3690
|
-
seed: setSeed
|
|
3691
|
-
};
|
|
3692
|
-
return randomFromSeed;
|
|
3693
|
-
}
|
|
3694
|
-
__name(requireRandomFromSeed, "requireRandomFromSeed");
|
|
3695
|
-
var alphabet_1;
|
|
3696
|
-
var hasRequiredAlphabet;
|
|
3697
|
-
function requireAlphabet() {
|
|
3698
|
-
if (hasRequiredAlphabet) return alphabet_1;
|
|
3699
|
-
hasRequiredAlphabet = 1;
|
|
3700
|
-
var randomFromSeed2 = requireRandomFromSeed();
|
|
3701
|
-
var ORIGINAL = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";
|
|
3702
|
-
var alphabet;
|
|
3703
|
-
var previousSeed;
|
|
3704
|
-
var shuffled;
|
|
3705
|
-
function reset() {
|
|
3706
|
-
shuffled = false;
|
|
3707
|
-
}
|
|
3708
|
-
__name(reset, "reset");
|
|
3709
|
-
function setCharacters(_alphabet_) {
|
|
3710
|
-
if (!_alphabet_) {
|
|
3711
|
-
if (alphabet !== ORIGINAL) {
|
|
3712
|
-
alphabet = ORIGINAL;
|
|
3713
|
-
reset();
|
|
3714
|
-
}
|
|
3715
|
-
return;
|
|
3716
|
-
}
|
|
3717
|
-
if (_alphabet_ === alphabet) {
|
|
3718
|
-
return;
|
|
3719
|
-
}
|
|
3720
|
-
if (_alphabet_.length !== ORIGINAL.length) {
|
|
3721
|
-
throw new Error("Custom alphabet for shortid must be " + ORIGINAL.length + " unique characters. You submitted " + _alphabet_.length + " characters: " + _alphabet_);
|
|
3722
|
-
}
|
|
3723
|
-
var unique = _alphabet_.split("").filter(function(item, ind, arr) {
|
|
3724
|
-
return ind !== arr.lastIndexOf(item);
|
|
3725
|
-
});
|
|
3726
|
-
if (unique.length) {
|
|
3727
|
-
throw new Error("Custom alphabet for shortid must be " + ORIGINAL.length + " unique characters. These characters were not unique: " + unique.join(", "));
|
|
3728
|
-
}
|
|
3729
|
-
alphabet = _alphabet_;
|
|
3730
|
-
reset();
|
|
3731
|
-
}
|
|
3732
|
-
__name(setCharacters, "setCharacters");
|
|
3733
|
-
function characters(_alphabet_) {
|
|
3734
|
-
setCharacters(_alphabet_);
|
|
3735
|
-
return alphabet;
|
|
3736
|
-
}
|
|
3737
|
-
__name(characters, "characters");
|
|
3738
|
-
function setSeed(seed) {
|
|
3739
|
-
randomFromSeed2.seed(seed);
|
|
3740
|
-
if (previousSeed !== seed) {
|
|
3741
|
-
reset();
|
|
3742
|
-
previousSeed = seed;
|
|
3743
|
-
}
|
|
3744
|
-
}
|
|
3745
|
-
__name(setSeed, "setSeed");
|
|
3746
|
-
function shuffle() {
|
|
3747
|
-
if (!alphabet) {
|
|
3748
|
-
setCharacters(ORIGINAL);
|
|
3749
|
-
}
|
|
3750
|
-
var sourceArray = alphabet.split("");
|
|
3751
|
-
var targetArray = [];
|
|
3752
|
-
var r = randomFromSeed2.nextValue();
|
|
3753
|
-
var characterIndex;
|
|
3754
|
-
while (sourceArray.length > 0) {
|
|
3755
|
-
r = randomFromSeed2.nextValue();
|
|
3756
|
-
characterIndex = Math.floor(r * sourceArray.length);
|
|
3757
|
-
targetArray.push(sourceArray.splice(characterIndex, 1)[0]);
|
|
3758
|
-
}
|
|
3759
|
-
return targetArray.join("");
|
|
3760
|
-
}
|
|
3761
|
-
__name(shuffle, "shuffle");
|
|
3762
|
-
function getShuffled() {
|
|
3763
|
-
if (shuffled) {
|
|
3764
|
-
return shuffled;
|
|
3765
|
-
}
|
|
3766
|
-
shuffled = shuffle();
|
|
3767
|
-
return shuffled;
|
|
3768
|
-
}
|
|
3769
|
-
__name(getShuffled, "getShuffled");
|
|
3770
|
-
function lookup(index) {
|
|
3771
|
-
var alphabetShuffled = getShuffled();
|
|
3772
|
-
return alphabetShuffled[index];
|
|
3773
|
-
}
|
|
3774
|
-
__name(lookup, "lookup");
|
|
3775
|
-
function get2() {
|
|
3776
|
-
return alphabet || ORIGINAL;
|
|
3777
|
-
}
|
|
3778
|
-
__name(get2, "get");
|
|
3779
|
-
alphabet_1 = {
|
|
3780
|
-
get: get2,
|
|
3781
|
-
characters,
|
|
3782
|
-
seed: setSeed,
|
|
3783
|
-
lookup,
|
|
3784
|
-
shuffled: getShuffled
|
|
3785
|
-
};
|
|
3786
|
-
return alphabet_1;
|
|
3787
|
-
}
|
|
3788
|
-
__name(requireAlphabet, "requireAlphabet");
|
|
3789
|
-
var randomByteBrowser;
|
|
3790
|
-
var hasRequiredRandomByteBrowser;
|
|
3791
|
-
function requireRandomByteBrowser() {
|
|
3792
|
-
if (hasRequiredRandomByteBrowser) return randomByteBrowser;
|
|
3793
|
-
hasRequiredRandomByteBrowser = 1;
|
|
3794
|
-
var crypto = typeof window === "object" && (window.crypto || window.msCrypto);
|
|
3795
|
-
var randomByte;
|
|
3796
|
-
if (!crypto || !crypto.getRandomValues) {
|
|
3797
|
-
randomByte = /* @__PURE__ */ __name(function(size) {
|
|
3798
|
-
var bytes = [];
|
|
3799
|
-
for (var i = 0; i < size; i++) {
|
|
3800
|
-
bytes.push(Math.floor(Math.random() * 256));
|
|
3801
|
-
}
|
|
3802
|
-
return bytes;
|
|
3803
|
-
}, "randomByte");
|
|
3804
|
-
} else {
|
|
3805
|
-
randomByte = /* @__PURE__ */ __name(function(size) {
|
|
3806
|
-
return crypto.getRandomValues(new Uint8Array(size));
|
|
3807
|
-
}, "randomByte");
|
|
3808
|
-
}
|
|
3809
|
-
randomByteBrowser = randomByte;
|
|
3810
|
-
return randomByteBrowser;
|
|
3811
|
-
}
|
|
3812
|
-
__name(requireRandomByteBrowser, "requireRandomByteBrowser");
|
|
3813
|
-
var format_browser;
|
|
3814
|
-
var hasRequiredFormat_browser;
|
|
3815
|
-
function requireFormat_browser() {
|
|
3816
|
-
if (hasRequiredFormat_browser) return format_browser;
|
|
3817
|
-
hasRequiredFormat_browser = 1;
|
|
3818
|
-
format_browser = /* @__PURE__ */ __name(function(random, alphabet, size) {
|
|
3819
|
-
var mask = (2 << Math.log(alphabet.length - 1) / Math.LN2) - 1;
|
|
3820
|
-
var step = -~(1.6 * mask * size / alphabet.length);
|
|
3821
|
-
var id = "";
|
|
3822
|
-
while (true) {
|
|
3823
|
-
var bytes = random(step);
|
|
3824
|
-
var i = step;
|
|
3825
|
-
while (i--) {
|
|
3826
|
-
id += alphabet[bytes[i] & mask] || "";
|
|
3827
|
-
if (id.length === +size) return id;
|
|
3828
|
-
}
|
|
3829
|
-
}
|
|
3830
|
-
}, "format_browser");
|
|
3831
|
-
return format_browser;
|
|
3832
|
-
}
|
|
3833
|
-
__name(requireFormat_browser, "requireFormat_browser");
|
|
3834
|
-
var generate_1;
|
|
3835
|
-
var hasRequiredGenerate;
|
|
3836
|
-
function requireGenerate() {
|
|
3837
|
-
if (hasRequiredGenerate) return generate_1;
|
|
3838
|
-
hasRequiredGenerate = 1;
|
|
3839
|
-
var alphabet = requireAlphabet();
|
|
3840
|
-
var random = requireRandomByteBrowser();
|
|
3841
|
-
var format = /* @__PURE__ */ requireFormat_browser();
|
|
3842
|
-
function generate(number) {
|
|
3843
|
-
var loopCounter = 0;
|
|
3844
|
-
var done;
|
|
3845
|
-
var str = "";
|
|
3846
|
-
while (!done) {
|
|
3847
|
-
str = str + format(random, alphabet.get(), 1);
|
|
3848
|
-
done = number < Math.pow(16, loopCounter + 1);
|
|
3849
|
-
loopCounter++;
|
|
3850
|
-
}
|
|
3851
|
-
return str;
|
|
3852
|
-
}
|
|
3853
|
-
__name(generate, "generate");
|
|
3854
|
-
generate_1 = generate;
|
|
3855
|
-
return generate_1;
|
|
3856
|
-
}
|
|
3857
|
-
__name(requireGenerate, "requireGenerate");
|
|
3858
|
-
var build_1;
|
|
3859
|
-
var hasRequiredBuild;
|
|
3860
|
-
function requireBuild() {
|
|
3861
|
-
if (hasRequiredBuild) return build_1;
|
|
3862
|
-
hasRequiredBuild = 1;
|
|
3863
|
-
var generate = requireGenerate();
|
|
3864
|
-
requireAlphabet();
|
|
3865
|
-
var REDUCE_TIME = 1567752802062;
|
|
3866
|
-
var version = 7;
|
|
3867
|
-
var counter;
|
|
3868
|
-
var previousSeconds;
|
|
3869
|
-
function build(clusterWorkerId) {
|
|
3870
|
-
var str = "";
|
|
3871
|
-
var seconds = Math.floor((Date.now() - REDUCE_TIME) * 1e-3);
|
|
3872
|
-
if (seconds === previousSeconds) {
|
|
3873
|
-
counter++;
|
|
3874
|
-
} else {
|
|
3875
|
-
counter = 0;
|
|
3876
|
-
previousSeconds = seconds;
|
|
3877
|
-
}
|
|
3878
|
-
str = str + generate(version);
|
|
3879
|
-
str = str + generate(clusterWorkerId);
|
|
3880
|
-
if (counter > 0) {
|
|
3881
|
-
str = str + generate(counter);
|
|
3882
|
-
}
|
|
3883
|
-
str = str + generate(seconds);
|
|
3884
|
-
return str;
|
|
3885
|
-
}
|
|
3886
|
-
__name(build, "build");
|
|
3887
|
-
build_1 = build;
|
|
3888
|
-
return build_1;
|
|
3889
|
-
}
|
|
3890
|
-
__name(requireBuild, "requireBuild");
|
|
3891
|
-
var isValid;
|
|
3892
|
-
var hasRequiredIsValid;
|
|
3893
|
-
function requireIsValid() {
|
|
3894
|
-
if (hasRequiredIsValid) return isValid;
|
|
3895
|
-
hasRequiredIsValid = 1;
|
|
3896
|
-
var alphabet = requireAlphabet();
|
|
3897
|
-
function isShortId(id) {
|
|
3898
|
-
if (!id || typeof id !== "string" || id.length < 6) {
|
|
3899
|
-
return false;
|
|
3900
|
-
}
|
|
3901
|
-
var nonAlphabetic = new RegExp("[^" + alphabet.get().replace(/[|\\{}()[\]^$+*?.-]/g, "\\$&") + "]");
|
|
3902
|
-
return !nonAlphabetic.test(id);
|
|
3903
|
-
}
|
|
3904
|
-
__name(isShortId, "isShortId");
|
|
3905
|
-
isValid = isShortId;
|
|
3906
|
-
return isValid;
|
|
3907
|
-
}
|
|
3908
|
-
__name(requireIsValid, "requireIsValid");
|
|
3909
|
-
var clusterWorkerIdBrowser;
|
|
3910
|
-
var hasRequiredClusterWorkerIdBrowser;
|
|
3911
|
-
function requireClusterWorkerIdBrowser() {
|
|
3912
|
-
if (hasRequiredClusterWorkerIdBrowser) return clusterWorkerIdBrowser;
|
|
3913
|
-
hasRequiredClusterWorkerIdBrowser = 1;
|
|
3914
|
-
clusterWorkerIdBrowser = 0;
|
|
3915
|
-
return clusterWorkerIdBrowser;
|
|
3916
|
-
}
|
|
3917
|
-
__name(requireClusterWorkerIdBrowser, "requireClusterWorkerIdBrowser");
|
|
3918
|
-
var hasRequiredLib;
|
|
3919
|
-
function requireLib() {
|
|
3920
|
-
if (hasRequiredLib) return lib.exports;
|
|
3921
|
-
hasRequiredLib = 1;
|
|
3922
|
-
(function(module2) {
|
|
3923
|
-
var alphabet = requireAlphabet();
|
|
3924
|
-
var build = requireBuild();
|
|
3925
|
-
var isValid2 = requireIsValid();
|
|
3926
|
-
var clusterWorkerId = requireClusterWorkerIdBrowser() || 0;
|
|
3927
|
-
function seed(seedValue) {
|
|
3928
|
-
alphabet.seed(seedValue);
|
|
3929
|
-
return module2.exports;
|
|
3930
|
-
}
|
|
3931
|
-
__name(seed, "seed");
|
|
3932
|
-
function worker(workerId) {
|
|
3933
|
-
clusterWorkerId = workerId;
|
|
3934
|
-
return module2.exports;
|
|
3935
|
-
}
|
|
3936
|
-
__name(worker, "worker");
|
|
3937
|
-
function characters(newCharacters) {
|
|
3938
|
-
if (newCharacters !== void 0) {
|
|
3939
|
-
alphabet.characters(newCharacters);
|
|
3940
|
-
}
|
|
3941
|
-
return alphabet.shuffled();
|
|
3942
|
-
}
|
|
3943
|
-
__name(characters, "characters");
|
|
3944
|
-
function generate() {
|
|
3945
|
-
return build(clusterWorkerId);
|
|
3946
|
-
}
|
|
3947
|
-
__name(generate, "generate");
|
|
3948
|
-
module2.exports = generate;
|
|
3949
|
-
module2.exports.generate = generate;
|
|
3950
|
-
module2.exports.seed = seed;
|
|
3951
|
-
module2.exports.worker = worker;
|
|
3952
|
-
module2.exports.characters = characters;
|
|
3953
|
-
module2.exports.isValid = isValid2;
|
|
3954
|
-
})(lib);
|
|
3955
|
-
return lib.exports;
|
|
3956
|
-
}
|
|
3957
|
-
__name(requireLib, "requireLib");
|
|
3958
|
-
var shortid$1;
|
|
3959
|
-
var hasRequiredShortid;
|
|
3960
|
-
function requireShortid() {
|
|
3961
|
-
if (hasRequiredShortid) return shortid$1;
|
|
3962
|
-
hasRequiredShortid = 1;
|
|
3963
|
-
shortid$1 = requireLib();
|
|
3964
|
-
return shortid$1;
|
|
3965
|
-
}
|
|
3966
|
-
__name(requireShortid, "requireShortid");
|
|
3967
|
-
var shortidExports = requireShortid();
|
|
3968
|
-
const shortid = /* @__PURE__ */ getDefaultExportFromCjs(shortidExports);
|
|
3668
|
+
const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
|
|
3669
|
+
let nanoid = /* @__PURE__ */ __name((size = 21) => {
|
|
3670
|
+
let id = "";
|
|
3671
|
+
let bytes = crypto.getRandomValues(new Uint8Array(size |= 0));
|
|
3672
|
+
while (size--) {
|
|
3673
|
+
id += urlAlphabet[bytes[size] & 63];
|
|
3674
|
+
}
|
|
3675
|
+
return id;
|
|
3676
|
+
}, "nanoid");
|
|
3969
3677
|
function cutSequenceByRestrictionEnzyme(pSequence, circular, restrictionEnzyme) {
|
|
3970
3678
|
if (restrictionEnzyme.forwardRegex.length === 0 || restrictionEnzyme.reverseRegex.length === 0) {
|
|
3971
3679
|
const returnArray = [];
|
|
@@ -4173,7 +3881,7 @@ function cutSequence(forwardRegExpPattern, restrictionEnzyme, sequence, circular
|
|
|
4173
3881
|
}
|
|
4174
3882
|
const overhangBps = getSequenceWithinRange(cutRange, originalSequence);
|
|
4175
3883
|
restrictionCutSite = {
|
|
4176
|
-
id:
|
|
3884
|
+
id: nanoid(),
|
|
4177
3885
|
start,
|
|
4178
3886
|
end,
|
|
4179
3887
|
topSnipPosition,
|
|
@@ -4231,7 +3939,7 @@ function computeDigestFragments({
|
|
|
4231
3939
|
});
|
|
4232
3940
|
if (!circular && cutsites.length) {
|
|
4233
3941
|
sortedCutsites.push({
|
|
4234
|
-
id: "seqTerm_" +
|
|
3942
|
+
id: "seqTerm_" + nanoid(),
|
|
4235
3943
|
start: 0,
|
|
4236
3944
|
end: 0,
|
|
4237
3945
|
overhangBps: "",
|
|
@@ -4365,6 +4073,10 @@ function getDigestFragsForSeqAndEnzymes({
|
|
|
4365
4073
|
});
|
|
4366
4074
|
}
|
|
4367
4075
|
__name(getDigestFragsForSeqAndEnzymes, "getDigestFragsForSeqAndEnzymes");
|
|
4076
|
+
function getDefaultExportFromCjs(x) {
|
|
4077
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
4078
|
+
}
|
|
4079
|
+
__name(getDefaultExportFromCjs, "getDefaultExportFromCjs");
|
|
4368
4080
|
var jsondiffpatch_umd$1 = { exports: {} };
|
|
4369
4081
|
var empty = {};
|
|
4370
4082
|
var hasRequiredEmpty;
|
|
@@ -8963,10 +8675,10 @@ function tidyUpAnnotation(_annotation, {
|
|
|
8963
8675
|
annotation.name = "Untitled annotation";
|
|
8964
8676
|
}
|
|
8965
8677
|
if (provideNewIdsForAnnotations) {
|
|
8966
|
-
annotation.id =
|
|
8678
|
+
annotation.id = nanoid();
|
|
8967
8679
|
}
|
|
8968
8680
|
if (!annotation.id && annotation.id !== 0 && !doNotProvideIdsForAnnotations) {
|
|
8969
|
-
annotation.id =
|
|
8681
|
+
annotation.id = nanoid();
|
|
8970
8682
|
messages.push(
|
|
8971
8683
|
"Unable to detect valid ID for annotation, setting ID to " + annotation.id
|
|
8972
8684
|
);
|
|
@@ -9210,7 +8922,7 @@ function tidyUpSequenceData(pSeqData, options = {}) {
|
|
|
9210
8922
|
if (item.id || item.id === 0) {
|
|
9211
8923
|
itemId = item.id;
|
|
9212
8924
|
} else {
|
|
9213
|
-
itemId =
|
|
8925
|
+
itemId = nanoid();
|
|
9214
8926
|
if (!doNotProvideIdsForAnnotations) {
|
|
9215
8927
|
item.id = itemId;
|
|
9216
8928
|
}
|
|
@@ -17780,7 +17492,7 @@ function generateAnnotation(start, end, maxLength) {
|
|
|
17780
17492
|
return __spreadProps(__spreadValues({}, range), {
|
|
17781
17493
|
name: getRandomInt(0, 1e5).toString(),
|
|
17782
17494
|
type: "misc_feature",
|
|
17783
|
-
id:
|
|
17495
|
+
id: nanoid(),
|
|
17784
17496
|
forward: Math.random() > 0.5,
|
|
17785
17497
|
notes: {}
|
|
17786
17498
|
});
|
|
@@ -17903,7 +17615,7 @@ function getOrfsFromSequence(options) {
|
|
|
17903
17615
|
forward,
|
|
17904
17616
|
annotationTypePlural: "orfs",
|
|
17905
17617
|
isOrf: true,
|
|
17906
|
-
id:
|
|
17618
|
+
id: nanoid()
|
|
17907
17619
|
});
|
|
17908
17620
|
}
|
|
17909
17621
|
}
|
package/index.umd.cjs
CHANGED
|
@@ -3669,307 +3669,15 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3669
3669
|
const getFeatureTypes = /* @__PURE__ */ __name(({ includeHidden } = {}) => filter(getMergedFeatureMap(), (f) => includeHidden ? true : !f.isHidden).map(
|
|
3670
3670
|
(f) => f.name
|
|
3671
3671
|
), "getFeatureTypes");
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
hasRequiredRandomFromSeed = 1;
|
|
3682
|
-
var seed = 1;
|
|
3683
|
-
function getNextValue() {
|
|
3684
|
-
seed = (seed * 9301 + 49297) % 233280;
|
|
3685
|
-
return seed / 233280;
|
|
3686
|
-
}
|
|
3687
|
-
__name(getNextValue, "getNextValue");
|
|
3688
|
-
function setSeed(_seed_) {
|
|
3689
|
-
seed = _seed_;
|
|
3690
|
-
}
|
|
3691
|
-
__name(setSeed, "setSeed");
|
|
3692
|
-
randomFromSeed = {
|
|
3693
|
-
nextValue: getNextValue,
|
|
3694
|
-
seed: setSeed
|
|
3695
|
-
};
|
|
3696
|
-
return randomFromSeed;
|
|
3697
|
-
}
|
|
3698
|
-
__name(requireRandomFromSeed, "requireRandomFromSeed");
|
|
3699
|
-
var alphabet_1;
|
|
3700
|
-
var hasRequiredAlphabet;
|
|
3701
|
-
function requireAlphabet() {
|
|
3702
|
-
if (hasRequiredAlphabet) return alphabet_1;
|
|
3703
|
-
hasRequiredAlphabet = 1;
|
|
3704
|
-
var randomFromSeed2 = requireRandomFromSeed();
|
|
3705
|
-
var ORIGINAL = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-";
|
|
3706
|
-
var alphabet;
|
|
3707
|
-
var previousSeed;
|
|
3708
|
-
var shuffled;
|
|
3709
|
-
function reset() {
|
|
3710
|
-
shuffled = false;
|
|
3711
|
-
}
|
|
3712
|
-
__name(reset, "reset");
|
|
3713
|
-
function setCharacters(_alphabet_) {
|
|
3714
|
-
if (!_alphabet_) {
|
|
3715
|
-
if (alphabet !== ORIGINAL) {
|
|
3716
|
-
alphabet = ORIGINAL;
|
|
3717
|
-
reset();
|
|
3718
|
-
}
|
|
3719
|
-
return;
|
|
3720
|
-
}
|
|
3721
|
-
if (_alphabet_ === alphabet) {
|
|
3722
|
-
return;
|
|
3723
|
-
}
|
|
3724
|
-
if (_alphabet_.length !== ORIGINAL.length) {
|
|
3725
|
-
throw new Error("Custom alphabet for shortid must be " + ORIGINAL.length + " unique characters. You submitted " + _alphabet_.length + " characters: " + _alphabet_);
|
|
3726
|
-
}
|
|
3727
|
-
var unique = _alphabet_.split("").filter(function(item, ind, arr) {
|
|
3728
|
-
return ind !== arr.lastIndexOf(item);
|
|
3729
|
-
});
|
|
3730
|
-
if (unique.length) {
|
|
3731
|
-
throw new Error("Custom alphabet for shortid must be " + ORIGINAL.length + " unique characters. These characters were not unique: " + unique.join(", "));
|
|
3732
|
-
}
|
|
3733
|
-
alphabet = _alphabet_;
|
|
3734
|
-
reset();
|
|
3735
|
-
}
|
|
3736
|
-
__name(setCharacters, "setCharacters");
|
|
3737
|
-
function characters(_alphabet_) {
|
|
3738
|
-
setCharacters(_alphabet_);
|
|
3739
|
-
return alphabet;
|
|
3740
|
-
}
|
|
3741
|
-
__name(characters, "characters");
|
|
3742
|
-
function setSeed(seed) {
|
|
3743
|
-
randomFromSeed2.seed(seed);
|
|
3744
|
-
if (previousSeed !== seed) {
|
|
3745
|
-
reset();
|
|
3746
|
-
previousSeed = seed;
|
|
3747
|
-
}
|
|
3748
|
-
}
|
|
3749
|
-
__name(setSeed, "setSeed");
|
|
3750
|
-
function shuffle() {
|
|
3751
|
-
if (!alphabet) {
|
|
3752
|
-
setCharacters(ORIGINAL);
|
|
3753
|
-
}
|
|
3754
|
-
var sourceArray = alphabet.split("");
|
|
3755
|
-
var targetArray = [];
|
|
3756
|
-
var r = randomFromSeed2.nextValue();
|
|
3757
|
-
var characterIndex;
|
|
3758
|
-
while (sourceArray.length > 0) {
|
|
3759
|
-
r = randomFromSeed2.nextValue();
|
|
3760
|
-
characterIndex = Math.floor(r * sourceArray.length);
|
|
3761
|
-
targetArray.push(sourceArray.splice(characterIndex, 1)[0]);
|
|
3762
|
-
}
|
|
3763
|
-
return targetArray.join("");
|
|
3764
|
-
}
|
|
3765
|
-
__name(shuffle, "shuffle");
|
|
3766
|
-
function getShuffled() {
|
|
3767
|
-
if (shuffled) {
|
|
3768
|
-
return shuffled;
|
|
3769
|
-
}
|
|
3770
|
-
shuffled = shuffle();
|
|
3771
|
-
return shuffled;
|
|
3772
|
-
}
|
|
3773
|
-
__name(getShuffled, "getShuffled");
|
|
3774
|
-
function lookup(index) {
|
|
3775
|
-
var alphabetShuffled = getShuffled();
|
|
3776
|
-
return alphabetShuffled[index];
|
|
3777
|
-
}
|
|
3778
|
-
__name(lookup, "lookup");
|
|
3779
|
-
function get2() {
|
|
3780
|
-
return alphabet || ORIGINAL;
|
|
3781
|
-
}
|
|
3782
|
-
__name(get2, "get");
|
|
3783
|
-
alphabet_1 = {
|
|
3784
|
-
get: get2,
|
|
3785
|
-
characters,
|
|
3786
|
-
seed: setSeed,
|
|
3787
|
-
lookup,
|
|
3788
|
-
shuffled: getShuffled
|
|
3789
|
-
};
|
|
3790
|
-
return alphabet_1;
|
|
3791
|
-
}
|
|
3792
|
-
__name(requireAlphabet, "requireAlphabet");
|
|
3793
|
-
var randomByteBrowser;
|
|
3794
|
-
var hasRequiredRandomByteBrowser;
|
|
3795
|
-
function requireRandomByteBrowser() {
|
|
3796
|
-
if (hasRequiredRandomByteBrowser) return randomByteBrowser;
|
|
3797
|
-
hasRequiredRandomByteBrowser = 1;
|
|
3798
|
-
var crypto = typeof window === "object" && (window.crypto || window.msCrypto);
|
|
3799
|
-
var randomByte;
|
|
3800
|
-
if (!crypto || !crypto.getRandomValues) {
|
|
3801
|
-
randomByte = /* @__PURE__ */ __name(function(size) {
|
|
3802
|
-
var bytes = [];
|
|
3803
|
-
for (var i = 0; i < size; i++) {
|
|
3804
|
-
bytes.push(Math.floor(Math.random() * 256));
|
|
3805
|
-
}
|
|
3806
|
-
return bytes;
|
|
3807
|
-
}, "randomByte");
|
|
3808
|
-
} else {
|
|
3809
|
-
randomByte = /* @__PURE__ */ __name(function(size) {
|
|
3810
|
-
return crypto.getRandomValues(new Uint8Array(size));
|
|
3811
|
-
}, "randomByte");
|
|
3812
|
-
}
|
|
3813
|
-
randomByteBrowser = randomByte;
|
|
3814
|
-
return randomByteBrowser;
|
|
3815
|
-
}
|
|
3816
|
-
__name(requireRandomByteBrowser, "requireRandomByteBrowser");
|
|
3817
|
-
var format_browser;
|
|
3818
|
-
var hasRequiredFormat_browser;
|
|
3819
|
-
function requireFormat_browser() {
|
|
3820
|
-
if (hasRequiredFormat_browser) return format_browser;
|
|
3821
|
-
hasRequiredFormat_browser = 1;
|
|
3822
|
-
format_browser = /* @__PURE__ */ __name(function(random, alphabet, size) {
|
|
3823
|
-
var mask = (2 << Math.log(alphabet.length - 1) / Math.LN2) - 1;
|
|
3824
|
-
var step = -~(1.6 * mask * size / alphabet.length);
|
|
3825
|
-
var id = "";
|
|
3826
|
-
while (true) {
|
|
3827
|
-
var bytes = random(step);
|
|
3828
|
-
var i = step;
|
|
3829
|
-
while (i--) {
|
|
3830
|
-
id += alphabet[bytes[i] & mask] || "";
|
|
3831
|
-
if (id.length === +size) return id;
|
|
3832
|
-
}
|
|
3833
|
-
}
|
|
3834
|
-
}, "format_browser");
|
|
3835
|
-
return format_browser;
|
|
3836
|
-
}
|
|
3837
|
-
__name(requireFormat_browser, "requireFormat_browser");
|
|
3838
|
-
var generate_1;
|
|
3839
|
-
var hasRequiredGenerate;
|
|
3840
|
-
function requireGenerate() {
|
|
3841
|
-
if (hasRequiredGenerate) return generate_1;
|
|
3842
|
-
hasRequiredGenerate = 1;
|
|
3843
|
-
var alphabet = requireAlphabet();
|
|
3844
|
-
var random = requireRandomByteBrowser();
|
|
3845
|
-
var format = /* @__PURE__ */ requireFormat_browser();
|
|
3846
|
-
function generate(number) {
|
|
3847
|
-
var loopCounter = 0;
|
|
3848
|
-
var done;
|
|
3849
|
-
var str = "";
|
|
3850
|
-
while (!done) {
|
|
3851
|
-
str = str + format(random, alphabet.get(), 1);
|
|
3852
|
-
done = number < Math.pow(16, loopCounter + 1);
|
|
3853
|
-
loopCounter++;
|
|
3854
|
-
}
|
|
3855
|
-
return str;
|
|
3856
|
-
}
|
|
3857
|
-
__name(generate, "generate");
|
|
3858
|
-
generate_1 = generate;
|
|
3859
|
-
return generate_1;
|
|
3860
|
-
}
|
|
3861
|
-
__name(requireGenerate, "requireGenerate");
|
|
3862
|
-
var build_1;
|
|
3863
|
-
var hasRequiredBuild;
|
|
3864
|
-
function requireBuild() {
|
|
3865
|
-
if (hasRequiredBuild) return build_1;
|
|
3866
|
-
hasRequiredBuild = 1;
|
|
3867
|
-
var generate = requireGenerate();
|
|
3868
|
-
requireAlphabet();
|
|
3869
|
-
var REDUCE_TIME = 1567752802062;
|
|
3870
|
-
var version = 7;
|
|
3871
|
-
var counter;
|
|
3872
|
-
var previousSeconds;
|
|
3873
|
-
function build(clusterWorkerId) {
|
|
3874
|
-
var str = "";
|
|
3875
|
-
var seconds = Math.floor((Date.now() - REDUCE_TIME) * 1e-3);
|
|
3876
|
-
if (seconds === previousSeconds) {
|
|
3877
|
-
counter++;
|
|
3878
|
-
} else {
|
|
3879
|
-
counter = 0;
|
|
3880
|
-
previousSeconds = seconds;
|
|
3881
|
-
}
|
|
3882
|
-
str = str + generate(version);
|
|
3883
|
-
str = str + generate(clusterWorkerId);
|
|
3884
|
-
if (counter > 0) {
|
|
3885
|
-
str = str + generate(counter);
|
|
3886
|
-
}
|
|
3887
|
-
str = str + generate(seconds);
|
|
3888
|
-
return str;
|
|
3889
|
-
}
|
|
3890
|
-
__name(build, "build");
|
|
3891
|
-
build_1 = build;
|
|
3892
|
-
return build_1;
|
|
3893
|
-
}
|
|
3894
|
-
__name(requireBuild, "requireBuild");
|
|
3895
|
-
var isValid;
|
|
3896
|
-
var hasRequiredIsValid;
|
|
3897
|
-
function requireIsValid() {
|
|
3898
|
-
if (hasRequiredIsValid) return isValid;
|
|
3899
|
-
hasRequiredIsValid = 1;
|
|
3900
|
-
var alphabet = requireAlphabet();
|
|
3901
|
-
function isShortId(id) {
|
|
3902
|
-
if (!id || typeof id !== "string" || id.length < 6) {
|
|
3903
|
-
return false;
|
|
3904
|
-
}
|
|
3905
|
-
var nonAlphabetic = new RegExp("[^" + alphabet.get().replace(/[|\\{}()[\]^$+*?.-]/g, "\\$&") + "]");
|
|
3906
|
-
return !nonAlphabetic.test(id);
|
|
3907
|
-
}
|
|
3908
|
-
__name(isShortId, "isShortId");
|
|
3909
|
-
isValid = isShortId;
|
|
3910
|
-
return isValid;
|
|
3911
|
-
}
|
|
3912
|
-
__name(requireIsValid, "requireIsValid");
|
|
3913
|
-
var clusterWorkerIdBrowser;
|
|
3914
|
-
var hasRequiredClusterWorkerIdBrowser;
|
|
3915
|
-
function requireClusterWorkerIdBrowser() {
|
|
3916
|
-
if (hasRequiredClusterWorkerIdBrowser) return clusterWorkerIdBrowser;
|
|
3917
|
-
hasRequiredClusterWorkerIdBrowser = 1;
|
|
3918
|
-
clusterWorkerIdBrowser = 0;
|
|
3919
|
-
return clusterWorkerIdBrowser;
|
|
3920
|
-
}
|
|
3921
|
-
__name(requireClusterWorkerIdBrowser, "requireClusterWorkerIdBrowser");
|
|
3922
|
-
var hasRequiredLib;
|
|
3923
|
-
function requireLib() {
|
|
3924
|
-
if (hasRequiredLib) return lib.exports;
|
|
3925
|
-
hasRequiredLib = 1;
|
|
3926
|
-
(function(module2) {
|
|
3927
|
-
var alphabet = requireAlphabet();
|
|
3928
|
-
var build = requireBuild();
|
|
3929
|
-
var isValid2 = requireIsValid();
|
|
3930
|
-
var clusterWorkerId = requireClusterWorkerIdBrowser() || 0;
|
|
3931
|
-
function seed(seedValue) {
|
|
3932
|
-
alphabet.seed(seedValue);
|
|
3933
|
-
return module2.exports;
|
|
3934
|
-
}
|
|
3935
|
-
__name(seed, "seed");
|
|
3936
|
-
function worker(workerId) {
|
|
3937
|
-
clusterWorkerId = workerId;
|
|
3938
|
-
return module2.exports;
|
|
3939
|
-
}
|
|
3940
|
-
__name(worker, "worker");
|
|
3941
|
-
function characters(newCharacters) {
|
|
3942
|
-
if (newCharacters !== void 0) {
|
|
3943
|
-
alphabet.characters(newCharacters);
|
|
3944
|
-
}
|
|
3945
|
-
return alphabet.shuffled();
|
|
3946
|
-
}
|
|
3947
|
-
__name(characters, "characters");
|
|
3948
|
-
function generate() {
|
|
3949
|
-
return build(clusterWorkerId);
|
|
3950
|
-
}
|
|
3951
|
-
__name(generate, "generate");
|
|
3952
|
-
module2.exports = generate;
|
|
3953
|
-
module2.exports.generate = generate;
|
|
3954
|
-
module2.exports.seed = seed;
|
|
3955
|
-
module2.exports.worker = worker;
|
|
3956
|
-
module2.exports.characters = characters;
|
|
3957
|
-
module2.exports.isValid = isValid2;
|
|
3958
|
-
})(lib);
|
|
3959
|
-
return lib.exports;
|
|
3960
|
-
}
|
|
3961
|
-
__name(requireLib, "requireLib");
|
|
3962
|
-
var shortid$1;
|
|
3963
|
-
var hasRequiredShortid;
|
|
3964
|
-
function requireShortid() {
|
|
3965
|
-
if (hasRequiredShortid) return shortid$1;
|
|
3966
|
-
hasRequiredShortid = 1;
|
|
3967
|
-
shortid$1 = requireLib();
|
|
3968
|
-
return shortid$1;
|
|
3969
|
-
}
|
|
3970
|
-
__name(requireShortid, "requireShortid");
|
|
3971
|
-
var shortidExports = requireShortid();
|
|
3972
|
-
const shortid = /* @__PURE__ */ getDefaultExportFromCjs(shortidExports);
|
|
3672
|
+
const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
|
|
3673
|
+
let nanoid = /* @__PURE__ */ __name((size = 21) => {
|
|
3674
|
+
let id = "";
|
|
3675
|
+
let bytes = crypto.getRandomValues(new Uint8Array(size |= 0));
|
|
3676
|
+
while (size--) {
|
|
3677
|
+
id += urlAlphabet[bytes[size] & 63];
|
|
3678
|
+
}
|
|
3679
|
+
return id;
|
|
3680
|
+
}, "nanoid");
|
|
3973
3681
|
function cutSequenceByRestrictionEnzyme(pSequence, circular, restrictionEnzyme) {
|
|
3974
3682
|
if (restrictionEnzyme.forwardRegex.length === 0 || restrictionEnzyme.reverseRegex.length === 0) {
|
|
3975
3683
|
const returnArray = [];
|
|
@@ -4177,7 +3885,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
4177
3885
|
}
|
|
4178
3886
|
const overhangBps = getSequenceWithinRange(cutRange, originalSequence);
|
|
4179
3887
|
restrictionCutSite = {
|
|
4180
|
-
id:
|
|
3888
|
+
id: nanoid(),
|
|
4181
3889
|
start,
|
|
4182
3890
|
end,
|
|
4183
3891
|
topSnipPosition,
|
|
@@ -4235,7 +3943,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
4235
3943
|
});
|
|
4236
3944
|
if (!circular && cutsites.length) {
|
|
4237
3945
|
sortedCutsites.push({
|
|
4238
|
-
id: "seqTerm_" +
|
|
3946
|
+
id: "seqTerm_" + nanoid(),
|
|
4239
3947
|
start: 0,
|
|
4240
3948
|
end: 0,
|
|
4241
3949
|
overhangBps: "",
|
|
@@ -4369,6 +4077,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
4369
4077
|
});
|
|
4370
4078
|
}
|
|
4371
4079
|
__name(getDigestFragsForSeqAndEnzymes, "getDigestFragsForSeqAndEnzymes");
|
|
4080
|
+
function getDefaultExportFromCjs(x) {
|
|
4081
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
4082
|
+
}
|
|
4083
|
+
__name(getDefaultExportFromCjs, "getDefaultExportFromCjs");
|
|
4372
4084
|
var jsondiffpatch_umd$1 = { exports: {} };
|
|
4373
4085
|
var empty = {};
|
|
4374
4086
|
var hasRequiredEmpty;
|
|
@@ -8967,10 +8679,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
8967
8679
|
annotation.name = "Untitled annotation";
|
|
8968
8680
|
}
|
|
8969
8681
|
if (provideNewIdsForAnnotations) {
|
|
8970
|
-
annotation.id =
|
|
8682
|
+
annotation.id = nanoid();
|
|
8971
8683
|
}
|
|
8972
8684
|
if (!annotation.id && annotation.id !== 0 && !doNotProvideIdsForAnnotations) {
|
|
8973
|
-
annotation.id =
|
|
8685
|
+
annotation.id = nanoid();
|
|
8974
8686
|
messages.push(
|
|
8975
8687
|
"Unable to detect valid ID for annotation, setting ID to " + annotation.id
|
|
8976
8688
|
);
|
|
@@ -9214,7 +8926,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
9214
8926
|
if (item.id || item.id === 0) {
|
|
9215
8927
|
itemId = item.id;
|
|
9216
8928
|
} else {
|
|
9217
|
-
itemId =
|
|
8929
|
+
itemId = nanoid();
|
|
9218
8930
|
if (!doNotProvideIdsForAnnotations) {
|
|
9219
8931
|
item.id = itemId;
|
|
9220
8932
|
}
|
|
@@ -17784,7 +17496,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
17784
17496
|
return __spreadProps(__spreadValues({}, range), {
|
|
17785
17497
|
name: getRandomInt(0, 1e5).toString(),
|
|
17786
17498
|
type: "misc_feature",
|
|
17787
|
-
id:
|
|
17499
|
+
id: nanoid(),
|
|
17788
17500
|
forward: Math.random() > 0.5,
|
|
17789
17501
|
notes: {}
|
|
17790
17502
|
});
|
|
@@ -17907,7 +17619,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
17907
17619
|
forward,
|
|
17908
17620
|
annotationTypePlural: "orfs",
|
|
17909
17621
|
isOrf: true,
|
|
17910
|
-
id:
|
|
17622
|
+
id: nanoid()
|
|
17911
17623
|
});
|
|
17912
17624
|
}
|
|
17913
17625
|
}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teselagen/sequence-utils",
|
|
3
|
-
"version": "0.3.32-beta.
|
|
3
|
+
"version": "0.3.32-beta.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"dependencies": {
|
|
6
|
+
"@teselagen/range-utils": "0.3.14-beta.1",
|
|
6
7
|
"escape-string-regexp": "5.0.0",
|
|
7
8
|
"jsondiffpatch": "0.4.1",
|
|
8
|
-
"string-splice": "^1.3.0",
|
|
9
9
|
"lodash-es": "^4.17.21",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
10
|
+
"nanoid": "^5.1.5",
|
|
11
|
+
"string-splice": "^1.3.0"
|
|
12
12
|
},
|
|
13
13
|
"exports": {
|
|
14
14
|
".": {
|
|
@@ -16,5 +16,9 @@
|
|
|
16
16
|
"require": "./index.cjs"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
|
+
"volta": {
|
|
20
|
+
"node": "18.18.0",
|
|
21
|
+
"yarn": "1.22.22"
|
|
22
|
+
},
|
|
19
23
|
"license": "MIT"
|
|
20
24
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { nanoid } from "nanoid";
|
|
2
2
|
import { flatMap, cloneDeep } from "lodash-es";
|
|
3
3
|
import {
|
|
4
4
|
normalizePositionByRangeLength,
|
|
@@ -27,7 +27,7 @@ function computeDigestFragments({
|
|
|
27
27
|
});
|
|
28
28
|
if (!circular && cutsites.length) {
|
|
29
29
|
sortedCutsites.push({
|
|
30
|
-
id: "seqTerm_" +
|
|
30
|
+
id: "seqTerm_" + nanoid(),
|
|
31
31
|
start: 0,
|
|
32
32
|
end: 0,
|
|
33
33
|
overhangBps: "",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assign } from "lodash-es";
|
|
2
|
-
import
|
|
2
|
+
import { nanoid } from "nanoid";
|
|
3
3
|
import getReverseComplementSequenceString from "./getReverseComplementSequenceString";
|
|
4
4
|
|
|
5
5
|
import {
|
|
@@ -268,7 +268,7 @@ function cutSequence(
|
|
|
268
268
|
const overhangBps = getSequenceWithinRange(cutRange, originalSequence);
|
|
269
269
|
|
|
270
270
|
restrictionCutSite = {
|
|
271
|
-
id:
|
|
271
|
+
id: nanoid(),
|
|
272
272
|
start,
|
|
273
273
|
end,
|
|
274
274
|
topSnipPosition,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { generateRandomRange } from "@teselagen/range-utils";
|
|
2
|
-
import
|
|
2
|
+
import { nanoid } from "nanoid";
|
|
3
3
|
|
|
4
4
|
function generateAnnotations(
|
|
5
5
|
numberOfAnnotationsToGenerate,
|
|
@@ -21,7 +21,7 @@ function generateAnnotation(start, end, maxLength) {
|
|
|
21
21
|
...range,
|
|
22
22
|
name: getRandomInt(0, 100000).toString(),
|
|
23
23
|
type: "misc_feature",
|
|
24
|
-
id:
|
|
24
|
+
id: nanoid(),
|
|
25
25
|
forward: Math.random() > 0.5,
|
|
26
26
|
notes: {}
|
|
27
27
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { nanoid } from "nanoid";
|
|
2
2
|
import getReverseComplementSequenceString from "./getReverseComplementSequenceString";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -61,7 +61,7 @@ export default function getOrfsFromSequence(options) {
|
|
|
61
61
|
forward: forward,
|
|
62
62
|
annotationTypePlural: "orfs",
|
|
63
63
|
isOrf: true,
|
|
64
|
-
id:
|
|
64
|
+
id: nanoid()
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
}
|
package/src/tidyUpAnnotation.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cloneDeep, get, some } from "lodash-es";
|
|
2
2
|
import { getFeatureToColorMap, getFeatureTypes } from "./featureTypesAndColors";
|
|
3
|
-
import
|
|
3
|
+
import { nanoid } from "nanoid";
|
|
4
4
|
|
|
5
5
|
export default function tidyUpAnnotation(
|
|
6
6
|
_annotation,
|
|
@@ -34,10 +34,10 @@ export default function tidyUpAnnotation(
|
|
|
34
34
|
annotation.name = "Untitled annotation";
|
|
35
35
|
}
|
|
36
36
|
if (provideNewIdsForAnnotations) {
|
|
37
|
-
annotation.id =
|
|
37
|
+
annotation.id = nanoid();
|
|
38
38
|
}
|
|
39
39
|
if (!annotation.id && annotation.id !== 0 && !doNotProvideIdsForAnnotations) {
|
|
40
|
-
annotation.id =
|
|
40
|
+
annotation.id = nanoid();
|
|
41
41
|
messages.push(
|
|
42
42
|
"Unable to detect valid ID for annotation, setting ID to " + annotation.id
|
|
43
43
|
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// tnrtodo: figure out where to insert this validation exactly..
|
|
2
|
-
import
|
|
2
|
+
import { nanoid } from "nanoid";
|
|
3
3
|
|
|
4
4
|
import getAminoAcidDataForEachBaseOfDna from "./getAminoAcidDataForEachBaseOfDna";
|
|
5
5
|
import { cloneDeep, flatMap } from "lodash-es";
|
|
@@ -155,7 +155,7 @@ export default function tidyUpSequenceData(pSeqData, options = {}) {
|
|
|
155
155
|
if (item.id || item.id === 0) {
|
|
156
156
|
itemId = item.id;
|
|
157
157
|
} else {
|
|
158
|
-
itemId =
|
|
158
|
+
itemId = nanoid();
|
|
159
159
|
if (!doNotProvideIdsForAnnotations) {
|
|
160
160
|
item.id = itemId; //assign the newly created id to the item
|
|
161
161
|
}
|