@lodestar/db 1.9.0-dev.f9848b5d80 → 1.9.0-dev.fb6a57af54
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/lib/abstractRepository.d.ts +3 -4
- package/lib/abstractRepository.js +4 -5
- package/lib/abstractRepository.js.map +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -1
- package/lib/index.js.map +1 -1
- package/lib/util.d.ts +5 -2
- package/lib/util.js +24 -13
- package/lib/util.js.map +1 -1
- package/package.json +5 -5
- package/lib/schema.d.ts +0 -49
- package/lib/schema.js +0 -107
- package/lib/schema.js.map +0 -1
|
@@ -2,7 +2,6 @@ import { ChainForkConfig } from "@lodestar/config";
|
|
|
2
2
|
import { Type } from "@chainsafe/ssz";
|
|
3
3
|
import { FilterOptions, KeyValue } from "./controller/index.js";
|
|
4
4
|
import { Db } from "./controller/interface.js";
|
|
5
|
-
import { Bucket } from "./schema.js";
|
|
6
5
|
export type Id = Uint8Array | string | number | bigint;
|
|
7
6
|
/**
|
|
8
7
|
* Repository is a high level kv storage
|
|
@@ -15,13 +14,13 @@ export type Id = Uint8Array | string | number | bigint;
|
|
|
15
14
|
export declare abstract class Repository<I extends Id, T> {
|
|
16
15
|
protected config: ChainForkConfig;
|
|
17
16
|
protected db: Db;
|
|
18
|
-
protected bucket:
|
|
17
|
+
protected bucket: number;
|
|
18
|
+
protected type: Type<T>;
|
|
19
19
|
private readonly bucketId;
|
|
20
20
|
private readonly dbReqOpts;
|
|
21
21
|
private readonly minKey;
|
|
22
22
|
private readonly maxKey;
|
|
23
|
-
protected type: Type<T
|
|
24
|
-
protected constructor(config: ChainForkConfig, db: Db, bucket: Bucket, type: Type<T>);
|
|
23
|
+
protected constructor(config: ChainForkConfig, db: Db, bucket: number, type: Type<T>, bucketId: string);
|
|
25
24
|
encodeValue(value: T): Uint8Array;
|
|
26
25
|
decodeValue(data: Uint8Array): T;
|
|
27
26
|
encodeKey(id: I): Uint8Array;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { BUCKET_LENGTH } from "./const.js";
|
|
2
|
-
import { encodeKey as _encodeKey } from "./
|
|
3
|
-
import { getBucketNameByValue } from "./util.js";
|
|
2
|
+
import { encodeKey as _encodeKey } from "./util.js";
|
|
4
3
|
/**
|
|
5
4
|
* Repository is a high level kv storage
|
|
6
5
|
* managing a Uint8Array to Uint8Array kv database
|
|
@@ -10,13 +9,13 @@ import { getBucketNameByValue } from "./util.js";
|
|
|
10
9
|
* indexed by root
|
|
11
10
|
*/
|
|
12
11
|
export class Repository {
|
|
13
|
-
constructor(config, db, bucket, type) {
|
|
12
|
+
constructor(config, db, bucket, type, bucketId) {
|
|
14
13
|
this.config = config;
|
|
15
14
|
this.db = db;
|
|
16
15
|
this.bucket = bucket;
|
|
17
|
-
this.bucketId = getBucketNameByValue(bucket);
|
|
18
|
-
this.dbReqOpts = { bucketId: this.bucketId };
|
|
19
16
|
this.type = type;
|
|
17
|
+
this.bucketId = bucketId;
|
|
18
|
+
this.dbReqOpts = { bucketId: this.bucketId };
|
|
20
19
|
this.minKey = _encodeKey(bucket, Buffer.alloc(0));
|
|
21
20
|
this.maxKey = _encodeKey(bucket + 1, Buffer.alloc(0));
|
|
22
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractRepository.js","sourceRoot":"","sources":["../src/abstractRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAGzC,OAAO,
|
|
1
|
+
{"version":3,"file":"abstractRepository.js","sourceRoot":"","sources":["../src/abstractRepository.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
package/lib/util.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export declare const uintLen = 8;
|
|
2
|
+
/**
|
|
3
|
+
* Prepend a bucket to a key
|
|
4
|
+
*/
|
|
5
|
+
export declare function encodeKey(bucket: number, key: Uint8Array | string | number | bigint): Uint8Array;
|
|
3
6
|
//# sourceMappingURL=util.d.ts.map
|
package/lib/util.js
CHANGED
|
@@ -1,16 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (
|
|
12
|
-
|
|
1
|
+
import { intToBytes } from "@lodestar/utils";
|
|
2
|
+
import { BUCKET_LENGTH } from "./const.js";
|
|
3
|
+
export const uintLen = 8;
|
|
4
|
+
/**
|
|
5
|
+
* Prepend a bucket to a key
|
|
6
|
+
*/
|
|
7
|
+
export function encodeKey(bucket, key) {
|
|
8
|
+
let buf;
|
|
9
|
+
const prefixLength = BUCKET_LENGTH;
|
|
10
|
+
//all keys are writen with prefixLength offet
|
|
11
|
+
if (typeof key === "string") {
|
|
12
|
+
buf = Buffer.alloc(key.length + prefixLength);
|
|
13
|
+
buf.write(key, prefixLength);
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
+
else if (typeof key === "number" || typeof key === "bigint") {
|
|
16
|
+
buf = Buffer.alloc(uintLen + prefixLength);
|
|
17
|
+
intToBytes(BigInt(key), uintLen, "be").copy(buf, prefixLength);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
buf = Buffer.alloc(key.length + prefixLength);
|
|
21
|
+
buf.set(key, prefixLength);
|
|
22
|
+
}
|
|
23
|
+
//bucket prefix on position 0
|
|
24
|
+
buf.set(intToBytes(bucket, BUCKET_LENGTH, "le"), 0);
|
|
25
|
+
return buf;
|
|
15
26
|
}
|
|
16
27
|
//# sourceMappingURL=util.js.map
|
package/lib/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAEzC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,GAA0C;IAClF,IAAI,GAAG,CAAC;IACR,MAAM,YAAY,GAAG,aAAa,CAAC;IACnC,6CAA6C;IAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;KAC9B;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC7D,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;QAC3C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;KAChE;SAAM;QACL,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;QAC9C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;KAC5B;IACD,6BAA6B;IAC7B,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodestar/db",
|
|
3
|
-
"version": "1.9.0-dev.
|
|
3
|
+
"version": "1.9.0-dev.fb6a57af54",
|
|
4
4
|
"description": "DB modules of Lodestar",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"homepage": "https://github.com/ChainSafe/lodestar#readme",
|
|
@@ -38,14 +38,14 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@chainsafe/ssz": "^0.10.2",
|
|
41
|
-
"@lodestar/config": "1.9.0-dev.
|
|
42
|
-
"@lodestar/utils": "1.9.0-dev.
|
|
41
|
+
"@lodestar/config": "1.9.0-dev.fb6a57af54",
|
|
42
|
+
"@lodestar/utils": "1.9.0-dev.fb6a57af54",
|
|
43
43
|
"@types/levelup": "^4.3.3",
|
|
44
44
|
"it-all": "^3.0.1",
|
|
45
45
|
"level": "^8.0.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@lodestar/logger": "1.9.0-dev.
|
|
48
|
+
"@lodestar/logger": "1.9.0-dev.fb6a57af54"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "45a7e63f4bca032edea2dcbfe2e3ca37fd557e14"
|
|
51
51
|
}
|
package/lib/schema.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export declare enum Bucket {
|
|
2
|
-
allForks_stateArchive = 0,
|
|
3
|
-
allForks_block = 1,
|
|
4
|
-
allForks_blockArchive = 2,
|
|
5
|
-
index_blockArchiveParentRootIndex = 3,
|
|
6
|
-
index_blockArchiveRootIndex = 4,
|
|
7
|
-
index_mainChain = 6,
|
|
8
|
-
index_chainInfo = 7,
|
|
9
|
-
phase0_eth1Data = 8,
|
|
10
|
-
index_depositDataRoot = 9,
|
|
11
|
-
phase0_depositEvent = 19,
|
|
12
|
-
phase0_preGenesisState = 30,
|
|
13
|
-
phase0_preGenesisStateLastProcessedBlock = 31,
|
|
14
|
-
phase0_depositData = 12,
|
|
15
|
-
phase0_exit = 13,
|
|
16
|
-
phase0_proposerSlashing = 14,
|
|
17
|
-
phase0_attesterSlashing = 15,
|
|
18
|
-
capella_blsToExecutionChange = 16,
|
|
19
|
-
phase0_slashingProtectionBlockBySlot = 20,
|
|
20
|
-
phase0_slashingProtectionAttestationByTarget = 21,
|
|
21
|
-
phase0_slashingProtectionAttestationLowerBound = 22,
|
|
22
|
-
index_slashingProtectionMinSpanDistance = 23,
|
|
23
|
-
index_slashingProtectionMaxSpanDistance = 24,
|
|
24
|
-
index_stateArchiveRootIndex = 26,
|
|
25
|
-
allForks_blobSidecars = 27,
|
|
26
|
-
allForks_blobSidecarsArchive = 28,
|
|
27
|
-
allForks_blobsSidecar = 29,
|
|
28
|
-
allForks_blobsSidecarArchive = 30,
|
|
29
|
-
lightClient_syncCommitteeWitness = 51,
|
|
30
|
-
lightClient_syncCommittee = 52,
|
|
31
|
-
lightClient_checkpointHeader = 53,
|
|
32
|
-
lightClient_bestLightClientUpdate = 56,
|
|
33
|
-
validator_metaData = 41,
|
|
34
|
-
backfilled_ranges = 42
|
|
35
|
-
}
|
|
36
|
-
export declare enum Key {
|
|
37
|
-
chainHeight = 0,
|
|
38
|
-
latestState = 1,
|
|
39
|
-
finalizedState = 2,
|
|
40
|
-
justifiedState = 3,
|
|
41
|
-
finalizedBlock = 4,
|
|
42
|
-
justifiedBlock = 5
|
|
43
|
-
}
|
|
44
|
-
export declare const uintLen = 8;
|
|
45
|
-
/**
|
|
46
|
-
* Prepend a bucket to a key
|
|
47
|
-
*/
|
|
48
|
-
export declare function encodeKey(bucket: Bucket, key: Uint8Array | string | number | bigint): Uint8Array;
|
|
49
|
-
//# sourceMappingURL=schema.d.ts.map
|
package/lib/schema.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { intToBytes } from "@lodestar/utils";
|
|
2
|
-
import { BUCKET_LENGTH } from "./const.js";
|
|
3
|
-
// Buckets are separate database namespaces
|
|
4
|
-
export var Bucket;
|
|
5
|
-
(function (Bucket) {
|
|
6
|
-
// beacon chain
|
|
7
|
-
// finalized states
|
|
8
|
-
Bucket[Bucket["allForks_stateArchive"] = 0] = "allForks_stateArchive";
|
|
9
|
-
// unfinalized blocks
|
|
10
|
-
Bucket[Bucket["allForks_block"] = 1] = "allForks_block";
|
|
11
|
-
// finalized blocks
|
|
12
|
-
Bucket[Bucket["allForks_blockArchive"] = 2] = "allForks_blockArchive";
|
|
13
|
-
// finalized block additional indices
|
|
14
|
-
Bucket[Bucket["index_blockArchiveParentRootIndex"] = 3] = "index_blockArchiveParentRootIndex";
|
|
15
|
-
Bucket[Bucket["index_blockArchiveRootIndex"] = 4] = "index_blockArchiveRootIndex";
|
|
16
|
-
// known bad block
|
|
17
|
-
// index_invalidBlock = 5, // DEPRECATED on v0.25.0
|
|
18
|
-
// finalized chain
|
|
19
|
-
Bucket[Bucket["index_mainChain"] = 6] = "index_mainChain";
|
|
20
|
-
// justified, finalized state and block hashes
|
|
21
|
-
Bucket[Bucket["index_chainInfo"] = 7] = "index_chainInfo";
|
|
22
|
-
// eth1 processing
|
|
23
|
-
Bucket[Bucket["phase0_eth1Data"] = 8] = "phase0_eth1Data";
|
|
24
|
-
Bucket[Bucket["index_depositDataRoot"] = 9] = "index_depositDataRoot";
|
|
25
|
-
Bucket[Bucket["phase0_depositEvent"] = 19] = "phase0_depositEvent";
|
|
26
|
-
Bucket[Bucket["phase0_preGenesisState"] = 30] = "phase0_preGenesisState";
|
|
27
|
-
Bucket[Bucket["phase0_preGenesisStateLastProcessedBlock"] = 31] = "phase0_preGenesisStateLastProcessedBlock";
|
|
28
|
-
// op pool
|
|
29
|
-
// phase0_attestation = 10, // DEPRECATED on v0.25.0
|
|
30
|
-
// phase0_aggregateAndProof = 11, // Root -> AggregateAndProof, DEPRECATED on v.27.0
|
|
31
|
-
Bucket[Bucket["phase0_depositData"] = 12] = "phase0_depositData";
|
|
32
|
-
Bucket[Bucket["phase0_exit"] = 13] = "phase0_exit";
|
|
33
|
-
Bucket[Bucket["phase0_proposerSlashing"] = 14] = "phase0_proposerSlashing";
|
|
34
|
-
Bucket[Bucket["phase0_attesterSlashing"] = 15] = "phase0_attesterSlashing";
|
|
35
|
-
Bucket[Bucket["capella_blsToExecutionChange"] = 16] = "capella_blsToExecutionChange";
|
|
36
|
-
// validator
|
|
37
|
-
// validator = 16, // DEPRECATED on v0.11.0
|
|
38
|
-
// lastProposedBlock = 17, // DEPRECATED on v0.11.0
|
|
39
|
-
// proposedAttestations = 18, // DEPRECATED on v0.11.0
|
|
40
|
-
// validator slashing protection
|
|
41
|
-
Bucket[Bucket["phase0_slashingProtectionBlockBySlot"] = 20] = "phase0_slashingProtectionBlockBySlot";
|
|
42
|
-
Bucket[Bucket["phase0_slashingProtectionAttestationByTarget"] = 21] = "phase0_slashingProtectionAttestationByTarget";
|
|
43
|
-
Bucket[Bucket["phase0_slashingProtectionAttestationLowerBound"] = 22] = "phase0_slashingProtectionAttestationLowerBound";
|
|
44
|
-
Bucket[Bucket["index_slashingProtectionMinSpanDistance"] = 23] = "index_slashingProtectionMinSpanDistance";
|
|
45
|
-
Bucket[Bucket["index_slashingProtectionMaxSpanDistance"] = 24] = "index_slashingProtectionMaxSpanDistance";
|
|
46
|
-
// allForks_pendingBlock = 25, // Root -> SignedBeaconBlock // DEPRECATED on v0.30.0
|
|
47
|
-
Bucket[Bucket["index_stateArchiveRootIndex"] = 26] = "index_stateArchiveRootIndex";
|
|
48
|
-
Bucket[Bucket["allForks_blobSidecars"] = 27] = "allForks_blobSidecars";
|
|
49
|
-
Bucket[Bucket["allForks_blobSidecarsArchive"] = 28] = "allForks_blobSidecarsArchive";
|
|
50
|
-
// TODO DENEB: cleanup the below buckets once BlobsSidecar fully migrated to BlobSidecars
|
|
51
|
-
// note: below buckets would not be in use till deneb hf so their number assignments
|
|
52
|
-
// can be ignored and safely deleted later on
|
|
53
|
-
Bucket[Bucket["allForks_blobsSidecar"] = 29] = "allForks_blobsSidecar";
|
|
54
|
-
Bucket[Bucket["allForks_blobsSidecarArchive"] = 30] = "allForks_blobsSidecarArchive";
|
|
55
|
-
// Lightclient server
|
|
56
|
-
// altair_bestUpdatePerCommitteePeriod = 30, // DEPRECATED on v0.32.0
|
|
57
|
-
// altair_latestFinalizedUpdate = 31, // DEPRECATED on v0.32.0
|
|
58
|
-
// altair_latestNonFinalizedUpdate = 32, // DEPRECATED on v0.32.0
|
|
59
|
-
// altair_lightclientFinalizedCheckpoint = 33, // DEPRECATED on v0.32.0
|
|
60
|
-
// altair_lightClientInitProof = 34, // DEPRECATED on v0.32.0
|
|
61
|
-
// altair_lightClientSyncCommitteeProof = 35, // DEPRECATED on v0.32.0
|
|
62
|
-
// index_lightClientInitProof = 36, // DEPRECATED on v0.32.0
|
|
63
|
-
// Buckets to support LightClient server v2
|
|
64
|
-
Bucket[Bucket["lightClient_syncCommitteeWitness"] = 51] = "lightClient_syncCommitteeWitness";
|
|
65
|
-
Bucket[Bucket["lightClient_syncCommittee"] = 52] = "lightClient_syncCommittee";
|
|
66
|
-
// TODO: May be redundant to block stores
|
|
67
|
-
Bucket[Bucket["lightClient_checkpointHeader"] = 53] = "lightClient_checkpointHeader";
|
|
68
|
-
// 54 was for bestPartialLightClientUpdate, allocate a fresh one
|
|
69
|
-
// lightClient_bestLightClientUpdate = 55, // SyncPeriod -> LightClientUpdate // DEPRECATED on v1.5.0
|
|
70
|
-
Bucket[Bucket["lightClient_bestLightClientUpdate"] = 56] = "lightClient_bestLightClientUpdate";
|
|
71
|
-
Bucket[Bucket["validator_metaData"] = 41] = "validator_metaData";
|
|
72
|
-
Bucket[Bucket["backfilled_ranges"] = 42] = "backfilled_ranges";
|
|
73
|
-
})(Bucket || (Bucket = {}));
|
|
74
|
-
export var Key;
|
|
75
|
-
(function (Key) {
|
|
76
|
-
Key[Key["chainHeight"] = 0] = "chainHeight";
|
|
77
|
-
Key[Key["latestState"] = 1] = "latestState";
|
|
78
|
-
Key[Key["finalizedState"] = 2] = "finalizedState";
|
|
79
|
-
Key[Key["justifiedState"] = 3] = "justifiedState";
|
|
80
|
-
Key[Key["finalizedBlock"] = 4] = "finalizedBlock";
|
|
81
|
-
Key[Key["justifiedBlock"] = 5] = "justifiedBlock";
|
|
82
|
-
})(Key || (Key = {}));
|
|
83
|
-
export const uintLen = 8;
|
|
84
|
-
/**
|
|
85
|
-
* Prepend a bucket to a key
|
|
86
|
-
*/
|
|
87
|
-
export function encodeKey(bucket, key) {
|
|
88
|
-
let buf;
|
|
89
|
-
const prefixLength = BUCKET_LENGTH;
|
|
90
|
-
//all keys are writen with prefixLength offet
|
|
91
|
-
if (typeof key === "string") {
|
|
92
|
-
buf = Buffer.alloc(key.length + prefixLength);
|
|
93
|
-
buf.write(key, prefixLength);
|
|
94
|
-
}
|
|
95
|
-
else if (typeof key === "number" || typeof key === "bigint") {
|
|
96
|
-
buf = Buffer.alloc(uintLen + prefixLength);
|
|
97
|
-
intToBytes(BigInt(key), uintLen, "be").copy(buf, prefixLength);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
buf = Buffer.alloc(key.length + prefixLength);
|
|
101
|
-
buf.set(key, prefixLength);
|
|
102
|
-
}
|
|
103
|
-
//bucket prefix on position 0
|
|
104
|
-
buf.set(intToBytes(bucket, BUCKET_LENGTH, "le"), 0);
|
|
105
|
-
return buf;
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=schema.js.map
|
package/lib/schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|