@freehour/supabase-core 2.0.5 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/errors.d.ts +0 -24
- package/dist/errors.d.ts.map +1 -1
- package/dist/index.js +40 -46
- package/package.json +1 -1
package/dist/errors.d.ts
CHANGED
|
@@ -38,30 +38,6 @@ export declare class FileNotFoundError extends TracedError {
|
|
|
38
38
|
readonly path?: string;
|
|
39
39
|
constructor(message: string, { fileId, bucket, path, }?: FileNotFoundErrorOptions);
|
|
40
40
|
}
|
|
41
|
-
export interface FileNotSupportedErrorOptions extends ErrorOptions {
|
|
42
|
-
/**
|
|
43
|
-
* The name of the file that caused the error.
|
|
44
|
-
*/
|
|
45
|
-
fileName?: string;
|
|
46
|
-
/**
|
|
47
|
-
* The type of the file that is not supported.
|
|
48
|
-
*/
|
|
49
|
-
fileType?: string;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* An error that indicates that a file is not supported, e.g. due to its MIME type or extension.
|
|
53
|
-
*/
|
|
54
|
-
export declare class FileNotSupportedError extends Error {
|
|
55
|
-
/**
|
|
56
|
-
* The name of the file that caused the error.
|
|
57
|
-
*/
|
|
58
|
-
readonly fileName?: string;
|
|
59
|
-
/**
|
|
60
|
-
* The type of the file that is not supported.
|
|
61
|
-
*/
|
|
62
|
-
readonly fileType?: string;
|
|
63
|
-
constructor(message: string, { fileName, fileType, ...options }?: FileNotSupportedErrorOptions);
|
|
64
|
-
}
|
|
65
41
|
export interface ParseErrorOptions extends ErrorOptions {
|
|
66
42
|
/**
|
|
67
43
|
* The encountered expression that could not be parsed.
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACtB,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;CAK3D;AAGD,MAAM,WAAW,wBAAwB;IAErC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGnB,OAAO,EAAE,MAAM,EACf,EACI,MAAM,EACN,MAAM,EACN,IAAI,GACP,GAAE,wBAA6B;CAOvC;AAGD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACtB,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;CAK3D;AAGD,MAAM,WAAW,wBAAwB;IAErC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGnB,OAAO,EAAE,MAAM,EACf,EACI,MAAM,EACN,MAAM,EACN,IAAI,GACP,GAAE,wBAA6B;CAOvC;AAGD,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IAEnD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,WAAW;IAEvC;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;gBAGtB,OAAO,EAAE,MAAM,EACf,EACI,UAAU,EACV,MAAM,EACN,GAAG,OAAO,EACb,GAAE,iBAAsB;CAMhC;AAGD,MAAM,WAAW,0BAA0B;IAEvC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAChD;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;gBAG1B,OAAO,EAAE,MAAM,EACf,EACI,MAAM,EACN,QAAQ,EACR,EAAE,GACL,GAAE,0BAA+B;CAOzC;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;iBAgB9B,CAAC;AAEP,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,uBAAuB,CAAC;AAExE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E"}
|
package/dist/index.js
CHANGED
|
@@ -3472,55 +3472,49 @@ var J = class extends Error {
|
|
|
3472
3472
|
constructor(e, { fileId: t, bucket: n, path: r } = {}) {
|
|
3473
3473
|
super(e), this.fileId = t, this.bucket = n, this.path = r;
|
|
3474
3474
|
}
|
|
3475
|
-
}, Ot = class extends
|
|
3476
|
-
fileName;
|
|
3477
|
-
fileType;
|
|
3478
|
-
constructor(e, { fileName: t, fileType: n, ...r } = {}) {
|
|
3479
|
-
super(e, r), this.fileName = t, this.fileType = n;
|
|
3480
|
-
}
|
|
3481
|
-
}, kt = class extends J {
|
|
3475
|
+
}, Ot = class extends J {
|
|
3482
3476
|
expression;
|
|
3483
3477
|
format;
|
|
3484
3478
|
constructor(e, { expression: t, format: n, ...r } = {}) {
|
|
3485
3479
|
super(e, r), this.expression = t, this.format = n;
|
|
3486
3480
|
}
|
|
3487
|
-
},
|
|
3481
|
+
}, kt = class extends J {
|
|
3488
3482
|
schema;
|
|
3489
3483
|
relation;
|
|
3490
3484
|
id;
|
|
3491
3485
|
constructor(e, { schema: t, relation: n, id: r } = {}) {
|
|
3492
3486
|
super(e), this.schema = t, this.relation = n, this.id = r;
|
|
3493
3487
|
}
|
|
3494
|
-
},
|
|
3488
|
+
}, At = t.object({
|
|
3495
3489
|
code: t.string(),
|
|
3496
3490
|
details: t.string().nullable(),
|
|
3497
3491
|
hint: t.string().nullable(),
|
|
3498
3492
|
name: t.string().optional(),
|
|
3499
3493
|
message: t.string().optional()
|
|
3500
3494
|
});
|
|
3501
|
-
function
|
|
3502
|
-
return e instanceof r ||
|
|
3495
|
+
function jt(e) {
|
|
3496
|
+
return e instanceof r || At.safeParse(e).success;
|
|
3503
3497
|
}
|
|
3504
3498
|
//#endregion
|
|
3505
3499
|
//#region lib/utils.ts
|
|
3506
|
-
function
|
|
3500
|
+
function Mt(e, t = "/") {
|
|
3507
3501
|
let n = e.lastIndexOf(t);
|
|
3508
3502
|
return n === -1 ? ["", e] : [e.substring(0, n), e.substring(n + 1)];
|
|
3509
3503
|
}
|
|
3510
3504
|
function Y(e) {
|
|
3511
3505
|
return Array.isArray(e) ? e : [e];
|
|
3512
3506
|
}
|
|
3513
|
-
function
|
|
3507
|
+
function Nt(e, t) {
|
|
3514
3508
|
return e.reduce((e, n) => {
|
|
3515
3509
|
let r = t(n);
|
|
3516
3510
|
return (e[r] ??= []).push(n), e;
|
|
3517
3511
|
}, {});
|
|
3518
3512
|
}
|
|
3519
|
-
function
|
|
3513
|
+
function Pt(e, t) {
|
|
3520
3514
|
let n = e.findIndex(t);
|
|
3521
3515
|
return n !== -1 && e.splice(n, 1), e;
|
|
3522
3516
|
}
|
|
3523
|
-
function
|
|
3517
|
+
function Ft(e) {
|
|
3524
3518
|
return Object.entries(e);
|
|
3525
3519
|
}
|
|
3526
3520
|
//#endregion
|
|
@@ -3533,7 +3527,7 @@ var X = class {
|
|
|
3533
3527
|
this.database = e, this.schema = t, this.relation = n;
|
|
3534
3528
|
}
|
|
3535
3529
|
recordNotFoundError(e) {
|
|
3536
|
-
return new
|
|
3530
|
+
return new kt(`Record with id ${e} not found in ${this.schema}.${this.relation}`, {
|
|
3537
3531
|
schema: this.schema,
|
|
3538
3532
|
relation: this.relation,
|
|
3539
3533
|
id: e
|
|
@@ -3590,7 +3584,7 @@ var X = class {
|
|
|
3590
3584
|
let { data: n } = await this.query.update(t).eq("id", e).select().single().throwOnError();
|
|
3591
3585
|
return n;
|
|
3592
3586
|
}
|
|
3593
|
-
},
|
|
3587
|
+
}, It = class extends X {
|
|
3594
3588
|
constructor({ database: e, schema: t, table: n }) {
|
|
3595
3589
|
super({
|
|
3596
3590
|
database: e,
|
|
@@ -3598,7 +3592,7 @@ var X = class {
|
|
|
3598
3592
|
relation: n
|
|
3599
3593
|
});
|
|
3600
3594
|
}
|
|
3601
|
-
},
|
|
3595
|
+
}, Lt = class extends X {
|
|
3602
3596
|
constructor({ database: e, schema: t, view: n }) {
|
|
3603
3597
|
super({
|
|
3604
3598
|
database: e,
|
|
@@ -3607,13 +3601,13 @@ var X = class {
|
|
|
3607
3601
|
});
|
|
3608
3602
|
}
|
|
3609
3603
|
};
|
|
3610
|
-
function
|
|
3604
|
+
function Rt(t) {
|
|
3611
3605
|
if (t.error) throw t.error;
|
|
3612
3606
|
return e(t.count !== null, "Response does not contain a count. Make sure to set the `count` option in the request."), t;
|
|
3613
3607
|
}
|
|
3614
3608
|
//#endregion
|
|
3615
3609
|
//#region lib/filter.ts
|
|
3616
|
-
var
|
|
3610
|
+
var zt = [
|
|
3617
3611
|
"eq",
|
|
3618
3612
|
"neq",
|
|
3619
3613
|
"gt",
|
|
@@ -3639,17 +3633,17 @@ var Bt = [
|
|
|
3639
3633
|
"nxr",
|
|
3640
3634
|
"nxl",
|
|
3641
3635
|
"adj"
|
|
3642
|
-
],
|
|
3636
|
+
], Bt = ["and", "or"], Vt = ",", Ht = "~", Ut = (e) => (n = {}) => {
|
|
3643
3637
|
let r = (e) => n[e] ?? e, i = Object.keys(e.shape);
|
|
3644
3638
|
return t.string().transform((e, t) => {
|
|
3645
3639
|
try {
|
|
3646
|
-
return
|
|
3640
|
+
return qt(e, i, r);
|
|
3647
3641
|
} catch (n) {
|
|
3648
3642
|
return t.addIssue({
|
|
3649
3643
|
code: "custom",
|
|
3650
3644
|
input: e,
|
|
3651
3645
|
message: n instanceof Error ? n.message : void 0,
|
|
3652
|
-
params: n instanceof
|
|
3646
|
+
params: n instanceof Ot ? {
|
|
3653
3647
|
expression: n.expression,
|
|
3654
3648
|
format: n.format
|
|
3655
3649
|
} : void 0
|
|
@@ -3657,13 +3651,13 @@ var Bt = [
|
|
|
3657
3651
|
}
|
|
3658
3652
|
});
|
|
3659
3653
|
};
|
|
3660
|
-
function
|
|
3654
|
+
function Wt(e) {
|
|
3661
3655
|
return e.startsWith("not.") ? e.slice(4) : `not.${e}`;
|
|
3662
3656
|
}
|
|
3663
|
-
function
|
|
3657
|
+
function Gt(e) {
|
|
3664
3658
|
return {
|
|
3665
3659
|
...e,
|
|
3666
|
-
op:
|
|
3660
|
+
op: Wt(e.op)
|
|
3667
3661
|
};
|
|
3668
3662
|
}
|
|
3669
3663
|
function Z(e, t = (e) => e) {
|
|
@@ -3673,7 +3667,7 @@ function Z(e, t = (e) => e) {
|
|
|
3673
3667
|
}
|
|
3674
3668
|
return `${t(e.key)}.${e.op}.${e.value}`;
|
|
3675
3669
|
}
|
|
3676
|
-
function
|
|
3670
|
+
function Kt(e, t = (e) => e, n = "~") {
|
|
3677
3671
|
return e.map((e) => Z(e, t)).join(n);
|
|
3678
3672
|
}
|
|
3679
3673
|
function Q(t, n = [], r = (e) => e) {
|
|
@@ -3704,13 +3698,13 @@ function Q(t, n = [], r = (e) => e) {
|
|
|
3704
3698
|
args: i(t.slice(7, -1)).map((e) => Q(e, n, r))
|
|
3705
3699
|
};
|
|
3706
3700
|
}
|
|
3707
|
-
let a = `^(${n.length === 0 ? "[a-zA-Z_][a-zA-Z0-9_]*" : n.join("|")})\\.((?:not\\.)?(?:${
|
|
3708
|
-
if (!o) throw new
|
|
3701
|
+
let a = `^(${n.length === 0 ? "[a-zA-Z_][a-zA-Z0-9_]*" : n.join("|")})\\.((?:not\\.)?(?:${zt.join("|")}))\\.(.+)$`, o = new RegExp(a).exec(t);
|
|
3702
|
+
if (!o) throw new Ot(`Invalid filter expression '${t}'`, {
|
|
3709
3703
|
expression: t,
|
|
3710
3704
|
format: {
|
|
3711
3705
|
syntax: "key.(not.)op.value",
|
|
3712
3706
|
keys: n.length === 0 ? "*" : n,
|
|
3713
|
-
operators:
|
|
3707
|
+
operators: zt
|
|
3714
3708
|
}
|
|
3715
3709
|
});
|
|
3716
3710
|
let [, s, c, l] = o;
|
|
@@ -3721,7 +3715,7 @@ function Q(t, n = [], r = (e) => e) {
|
|
|
3721
3715
|
value: e.defined(l)
|
|
3722
3716
|
};
|
|
3723
3717
|
}
|
|
3724
|
-
function
|
|
3718
|
+
function qt(e, t = [], n = (e) => e, r = "~") {
|
|
3725
3719
|
return e.length === 0 ? [] : e.split(r).map((e) => Q(e, t, n));
|
|
3726
3720
|
}
|
|
3727
3721
|
//#endregion
|
|
@@ -3774,7 +3768,7 @@ var $ = class t extends n.PostgrestFilterBuilder {
|
|
|
3774
3768
|
return t;
|
|
3775
3769
|
});
|
|
3776
3770
|
}
|
|
3777
|
-
},
|
|
3771
|
+
}, Jt = class {
|
|
3778
3772
|
builder;
|
|
3779
3773
|
constructor(e) {
|
|
3780
3774
|
this.builder = e;
|
|
@@ -3803,24 +3797,24 @@ var $ = class t extends n.PostgrestFilterBuilder {
|
|
|
3803
3797
|
delete() {
|
|
3804
3798
|
return new $(this.builder.delete());
|
|
3805
3799
|
}
|
|
3806
|
-
},
|
|
3800
|
+
}, Yt = class {
|
|
3807
3801
|
client;
|
|
3808
3802
|
constructor(e) {
|
|
3809
3803
|
this.client = e;
|
|
3810
3804
|
}
|
|
3811
3805
|
from(e) {
|
|
3812
|
-
return new
|
|
3806
|
+
return new Jt(this.client.from(e));
|
|
3813
3807
|
}
|
|
3814
3808
|
rpc(e, t, n) {
|
|
3815
3809
|
return new $(this.client.rpc(e, t, n));
|
|
3816
3810
|
}
|
|
3817
|
-
},
|
|
3811
|
+
}, Xt = class {
|
|
3818
3812
|
supabase;
|
|
3819
3813
|
constructor({ supabase: e }) {
|
|
3820
3814
|
this.supabase = e;
|
|
3821
3815
|
}
|
|
3822
3816
|
schema(e) {
|
|
3823
|
-
return new
|
|
3817
|
+
return new Yt(this.supabase.schema(e));
|
|
3824
3818
|
}
|
|
3825
3819
|
relation(e, t) {
|
|
3826
3820
|
return new X({
|
|
@@ -3830,14 +3824,14 @@ var $ = class t extends n.PostgrestFilterBuilder {
|
|
|
3830
3824
|
});
|
|
3831
3825
|
}
|
|
3832
3826
|
table(e, t) {
|
|
3833
|
-
return new
|
|
3827
|
+
return new It({
|
|
3834
3828
|
database: this,
|
|
3835
3829
|
schema: e,
|
|
3836
3830
|
table: t
|
|
3837
3831
|
});
|
|
3838
3832
|
}
|
|
3839
3833
|
view(e, t) {
|
|
3840
|
-
return new
|
|
3834
|
+
return new Lt({
|
|
3841
3835
|
database: this,
|
|
3842
3836
|
schema: e,
|
|
3843
3837
|
view: t
|
|
@@ -3846,15 +3840,15 @@ var $ = class t extends n.PostgrestFilterBuilder {
|
|
|
3846
3840
|
};
|
|
3847
3841
|
//#endregion
|
|
3848
3842
|
//#region lib/storage.ts
|
|
3849
|
-
function
|
|
3843
|
+
function Zt(e) {
|
|
3850
3844
|
return e.bucket !== void 0 && e.path !== void 0;
|
|
3851
3845
|
}
|
|
3852
|
-
function
|
|
3846
|
+
function Qt(e) {
|
|
3853
3847
|
return e.fileId !== void 0 && e.bucket !== void 0;
|
|
3854
3848
|
}
|
|
3855
3849
|
//#endregion
|
|
3856
3850
|
//#region lib/storage-service.ts
|
|
3857
|
-
var
|
|
3851
|
+
var $t = class {
|
|
3858
3852
|
client;
|
|
3859
3853
|
database;
|
|
3860
3854
|
constructor({ client: e, database: t }) {
|
|
@@ -3874,8 +3868,8 @@ var en = class {
|
|
|
3874
3868
|
return n;
|
|
3875
3869
|
}
|
|
3876
3870
|
async getFileStorageLocation(t) {
|
|
3877
|
-
if (
|
|
3878
|
-
if (
|
|
3871
|
+
if (Qt(t)) return t;
|
|
3872
|
+
if (Zt(t)) {
|
|
3879
3873
|
let { id: e } = await this.getFileObject(t);
|
|
3880
3874
|
return {
|
|
3881
3875
|
fileId: e,
|
|
@@ -3931,7 +3925,7 @@ var en = class {
|
|
|
3931
3925
|
async downloadFile(e) {
|
|
3932
3926
|
let { fileId: t, bucket: n, path: r, properties: i } = await this.getFileInfo(e), { data: a, error: o } = await this.client.from(n).download(r);
|
|
3933
3927
|
if (o) throw o;
|
|
3934
|
-
let [, s] =
|
|
3928
|
+
let [, s] = Mt(r);
|
|
3935
3929
|
return {
|
|
3936
3930
|
fileId: t,
|
|
3937
3931
|
bucket: n,
|
|
@@ -3943,7 +3937,7 @@ var en = class {
|
|
|
3943
3937
|
let n = t.filter((e) => "fileId" in e).map((e) => e.fileId), r = (await this.files.query.select(["bucket_id", "path_tokens"]).containedBy("id", n).throwOnError()).data.map(({ bucket_id: t, path_tokens: n }) => ({
|
|
3944
3938
|
bucket: e.notNull(t, "bucket_id must not be null"),
|
|
3945
3939
|
path: e.notNull(n, "path_tokens must not be null").join("/")
|
|
3946
|
-
})), i =
|
|
3940
|
+
})), i = Ft(Nt(t.filter((e) => Zt(e)).concat(r), (e) => e.bucket)).map(([e, t]) => ({
|
|
3947
3941
|
bucket: e,
|
|
3948
3942
|
paths: t.map((e) => e.path)
|
|
3949
3943
|
}));
|
|
@@ -3958,4 +3952,4 @@ var en = class {
|
|
|
3958
3952
|
}
|
|
3959
3953
|
};
|
|
3960
3954
|
//#endregion
|
|
3961
|
-
export { X as DataService,
|
|
3955
|
+
export { X as DataService, Xt as DatabaseService, Dt as FileNotFoundError, Ut as Filter, Ht as FilterChainSeparator, zt as FilterOp, Bt as LogicalOp, Vt as LogicalOpSeparator, Ot as ParseError, Yt as PostgrestClient, At as PostgrestErrorInterface, $ as PostgrestFilterBuilder, Jt as PostgrestQueryBuilder, kt as RecordNotFoundError, $t as StorageService, It as TableDataService, J as TracedError, Lt as ViewDataService, Rt as assertCounted, Y as coerceArray, Kt as encodeFilter, Z as encodeFilterNode, Ft as entries, Nt as groupBy, jt as isDatabaseApiError, Gt as negateFilterNode, Wt as negateOp, Q as parseFilterExpression, qt as parseFilterExpressionChain, Pt as removeElement, Mt as splitPath };
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"private": false,
|
|
4
4
|
"displayName": "Supabase-Core",
|
|
5
5
|
"description": "Lightweight services for supabase to make it easier to work with databases, tables and storage buckets",
|
|
6
|
-
"version": "2.0
|
|
6
|
+
"version": "2.1.0",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|