@teselagen/sequence-utils 0.3.32-beta.2 → 0.3.32
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 +308 -20
- package/index.js +308 -20
- package/index.umd.cjs +308 -20
- package/package.json +4 -8
- 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,15 +3667,307 @@ 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
|
-
|
|
3670
|
+
function getDefaultExportFromCjs(x) {
|
|
3671
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
3672
|
+
}
|
|
3673
|
+
__name(getDefaultExportFromCjs, "getDefaultExportFromCjs");
|
|
3674
|
+
var lib = { exports: {} };
|
|
3675
|
+
var randomFromSeed;
|
|
3676
|
+
var hasRequiredRandomFromSeed;
|
|
3677
|
+
function requireRandomFromSeed() {
|
|
3678
|
+
if (hasRequiredRandomFromSeed) return randomFromSeed;
|
|
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);
|
|
3679
3971
|
function cutSequenceByRestrictionEnzyme(pSequence, circular, restrictionEnzyme) {
|
|
3680
3972
|
if (restrictionEnzyme.forwardRegex.length === 0 || restrictionEnzyme.reverseRegex.length === 0) {
|
|
3681
3973
|
const returnArray = [];
|
|
@@ -3883,7 +4175,7 @@ function cutSequence(forwardRegExpPattern, restrictionEnzyme, sequence, circular
|
|
|
3883
4175
|
}
|
|
3884
4176
|
const overhangBps = getSequenceWithinRange(cutRange, originalSequence);
|
|
3885
4177
|
restrictionCutSite = {
|
|
3886
|
-
id:
|
|
4178
|
+
id: shortid(),
|
|
3887
4179
|
start,
|
|
3888
4180
|
end,
|
|
3889
4181
|
topSnipPosition,
|
|
@@ -3941,7 +4233,7 @@ function computeDigestFragments({
|
|
|
3941
4233
|
});
|
|
3942
4234
|
if (!circular && cutsites.length) {
|
|
3943
4235
|
sortedCutsites.push({
|
|
3944
|
-
id: "seqTerm_" +
|
|
4236
|
+
id: "seqTerm_" + shortid(),
|
|
3945
4237
|
start: 0,
|
|
3946
4238
|
end: 0,
|
|
3947
4239
|
overhangBps: "",
|
|
@@ -4075,10 +4367,6 @@ function getDigestFragsForSeqAndEnzymes({
|
|
|
4075
4367
|
});
|
|
4076
4368
|
}
|
|
4077
4369
|
__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");
|
|
4082
4370
|
var jsondiffpatch_umd$1 = { exports: {} };
|
|
4083
4371
|
var empty = {};
|
|
4084
4372
|
var hasRequiredEmpty;
|
|
@@ -8677,10 +8965,10 @@ function tidyUpAnnotation(_annotation, {
|
|
|
8677
8965
|
annotation.name = "Untitled annotation";
|
|
8678
8966
|
}
|
|
8679
8967
|
if (provideNewIdsForAnnotations) {
|
|
8680
|
-
annotation.id =
|
|
8968
|
+
annotation.id = shortid();
|
|
8681
8969
|
}
|
|
8682
8970
|
if (!annotation.id && annotation.id !== 0 && !doNotProvideIdsForAnnotations) {
|
|
8683
|
-
annotation.id =
|
|
8971
|
+
annotation.id = shortid();
|
|
8684
8972
|
messages.push(
|
|
8685
8973
|
"Unable to detect valid ID for annotation, setting ID to " + annotation.id
|
|
8686
8974
|
);
|
|
@@ -8924,7 +9212,7 @@ function tidyUpSequenceData(pSeqData, options = {}) {
|
|
|
8924
9212
|
if (item.id || item.id === 0) {
|
|
8925
9213
|
itemId = item.id;
|
|
8926
9214
|
} else {
|
|
8927
|
-
itemId =
|
|
9215
|
+
itemId = shortid();
|
|
8928
9216
|
if (!doNotProvideIdsForAnnotations) {
|
|
8929
9217
|
item.id = itemId;
|
|
8930
9218
|
}
|
|
@@ -17494,7 +17782,7 @@ function generateAnnotation(start, end, maxLength) {
|
|
|
17494
17782
|
return __spreadProps(__spreadValues({}, range), {
|
|
17495
17783
|
name: getRandomInt(0, 1e5).toString(),
|
|
17496
17784
|
type: "misc_feature",
|
|
17497
|
-
id:
|
|
17785
|
+
id: shortid(),
|
|
17498
17786
|
forward: Math.random() > 0.5,
|
|
17499
17787
|
notes: {}
|
|
17500
17788
|
});
|
|
@@ -17617,7 +17905,7 @@ function getOrfsFromSequence(options) {
|
|
|
17617
17905
|
forward,
|
|
17618
17906
|
annotationTypePlural: "orfs",
|
|
17619
17907
|
isOrf: true,
|
|
17620
|
-
id:
|
|
17908
|
+
id: shortid()
|
|
17621
17909
|
});
|
|
17622
17910
|
}
|
|
17623
17911
|
}
|
package/index.js
CHANGED
|
@@ -3665,15 +3665,307 @@ 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
|
-
|
|
3668
|
+
function getDefaultExportFromCjs(x) {
|
|
3669
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
3670
|
+
}
|
|
3671
|
+
__name(getDefaultExportFromCjs, "getDefaultExportFromCjs");
|
|
3672
|
+
var lib = { exports: {} };
|
|
3673
|
+
var randomFromSeed;
|
|
3674
|
+
var hasRequiredRandomFromSeed;
|
|
3675
|
+
function requireRandomFromSeed() {
|
|
3676
|
+
if (hasRequiredRandomFromSeed) return randomFromSeed;
|
|
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);
|
|
3677
3969
|
function cutSequenceByRestrictionEnzyme(pSequence, circular, restrictionEnzyme) {
|
|
3678
3970
|
if (restrictionEnzyme.forwardRegex.length === 0 || restrictionEnzyme.reverseRegex.length === 0) {
|
|
3679
3971
|
const returnArray = [];
|
|
@@ -3881,7 +4173,7 @@ function cutSequence(forwardRegExpPattern, restrictionEnzyme, sequence, circular
|
|
|
3881
4173
|
}
|
|
3882
4174
|
const overhangBps = getSequenceWithinRange(cutRange, originalSequence);
|
|
3883
4175
|
restrictionCutSite = {
|
|
3884
|
-
id:
|
|
4176
|
+
id: shortid(),
|
|
3885
4177
|
start,
|
|
3886
4178
|
end,
|
|
3887
4179
|
topSnipPosition,
|
|
@@ -3939,7 +4231,7 @@ function computeDigestFragments({
|
|
|
3939
4231
|
});
|
|
3940
4232
|
if (!circular && cutsites.length) {
|
|
3941
4233
|
sortedCutsites.push({
|
|
3942
|
-
id: "seqTerm_" +
|
|
4234
|
+
id: "seqTerm_" + shortid(),
|
|
3943
4235
|
start: 0,
|
|
3944
4236
|
end: 0,
|
|
3945
4237
|
overhangBps: "",
|
|
@@ -4073,10 +4365,6 @@ function getDigestFragsForSeqAndEnzymes({
|
|
|
4073
4365
|
});
|
|
4074
4366
|
}
|
|
4075
4367
|
__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");
|
|
4080
4368
|
var jsondiffpatch_umd$1 = { exports: {} };
|
|
4081
4369
|
var empty = {};
|
|
4082
4370
|
var hasRequiredEmpty;
|
|
@@ -8675,10 +8963,10 @@ function tidyUpAnnotation(_annotation, {
|
|
|
8675
8963
|
annotation.name = "Untitled annotation";
|
|
8676
8964
|
}
|
|
8677
8965
|
if (provideNewIdsForAnnotations) {
|
|
8678
|
-
annotation.id =
|
|
8966
|
+
annotation.id = shortid();
|
|
8679
8967
|
}
|
|
8680
8968
|
if (!annotation.id && annotation.id !== 0 && !doNotProvideIdsForAnnotations) {
|
|
8681
|
-
annotation.id =
|
|
8969
|
+
annotation.id = shortid();
|
|
8682
8970
|
messages.push(
|
|
8683
8971
|
"Unable to detect valid ID for annotation, setting ID to " + annotation.id
|
|
8684
8972
|
);
|
|
@@ -8922,7 +9210,7 @@ function tidyUpSequenceData(pSeqData, options = {}) {
|
|
|
8922
9210
|
if (item.id || item.id === 0) {
|
|
8923
9211
|
itemId = item.id;
|
|
8924
9212
|
} else {
|
|
8925
|
-
itemId =
|
|
9213
|
+
itemId = shortid();
|
|
8926
9214
|
if (!doNotProvideIdsForAnnotations) {
|
|
8927
9215
|
item.id = itemId;
|
|
8928
9216
|
}
|
|
@@ -17492,7 +17780,7 @@ function generateAnnotation(start, end, maxLength) {
|
|
|
17492
17780
|
return __spreadProps(__spreadValues({}, range), {
|
|
17493
17781
|
name: getRandomInt(0, 1e5).toString(),
|
|
17494
17782
|
type: "misc_feature",
|
|
17495
|
-
id:
|
|
17783
|
+
id: shortid(),
|
|
17496
17784
|
forward: Math.random() > 0.5,
|
|
17497
17785
|
notes: {}
|
|
17498
17786
|
});
|
|
@@ -17615,7 +17903,7 @@ function getOrfsFromSequence(options) {
|
|
|
17615
17903
|
forward,
|
|
17616
17904
|
annotationTypePlural: "orfs",
|
|
17617
17905
|
isOrf: true,
|
|
17618
|
-
id:
|
|
17906
|
+
id: shortid()
|
|
17619
17907
|
});
|
|
17620
17908
|
}
|
|
17621
17909
|
}
|
package/index.umd.cjs
CHANGED
|
@@ -3669,15 +3669,307 @@ 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
|
-
|
|
3672
|
+
function getDefaultExportFromCjs(x) {
|
|
3673
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
3674
|
+
}
|
|
3675
|
+
__name(getDefaultExportFromCjs, "getDefaultExportFromCjs");
|
|
3676
|
+
var lib = { exports: {} };
|
|
3677
|
+
var randomFromSeed;
|
|
3678
|
+
var hasRequiredRandomFromSeed;
|
|
3679
|
+
function requireRandomFromSeed() {
|
|
3680
|
+
if (hasRequiredRandomFromSeed) return randomFromSeed;
|
|
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);
|
|
3681
3973
|
function cutSequenceByRestrictionEnzyme(pSequence, circular, restrictionEnzyme) {
|
|
3682
3974
|
if (restrictionEnzyme.forwardRegex.length === 0 || restrictionEnzyme.reverseRegex.length === 0) {
|
|
3683
3975
|
const returnArray = [];
|
|
@@ -3885,7 +4177,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3885
4177
|
}
|
|
3886
4178
|
const overhangBps = getSequenceWithinRange(cutRange, originalSequence);
|
|
3887
4179
|
restrictionCutSite = {
|
|
3888
|
-
id:
|
|
4180
|
+
id: shortid(),
|
|
3889
4181
|
start,
|
|
3890
4182
|
end,
|
|
3891
4183
|
topSnipPosition,
|
|
@@ -3943,7 +4235,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3943
4235
|
});
|
|
3944
4236
|
if (!circular && cutsites.length) {
|
|
3945
4237
|
sortedCutsites.push({
|
|
3946
|
-
id: "seqTerm_" +
|
|
4238
|
+
id: "seqTerm_" + shortid(),
|
|
3947
4239
|
start: 0,
|
|
3948
4240
|
end: 0,
|
|
3949
4241
|
overhangBps: "",
|
|
@@ -4077,10 +4369,6 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
4077
4369
|
});
|
|
4078
4370
|
}
|
|
4079
4371
|
__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");
|
|
4084
4372
|
var jsondiffpatch_umd$1 = { exports: {} };
|
|
4085
4373
|
var empty = {};
|
|
4086
4374
|
var hasRequiredEmpty;
|
|
@@ -8679,10 +8967,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
8679
8967
|
annotation.name = "Untitled annotation";
|
|
8680
8968
|
}
|
|
8681
8969
|
if (provideNewIdsForAnnotations) {
|
|
8682
|
-
annotation.id =
|
|
8970
|
+
annotation.id = shortid();
|
|
8683
8971
|
}
|
|
8684
8972
|
if (!annotation.id && annotation.id !== 0 && !doNotProvideIdsForAnnotations) {
|
|
8685
|
-
annotation.id =
|
|
8973
|
+
annotation.id = shortid();
|
|
8686
8974
|
messages.push(
|
|
8687
8975
|
"Unable to detect valid ID for annotation, setting ID to " + annotation.id
|
|
8688
8976
|
);
|
|
@@ -8926,7 +9214,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
8926
9214
|
if (item.id || item.id === 0) {
|
|
8927
9215
|
itemId = item.id;
|
|
8928
9216
|
} else {
|
|
8929
|
-
itemId =
|
|
9217
|
+
itemId = shortid();
|
|
8930
9218
|
if (!doNotProvideIdsForAnnotations) {
|
|
8931
9219
|
item.id = itemId;
|
|
8932
9220
|
}
|
|
@@ -17496,7 +17784,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
17496
17784
|
return __spreadProps(__spreadValues({}, range), {
|
|
17497
17785
|
name: getRandomInt(0, 1e5).toString(),
|
|
17498
17786
|
type: "misc_feature",
|
|
17499
|
-
id:
|
|
17787
|
+
id: shortid(),
|
|
17500
17788
|
forward: Math.random() > 0.5,
|
|
17501
17789
|
notes: {}
|
|
17502
17790
|
});
|
|
@@ -17619,7 +17907,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
17619
17907
|
forward,
|
|
17620
17908
|
annotationTypePlural: "orfs",
|
|
17621
17909
|
isOrf: true,
|
|
17622
|
-
id:
|
|
17910
|
+
id: shortid()
|
|
17623
17911
|
});
|
|
17624
17912
|
}
|
|
17625
17913
|
}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teselagen/sequence-utils",
|
|
3
|
-
"version": "0.3.32
|
|
3
|
+
"version": "0.3.32",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@teselagen/range-utils": "0.3.14-beta.1",
|
|
7
6
|
"escape-string-regexp": "5.0.0",
|
|
8
7
|
"jsondiffpatch": "0.4.1",
|
|
8
|
+
"string-splice": "^1.3.0",
|
|
9
9
|
"lodash-es": "^4.17.21",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
10
|
+
"shortid": "2.2.16",
|
|
11
|
+
"@teselagen/range-utils": "0.3.13"
|
|
12
12
|
},
|
|
13
13
|
"exports": {
|
|
14
14
|
".": {
|
|
@@ -16,9 +16,5 @@
|
|
|
16
16
|
"require": "./index.cjs"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
|
-
"volta": {
|
|
20
|
-
"node": "18.18.0",
|
|
21
|
-
"yarn": "1.22.22"
|
|
22
|
-
},
|
|
23
19
|
"license": "MIT"
|
|
24
20
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import shortid from "shortid";
|
|
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_" + shortid(),
|
|
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 shortid from "shortid";
|
|
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: shortid(),
|
|
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 shortid from "shortid";
|
|
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: shortid(),
|
|
25
25
|
forward: Math.random() > 0.5,
|
|
26
26
|
notes: {}
|
|
27
27
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import shortid from "shortid";
|
|
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: shortid()
|
|
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 shortid from "shortid";
|
|
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 = shortid();
|
|
38
38
|
}
|
|
39
39
|
if (!annotation.id && annotation.id !== 0 && !doNotProvideIdsForAnnotations) {
|
|
40
|
-
annotation.id =
|
|
40
|
+
annotation.id = shortid();
|
|
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 shortid from "shortid";
|
|
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 = shortid();
|
|
159
159
|
if (!doNotProvideIdsForAnnotations) {
|
|
160
160
|
item.id = itemId; //assign the newly created id to the item
|
|
161
161
|
}
|