@activeledger/activeprotocol 2.15.7 → 4.3.4

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.
Files changed (49) hide show
  1. package/es/protocol/interfaces/vm.interface.d.ts +6 -4
  2. package/es/protocol/interfaces/vm.interface.d.ts.map +1 -1
  3. package/es/protocol/permissionsChecker.d.ts +5 -3
  4. package/es/protocol/permissionsChecker.d.ts.map +1 -1
  5. package/es/protocol/permissionsChecker.js +149 -120
  6. package/es/protocol/permissionsChecker.js.map +1 -1
  7. package/es/protocol/process.d.ts +10 -9
  8. package/es/protocol/process.d.ts.map +1 -1
  9. package/es/protocol/process.js +276 -214
  10. package/es/protocol/process.js.map +1 -1
  11. package/es/protocol/shared.d.ts +6 -2
  12. package/es/protocol/shared.d.ts.map +1 -1
  13. package/es/protocol/shared.js +41 -29
  14. package/es/protocol/shared.js.map +1 -1
  15. package/es/protocol/streamUpdater.d.ts +1 -6
  16. package/es/protocol/streamUpdater.d.ts.map +1 -1
  17. package/es/protocol/streamUpdater.js +80 -109
  18. package/es/protocol/streamUpdater.js.map +1 -1
  19. package/es/protocol/vm.d.ts +12 -5
  20. package/es/protocol/vm.d.ts.map +1 -1
  21. package/es/protocol/vm.js +212 -137
  22. package/es/protocol/vm.js.map +1 -1
  23. package/es/protocol/vmscript.js +23 -10
  24. package/es/protocol/vmscript.js.map +1 -1
  25. package/lib/protocol/interfaces/vm.interface.d.ts +6 -4
  26. package/lib/protocol/interfaces/vm.interface.d.ts.map +1 -1
  27. package/lib/protocol/permissionsChecker.d.ts +5 -3
  28. package/lib/protocol/permissionsChecker.d.ts.map +1 -1
  29. package/lib/protocol/permissionsChecker.js +149 -120
  30. package/lib/protocol/permissionsChecker.js.map +1 -1
  31. package/lib/protocol/process.d.ts +10 -9
  32. package/lib/protocol/process.d.ts.map +1 -1
  33. package/lib/protocol/process.js +276 -240
  34. package/lib/protocol/process.js.map +1 -1
  35. package/lib/protocol/shared.d.ts +6 -2
  36. package/lib/protocol/shared.d.ts.map +1 -1
  37. package/lib/protocol/shared.js +41 -29
  38. package/lib/protocol/shared.js.map +1 -1
  39. package/lib/protocol/streamUpdater.d.ts +1 -6
  40. package/lib/protocol/streamUpdater.d.ts.map +1 -1
  41. package/lib/protocol/streamUpdater.js +80 -109
  42. package/lib/protocol/streamUpdater.js.map +1 -1
  43. package/lib/protocol/vm.d.ts +12 -5
  44. package/lib/protocol/vm.d.ts.map +1 -1
  45. package/lib/protocol/vm.js +211 -136
  46. package/lib/protocol/vm.js.map +1 -1
  47. package/lib/protocol/vmscript.js +23 -9
  48. package/lib/protocol/vmscript.js.map +1 -1
  49. package/package.json +10 -10
@@ -1,12 +1,17 @@
1
+ import { ActiveLogger } from "@activeledger/activelogger";
1
2
  class ContractControl {
3
+ smartContracts;
2
4
  constructor() {
3
5
  this.smartContracts = {};
4
6
  }
7
+ contracts = {};
5
8
  initialiseContract(payload, event, emitter) {
6
- var _a;
7
- const contractData = ((_a = payload.contractData) === null || _a === void 0 ? void 0 : _a.data) ? payload.contractData : {};
9
+ const contractData = payload.contractData?.data ? payload.contractData : {};
10
+ if (!this.contracts[payload.contractLocation]) {
11
+ this.contracts[payload.contractLocation] = require(payload.contractLocation).default;
12
+ }
8
13
  this.smartContracts[payload.umid] =
9
- new (require(payload.contractLocation).default)(payload.date, payload.remoteAddress, payload.umid, payload.transaction, payload.inputs, payload.outputs, payload.readonly, contractData, payload.signatures, payload.key, emitter, global.self);
14
+ new this.contracts[payload.contractLocation](payload.date, payload.remoteAddress, payload.umid, payload.transaction, payload.inputs, payload.outputs, payload.readonly, contractData, payload.signatures, payload.key, emitter, global.self);
10
15
  if ("setEvent" in this.smartContracts[payload.umid]) {
11
16
  this.smartContracts[payload.umid].setEvent(event);
12
17
  }
@@ -35,20 +40,18 @@ class ContractControl {
35
40
  return this.smartContracts[umid].throwTo;
36
41
  }
37
42
  async runRead(umid, readMethod) {
38
- var _a, _b;
39
- const read = (_b = (_a = this.smartContracts[umid])[readMethod]) === null || _b === void 0 ? void 0 : _b.call(_a);
43
+ const read = this.smartContracts[umid][readMethod]?.();
40
44
  return read ? read : false;
41
45
  }
42
46
  async runVerify(umid, sigless) {
43
- var _a, _b;
44
- const verify = (_b = (_a = this.smartContracts[umid]).verify) === null || _b === void 0 ? void 0 : _b.call(_a, sigless);
47
+ const verify = this.smartContracts[umid].verify?.(sigless);
45
48
  return verify ? verify : true;
46
49
  }
47
50
  runVote(umid) {
48
51
  try {
49
52
  return this.smartContracts[umid].vote();
50
53
  }
51
- catch (_a) {
54
+ catch {
52
55
  return Promise.resolve(false);
53
56
  }
54
57
  }
@@ -77,7 +80,18 @@ class ContractControl {
77
80
  }
78
81
  }
79
82
  destroy(umid) {
80
- delete this.smartContracts[umid];
83
+ try {
84
+ if (this.smartContracts[umid] && "shutdown" in this.smartContracts[umid]) {
85
+ ActiveLogger.info(`[AC] - Calling Shutdown - ${umid}`);
86
+ this.smartContracts[umid].shutdown();
87
+ }
88
+ setTimeout(() => {
89
+ ActiveLogger.info(`[AC] - Deleting - ${umid}`);
90
+ delete this.smartContracts[umid];
91
+ }, 5000);
92
+ }
93
+ catch {
94
+ }
81
95
  }
82
96
  getTimeout(umid) {
83
97
  return this.smartContracts[umid]
@@ -101,5 +115,4 @@ class ContractControl {
101
115
  module.exports = (function () {
102
116
  return new ContractControl();
103
117
  })();
104
- export {};
105
118
  //# sourceMappingURL=vmscript.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vmscript.js","sourceRoot":"","sources":["../../src/protocol/vmscript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vmscript.js","sourceRoot":"","sources":["../../src/protocol/vmscript.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { ActiveDefinitions } from "@activeledger/activedefinitions";
3
- import { Standard, PostProcessQueryEvent, Activity } from "@activeledger/activecontracts";
3
+ import { Standard, Activity, PostProcessEvent } from "@activeledger/activecontracts";
4
4
  import { EventEngine } from "@activeledger/activequery";
5
5
  import { EventEmitter } from "events";
6
6
  export interface IVMObject {
@@ -32,10 +32,10 @@ export interface IVMDataPayload {
32
32
  outputs: ActiveDefinitions.LedgerStream[];
33
33
  readonly: ActiveDefinitions.LedgerIORputs;
34
34
  key: number;
35
- contractData?: ActiveDefinitions.IContractData;
35
+ contractData?: ActiveDefinitions.IContractData | undefined | null;
36
36
  }
37
37
  export interface IVMInternalCache {
38
- [umid: string]: PostProcessQueryEvent | Standard;
38
+ [umid: string]: PostProcessEvent | Standard;
39
39
  }
40
40
  export interface IContractKeyHolder {
41
41
  [umid: string]: number;
@@ -56,10 +56,12 @@ export interface IVMContractHolder {
56
56
  export interface IVirtualMachine {
57
57
  initialiseVirtualMachine(extraBuiltins?: string[], extraExternals?: string[], extraMocks?: string[]): void;
58
58
  getActivityStreamsFromVM(umid: string): ActiveDefinitions.LedgerStream[];
59
+ getNewContractData(umid: string): boolean;
59
60
  getInternodeCommsFromVM(umid: string): any;
60
61
  clearingInternodeCommsFromVM(umid: string): boolean;
61
62
  getReturnContractData(umid: string): unknown;
62
63
  getThrowsFromVM(umid: string): string[];
64
+ getEvents(umid: string): any[];
63
65
  destroy(umid: string): void;
64
66
  getInputs(umid: string): ActiveDefinitions.LedgerStream[];
65
67
  initialise(payload: IVMDataPayload, contractName: string): Promise<void>;
@@ -70,7 +72,7 @@ export interface IVirtualMachine {
70
72
  }>;
71
73
  commit(nodes: ActiveDefinitions.INodes, possibleTerritoriality: boolean, umid: string): Promise<boolean>;
72
74
  postProcess(territoriality: boolean, who: string, umid: string): Promise<any>;
73
- reconcile(nodes: ActiveDefinitions.INodes, umid: string): Promise<boolean>;
75
+ reconcile(nodes: ActiveDefinitions.INodes, umid: string): Promise<any>;
74
76
  }
75
77
  export {};
76
78
  //# sourceMappingURL=vm.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vm.interface.d.ts","sourceRoot":"","sources":["../../../src/protocol/interfaces/vm.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vm.interface.d.ts","sourceRoot":"","sources":["../../../src/protocol/interfaces/vm.interface.ts"],"names":[],"mappings":"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"}
@@ -5,15 +5,17 @@ import { Shared } from "./shared";
5
5
  export declare class PermissionsChecker {
6
6
  private entry;
7
7
  private db;
8
- private checkRevs;
9
8
  private securityCache;
10
9
  private shared;
11
10
  private inputs;
12
11
  private data;
13
- constructor(entry: ActiveDefinitions.LedgerEntry, db: ActiveDSConnect, checkRevs: boolean, securityCache: ISecurityCache, shared: Shared);
14
- process(data: string[], inputs?: boolean): Promise<ActiveDefinitions.LedgerStream[]>;
12
+ constructor(entry: ActiveDefinitions.LedgerEntry, db: ActiveDSConnect, securityCache: ISecurityCache, shared: Shared);
13
+ process(data: string[], inputs?: boolean, retry?: number): Promise<ActiveDefinitions.LedgerStream[]>;
14
+ private sleep;
15
15
  private buildPromises;
16
16
  private processStreams;
17
17
  private signatureCheck;
18
+ private checkMultiSignature;
19
+ private checkSingleSignature;
18
20
  }
19
21
  //# sourceMappingURL=permissionsChecker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissionsChecker.d.ts","sourceRoot":"","sources":["../../src/protocol/permissionsChecker.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQlC,qBAAa,kBAAkB;IAkB3B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IAfhB,OAAO,CAAC,MAAM,CAAU;IAQxB,OAAO,CAAC,IAAI,CAAW;gBAGb,KAAK,EAAE,iBAAiB,CAAC,WAAW,EACpC,EAAE,EAAE,eAAe,EACnB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,MAAM;IAUX,OAAO,CAClB,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,OAAc,GACrB,OAAO,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;YAsB9B,aAAa;IAsI3B,OAAO,CAAC,cAAc;IA8GtB,OAAO,CAAC,cAAc;CAuHvB"}
1
+ {"version":3,"file":"permissionsChecker.d.ts","sourceRoot":"","sources":["../../src/protocol/permissionsChecker.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASlC,qBAAa,kBAAkB;IAkB3B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,EAAE;IAEV,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IAfhB,OAAO,CAAC,MAAM,CAAU;IAQxB,OAAO,CAAC,IAAI,CAAW;gBAGb,KAAK,EAAE,iBAAiB,CAAC,WAAW,EACpC,EAAE,EAAE,eAAe,EAEnB,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,MAAM;IAUX,OAAO,CAClB,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,OAAc,EACtB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;IA2C5C,OAAO,CAAC,KAAK;YAUC,aAAa;IA0J3B,OAAO,CAAC,cAAc;IAkItB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,oBAAoB;CAkC7B"}
@@ -2,15 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PermissionsChecker = void 0;
4
4
  const activedefinitions_1 = require("@activeledger/activedefinitions");
5
+ const activelogger_1 = require("@activeledger/activelogger");
5
6
  class PermissionsChecker {
6
- constructor(entry, db, checkRevs, securityCache, shared) {
7
+ entry;
8
+ db;
9
+ securityCache;
10
+ shared;
11
+ inputs;
12
+ data;
13
+ constructor(entry, db, securityCache, shared) {
7
14
  this.entry = entry;
8
15
  this.db = db;
9
- this.checkRevs = checkRevs;
10
16
  this.securityCache = securityCache;
11
17
  this.shared = shared;
12
18
  }
13
- async process(data, inputs = true) {
19
+ async process(data, inputs = true, retry = 0) {
14
20
  this.inputs = inputs;
15
21
  this.data = data;
16
22
  try {
@@ -18,69 +24,90 @@ class PermissionsChecker {
18
24
  return this.processStreams(streams);
19
25
  }
20
26
  catch (error) {
21
- return Promise.reject(error);
27
+ const allowedRetries = 6;
28
+ const waitTime = 250;
29
+ if (retry >= allowedRetries) {
30
+ activelogger_1.ActiveLogger.info(this.data, `Error Fetching Streams after ${allowedRetries} retries, giving up`);
31
+ return Promise.reject(error);
32
+ }
33
+ else {
34
+ activelogger_1.ActiveLogger.info(this.data, `Error Fetching Streams retry ${retry} of ${allowedRetries} with ${waitTime}ms wait - ${this.entry.$umid}`);
35
+ await this.sleep(waitTime);
36
+ activelogger_1.ActiveLogger.info(error, `Retrying PermissionsChecker due to - ${this.entry.$umid}`);
37
+ return await this.process(data, inputs, ++retry);
38
+ }
22
39
  }
23
40
  }
41
+ sleep(time) {
42
+ return new Promise((resolve) => setTimeout(resolve, time));
43
+ }
24
44
  async buildPromises() {
25
- const keys = [];
45
+ const keys = new Set();
26
46
  let contractDataIncluded = false;
27
- for (let i = this.data.length; i--;) {
28
- const filteredPrefix = this.shared.filterPrefix(this.data[i], true);
29
- const suffix = this.data[i].split(":")[1];
47
+ for (const streamId of this.data) {
48
+ const filteredPrefix = this.shared.filterPrefix(streamId, true);
49
+ const suffix = streamId.split(":")[1];
30
50
  contractDataIncluded = suffix === "data";
31
- if (keys.indexOf(filteredPrefix) === -1) {
32
- keys.push(filteredPrefix + ":stream");
33
- keys.push(filteredPrefix);
51
+ if (suffix !== "data") {
52
+ keys.add(filteredPrefix + ":stream");
53
+ }
54
+ if (!this.shared.sigOnly[filteredPrefix]) {
55
+ keys.add(filteredPrefix);
34
56
  }
35
57
  }
58
+ const keyArray = Array.from(keys);
36
59
  try {
37
- const docs = await this.db.allDocs({
38
- keys,
39
- include_docs: true,
40
- });
41
60
  const reorder = {};
42
61
  const results = [];
43
- for (let i = docs.rows.length; i--;) {
44
- const baseDoc = docs.rows[i].doc._id.replace(":stream", "");
45
- let iMeta = null;
46
- let iState = null;
47
- if (baseDoc === docs.rows[i].doc._id) {
48
- iState = docs.rows[i].doc;
49
- }
50
- else {
51
- iMeta = docs.rows[i].doc;
52
- if (iMeta.contractlock &&
53
- iMeta.contractlock.length &&
54
- iMeta.contractlock.indexOf(this.entry.$tx.$contract) === -1) {
55
- throw {
56
- code: 1700,
57
- reason: "Stream contract locked",
58
- };
59
- }
60
- if (iMeta.namespaceLock &&
61
- iMeta.namespaceLock.length &&
62
- iMeta.namespaceLock.indexOf(this.entry.$tx.$namespace) === -1) {
63
- throw {
64
- code: 1710,
65
- reason: "Stream namespace locked",
66
- };
67
- }
68
- }
69
- if (!reorder[baseDoc]) {
70
- reorder[baseDoc] = results.push({
71
- state: iState,
72
- meta: iMeta,
73
- });
74
- }
75
- else {
76
- const result = results[reorder[baseDoc] - 1];
77
- if (result.state) {
78
- if (iMeta)
79
- result.meta = iMeta;
80
- }
81
- else {
82
- if (iState)
83
- result.state = iState;
62
+ if (keyArray.length) {
63
+ const docs = await this.db.allDocs({
64
+ keys: keyArray,
65
+ include_docs: true,
66
+ });
67
+ if (docs?.rows) {
68
+ for (let i = docs.rows.length; i--;) {
69
+ const baseDoc = docs.rows[i].doc._id.replace(":stream", "");
70
+ let iMeta = null;
71
+ let iState = null;
72
+ if (baseDoc === docs.rows[i].doc._id) {
73
+ iState = docs.rows[i].doc;
74
+ }
75
+ else {
76
+ iMeta = docs.rows[i].doc;
77
+ if (iMeta.contractlock &&
78
+ iMeta.contractlock.length &&
79
+ iMeta.contractlock.indexOf(this.entry.$tx.$contract) === -1) {
80
+ throw {
81
+ code: 1700,
82
+ reason: "Stream contract locked",
83
+ };
84
+ }
85
+ if (iMeta.namespaceLock &&
86
+ iMeta.namespaceLock.length &&
87
+ iMeta.namespaceLock.indexOf(this.entry.$tx.$namespace) === -1) {
88
+ throw {
89
+ code: 1710,
90
+ reason: "Stream namespace locked",
91
+ };
92
+ }
93
+ }
94
+ if (!reorder[baseDoc]) {
95
+ reorder[baseDoc] = results.push({
96
+ state: iState,
97
+ meta: iMeta,
98
+ });
99
+ }
100
+ else {
101
+ const result = results[reorder[baseDoc] - 1];
102
+ if (result.state) {
103
+ if (iMeta)
104
+ result.meta = iMeta;
105
+ }
106
+ else {
107
+ if (iState)
108
+ result.state = iState;
109
+ }
110
+ }
84
111
  }
85
112
  }
86
113
  }
@@ -91,13 +118,15 @@ class PermissionsChecker {
91
118
  let cRes = results[i];
92
119
  cRes.meta = {
93
120
  _id: `${cRes.state._id}:meta`,
94
- _rev: "0-context"
121
+ _rev: "0-context",
95
122
  };
96
123
  results[i] = cRes;
124
+ keyArray.push(`${cRes.state._id}:meta`);
97
125
  }
98
126
  }
99
127
  }
100
- if (results.length === (keys.length / 2)) {
128
+ const sigOnlyAdjustment = this.data.filter(id => this.shared.sigOnly[this.shared.filterPrefix(id, true)]).length;
129
+ if (results.length * 2 === (keyArray.length + sigOnlyAdjustment)) {
101
130
  return results;
102
131
  }
103
132
  else {
@@ -108,8 +137,11 @@ class PermissionsChecker {
108
137
  }
109
138
  }
110
139
  catch (error) {
111
- error.code = 950;
112
- error.reason = "Stream(s) not found";
140
+ activelogger_1.ActiveLogger.error(error, "Error fetching streams for permissions check - " + this.entry.$umid);
141
+ if (!error.code) {
142
+ error.code = 950;
143
+ error.reason = "Stream(s) not found";
144
+ }
113
145
  throw error;
114
146
  }
115
147
  }
@@ -118,14 +150,15 @@ class PermissionsChecker {
118
150
  let i = stream.length;
119
151
  while (i--) {
120
152
  let streamId = stream[i].state._id;
153
+ const filteredStreamId = this.shared.filterPrefix(streamId);
121
154
  const revType = this.inputs ? this.entry.$revs.$i : this.entry.$revs.$o;
122
155
  const currentRevision = stream[i].meta._rev + ":" + stream[i].state._rev;
123
156
  if (revType && revType[streamId]) {
124
- if (revType[streamId] !== currentRevision) {
157
+ if ((revType[streamId] !== currentRevision) && !this.shared.sigOnly[filteredStreamId]) {
125
158
  return reject({
126
159
  code: 1200,
127
160
  reason: (this.inputs ? "Input" : "Output") +
128
- " Stream Position Incorrect",
161
+ ` Stream Position Incorrect (${revType[streamId]} !== ${currentRevision} - Local)`,
129
162
  });
130
163
  }
131
164
  }
@@ -150,11 +183,11 @@ class PermissionsChecker {
150
183
  }
151
184
  }
152
185
  if (stream[i].meta.authorities) {
153
- this.signatureCheck(streamId, stream[i], nhpkCheck, nhpkCheckIO, reject);
186
+ this.signatureCheck(streamId, filteredStreamId, stream[i], nhpkCheck, nhpkCheckIO, reject);
154
187
  }
155
188
  else {
156
189
  const type = stream[i].meta.type ? stream[i].meta.type : "rsa";
157
- const sigCheck = this.shared.signatureCheck(stream[i].meta.public, this.entry.$sigs[this.shared.filterPrefix(streamId)], type);
190
+ const sigCheck = this.shared.signatureCheck(stream[i].meta.public, this.entry.$sigs[filteredStreamId], type);
158
191
  if (!sigCheck) {
159
192
  return reject({
160
193
  code: 1220,
@@ -162,77 +195,73 @@ class PermissionsChecker {
162
195
  });
163
196
  }
164
197
  }
198
+ if (this.shared.sigOnly[streamId]) {
199
+ stream.splice(i, 1);
200
+ }
165
201
  }
166
202
  }
167
203
  resolve(stream);
168
204
  });
169
205
  }
170
- signatureCheck(streamId, stream, nhpkCheck, nhpkCheckIO, reject) {
171
- const sigCheck = (authority) => this.shared.signatureCheck(authority.public, this.entry.$sigs[this.shared.filterPrefix(streamId)], authority.type);
172
- const isLedgerAuthSignatures = activedefinitions_1.ActiveDefinitions.LedgerTypeChecks.isLedgerAuthSignatures(this.entry.$sigs[this.shared.filterPrefix(streamId)]);
173
- if (isLedgerAuthSignatures) {
174
- const sigStreamKeys = Object.keys(this.entry.$sigs[this.shared.filterPrefix(streamId)]);
175
- const authorities = stream.meta.authorities.length;
176
- if (sigStreamKeys.length > authorities) {
177
- return reject({
178
- code: 1225,
179
- reason: (this.inputs ? "Input" : "Output") +
180
- " Incorrect Signature List Length",
181
- });
182
- }
183
- const sigCheck = sigStreamKeys.every((sigStream) => {
184
- if (nhpkCheck) {
185
- const nhpk = false;
186
- if (!nhpk) {
187
- return reject({
188
- code: 1230,
189
- reason: (this.inputs ? "Input" : "Output") +
190
- " Security Hardened Key Transactions Only",
191
- });
192
- }
193
- }
194
- else {
195
- const signature = this.entry.$sigs[this.shared.filterPrefix(streamId)][sigStream];
196
- const authCheck = stream.meta.authorities.some((authority) => {
197
- if (authority.hash === sigStream) {
198
- return this.shared.signatureCheck(authority.public, signature, authority.type);
199
- }
200
- else {
201
- return false;
202
- }
203
- });
204
- return authCheck;
205
- }
206
+ signatureCheck(streamId, filteredStreamId, stream, nhpkCheck, nhpkCheckIO, reject) {
207
+ const sigCheck = (authority) => this.shared.signatureCheck(authority.public, this.entry.$sigs[filteredStreamId], authority.type);
208
+ const signatureContainer = this.entry.$sigs[filteredStreamId];
209
+ if (activedefinitions_1.ActiveDefinitions.LedgerTypeChecks.isLedgerAuthSignatures(signatureContainer)) {
210
+ this.checkMultiSignature(streamId, stream, signatureContainer, nhpkCheck, reject);
211
+ }
212
+ else {
213
+ this.checkSingleSignature(streamId, filteredStreamId, stream, signatureContainer, nhpkCheck, nhpkCheckIO, reject);
214
+ }
215
+ }
216
+ checkMultiSignature(streamId, stream, signatureContainer, nhpkCheck, reject) {
217
+ const sigStreamKeys = Object.keys(signatureContainer);
218
+ if (sigStreamKeys.length > stream.meta.authorities.length) {
219
+ return reject({
220
+ code: 1225,
221
+ reason: `${this.inputs ? "Input" : "Output"} Incorrect Signature List Length`,
206
222
  });
207
- if (!sigCheck) {
223
+ }
224
+ const allSignaturesValid = sigStreamKeys.every((sigStream) => {
225
+ if (nhpkCheck) {
226
+ return false;
208
227
  }
228
+ const signature = signatureContainer[sigStream];
229
+ return stream.meta.authorities.some((authority) => authority.hash === sigStream && this.shared.signatureCheck(authority.public, signature, authority.type));
230
+ });
231
+ if (!allSignaturesValid) {
232
+ return reject({
233
+ code: 1220,
234
+ reason: `${this.inputs ? "Input" : "Output"} Signature Incorrect`,
235
+ });
209
236
  }
210
- else {
211
- const authorityCheck = stream.meta.authorities.some((authority) => {
237
+ }
238
+ checkSingleSignature(streamId, filteredStreamId, stream, signature, nhpkCheck, nhpkCheckIO, reject) {
239
+ const authorityCheck = stream.meta.authorities.some((authority) => {
240
+ if (nhpkCheck) {
212
241
  const nhpk = nhpkCheckIO[this.shared.getLabelIOMap(this.inputs, streamId)].$nhpk;
213
- if (nhpkCheck && !nhpk) {
214
- return reject({
242
+ if (!nhpk) {
243
+ reject({
215
244
  code: 1230,
216
- reason: (this.inputs ? "Input" : "Output") +
217
- " Security Hardened Key Transactions Only",
245
+ reason: `${this.inputs ? "Input" : "Output"} Security Hardened Key Transactions Only`,
218
246
  });
247
+ return false;
219
248
  }
220
- if (authority.hash && sigCheck(authority)) {
221
- this.entry.$sigs[this.shared.filterPrefix(streamId)] = {
222
- [authority.hash]: this.entry.$sigs[this.shared.filterPrefix(streamId)],
249
+ }
250
+ if (this.shared.signatureCheck(authority.public, signature, authority.type)) {
251
+ if (authority.hash) {
252
+ this.entry.$sigs[filteredStreamId] = {
253
+ [authority.hash]: signature,
223
254
  };
224
- return true;
225
255
  }
226
- else {
227
- return false;
228
- }
229
- });
230
- if (!authorityCheck) {
231
- return reject({
232
- code: 1220,
233
- reason: (this.inputs ? "Input" : "Output") + " Signature Incorrect",
234
- });
256
+ return true;
235
257
  }
258
+ return false;
259
+ });
260
+ if (!authorityCheck) {
261
+ reject({
262
+ code: 1220,
263
+ reason: `${this.inputs ? "Input" : "Output"} Signature Incorrect`,
264
+ });
236
265
  }
237
266
  }
238
267
  }
@@ -1 +1 @@
1
- {"version":3,"file":"permissionsChecker.js","sourceRoot":"","sources":["../../src/protocol/permissionsChecker.ts"],"names":[],"mappings":";;;AAwBA,uEAAoE;AAUpE,MAAa,kBAAkB;IAiB7B,YACU,KAAoC,EACpC,EAAmB,EACnB,SAAkB,EAClB,aAA6B,EAC7B,MAAc;QAJd,UAAK,GAAL,KAAK,CAA+B;QACpC,OAAE,GAAF,EAAE,CAAiB;QACnB,cAAS,GAAT,SAAS,CAAS;QAClB,kBAAa,GAAb,aAAa,CAAgB;QAC7B,WAAM,GAAN,MAAM,CAAQ;IACpB,CAAC;IASE,KAAK,CAAC,OAAO,CAClB,IAAc,EACd,SAAkB,IAAI;QAEtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAIjB,IAAI;YAEF,MAAM,OAAO,GAAqC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAE7E,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SACrC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAQO,KAAK,CAAC,aAAa;QAEzB,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,oBAAoB,GAAG,KAAK,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG;YAEnC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAGpE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,oBAAoB,GAAG,MAAM,KAAK,MAAM,CAAC;YAGzC,IAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC3B;SACF;QAGD,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;gBACjC,IAAI;gBACJ,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAGH,MAAM,OAAO,GAET,EAAE,CAAC;YACP,MAAM,OAAO,GAAqC,EAAE,CAAC;YAGrD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG;gBAGnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC5D,IAAI,KAAK,GAAmC,IAAI,CAAC;gBACjD,IAAI,MAAM,GAAwC,IAAI,CAAC;gBACvD,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;oBAEpC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAmC,CAAC;iBAC3D;qBAAM;oBAGL,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAA8B,CAAC;oBAEpD,IACE,KAAK,CAAC,YAAY;wBAClB,KAAK,CAAC,YAAY,CAAC,MAAM;wBACzB,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAC3D;wBAEA,MAAM;4BACJ,IAAI,EAAE,IAAI;4BACV,MAAM,EAAE,wBAAwB;yBACjC,CAAC;qBACH;oBAGD,IACE,KAAK,CAAC,aAAa;wBACnB,KAAK,CAAC,aAAa,CAAC,MAAM;wBAC1B,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAC7D;wBAEA,MAAM;4BACJ,IAAI,EAAE,IAAI;4BACV,MAAM,EAAE,yBAAyB;yBAClC,CAAC;qBACH;iBACF;gBAGD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACrB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;wBAC9B,KAAK,EAAE,MAAa;wBACpB,IAAI,EAAE,KAAY;qBACnB,CAAC,CAAC;iBACJ;qBAAM;oBAEL,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7C,IAAI,MAAM,CAAC,KAAK,EAAE;wBAChB,IAAI,KAAK;4BAAE,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;qBAChC;yBAAM;wBACL,IAAI,MAAM;4BAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;qBACnC;iBACF;aACF;YAGD,IAAI,oBAAoB,EAAE;gBAExB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG;oBACjC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;oBAEjC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;wBAC/B,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;wBACtB,IAAI,CAAC,IAAI,GAAG;4BACV,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO;4BAC7B,IAAI,EAAE,WAAW;yBAClB,CAAA;wBAED,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;qBACnB;iBACF;aACF;YAGD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;gBACxC,OAAO,OAAO,CAAC;aAChB;iBAAM;gBACL,MAAM;oBACJ,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,qBAAqB;iBAC9B,CAAC;aACH;SACF;QAAC,OAAO,KAAK,EAAE;YAEd,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;YACjB,KAAK,CAAC,MAAM,GAAG,qBAAqB,CAAC;YAErC,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IASO,cAAc,CACpB,MAAwC;QAExC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACtB,OAAO,CAAC,EAAE,EAAE;gBAEV,IAAI,QAAQ,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAa,CAAC;gBAGrD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAExE,MAAM,eAAe,GACnB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBAGnD,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,eAAe,EAAE;wBACzC,OAAO,MAAM,CAAC;4BACZ,IAAI,EAAE,IAAI;4BACV,MAAM,EACJ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;gCAClC,4BAA4B;yBAC/B,CAAC,CAAC;qBACJ;iBACF;qBAAM;oBACL,OAAO,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC;iBACrC;gBAGD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;oBAEnD,IAAI,SAAS,GAAG,KAAK,CAAC;oBAGtB,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBAGtE,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;wBAInC,MAAM,aAAa,GACjB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;6BAC1D,KAAK,CAAC;wBAEX,IAAI,CAAC,aAAa,EAAE;4BAClB,OAAO,MAAM,CAAC;gCACZ,IAAI,EAAE,IAAI;gCACV,MAAM,EACJ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;oCACnC,0CAA0C;6BAC7C,CAAC,CAAC;yBACJ;6BAAM;4BACL,SAAS,GAAG,IAAI,CAAC;yBAClB;qBACF;oBAGD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;wBAO9B,IAAI,CAAC,cAAc,CACjB,QAAQ,EACR,MAAM,CAAC,CAAC,CAAC,EACT,SAAS,EACT,WAAW,EACX,MAAM,CACP,CAAC;qBACH;yBAAM;wBAEL,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;wBAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CACzC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAgB,EAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAW,EAC9D,IAAI,CACL,CAAC;wBAEF,IAAI,CAAC,QAAQ,EAAE;4BAEb,OAAO,MAAM,CAAC;gCACZ,IAAI,EAAE,IAAI;gCACV,MAAM,EACJ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,sBAAsB;6BAC9D,CAAC,CAAC;yBACJ;qBACF;iBACF;aACF;YAGD,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAaO,cAAc,CACpB,QAAgB,EAChB,MAAsC,EACtC,SAAkB,EAClB,WAA4C,EAC5C,MAA6B;QAE7B,MAAM,QAAQ,GAAG,CAAC,SAA6C,EAAW,EAAE,CAC1E,IAAI,CAAC,MAAM,CAAC,cAAc,CACxB,SAAS,CAAC,MAAM,EAChB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAW,EAC9D,SAAS,CAAC,IAAI,CACf,CAAC;QAEJ,MAAM,sBAAsB,GAAG,qCAAiB,CAAC,gBAAgB,CAAC,sBAAsB,CACtF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CACrD,CAAC;QAEF,IAAI,sBAAsB,EAAE;YAI1B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACnD,IAAI,aAAa,CAAC,MAAM,GAAG,WAAW,EAAE;gBACtC,OAAO,MAAM,CAAC;oBACZ,IAAI,EAAE,IAAI;oBACV,MAAM,EACJ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAClC,kCAAkC;iBACrC,CAAC,CAAC;aACJ;YAID,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,SAAiB,EAAE,EAAE;gBACzD,IAAI,SAAS,EAAE;oBACb,MAAM,IAAI,GAAG,KAAK,CAAC;oBAUnB,IAAI,CAAC,IAAI,EAAE;wBACT,OAAO,MAAM,CAAC;4BACZ,IAAI,EAAE,IAAI;4BACV,MAAM,EACJ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;gCAClC,0CAA0C;yBAC7C,CAAC,CAAC;qBACJ;iBACF;qBAAM;oBAEL,MAAM,SAAS,GAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CACjC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CACQ,CAAC,SAAS,CAAC,CAAC;oBACxD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAC5C,CAAC,SAA6C,EAAE,EAAE;wBAEhD,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE;4BAChC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAC/B,SAAS,CAAC,MAAM,EAChB,SAAS,EACT,SAAS,CAAC,IAAI,CACf,CAAC;yBACH;6BAAM;4BACL,OAAO,KAAK,CAAC;yBACd;oBACH,CAAC,CACF,CAAC;oBAEF,OAAO,SAAS,CAAC;iBAClB;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,EAAE;aACd;SACF;aAAM;YACL,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CACjD,CAAC,SAA6C,EAAE,EAAE;gBAChD,MAAM,IAAI,GACR,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;gBAGtE,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE;oBACtB,OAAO,MAAM,CAAC;wBACZ,IAAI,EAAE,IAAI;wBACV,MAAM,EACJ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;4BAClC,0CAA0C;qBAC7C,CAAC,CAAC;iBACJ;gBAED,IAAI,SAAS,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;oBAGzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG;wBACrD,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAW;qBACjF,CAAC;oBACF,OAAO,IAAI,CAAC;iBACb;qBAAM;oBACL,OAAO,KAAK,CAAC;iBACd;YACH,CAAC,CACF,CAAC;YAEF,IAAI,CAAC,cAAc,EAAE;gBAEnB,OAAO,MAAM,CAAC;oBACZ,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,sBAAsB;iBACpE,CAAC,CAAC;aACJ;SACF;IACH,CAAC;CACF;AApaD,gDAoaC"}
1
+ {"version":3,"file":"permissionsChecker.js","sourceRoot":"","sources":["../../src/protocol/permissionsChecker.ts"],"names":[],"mappings":"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"}