@xyo-network/image-thumbnail-plugin 2.70.11 → 2.70.12

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.
@@ -1,75 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImageThumbnailWitness = exports.binaryToSha256 = void 0;
3
+ exports.ImageThumbnailWitness = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const node_dns_1 = require("node:dns");
5
6
  const axios_1 = require("@xyo-network/axios");
6
7
  const core_1 = require("@xyo-network/core");
7
8
  const image_thumbnail_payload_plugin_1 = require("@xyo-network/image-thumbnail-payload-plugin");
8
- const payload_model_1 = require("@xyo-network/payload-model");
9
9
  const witness_1 = require("@xyo-network/witness");
10
10
  const gm_1 = require("gm");
11
11
  const hasbin_1 = require("hasbin");
12
12
  const hash_wasm_1 = require("hash-wasm");
13
13
  const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
14
- const isBuffer_1 = tslib_1.__importDefault(require("lodash/isBuffer"));
15
14
  const lru_cache_1 = require("lru-cache");
16
15
  const sha_js_1 = tslib_1.__importDefault(require("sha.js"));
17
16
  const url_parse_1 = tslib_1.__importDefault(require("url-parse"));
18
17
  const Config_1 = require("./Config");
19
18
  //TODO: Break this into two Witnesses?
20
19
  const gm = (0, gm_1.subClass)({ imageMagick: '7+' });
21
- const binaryToSha256 = (data) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
22
- yield core_1.PayloadHasher.wasmInitialized;
23
- if (core_1.PayloadHasher.wasmSupport.canUseWasm) {
24
- try {
25
- return yield (0, hash_wasm_1.sha256)(data);
26
- }
27
- catch (ex) {
28
- core_1.PayloadHasher.wasmSupport.allowWasm = false;
29
- }
30
- }
31
- // eslint-disable-next-line deprecation/deprecation
32
- return (0, sha_js_1.default)('sha256').update(data).digest().toString();
33
- });
34
- exports.binaryToSha256 = binaryToSha256;
35
- const checkIpfsUrl = (urlToCheck) => {
36
- const url = new url_parse_1.default(urlToCheck);
37
- let protocol = url.protocol;
38
- let host = url.host;
39
- let path = url.pathname;
40
- const query = url.query;
41
- if (protocol === 'ipfs:') {
42
- protocol = 'https:';
43
- host = 'cloudflare-ipfs.com';
44
- path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`;
45
- const root = `${protocol}//${host}/${path}`;
46
- return (query === null || query === void 0 ? void 0 : query.length) > 0 ? `root?${query}` : root;
47
- }
48
- else {
49
- return urlToCheck;
50
- }
51
- };
52
- const checkDataUrl = (url) => {
53
- if (url.startsWith('data:image')) {
54
- const data = url.split(',')[1];
55
- if (data) {
56
- const buffer = Buffer.from(Uint8Array.from(atob(data), (c) => c.charCodeAt(0)));
57
- console.log(`data buffer: ${buffer.length}`);
58
- return [buffer, undefined];
59
- }
60
- else {
61
- const error = {
62
- message: 'Invalid data Url',
63
- schema: payload_model_1.ModuleErrorSchema,
64
- url,
65
- };
66
- return [undefined, error];
67
- }
68
- }
69
- else {
70
- return [undefined, undefined];
71
- }
72
- };
73
20
  class ImageThumbnailWitness extends witness_1.AbstractWitness {
74
21
  get cache() {
75
22
  var _a;
@@ -96,121 +43,170 @@ class ImageThumbnailWitness extends witness_1.AbstractWitness {
96
43
  var _a;
97
44
  return (_a = this.config.width) !== null && _a !== void 0 ? _a : 128;
98
45
  }
46
+ static binaryToSha256(data) {
47
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
48
+ yield core_1.PayloadHasher.wasmInitialized;
49
+ if (core_1.PayloadHasher.wasmSupport.canUseWasm) {
50
+ try {
51
+ return yield (0, hash_wasm_1.sha256)(data);
52
+ }
53
+ catch (ex) {
54
+ core_1.PayloadHasher.wasmSupport.allowWasm = false;
55
+ }
56
+ }
57
+ // eslint-disable-next-line deprecation/deprecation
58
+ return (0, sha_js_1.default)('sha256').update(data).digest().toString();
59
+ });
60
+ }
61
+ static bufferFromDataUrl(url) {
62
+ if (url.startsWith('data:image')) {
63
+ const data = url.split(',')[1];
64
+ if (data) {
65
+ const buffer = Buffer.from(Uint8Array.from(atob(data), (c) => c.charCodeAt(0)));
66
+ console.log(`data buffer: ${buffer.length}`);
67
+ return buffer;
68
+ }
69
+ else {
70
+ const error = {
71
+ message: 'Invalid data Url',
72
+ name: 'ImageThumbnailWitnessError',
73
+ url,
74
+ };
75
+ throw error;
76
+ }
77
+ }
78
+ }
79
+ static checkIpfsUrl(urlToCheck) {
80
+ const url = new url_parse_1.default(urlToCheck);
81
+ let protocol = url.protocol;
82
+ let host = url.host;
83
+ let path = url.pathname;
84
+ const query = url.query;
85
+ if (protocol === 'ipfs:') {
86
+ protocol = 'https:';
87
+ host = 'cloudflare-ipfs.com';
88
+ path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`;
89
+ const root = `${protocol}//${host}/${path}`;
90
+ return (query === null || query === void 0 ? void 0 : query.length) > 0 ? `root?${query}` : root;
91
+ }
92
+ else {
93
+ return urlToCheck;
94
+ }
95
+ }
99
96
  observeHandler(payloads = []) {
100
97
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
101
98
  if (!(0, hasbin_1.sync)('magick')) {
102
99
  throw Error('ImageMagick is required for this witness');
103
100
  }
104
- const responsePairs = (0, compact_1.default)(yield Promise.all(payloads.map(({ url }) => tslib_1.__awaiter(this, void 0, void 0, function* () {
101
+ return (0, compact_1.default)(yield Promise.all(payloads.map(({ url }) => tslib_1.__awaiter(this, void 0, void 0, function* () {
105
102
  const cachedResult = this.cache.get(url);
106
103
  if (cachedResult) {
107
- return [url, cachedResult];
104
+ return cachedResult;
108
105
  }
106
+ let result;
109
107
  //if it is a data URL, return a Buffer
110
- const [dataBuffer, dataError] = checkDataUrl(url);
108
+ const dataBuffer = ImageThumbnailWitness.bufferFromDataUrl(url);
111
109
  if (dataBuffer) {
112
- return [url, dataBuffer];
113
- }
114
- if (dataError) {
115
- return [url, dataError];
116
- }
117
- //if it is ipfs, go through cloud flair
118
- const mutatedUrl = checkIpfsUrl(url);
119
- try {
120
- return [
110
+ result = {
111
+ schema: image_thumbnail_payload_plugin_1.ImageThumbnailSchema,
112
+ sourceHash: yield ImageThumbnailWitness.binaryToSha256(dataBuffer),
113
+ sourceUrl: url,
121
114
  url,
122
- yield axios_1.axios.get(mutatedUrl, {
123
- responseType: 'arraybuffer',
124
- }),
125
- ];
115
+ };
126
116
  }
127
- catch (ex) {
128
- const axiosError = ex;
129
- if (axiosError.isAxiosError) {
130
- //selectively pick fields from AxiosError
131
- const errorPayload = {
132
- code: axiosError.code,
133
- message: axiosError.message,
134
- schema: payload_model_1.ModuleErrorSchema,
135
- status: axiosError.status,
136
- url,
137
- };
138
- return [url, errorPayload];
139
- }
140
- else {
141
- throw ex;
142
- }
117
+ else {
118
+ //if it is ipfs, go through cloud flair
119
+ const mutatedUrl = ImageThumbnailWitness.checkIpfsUrl(url);
120
+ result = yield this.fromHttp(mutatedUrl);
143
121
  }
122
+ this.cache.set(url, result);
123
+ return result;
144
124
  }))));
145
- return (0, compact_1.default)(yield Promise.all(responsePairs.map(([url, urlResult]) => tslib_1.__awaiter(this, void 0, void 0, function* () {
146
- var _a;
147
- if ((0, payload_model_1.isPayload)(urlResult)) {
148
- this.cache.set(url, urlResult);
149
- return urlResult;
150
- }
151
- let sourceBuffer;
152
- if ((0, isBuffer_1.default)(urlResult)) {
153
- sourceBuffer = urlResult;
154
- }
155
- else {
156
- const response = urlResult;
157
- if (response.status >= 200 && response.status < 300) {
158
- const contentType = (_a = response.headers['content-type']) === null || _a === void 0 ? void 0 : _a.toString();
159
- if (contentType.split('/')[0] !== 'image') {
160
- const error = {
161
- message: `Invalid file type: ${contentType}`,
162
- schema: payload_model_1.ModuleErrorSchema,
163
- url,
164
- };
165
- this.cache.set(url, error);
166
- return error;
167
- }
168
- sourceBuffer = Buffer.from(response.data, 'binary');
125
+ });
126
+ }
127
+ createThumbnail(sourceBuffer) {
128
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
129
+ const thumb = yield new Promise((resolve, reject) => {
130
+ gm(sourceBuffer)
131
+ .quality(this.quality)
132
+ .resize(this.width, this.height)
133
+ .flatten()
134
+ .toBuffer(this.encoding, (error, buffer) => {
135
+ if (error) {
136
+ reject(error);
169
137
  }
170
138
  else {
171
- const error = {
172
- schema: payload_model_1.ModuleErrorSchema,
173
- status: response.status,
174
- url,
175
- };
176
- this.cache.set(url, error);
177
- return error;
139
+ resolve(buffer);
178
140
  }
179
- }
180
- try {
181
- const thumb = yield new Promise((resolve, reject) => {
182
- gm(sourceBuffer)
183
- .quality(this.quality)
184
- .resize(this.width, this.height)
185
- .flatten()
186
- .toBuffer(this.encoding, (error, buffer) => {
187
- if (error) {
188
- reject(error);
189
- }
190
- else {
191
- resolve(buffer);
192
- }
193
- });
194
- });
141
+ });
142
+ });
143
+ return `data:image/png;base64,${thumb.toString('base64')}`;
144
+ });
145
+ }
146
+ fromHttp(url) {
147
+ var _a, _b;
148
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
149
+ let response;
150
+ let dnsResult;
151
+ try {
152
+ const urlObj = new url_parse_1.default(url);
153
+ dnsResult = yield node_dns_1.promises.resolve(urlObj.host);
154
+ console.log(`dnsResult: ${JSON.stringify(dnsResult, null, 2)}`);
155
+ }
156
+ catch (ex) {
157
+ const error = ex;
158
+ const result = {
159
+ http: {
160
+ dnsError: error.code,
161
+ },
162
+ schema: image_thumbnail_payload_plugin_1.ImageThumbnailSchema,
163
+ sourceUrl: url,
164
+ };
165
+ return result;
166
+ }
167
+ try {
168
+ response = yield axios_1.axios.get(url, {
169
+ responseType: 'arraybuffer',
170
+ });
171
+ }
172
+ catch (ex) {
173
+ const axiosError = ex;
174
+ if (axiosError.isAxiosError) {
175
+ //selectively pick fields from AxiosError
195
176
  const result = {
177
+ http: {
178
+ ipAddress: dnsResult[0],
179
+ status: axiosError.status,
180
+ },
196
181
  schema: image_thumbnail_payload_plugin_1.ImageThumbnailSchema,
197
- sourceHash: yield (0, exports.binaryToSha256)(sourceBuffer),
198
182
  sourceUrl: url,
199
- url: `data:image/png;base64,${thumb.toString('base64')}`,
200
183
  };
201
- this.cache.set(url, result);
202
184
  return result;
203
185
  }
204
- catch (ex) {
205
- const error = {
206
- message: 'Failed to resize image',
207
- schema: payload_model_1.ModuleErrorSchema,
208
- url,
209
- };
210
- this.cache.set(url, error);
211
- return error;
186
+ else {
187
+ throw ex;
212
188
  }
213
- }))));
189
+ }
190
+ const result = {
191
+ http: {
192
+ status: response.status,
193
+ },
194
+ schema: image_thumbnail_payload_plugin_1.ImageThumbnailSchema,
195
+ sourceUrl: url,
196
+ };
197
+ if (response.status >= 200 && response.status < 300) {
198
+ const contentType = (_a = response.headers['content-type']) === null || _a === void 0 ? void 0 : _a.toString();
199
+ if (contentType.split('/')[0] !== 'image') {
200
+ result.mime = (_b = result.mime) !== null && _b !== void 0 ? _b : {};
201
+ result.mime.invalid = true;
202
+ }
203
+ else {
204
+ const sourceBuffer = Buffer.from(response.data, 'binary');
205
+ result.sourceHash = yield ImageThumbnailWitness.binaryToSha256(sourceBuffer);
206
+ result.url = yield this.createThumbnail(sourceBuffer);
207
+ }
208
+ }
209
+ return result;
214
210
  });
215
211
  }
216
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":";;;;AAAA,8CAAqE;AACrE,4CAAiD;AACjD,gGAAqI;AACrI,8DAAyE;AAEzE,kDAAsD;AACtD,2BAA6B;AAC7B,mCAAuC;AACvC,yCAAkC;AAClC,qEAAoC;AACpC,uEAAsC;AACtC,yCAAoC;AACpC,4DAA0B;AAC1B,kEAA2B;AAE3B,qCAA4D;AAG5D,sCAAsC;AAEtC,MAAM,EAAE,GAAG,IAAA,aAAQ,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;AAEnC,MAAM,cAAc,GAAG,CAAO,IAAgB,EAAE,EAAE;IACvD,MAAM,oBAAa,CAAC,eAAe,CAAA;IACnC,IAAI,oBAAa,CAAC,WAAW,CAAC,UAAU,EAAE;QACxC,IAAI;YACF,OAAO,MAAM,IAAA,kBAAM,EAAC,IAAI,CAAC,CAAA;SAC1B;QAAC,OAAO,EAAE,EAAE;YACX,oBAAa,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,CAAA;SAC5C;KACF;IACD,mDAAmD;IACnD,OAAO,IAAA,gBAAK,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAA;AACzD,CAAC,CAAA,CAAA;AAXY,QAAA,cAAc,kBAW1B;AAED,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,EAAE;IAC1C,MAAM,GAAG,GAAG,IAAI,mBAAG,CAAC,UAAU,CAAC,CAAA;IAC/B,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;IAC3B,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IACnB,IAAI,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAA;IACvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;IACvB,IAAI,QAAQ,KAAK,OAAO,EAAE;QACxB,QAAQ,GAAG,QAAQ,CAAA;QACnB,IAAI,GAAG,qBAAqB,CAAA;QAC5B,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,CAAA;QACtE,MAAM,IAAI,GAAG,GAAG,QAAQ,KAAK,IAAI,IAAI,IAAI,EAAE,CAAA;QAC3C,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;KAClD;SAAM;QACL,OAAO,UAAU,CAAA;KAClB;AACH,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,GAAW,EAAgE,EAAE;IACjG,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,EAAE;YACR,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/E,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;YAC5C,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;SAC3B;aAAM;YACL,MAAM,KAAK,GAA+B;gBACxC,OAAO,EAAE,kBAAkB;gBAC3B,MAAM,EAAE,iCAAiB;gBACzB,GAAG;aACJ,CAAA;YACD,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;SAC1B;KACF;SAAM;QACL,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;KAC9B;AACH,CAAC,CAAA;AAED,MAAa,qBAAiG,SAAQ,yBAAwB;IAK5I,IAAI,KAAK;;QACP,IAAI,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,IAAI,oBAAQ,CAA6D,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;QACpI,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,QAAQ;;QACV,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,mCAAI,KAAK,CAAA;IACtC,CAAC;IAED,IAAI,MAAM;;QACR,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,mCAAI,GAAG,CAAA;IAClC,CAAC;IAED,IAAI,eAAe;;QACjB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,eAAe,mCAAI,IAAI,CAAA;IAC5C,CAAC;IAED,IAAI,OAAO;;QACT,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAA;IAClC,CAAC;IAED,IAAI,KAAK;;QACP,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,mCAAI,GAAG,CAAA;IACjC,CAAC;IAEwB,cAAc,CAAC,WAAyB,EAAE;;YACjE,IAAI,CAAC,IAAA,aAAM,EAAC,QAAQ,CAAC,EAAE;gBACrB,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAA;aACxD;YACD,MAAM,aAAa,GAAG,IAAA,iBAAO,EAC3B,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAiG,CAAO,EAAE,GAAG,EAAE,EAAE,EAAE;gBAC7H,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACxC,IAAI,YAAY,EAAE;oBAChB,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;iBAC3B;gBACD,sCAAsC;gBACtC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;gBAEjD,IAAI,UAAU,EAAE;oBACd,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;iBACzB;gBAED,IAAI,SAAS,EAAE;oBACb,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;iBACxB;gBAED,uCAAuC;gBACvC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;gBAEpC,IAAI;oBACF,OAAO;wBACL,GAAG;wBACH,MAAM,aAAK,CAAC,GAAG,CAAC,UAAU,EAAE;4BAC1B,YAAY,EAAE,aAAa;yBAC5B,CAAC;qBACH,CAAA;iBACF;gBAAC,OAAO,EAAE,EAAE;oBACX,MAAM,UAAU,GAAG,EAAgB,CAAA;oBACnC,IAAI,UAAU,CAAC,YAAY,EAAE;wBAC3B,yCAAyC;wBACzC,MAAM,YAAY,GAA+B;4BAC/C,IAAI,EAAE,UAAU,CAAC,IAAI;4BACrB,OAAO,EAAE,UAAU,CAAC,OAAO;4BAC3B,MAAM,EAAE,iCAAiB;4BACzB,MAAM,EAAE,UAAU,CAAC,MAAM;4BACzB,GAAG;yBACJ,CAAA;wBACD,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;qBAC3B;yBAAM;wBACL,MAAM,EAAE,CAAA;qBACT;iBACF;YACH,CAAC,CAAA,CAAC,CACH,CACF,CAAA;YACD,OAAO,IAAA,iBAAO,EACZ,MAAM,OAAO,CAAC,GAAG,CACf,aAAa,CAAC,GAAG,CAAC,CAAO,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE;;gBAC3C,IAAI,IAAA,yBAAS,EAAC,SAAS,CAAC,EAAE;oBACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;oBAC9B,OAAO,SAAS,CAAA;iBACjB;gBAED,IAAI,YAAoB,CAAA;gBAExB,IAAI,IAAA,kBAAQ,EAAC,SAAS,CAAC,EAAE;oBACvB,YAAY,GAAG,SAAmB,CAAA;iBACnC;qBAAM;oBACL,MAAM,QAAQ,GAAG,SAA0B,CAAA;oBAE3C,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;wBACnD,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,0CAAE,QAAQ,EAAE,CAAA;wBAChE,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;4BACzC,MAAM,KAAK,GAA+B;gCACxC,OAAO,EAAE,sBAAsB,WAAW,EAAE;gCAC5C,MAAM,EAAE,iCAAiB;gCACzB,GAAG;6BACJ,CAAA;4BACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;4BAC1B,OAAO,KAAK,CAAA;yBACb;wBACD,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;qBACpD;yBAAM;wBACL,MAAM,KAAK,GAA+B;4BACxC,MAAM,EAAE,iCAAiB;4BACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;4BACvB,GAAG;yBACJ,CAAA;wBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;wBAC1B,OAAO,KAAK,CAAA;qBACb;iBACF;gBACD,IAAI;oBACF,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBAC1D,EAAE,CAAC,YAAY,CAAC;6BACb,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;6BACrB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;6BAC/B,OAAO,EAAE;6BACT,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;4BACzC,IAAI,KAAK,EAAE;gCACT,MAAM,CAAC,KAAK,CAAC,CAAA;6BACd;iCAAM;gCACL,OAAO,CAAC,MAAM,CAAC,CAAA;6BAChB;wBACH,CAAC,CAAC,CAAA;oBACN,CAAC,CAAC,CAAA;oBACF,MAAM,MAAM,GAA0B;wBACpC,MAAM,EAAE,qDAAoB;wBAC5B,UAAU,EAAE,MAAM,IAAA,sBAAc,EAAC,YAAY,CAAC;wBAC9C,SAAS,EAAE,GAAG;wBACd,GAAG,EAAE,yBAAyB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;qBACzD,CAAA;oBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBAC3B,OAAO,MAAM,CAAA;iBACd;gBAAC,OAAO,EAAE,EAAE;oBACX,MAAM,KAAK,GAA+B;wBACxC,OAAO,EAAE,wBAAwB;wBACjC,MAAM,EAAE,iCAAiB;wBACzB,GAAG;qBACJ,CAAA;oBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;oBAC1B,OAAO,KAAK,CAAA;iBACb;YACH,CAAC,CAAA,CAAC,CACH,CACF,CAAA;QACH,CAAC;KAAA;;AAxJH,sDAyJC;AAxJiB,mCAAa,GAAG,CAAC,0CAAiC,CAAC,CAAA"}
1
+ {"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"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"}